[libvirt] [PATCH 6/n] conf: move source pool type to util/

Eric Blake eblake at redhat.com
Fri Mar 28 04:35:21 UTC 2014


Another struct being moved to util.  This one doesn't have
as much use yet, thankfully.

* src/conf/domain_conf.h (virDomainDiskSourcePoolMode)
(virDomainDiskSourcePoolDef): Move...
* src/util/virstoragefile.h (virStorageSourcePoolMode)
(virStorageSourcePoolDef): ...and rename.
* src/conf/domain_conf.c (virDomainDiskSourcePoolDefFree)
(virDomainDiskSourceDefClear, virDomainDiskSourcePoolDefParse)
(virDomainDiskDefParseXML, virDomainDiskSourceDefParse)
(virDomainDiskSourceDefFormatInternal)
(virDomainDiskDefForeachPath, virDomainDiskSourceIsBlockType):
Adjust clients.
* src/qemu/qemu_conf.c (qemuTranslateDiskSourcePool): Likewise.
* src/libvirt_private.syms (domain_conf.h): Move symbols...
(virstoragefile.h): ...as appropriate.

Signed-off-by: Eric Blake <eblake at redhat.com>
---
 src/conf/domain_conf.c    | 23 +++++++++--------------
 src/conf/domain_conf.h    | 38 +++-----------------------------------
 src/libvirt_private.syms  |  2 ++
 src/qemu/qemu_conf.c      | 10 +++++-----
 src/util/virstoragefile.c |  5 +++++
 src/util/virstoragefile.h | 35 +++++++++++++++++++++++++++++++++++
 6 files changed, 59 insertions(+), 54 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 36149da..643b066 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -763,11 +763,6 @@ VIR_ENUM_IMPL(virDomainDiskDiscard, VIR_DOMAIN_DISK_DISCARD_LAST,
               "default",
               "unmap",
               "ignore")
-VIR_ENUM_IMPL(virDomainDiskSourcePoolMode,
-              VIR_DOMAIN_DISK_SOURCE_POOL_MODE_LAST,
-              "default",
-              "host",
-              "direct")

 #define VIR_DOMAIN_XML_WRITE_FLAGS  VIR_DOMAIN_XML_SECURE
 #define VIR_DOMAIN_XML_READ_FLAGS   VIR_DOMAIN_XML_INACTIVE
@@ -1190,7 +1185,7 @@ void virDomainLeaseDefFree(virDomainLeaseDefPtr def)
 }

 static void
-virDomainDiskSourcePoolDefFree(virDomainDiskSourcePoolDefPtr def)
+virDomainDiskSourcePoolDefFree(virStorageSourcePoolDefPtr def)
 {
     if (!def)
         return;
@@ -4964,10 +4959,10 @@ virDomainLeaseDefParseXML(xmlNodePtr node)

 static int
 virDomainDiskSourcePoolDefParse(xmlNodePtr node,
-                                virDomainDiskSourcePoolDefPtr *srcpool)
+                                virStorageSourcePoolDefPtr *srcpool)
 {
     char *mode = NULL;
-    virDomainDiskSourcePoolDefPtr source;
+    virStorageSourcePoolDefPtr source;
     int ret = -1;

     *srcpool = NULL;
@@ -4993,7 +4988,7 @@ virDomainDiskSourcePoolDefParse(xmlNodePtr node,
     }

     if (mode &&
-        (source->mode = virDomainDiskSourcePoolModeTypeFromString(mode)) <= 0) {
+        (source->mode = virStorageSourcePoolModeTypeFromString(mode)) <= 0) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                        _("unknown source mode '%s' for volume type disk"),
                        mode);
@@ -5018,7 +5013,7 @@ virDomainDiskSourceDefParse(xmlNodePtr node,
                             int *proto,
                             size_t *nhosts,
                             virStorageNetHostDefPtr *hosts,
-                            virDomainDiskSourcePoolDefPtr *srcpool)
+                            virStorageSourcePoolDefPtr *srcpool)
 {
     char *protocol = NULL;
     char *transport = NULL;
@@ -14761,7 +14756,7 @@ virDomainDiskSourceDefFormatInternal(virBufferPtr buf,
                                      virStorageNetHostDefPtr hosts,
                                      size_t nseclabels,
                                      virSecurityDeviceLabelDefPtr *seclabels,
-                                     virDomainDiskSourcePoolDefPtr srcpool,
+                                     virStorageSourcePoolDefPtr srcpool,
                                      unsigned int flags)
 {
     size_t n;
@@ -14831,7 +14826,7 @@ virDomainDiskSourceDefFormatInternal(virBufferPtr buf,
                                   srcpool->pool, srcpool->volume);
                 if (srcpool->mode)
                     virBufferAsprintf(buf, " mode='%s'",
-                                      virDomainDiskSourcePoolModeTypeToString(srcpool->mode));
+                                      virStorageSourcePoolModeTypeToString(srcpool->mode));
             }
             virBufferEscapeString(buf, " startupPolicy='%s'", startupPolicy);

