Domain config: write <features/> if some capabilities are set.

If all features are set to default (including the capabilities policy),
but some capabilities are toggled, we need to output the <features>
element when formatting the config.
This commit is contained in:
Cédric Bosdonnat 2014-07-30 11:20:59 +02:00
parent 24c55ee04d
commit 251d75a863
3 changed files with 37 additions and 1 deletions

View File

@ -17860,7 +17860,8 @@ virDomainDefFormatInternal(virDomainDefPtr def,
break; break;
} }
if (i != VIR_DOMAIN_FEATURE_LAST) { if (i != VIR_DOMAIN_FEATURE_LAST ||
virDomainDefHasCapabilitiesFeatures(def)) {
virBufferAddLit(buf, "<features>\n"); virBufferAddLit(buf, "<features>\n");
virBufferAdjustIndent(buf, 2); virBufferAdjustIndent(buf, 2);

View File

@ -0,0 +1,34 @@
<domain type='lxc'>
<name>jessie</name>
<uuid>e21987a5-e98e-9c99-0e35-803e4d9ad1fe</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64'>exe</type>
<init>/sbin/init</init>
</os>
<features>
<capabilities policy='default'>
<mknod state='on'/>
</capabilities>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/libvirt_lxc</emulator>
<filesystem type='mount' accessmode='passthrough'>
<source dir='/mach/jessie'/>
<target dir='/'/>
</filesystem>
<console type='pty'>
<target type='lxc' port='0'/>
</console>
</devices>
<seclabel type='none'/>
</domain>

View File

@ -144,6 +144,7 @@ mymain(void)
DO_TEST_DIFFERENT("filesystem-ram"); DO_TEST_DIFFERENT("filesystem-ram");
DO_TEST("filesystem-root"); DO_TEST("filesystem-root");
DO_TEST("idmap"); DO_TEST("idmap");
DO_TEST("capabilities");
virObjectUnref(caps); virObjectUnref(caps);
virObjectUnref(xmlopt); virObjectUnref(xmlopt);