conf: storage: Don't emit empty <permissions> block

This commit is contained in:
Cole Robinson 2015-05-21 15:15:24 -04:00
parent 7c2d65dde2
commit 42dd6a993f
4 changed files with 26 additions and 22 deletions

View File

@ -1179,22 +1179,28 @@ virStoragePoolDefFormatBuf(virBufferPtr buf,
virBufferEscapeString(buf, "<path>%s</path>\n", def->target.path);
virBufferAddLit(buf, "<permissions>\n");
virBufferAdjustIndent(buf, 2);
if (def->target.perms.mode != (mode_t) -1)
virBufferAsprintf(buf, "<mode>0%o</mode>\n",
def->target.perms.mode);
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);
if (def->target.perms.mode != (mode_t) -1 ||
def->target.perms.uid != (uid_t) -1 ||
def->target.perms.gid != (gid_t) -1 ||
def->target.perms.label) {
virBufferAddLit(buf, "<permissions>\n");
virBufferAdjustIndent(buf, 2);
if (def->target.perms.mode != (mode_t) -1)
virBufferAsprintf(buf, "<mode>0%o</mode>\n",
def->target.perms.mode);
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);
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</permissions>\n");
}
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</permissions>\n");
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</target>\n");
}
@ -1513,7 +1519,11 @@ virStorageVolTargetDefFormat(virStorageVolOptionsPtr options,
virBufferAsprintf(buf, "<format type='%s'/>\n", format);
}
if (def->perms) {
if (def->perms &&
(def->perms->mode != (mode_t) -1 ||
def->perms->uid != (uid_t) -1 ||
def->perms->gid != (gid_t) -1 ||
def->perms->label)) {
virBufferAddLit(buf, "<permissions>\n");
virBufferAdjustIndent(buf, 2);

View File

@ -11,7 +11,5 @@
</source>
<target>
<path>/mnt/gluster</path>
<permissions>
</permissions>
</target>
</pool>

View File

@ -8,7 +8,5 @@
<target>
<path>gluster://example.com/vol/dir</path>
<format type='dir'/>
<permissions>
</permissions>
</target>
</volume>

View File

@ -7,7 +7,5 @@
<target>
<path>sheepdog:test2</path>
<format type='unknown'/>
<permissions>
</permissions>
</target>
</volume>