@@ -18530,7 +18525,7 @@ virDomainDiskDefForeachPath(virDomainDiskDefPtr disk,
     if (!path || type == VIR_STORAGE_TYPE_NETWORK ||
         (type == VIR_STORAGE_TYPE_VOLUME &&
          disk->src.srcpool &&
-         disk->src.srcpool->mode == VIR_DOMAIN_DISK_SOURCE_POOL_MODE_DIRECT))
+         disk->src.srcpool->mode == VIR_STORAGE_SOURCE_POOL_MODE_DIRECT))
         return 0;

     if (iter(disk, path, 0, opaque) < 0)
@@ -19392,7 +19387,7 @@ virDomainDiskSourceIsBlockType(virDomainDiskDefPtr def)
          * (e.g. set sgio=filtered|unfiltered for it) in libvirt.
          */
          if (def->src.srcpool->pooltype == VIR_STORAGE_POOL_ISCSI &&
-             def->src.srcpool->mode == VIR_DOMAIN_DISK_SOURCE_POOL_MODE_DIRECT)
+             def->src.srcpool->mode == VIR_STORAGE_SOURCE_POOL_MODE_DIRECT)
              return false;

         return true;
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index b2eeefd..e5d945f 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -602,37 +602,6 @@ struct _virDomainBlockIoTuneInfo {
 };
 typedef virDomainBlockIoTuneInfo *virDomainBlockIoTuneInfoPtr;

-/*
- * Used for volume "type" disk to indicate how to represent
- * the disk source if the specified "pool" is of iscsi type.
- */
-enum virDomainDiskSourcePoolMode {
-    VIR_DOMAIN_DISK_SOURCE_POOL_MODE_DEFAULT = 0,
-
-    /* Use the path as it shows up on host, e.g.
-     * /dev/disk/by-path/ip-$ip-iscsi-$iqn:iscsi.iscsi-pool0-lun-1
-     */
-    VIR_DOMAIN_DISK_SOURCE_POOL_MODE_HOST,
-
-    /* Use the URI from the storage pool source element host attribute. E.g.
-     * file=iscsi://demo.org:6000/iqn.1992-01.com.example/1.
-     */
-    VIR_DOMAIN_DISK_SOURCE_POOL_MODE_DIRECT,
-
-    VIR_DOMAIN_DISK_SOURCE_POOL_MODE_LAST
-};
-
-typedef struct _virDomainDiskSourcePoolDef virDomainDiskSourcePoolDef;
-struct _virDomainDiskSourcePoolDef {
-    char *pool; /* pool name */
-    char *volume; /* volume name */
-    int voltype; /* enum virStorageVolType, internal only */
-    int pooltype; /* enum virStoragePoolType, internal only */
-    int actualtype; /* enum virStorageType, internal only */
-    int mode; /* enum virDomainDiskSourcePoolMode */
-};
-typedef virDomainDiskSourcePoolDef *virDomainDiskSourcePoolDefPtr;
-
 typedef struct _virDomainDiskSourceDef virDomainDiskSourceDef;
 typedef virDomainDiskSourceDef *virDomainDiskSourceDefPtr;

