]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
storage: conf: Don't output owner/group -1
authorCole Robinson <crobinso@redhat.com>
Tue, 5 May 2015 15:58:12 +0000 (11:58 -0400)
committerCole Robinson <crobinso@redhat.com>
Thu, 21 May 2015 19:00:52 +0000 (15:00 -0400)
-1 is just an internal placeholder and is meaningless to output in the XML.

docs/schemas/storagecommon.rng
src/conf/storage_conf.c
tests/storagepoolxml2xmlout/pool-dir-naming.xml
tests/storagepoolxml2xmlout/pool-dir.xml
tests/storagepoolxml2xmlout/pool-netfs-gluster.xml
tests/storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml
tests/storagevolxml2xmlout/vol-gluster-dir.xml
tests/storagevolxml2xmlout/vol-sheepdog.xml

index 5f71b10b305d675c928cb48747edcb8ac7037bfe..6f7d3695965177daa4f61d222ee710c971ce7358 100644 (file)
           <element name='mode'>
             <ref name='octalMode'/>
           </element>
-          <element name='owner'>
-            <choice>
-              <ref name='unsignedInt'/>
-              <value>-1</value>
-            </choice>
-          </element>
-          <element name='group'>
-            <choice>
-              <ref name='unsignedInt'/>
-              <value>-1</value>
-            </choice>
-          </element>
+          <optional>
+            <element name='owner'>
+              <choice>
+                <ref name='unsignedInt'/>
+                <value>-1</value>
+              </choice>
+            </element>
+          </optional>
+          <optional>
+            <element name='group'>
+              <choice>
+                <ref name='unsignedInt'/>
+                <value>-1</value>
+              </choice>
+            </element>
+          </optional>
           <optional>
             <element name='label'>
               <text/>
index 65b270410871ee15e6301250b53f53ae66a0e833..ee6e0cf002b2c7ed6aa41a5601db623e8d2cd644 100644 (file)
@@ -759,6 +759,7 @@ virStorageDefParsePerms(xmlXPathContextPtr ctxt,
     if (virXPathNode("./owner", ctxt) == NULL) {
         perms->uid = (uid_t) -1;
     } else {
+        /* We previously could output -1, so continue to parse it */
         if (virXPathLongLong("number(./owner)", ctxt, &val) < 0 ||
             ((uid_t)val != val &&
              val != -1)) {
@@ -773,6 +774,7 @@ virStorageDefParsePerms(xmlXPathContextPtr ctxt,
     if (virXPathNode("./group", ctxt) == NULL) {
         perms->gid = (gid_t) -1;
     } else {
+        /* We previously could output -1, so continue to parse it */
         if (virXPathLongLong("number(./group)", ctxt, &val) < 0 ||
             ((gid_t) val != val &&
              val != -1)) {
@@ -1187,10 +1189,12 @@ virStoragePoolDefFormatBuf(virBufferPtr buf,
         virBufferAdjustIndent(buf, 2);
         virBufferAsprintf(buf, "<mode>0%o</mode>\n",
                           def->target.perms.mode);
-        virBufferAsprintf(buf, "<owner>%d</owner>\n",
-                          (int) def->target.perms.uid);
-        virBufferAsprintf(buf, "<group>%d</group>\n",
-                          (int) def->target.perms.gid);
+        if (def->target.perms.uid != (uid_t) -1)
+            virBufferAsprintf(buf, "<owner>%d</owner>\n",
+                              (int) def->target.perms.uid);
+        if (def->target.perms.gid != (gid_t) -1)
+            virBufferAsprintf(buf, "<group>%d</group>\n",
+                              (int) def->target.perms.gid);
         virBufferEscapeString(buf, "<label>%s</label>\n",
                               def->target.perms.label);
 
@@ -1522,11 +1526,12 @@ virStorageVolTargetDefFormat(virStorageVolOptionsPtr options,
 
         virBufferAsprintf(buf, "<mode>0%o</mode>\n",
                           def->perms->mode);
-        virBufferAsprintf(buf, "<owner>%d</owner>\n",
-                          (int) def->perms->uid);
-        virBufferAsprintf(buf, "<group>%d</group>\n",
-                          (int) def->perms->gid);
-
+        if (def->perms->uid != (uid_t) -1)
+            virBufferAsprintf(buf, "<owner>%d</owner>\n",
+                              (int) def->perms->uid);
+        if (def->perms->gid != (gid_t) -1)
+            virBufferAsprintf(buf, "<group>%d</group>\n",
+                              (int) def->perms->gid);
 
         virBufferEscapeString(buf, "<label>%s</label>\n",
                               def->perms->label);
index 536f58c7b91f8756b6be442157d195fb34763a01..dd6d9b84349bb0317337457c5e9eadaca5629fbb 100644 (file)
@@ -10,8 +10,6 @@
     <path>/var/lib/libvirt/&lt;images&gt;</path>
     <permissions>
       <mode>0700</mode>
-      <owner>-1</owner>
-      <group>-1</group>
       <label>some_label_t</label>
     </permissions>
   </target>
index f81bc1d61ba9f86db12add5216c6da1ac9c6c714..2054871d3c2f54363c3a8ba8d70bdf71cf2245e9 100644 (file)
@@ -10,8 +10,6 @@
     <path>/var/lib/libvirt/images</path>
     <permissions>
       <mode>0700</mode>
-      <owner>-1</owner>
-      <group>-1</group>
       <label>some_label_t</label>
     </permissions>
   </target>
index bab2a15fb2c1cc10596d444194a9dca3184b4d57..90143f919d107fd4780e9a468038fa007767d302 100644 (file)
@@ -13,8 +13,6 @@
     <path>/mnt/gluster</path>
     <permissions>
       <mode>0755</mode>
-      <owner>-1</owner>
-      <group>-1</group>
     </permissions>
   </target>
 </pool>
index 538b31d08f2d1d15dc98748cbc2a829fb64c4adb..0af0be179d5ba75071ba98869588efabbed9d1c5 100644 (file)
@@ -10,8 +10,6 @@
     <format type='dir'/>
     <permissions>
       <mode>0600</mode>
-      <owner>-1</owner>
-      <group>-1</group>
     </permissions>
   </target>
 </volume>
index 538b31d08f2d1d15dc98748cbc2a829fb64c4adb..0af0be179d5ba75071ba98869588efabbed9d1c5 100644 (file)
@@ -10,8 +10,6 @@
     <format type='dir'/>
     <permissions>
       <mode>0600</mode>
-      <owner>-1</owner>
-      <group>-1</group>
     </permissions>
   </target>
 </volume>
index 0a1f32c7877a3bf293e1ebbd63b1e3efad8347e6..d8f34d3806cbff8a00ec4c238810d69f714d5d9c 100644 (file)
@@ -9,8 +9,6 @@
     <format type='unknown'/>
     <permissions>
       <mode>0600</mode>
-      <owner>-1</owner>
-      <group>-1</group>
     </permissions>
   </target>
 </volume>