virBufferEscapeString(buf, " <serial>%s</serial>\n",
def->serial);
if (def->encryption != NULL &&
- virStorageEncryptionFormat(buf, def->encryption) < 0)
+ virStorageEncryptionFormat(buf, def->encryption, 6) < 0)
return -1;
if (virDomainDeviceInfoFormat(buf, &def->info, flags) < 0)
virBufferAddLit(buf," </permissions>\n");
if (def->encryption != NULL &&
- virStorageEncryptionFormat(buf, def->encryption) < 0)
+ virStorageEncryptionFormat(buf, def->encryption, 4) < 0)
return -1;
virBufferVSprintf(buf, " </%s>\n", type);
static int
virStorageEncryptionSecretFormat(virBufferPtr buf,
- virStorageEncryptionSecretPtr secret)
+ virStorageEncryptionSecretPtr secret,
+ unsigned int indent)
{
const char *type;
char uuidstr[VIR_UUID_STRING_BUFLEN];
}
virUUIDFormat(secret->uuid, uuidstr);
- virBufferVSprintf(buf, " <secret type='%s' uuid='%s'/>\n", type, uuidstr);
+ virBufferVSprintf(buf, "%*s<secret type='%s' uuid='%s'/>\n",
+ indent, "", type, uuidstr);
return 0;
}
int
virStorageEncryptionFormat(virBufferPtr buf,
- virStorageEncryptionPtr enc)
+ virStorageEncryptionPtr enc,
+ unsigned int indent)
{
const char *format;
size_t i;
"%s", _("unexpected encryption format"));
return -1;
}
- virBufferVSprintf(buf, " <encryption format='%s'>\n", format);
+ virBufferVSprintf(buf, "%*s<encryption format='%s'>\n",
+ indent, "", format);
for (i = 0; i < enc->nsecrets; i++) {
- if (virStorageEncryptionSecretFormat(buf, enc->secrets[i]) < 0)
+ if (virStorageEncryptionSecretFormat(buf, enc->secrets[i], indent + 2) < 0)
return -1;
}
- virBufferAddLit(buf, " </encryption>\n");
+ virBufferVSprintf(buf, "%*s</encryption>\n", indent, "");
return 0;
}
virStorageEncryptionPtr virStorageEncryptionParseNode(xmlDocPtr xml,
xmlNodePtr root);
int virStorageEncryptionFormat(virBufferPtr buf,
- virStorageEncryptionPtr enc);
+ virStorageEncryptionPtr enc,
+ unsigned int indent);
/* A helper for VIR_STORAGE_ENCRYPTION_FORMAT_QCOW */
enum {
--- /dev/null
+LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin HOME=/root USER=root LOGNAME=root /usr/bin/qemu -S -M fedora-13 -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name encryptdisk -uuid 496898a6-e6ff-f7c8-5dc2-3cf410945ee9 -nographic -nodefaults -chardev socket,id=monitor,path=//var/lib/libvirt/qemu/encryptdisk.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -no-acpi -boot c -drive file=/storage/guest_disks/encryptdisk,if=none,id=drive-virtio-disk0,boot=on,format=qcow2 -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -usb -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
--- /dev/null
+<domain type='kvm'>
+ <name>encryptdisk</name>
+ <uuid>496898a6-e6ff-f7c8-5dc2-3cf410945ee9</uuid>
+ <memory>1048576</memory>
+ <currentMemory>524288</currentMemory>
+ <vcpu>1</vcpu>
+ <os>
+ <type arch='i686' machine='fedora-13'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu</emulator>
+ <disk type='file' device='disk'>
+ <driver name='qemu' type='qcow2'/>
+ <source file='/storage/guest_disks/encryptdisk'/>
+ <target dev='vda' bus='virtio'/>
+ <encryption format='qcow'>
+ <secret type='passphrase' uuid='0a81f5b2-8403-7b23-c8d6-21ccc2f80d6f'/>
+ </encryption>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+ </disk>
+ </devices>
+</domain>
DO_TEST("hostdev-usb-address");
DO_TEST("hostdev-pci-address");
+ DO_TEST("encrypted-disk");
+
virCapabilitiesFree(driver.caps);
return (ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);