mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
conf: Store 'diskElementAuth' and 'diskElementEnc' properties in status XML
Remember the preferred placement of <auth> and <encryption> for a disk source across libvirtd restarts. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
6bde2a1e20
commit
fe12fb4132
@ -10593,6 +10593,13 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
}
|
}
|
||||||
} else if (virXMLNodeNameEqual(cur, "boot")) {
|
} else if (virXMLNodeNameEqual(cur, "boot")) {
|
||||||
/* boot is parsed as part of virDomainDeviceInfoParseXML */
|
/* boot is parsed as part of virDomainDeviceInfoParseXML */
|
||||||
|
} else if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
|
||||||
|
virXMLNodeNameEqual(cur, "diskSecretsPlacement")) {
|
||||||
|
g_autofree char *secretAuth = virXMLPropString(cur, "auth");
|
||||||
|
g_autofree char *secretEnc = virXMLPropString(cur, "enc");
|
||||||
|
|
||||||
|
def->diskElementAuth = !!secretAuth;
|
||||||
|
def->diskElementEnc = !!secretEnc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -25485,6 +25492,19 @@ virDomainDiskDefFormat(virBufferPtr buf,
|
|||||||
if (virDomainDiskDefFormatPrivateData(buf, def, flags, xmlopt) < 0)
|
if (virDomainDiskDefFormatPrivateData(buf, def, flags, xmlopt) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
/* format diskElementAuth and diskElementEnc into status XML to preserve
|
||||||
|
* formatting */
|
||||||
|
if (flags & VIR_DOMAIN_DEF_FORMAT_STATUS) {
|
||||||
|
g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
|
||||||
|
|
||||||
|
if (def->diskElementAuth)
|
||||||
|
virBufferAddLit(&attrBuf, " auth='true'");
|
||||||
|
if (def->diskElementEnc)
|
||||||
|
virBufferAddLit(&attrBuf, " enc='true'");
|
||||||
|
|
||||||
|
virXMLFormatElement(buf, "diskSecretsPlacement", &attrBuf, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
virBufferAdjustIndent(buf, -2);
|
virBufferAdjustIndent(buf, -2);
|
||||||
virBufferAddLit(buf, "</disk>\n");
|
virBufferAddLit(buf, "</disk>\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -308,6 +308,9 @@
|
|||||||
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
||||||
<disk type='file' device='disk'>
|
<disk type='file' device='disk'>
|
||||||
<driver name='qemu' type='qcow2' discard='unmap' detect_zeroes='on'/>
|
<driver name='qemu' type='qcow2' discard='unmap' detect_zeroes='on'/>
|
||||||
|
<auth username='testuser'>
|
||||||
|
<secret type='iscsi' usage='libvirtiscsi'/>
|
||||||
|
</auth>
|
||||||
<source file='/var/lib/libvirt/images/a.qcow2'/>
|
<source file='/var/lib/libvirt/images/a.qcow2'/>
|
||||||
<backingStore type='file' index='1'>
|
<backingStore type='file' index='1'>
|
||||||
<format type='qcow2'/>
|
<format type='qcow2'/>
|
||||||
@ -348,6 +351,7 @@
|
|||||||
<nodename type='copyOnRead' name='cor-node'/>
|
<nodename type='copyOnRead' name='cor-node'/>
|
||||||
</nodenames>
|
</nodenames>
|
||||||
</privateData>
|
</privateData>
|
||||||
|
<diskSecretsPlacement auth='true'/>
|
||||||
</disk>
|
</disk>
|
||||||
<disk type='file' device='cdrom'>
|
<disk type='file' device='cdrom'>
|
||||||
<driver name='qemu' type='raw'/>
|
<driver name='qemu' type='raw'/>
|
||||||
|
Loading…
Reference in New Issue
Block a user