Re: [libvirt] [PATCH 6/9] virstoragefile: Add quorum in virstoragefile

2015-01-13 Thread Michal Privoznik

On 08.12.2014 19:31, Matthias Gatto wrote:

Add VIR_STORAGE_TYPE_QUORUM in virStorageType.
Add VIR_STORAGE_FILE_QUORUM in virStorageFileFormat.

Add threshold value in _virStorageSource

Signed-off-by: Matthias Gatto matthias.ga...@outscale.com
---
  src/conf/domain_conf.c|  2 ++
  src/qemu/qemu_command.c   |  1 +
  src/qemu/qemu_driver.c|  4 
  src/qemu/qemu_migration.c |  1 +
  src/util/virstoragefile.c | 25 +
  src/util/virstoragefile.h |  3 +++
  6 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 00e0470..1add21f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5445,6 +5445,7 @@ virDomainDiskSourceParse(xmlNodePtr node,
  if (virDomainDiskSourcePoolDefParse(node, src-srcpool)  0)
  goto cleanup;
  break;
+case VIR_STORAGE_TYPE_QUORUM:
  case VIR_STORAGE_TYPE_NONE:
  case VIR_STORAGE_TYPE_LAST:
  virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -16412,6 +16413,7 @@ virDomainDiskSourceFormatInternal(virBufferPtr buf,
   skipSeclabels);
  break;

+case VIR_STORAGE_TYPE_QUORUM:
  case VIR_STORAGE_TYPE_NONE:
  case VIR_STORAGE_TYPE_LAST:
  virReportError(VIR_ERR_INTERNAL_ERROR,
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 1831323..525a49c 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3086,6 +3086,7 @@ qemuGetDriveSourceString(virStorageSourcePtr src,
  goto cleanup;
  break;

+case VIR_STORAGE_TYPE_QUORUM:
  case VIR_STORAGE_TYPE_VOLUME:
  case VIR_STORAGE_TYPE_NONE:
  case VIR_STORAGE_TYPE_LAST:
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 8e3a492..1dc7558 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -12977,6 +12977,7 @@ 
qemuDomainSnapshotPrepareDiskExternalBackingInactive(virDomainDiskDefPtr disk)
  }
  break;

+case VIR_STORAGE_TYPE_QUORUM:
  case VIR_STORAGE_TYPE_DIR:
  case VIR_STORAGE_TYPE_VOLUME:
  case VIR_STORAGE_TYPE_NONE:
@@ -13040,6 +13041,7 @@ 
qemuDomainSnapshotPrepareDiskExternalOverlayActive(virDomainSnapshotDiskDefPtr d
  }
  break;

+case VIR_STORAGE_TYPE_QUORUM:
  case VIR_STORAGE_TYPE_DIR:
  case VIR_STORAGE_TYPE_VOLUME:
  case VIR_STORAGE_TYPE_NONE:
@@ -13064,6 +13066,7 @@ 
qemuDomainSnapshotPrepareDiskExternalOverlayInactive(virDomainSnapshotDiskDefPtr
  case VIR_STORAGE_TYPE_FILE:
  return 0;

+case VIR_STORAGE_TYPE_QUORUM:
  case VIR_STORAGE_TYPE_NETWORK:
  case VIR_STORAGE_TYPE_DIR:
  case VIR_STORAGE_TYPE_VOLUME:
@@ -13183,6 +13186,7 @@ qemuDomainSnapshotPrepareDiskInternal(virConnectPtr 
conn,
  }
  break;

+case VIR_STORAGE_TYPE_QUORUM:
  case VIR_STORAGE_TYPE_DIR:
  case VIR_STORAGE_TYPE_VOLUME:
  case VIR_STORAGE_TYPE_NONE:
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 0acbb57..5efd753 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -1515,6 +1515,7 @@ qemuMigrationPrecreateDisk(virConnectPtr conn,
  case VIR_STORAGE_TYPE_BLOCK:
  case VIR_STORAGE_TYPE_DIR:
  case VIR_STORAGE_TYPE_NETWORK:
+case VIR_STORAGE_TYPE_QUORUM:
  case VIR_STORAGE_TYPE_NONE:
  case VIR_STORAGE_TYPE_LAST:
  virReportError(VIR_ERR_INTERNAL_ERROR,
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 4217a80..ad87e80 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -57,7 +57,8 @@ VIR_ENUM_IMPL(virStorage, VIR_STORAGE_TYPE_LAST,
block,
dir,
network,
-  volume)
+  volume,
+  quorum)


This adds new type to domain disk. Any change to XML must go hand in 
hand with documentation and XML schema changes.




  VIR_ENUM_IMPL(virStorageFileFormat,
VIR_STORAGE_FILE_LAST,
@@ -66,7 +67,7 @@ VIR_ENUM_IMPL(virStorageFileFormat,
cloop, dmg, iso,
vpc, vdi,
/* Not direct file formats, but used for various drivers */
-  fat, vhd, ploop,
+  fat, vhd, ploop, quorum,
/* Formats with backing file below here */
cow, qcow, qcow2, qed, vmdk)



Michal

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH 6/9] virstoragefile: Add quorum in virstoragefile

2014-12-08 Thread Matthias Gatto
Add VIR_STORAGE_TYPE_QUORUM in virStorageType.
Add VIR_STORAGE_FILE_QUORUM in virStorageFileFormat.

Add threshold value in _virStorageSource

Signed-off-by: Matthias Gatto matthias.ga...@outscale.com
---
 src/conf/domain_conf.c|  2 ++
 src/qemu/qemu_command.c   |  1 +
 src/qemu/qemu_driver.c|  4 
 src/qemu/qemu_migration.c |  1 +
 src/util/virstoragefile.c | 25 +
 src/util/virstoragefile.h |  3 +++
 6 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 00e0470..1add21f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5445,6 +5445,7 @@ virDomainDiskSourceParse(xmlNodePtr node,
 if (virDomainDiskSourcePoolDefParse(node, src-srcpool)  0)
 goto cleanup;
 break;
+case VIR_STORAGE_TYPE_QUORUM:
 case VIR_STORAGE_TYPE_NONE:
 case VIR_STORAGE_TYPE_LAST:
 virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -16412,6 +16413,7 @@ virDomainDiskSourceFormatInternal(virBufferPtr buf,
  skipSeclabels);
 break;
 
+case VIR_STORAGE_TYPE_QUORUM:
 case VIR_STORAGE_TYPE_NONE:
 case VIR_STORAGE_TYPE_LAST:
 virReportError(VIR_ERR_INTERNAL_ERROR,
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 1831323..525a49c 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3086,6 +3086,7 @@ qemuGetDriveSourceString(virStorageSourcePtr src,
 goto cleanup;
 break;
 
+case VIR_STORAGE_TYPE_QUORUM:
 case VIR_STORAGE_TYPE_VOLUME:
 case VIR_STORAGE_TYPE_NONE:
 case VIR_STORAGE_TYPE_LAST:
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 8e3a492..1dc7558 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -12977,6 +12977,7 @@ 
qemuDomainSnapshotPrepareDiskExternalBackingInactive(virDomainDiskDefPtr disk)
 }
 break;
 
+case VIR_STORAGE_TYPE_QUORUM:
 case VIR_STORAGE_TYPE_DIR:
 case VIR_STORAGE_TYPE_VOLUME:
 case VIR_STORAGE_TYPE_NONE:
@@ -13040,6 +13041,7 @@ 
qemuDomainSnapshotPrepareDiskExternalOverlayActive(virDomainSnapshotDiskDefPtr d
 }
 break;
 
+case VIR_STORAGE_TYPE_QUORUM:
 case VIR_STORAGE_TYPE_DIR:
 case VIR_STORAGE_TYPE_VOLUME:
 case VIR_STORAGE_TYPE_NONE:
@@ -13064,6 +13066,7 @@ 
qemuDomainSnapshotPrepareDiskExternalOverlayInactive(virDomainSnapshotDiskDefPtr
 case VIR_STORAGE_TYPE_FILE:
 return 0;
 
+case VIR_STORAGE_TYPE_QUORUM:
 case VIR_STORAGE_TYPE_NETWORK:
 case VIR_STORAGE_TYPE_DIR:
 case VIR_STORAGE_TYPE_VOLUME:
@@ -13183,6 +13186,7 @@ qemuDomainSnapshotPrepareDiskInternal(virConnectPtr 
conn,
 }
 break;
 
+case VIR_STORAGE_TYPE_QUORUM:
 case VIR_STORAGE_TYPE_DIR:
 case VIR_STORAGE_TYPE_VOLUME:
 case VIR_STORAGE_TYPE_NONE:
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 0acbb57..5efd753 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -1515,6 +1515,7 @@ qemuMigrationPrecreateDisk(virConnectPtr conn,
 case VIR_STORAGE_TYPE_BLOCK:
 case VIR_STORAGE_TYPE_DIR:
 case VIR_STORAGE_TYPE_NETWORK:
+case VIR_STORAGE_TYPE_QUORUM:
 case VIR_STORAGE_TYPE_NONE:
 case VIR_STORAGE_TYPE_LAST:
 virReportError(VIR_ERR_INTERNAL_ERROR,
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 4217a80..ad87e80 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -57,7 +57,8 @@ VIR_ENUM_IMPL(virStorage, VIR_STORAGE_TYPE_LAST,
   block,
   dir,
   network,
-  volume)
+  volume,
+  quorum)
 
 VIR_ENUM_IMPL(virStorageFileFormat,
   VIR_STORAGE_FILE_LAST,
@@ -66,7 +67,7 @@ VIR_ENUM_IMPL(virStorageFileFormat,
   cloop, dmg, iso,
   vpc, vdi,
   /* Not direct file formats, but used for various drivers */
-  fat, vhd, ploop,
+  fat, vhd, ploop, quorum,
   /* Formats with backing file below here */
   cow, qcow, qcow2, qed, vmdk)
 
@@ -1911,6 +1912,7 @@ virStorageSourceCopy(const virStorageSource *src,
  bool backingChain)
 {
 virStorageSourcePtr ret = NULL;
+size_t i;
 
 if (VIR_ALLOC(ret)  0)
 return NULL;
@@ -1922,6 +1924,8 @@ virStorageSourceCopy(const virStorageSource *src,
 ret-capacity = src-capacity;
 ret-readonly = src-readonly;
 ret-shared = src-shared;
+ret-nBackingStores = src-nBackingStores;
+ret-threshold = src-threshold;
 
 /* storage driver metadata are not copied */
 ret-drv = NULL;
@@ -1970,12 +1974,14 @@ virStorageSourceCopy(const virStorageSource *src,
 !(ret-auth = virStorageAuthDefCopy(src-auth)))
 goto error;
 
-if (backingChain  virStorageSourceGetBackingStore(src, 0)) {
-if