Libvirt: SMB volume driver

Currently, there are Libvirt volume drivers that support
network-attached file systems such as Gluster or NFS. This patch
adds a new volume driver in order to support attaching volumes
hosted on SMB shares.

Co-Authored-By: Gabriel Samfira <gsamfira@cloudbasesolutions.com>

DocImpact

Change-Id: I1db3d2a6d8ee94932348c63cc03698fdefff0b5c
Implements: blueprint libvirt-smbfs-volume-support
Add cn_get_all_by_host and cn_get_by_host_and_node to ComputeNode

Following the addition of the host field, now we can query by this field.
Here, there are additions for querying N nodes having same host and for
query 1 node having the tuple (host, node)

Here, we also need to provide a compatiblity layer in the ComputeNode
object to make sure that if old compute nodes are still running without
host field, we can still search against them.

Partially-Implements blueprint detach-service-from-computenode

Change-Id: Id23944060fd30da7293f02c31aa71c3150214794
Merge "Libvirt: SMB volume driver"
Merge "Add cn_get_all_by_host and cn_get_by_host_and_node to ComputeNode"