@@ -645,7 +614,7 @@ struct _virDomainDiskSourceDef {
     int protocol; /* enum virStorageNetProtocol */
     size_t nhosts;
     virStorageNetHostDefPtr hosts;
-    virDomainDiskSourcePoolDefPtr srcpool;
+    virStorageSourcePoolDefPtr srcpool;
     struct {
         char *username;
         int secretType; /* enum virDomainDiskSecretType */
@@ -2347,7 +2316,7 @@ int virDomainDiskSourceDefFormatInternal(virBufferPtr buf,
                                          virStorageNetHostDefPtr hosts,
                                          size_t nseclabels,
                                          virSecurityDeviceLabelDefPtr *seclabels,
-                                         virDomainDiskSourcePoolDefPtr srcpool,
+                                         virStorageSourcePoolDefPtr srcpool,
                                          unsigned int flags);

 int virDomainNetDefFormat(virBufferPtr buf,
@@ -2401,7 +2370,7 @@ int virDomainDiskSourceDefParse(xmlNodePtr node,
                                 int *proto,
                                 size_t *nhosts,
                                 virStorageNetHostDefPtr *hosts,
-                                virDomainDiskSourcePoolDefPtr *srcpool);
+                                virStorageSourcePoolDefPtr *srcpool);

 bool virDomainHasDiskMirror(virDomainObjPtr vm);

@@ -2623,7 +2592,6 @@ VIR_ENUM_DECL(virDomainDiskSecretType)
 VIR_ENUM_DECL(virDomainDeviceSGIO)
 VIR_ENUM_DECL(virDomainDiskTray)
 VIR_ENUM_DECL(virDomainDiskDiscard)
-VIR_ENUM_DECL(virDomainDiskSourcePoolMode)
 VIR_ENUM_DECL(virDomainIoEventFd)
 VIR_ENUM_DECL(virDomainVirtioEventIdx)
 VIR_ENUM_DECL(virDomainDiskCopyOnRead)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 60c2d44..da70ee3 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1840,6 +1840,8 @@ virStorageNetHostDefFree;
 virStorageNetHostTransportTypeFromString;
 virStorageNetHostTransportTypeToString;
 virStorageNetProtocolTypeToString;
+virStorageSourcePoolModeTypeFromString;
+virStorageSourcePoolModeTypeToString;
 virStorageTypeFromString;
 virStorageTypeToString;

diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 0f33553..96a2caf 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1364,17 +1364,17 @@ qemuTranslateDiskSourcePool(virConnectPtr conn,
         }

        switch (def->src.srcpool->mode) {
-       case VIR_DOMAIN_DISK_SOURCE_POOL_MODE_DEFAULT:
-       case VIR_DOMAIN_DISK_SOURCE_POOL_MODE_LAST:
-           def->src.srcpool->mode = VIR_DOMAIN_DISK_SOURCE_POOL_MODE_HOST;
+       case VIR_STORAGE_SOURCE_POOL_MODE_DEFAULT:
+       case VIR_STORAGE_SOURCE_POOL_MODE_LAST:
+           def->src.srcpool->mode = VIR_STORAGE_SOURCE_POOL_MODE_HOST;
            /* fallthrough */
-       case VIR_DOMAIN_DISK_SOURCE_POOL_MODE_HOST:
+       case VIR_STORAGE_SOURCE_POOL_MODE_HOST:
            def->src.srcpool->actualtype = VIR_STORAGE_TYPE_BLOCK;
            if (!(def->src.path = virStorageVolGetPath(vol)))
                goto cleanup;
            break;

-       case VIR_DOMAIN_DISK_SOURCE_POOL_MODE_DIRECT:
+       case VIR_STORAGE_SOURCE_POOL_MODE_DIRECT:
            def->src.srcpool->actualtype = VIR_STORAGE_TYPE_NETWORK;
            def->src.protocol = VIR_STORAGE_NET_PROTOCOL_ISCSI;

diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 2ed5617..e1b69ec 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -90,6 +90,11 @@ VIR_ENUM_IMPL(virStorageNetHostTransport, VIR_STORAGE_NET_HOST_TRANS_LAST,
               "unix",
               "rdma")

+VIR_ENUM_IMPL(virStorageSourcePoolMode,
+              VIR_STORAGE_SOURCE_POOL_MODE_LAST,
+              "default",
+              "host",
+              "direct")

 enum lv_endian {
     LV_LITTLE_ENDIAN = 1, /* 1234 */
diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
index fccf0b9..81d6954 100644
--- a/src/util/virstoragefile.h
+++ b/src/util/virstoragefile.h
@@ -137,6 +137,41 @@ struct _virStorageNetHostDef {
     char *socket;  /* path to unix socket */
 };

+/* Information for a storage volume from a virStoragePool */
+
+/*
+ * Used for volume "type" disk to indicate how to represent
+ * the disk source if the specified "pool" is of iscsi type.
+ */
+enum virStorageSourcePoolMode {
+    VIR_STORAGE_SOURCE_POOL_MODE_DEFAULT = 0,
+
+    /* Use the path as it shows up on host, e.g.
+     * /dev/disk/by-path/ip-$ip-iscsi-$iqn:iscsi.iscsi-pool0-lun-1
+     */
+    VIR_STORAGE_SOURCE_POOL_MODE_HOST,
+
+    /* Use the URI from the storage pool source element host attribute. E.g.
+     * file=iscsi://demo.org:6000/iqn.1992-01.com.example/1.
+     */
+    VIR_STORAGE_SOURCE_POOL_MODE_DIRECT,
+
+    VIR_STORAGE_SOURCE_POOL_MODE_LAST
+};
+
+VIR_ENUM_DECL(virStorageSourcePoolMode)
+
+typedef struct _virStorageSourcePoolDef virStorageSourcePoolDef;
+struct _virStorageSourcePoolDef {
+    char *pool; /* pool name */
+    char *volume; /* volume name */
+    int voltype; /* enum virStorageVolType, internal only */
+    int pooltype; /* enum virStoragePoolType, internal only */
+    int actualtype; /* enum virStorageType, internal only */
+    int mode; /* enum virStorageSourcePoolMode */
+};
+typedef virStorageSourcePoolDef *virStorageSourcePoolDefPtr;
+

 # ifndef DEV_BSIZE
 #  define DEV_BSIZE 512
-- 
1.9.0




More information about the libvir-list mailing list