[PATCHv5 05/28] conf: Don't output seclabels for backingStore elements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Some of the further changes will propagate seclabels from a disk source
element into the backing store elements. This would change the XML
output of the backing store as the seclabels would be formatted for each
backing store element. Skip the seclabels formatting until we decide
that it's necessary.
---
 src/conf/domain_conf.c | 59 +++++++++++++++++++++++++++++++++++---------------
 1 file changed, 42 insertions(+), 17 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 54925ba..ffdbf55 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -14830,14 +14830,15 @@ virDomainDiskBlockIoDefFormat(virBufferPtr buf,
  * possible seclabels.
  */
 static void
-virDomainSourceDefFormatSeclabel(virBufferPtr buf,
-                                 size_t nseclabels,
-                                 virSecurityDeviceLabelDefPtr *seclabels,
-                                 unsigned int flags)
+virDomainDiskSourceDefFormatSeclabel(virBufferPtr buf,
+                                     size_t nseclabels,
+                                     virSecurityDeviceLabelDefPtr *seclabels,
+                                     unsigned int flags,
+                                     bool skipSeclables)
 {
     size_t n;

-    if (nseclabels) {
+    if (nseclabels && !skipSeclables) {
         virBufferAddLit(buf, ">\n");
         virBufferAdjustIndent(buf, 2);
         for (n = 0; n < nseclabels; n++)
@@ -14849,11 +14850,21 @@ virDomainSourceDefFormatSeclabel(virBufferPtr buf,
     }
 }

-int
-virDomainDiskSourceFormat(virBufferPtr buf,
-                          virStorageSourcePtr src,
-                          int policy,
-                          unsigned int flags)
+static void
+virDomainSourceDefFormatSeclabel(virBufferPtr buf,
+                                 size_t nseclabels,
+                                 virSecurityDeviceLabelDefPtr *seclabels,
+                                 unsigned int flags)
+{
+    virDomainDiskSourceDefFormatSeclabel(buf, nseclabels, seclabels, flags, false);
+}
+
+static int
+virDomainDiskSourceFormatInternal(virBufferPtr buf,
+                                  virStorageSourcePtr src,
+                                  int policy,
+                                  unsigned int flags,
+                                  bool skipSeclabels)
 {
     size_t n;
     char *path = NULL;
@@ -14869,8 +14880,9 @@ virDomainDiskSourceFormat(virBufferPtr buf,
             virBufferEscapeString(buf, " file='%s'", src->path);
             virBufferEscapeString(buf, " startupPolicy='%s'", startupPolicy);

-            virDomainSourceDefFormatSeclabel(buf, src->nseclabels,
-                                             src->seclabels, flags);
+            virDomainDiskSourceDefFormatSeclabel(buf, src->nseclabels,
+                                                 src->seclabels, flags,
+                                                 skipSeclabels);
             break;

         case VIR_STORAGE_TYPE_BLOCK:
@@ -14878,8 +14890,9 @@ virDomainDiskSourceFormat(virBufferPtr buf,
             virBufferEscapeString(buf, " dev='%s'", src->path);
             virBufferEscapeString(buf, " startupPolicy='%s'", startupPolicy);

-            virDomainSourceDefFormatSeclabel(buf, src->nseclabels,
-                                             src->seclabels, flags);
+            virDomainDiskSourceDefFormatSeclabel(buf, src->nseclabels,
+                                                 src->seclabels, flags,
+                                                 skipSeclabels);
             break;

         case VIR_STORAGE_TYPE_DIR:
@@ -14942,8 +14955,9 @@ virDomainDiskSourceFormat(virBufferPtr buf,
             }
             virBufferEscapeString(buf, " startupPolicy='%s'", startupPolicy);

-            virDomainSourceDefFormatSeclabel(buf, src->nseclabels,
-                                             src->seclabels, flags);
+            virDomainDiskSourceDefFormatSeclabel(buf, src->nseclabels,
+                                                 src->seclabels, flags,
+                                                 skipSeclabels);
             break;

         case VIR_STORAGE_TYPE_NONE:
@@ -14958,6 +14972,16 @@ virDomainDiskSourceFormat(virBufferPtr buf,
 }


+int
+virDomainDiskSourceFormat(virBufferPtr buf,
+                          virStorageSourcePtr src,
+                          int policy,
+                          unsigned int flags)
+{
+    return virDomainDiskSourceFormatInternal(buf, src, policy, flags, false);
+}
+
+
 static int
 virDomainDiskBackingStoreFormat(virBufferPtr buf,
                                 virStorageSourcePtr backingStore,
@@ -14994,7 +15018,8 @@ virDomainDiskBackingStoreFormat(virBufferPtr buf,
     virBufferAdjustIndent(buf, 2);

     virBufferAsprintf(buf, "<format type='%s'/>\n", format);
-    if (virDomainDiskSourceFormat(buf, backingStore, 0, 0) < 0 ||
+    /* We currently don't output seclabels for backing chain element */
+    if (virDomainDiskSourceFormatInternal(buf, backingStore, 0, 0, true) < 0 ||
         virDomainDiskBackingStoreFormat(buf,
                                         backingStore->backingStore,
                                         backingStore->backingStoreRaw,
-- 
1.9.3

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




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]