mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-27 19:11:16 +00:00
qemu: command: Add debug option for gluster volumes
Propagate the selected or default level to qemu if it's supported. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1376009 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> Signed-off-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
a944bd9259
commit
e66603539b
@ -1348,7 +1348,9 @@ qemuDiskBusNeedsDeviceArg(int bus)
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
qemuBuildDriveSourceStr(virDomainDiskDefPtr disk,
|
qemuBuildDriveSourceStr(virDomainDiskDefPtr disk,
|
||||||
virBufferPtr buf)
|
virQEMUDriverConfigPtr cfg,
|
||||||
|
virBufferPtr buf,
|
||||||
|
virQEMUCapsPtr qemuCaps)
|
||||||
{
|
{
|
||||||
int actualType = virStorageSourceGetActualType(disk->src);
|
int actualType = virStorageSourceGetActualType(disk->src);
|
||||||
qemuDomainDiskPrivatePtr diskPriv = QEMU_DOMAIN_DISK_PRIVATE(disk);
|
qemuDomainDiskPrivatePtr diskPriv = QEMU_DOMAIN_DISK_PRIVATE(disk);
|
||||||
@ -1417,6 +1419,12 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk,
|
|||||||
}
|
}
|
||||||
virBufferAddLit(buf, ",");
|
virBufferAddLit(buf, ",");
|
||||||
|
|
||||||
|
if (disk->src &&
|
||||||
|
disk->src->protocol == VIR_STORAGE_NET_PROTOCOL_GLUSTER) {
|
||||||
|
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_GLUSTER_DEBUG_LEVEL))
|
||||||
|
virBufferAsprintf(buf, "file.debug=%d,", cfg->glusterDebugLevel);
|
||||||
|
}
|
||||||
|
|
||||||
if (secinfo && secinfo->type == VIR_DOMAIN_SECRET_INFO_TYPE_AES) {
|
if (secinfo && secinfo->type == VIR_DOMAIN_SECRET_INFO_TYPE_AES) {
|
||||||
/* NB: If libvirt starts using the more modern option based
|
/* NB: If libvirt starts using the more modern option based
|
||||||
* syntax to build the command line (e.g., "-drive driver=rbd,
|
* syntax to build the command line (e.g., "-drive driver=rbd,
|
||||||
@ -1451,6 +1459,7 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk,
|
|||||||
|
|
||||||
char *
|
char *
|
||||||
qemuBuildDriveStr(virDomainDiskDefPtr disk,
|
qemuBuildDriveStr(virDomainDiskDefPtr disk,
|
||||||
|
virQEMUDriverConfigPtr cfg,
|
||||||
bool bootable,
|
bool bootable,
|
||||||
virQEMUCapsPtr qemuCaps)
|
virQEMUCapsPtr qemuCaps)
|
||||||
{
|
{
|
||||||
@ -1542,7 +1551,7 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (qemuBuildDriveSourceStr(disk, &opt) < 0)
|
if (qemuBuildDriveSourceStr(disk, cfg, &opt, qemuCaps) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (emitDeviceSyntax)
|
if (emitDeviceSyntax)
|
||||||
@ -2191,6 +2200,7 @@ qemuBuildDriveDevStr(const virDomainDef *def,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
qemuBuildDiskDriveCommandLine(virCommandPtr cmd,
|
qemuBuildDiskDriveCommandLine(virCommandPtr cmd,
|
||||||
|
virQEMUDriverConfigPtr cfg,
|
||||||
const virDomainDef *def,
|
const virDomainDef *def,
|
||||||
virQEMUCapsPtr qemuCaps)
|
virQEMUCapsPtr qemuCaps)
|
||||||
{
|
{
|
||||||
@ -2269,8 +2279,9 @@ qemuBuildDiskDriveCommandLine(virCommandPtr cmd,
|
|||||||
|
|
||||||
virCommandAddArg(cmd, "-drive");
|
virCommandAddArg(cmd, "-drive");
|
||||||
|
|
||||||
if (!(optstr = qemuBuildDriveStr(disk, driveBoot, qemuCaps)))
|
if (!(optstr = qemuBuildDriveStr(disk, cfg, driveBoot, qemuCaps)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
virCommandAddArg(cmd, optstr);
|
virCommandAddArg(cmd, optstr);
|
||||||
VIR_FREE(optstr);
|
VIR_FREE(optstr);
|
||||||
|
|
||||||
@ -9607,7 +9618,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
|
|||||||
if (qemuBuildHubCommandLine(cmd, def, qemuCaps) < 0)
|
if (qemuBuildHubCommandLine(cmd, def, qemuCaps) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (qemuBuildDiskDriveCommandLine(cmd, def, qemuCaps) < 0)
|
if (qemuBuildDiskDriveCommandLine(cmd, cfg, def, qemuCaps) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (qemuBuildFSDevCommandLine(cmd, def, qemuCaps) < 0)
|
if (qemuBuildFSDevCommandLine(cmd, def, qemuCaps) < 0)
|
||||||
|
@ -107,6 +107,7 @@ char *qemuDeviceDriveHostAlias(virDomainDiskDefPtr disk);
|
|||||||
|
|
||||||
/* Both legacy & current support */
|
/* Both legacy & current support */
|
||||||
char *qemuBuildDriveStr(virDomainDiskDefPtr disk,
|
char *qemuBuildDriveStr(virDomainDiskDefPtr disk,
|
||||||
|
virQEMUDriverConfigPtr cfg,
|
||||||
bool bootable,
|
bool bootable,
|
||||||
virQEMUCapsPtr qemuCaps);
|
virQEMUCapsPtr qemuCaps);
|
||||||
|
|
||||||
|
@ -365,7 +365,7 @@ qemuDomainAttachVirtioDiskDevice(virConnectPtr conn,
|
|||||||
if (encinfo && qemuBuildSecretInfoProps(encinfo, &encobjProps) < 0)
|
if (encinfo && qemuBuildSecretInfoProps(encinfo, &encobjProps) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!(drivestr = qemuBuildDriveStr(disk, false, priv->qemuCaps)))
|
if (!(drivestr = qemuBuildDriveStr(disk, cfg, false, priv->qemuCaps)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!(drivealias = qemuAliasFromDisk(disk)))
|
if (!(drivealias = qemuAliasFromDisk(disk)))
|
||||||
@ -655,7 +655,7 @@ qemuDomainAttachSCSIDisk(virConnectPtr conn,
|
|||||||
if (!(devstr = qemuBuildDriveDevStr(vm->def, disk, 0, priv->qemuCaps)))
|
if (!(devstr = qemuBuildDriveDevStr(vm->def, disk, 0, priv->qemuCaps)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!(drivestr = qemuBuildDriveStr(disk, false, priv->qemuCaps)))
|
if (!(drivestr = qemuBuildDriveStr(disk, cfg, false, priv->qemuCaps)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!(drivealias = qemuAliasFromDisk(disk)))
|
if (!(drivealias = qemuAliasFromDisk(disk)))
|
||||||
@ -769,7 +769,7 @@ qemuDomainAttachUSBMassStorageDevice(virQEMUDriverPtr driver,
|
|||||||
if (qemuAssignDeviceDiskAlias(vm->def, disk, priv->qemuCaps) < 0)
|
if (qemuAssignDeviceDiskAlias(vm->def, disk, priv->qemuCaps) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!(drivestr = qemuBuildDriveStr(disk, false, priv->qemuCaps)))
|
if (!(drivestr = qemuBuildDriveStr(disk, cfg, false, priv->qemuCaps)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!(drivealias = qemuAliasFromDisk(disk)))
|
if (!(drivealias = qemuAliasFromDisk(disk)))
|
||||||
|
@ -16,9 +16,10 @@ QEMU_AUDIO_DRV=none \
|
|||||||
-no-acpi \
|
-no-acpi \
|
||||||
-boot c \
|
-boot c \
|
||||||
-usb \
|
-usb \
|
||||||
-drive file=gluster://example.org:6000/Volume1/Image,format=raw,if=virtio \
|
-drive file=gluster://example.org:6000/Volume1/Image,file.debug=4,format=raw,\
|
||||||
-drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,format=raw,\
|
if=virtio \
|
||||||
if=virtio' \
|
-drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,file.debug=4,\
|
||||||
|
format=raw,if=virtio' \
|
||||||
-net none \
|
-net none \
|
||||||
-serial none \
|
-serial none \
|
||||||
-parallel none
|
-parallel none
|
||||||
|
@ -17,18 +17,18 @@ QEMU_AUDIO_DRV=none \
|
|||||||
-no-acpi \
|
-no-acpi \
|
||||||
-boot c \
|
-boot c \
|
||||||
-usb \
|
-usb \
|
||||||
-drive file=gluster://example.org:6000/Volume1/Image,format=raw,if=none,\
|
-drive file=gluster://example.org:6000/Volume1/Image,file.debug=4,format=raw,\
|
||||||
id=drive-virtio-disk0 \
|
if=none,id=drive-virtio-disk0 \
|
||||||
-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\
|
-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\
|
||||||
id=virtio-disk0 \
|
id=virtio-disk0 \
|
||||||
-drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,format=raw,\
|
-drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,file.debug=4,\
|
||||||
if=none,id=drive-virtio-disk1' \
|
format=raw,if=none,id=drive-virtio-disk1' \
|
||||||
-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,\
|
-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,\
|
||||||
id=virtio-disk1 \
|
id=virtio-disk1 \
|
||||||
-drive file.driver=gluster,file.volume=Volume3,file.path=/Image.qcow2,\
|
-drive file.driver=gluster,file.volume=Volume3,file.path=/Image.qcow2,\
|
||||||
file.server.0.type=tcp,file.server.0.host=example.org,file.server.0.port=6000,\
|
file.server.0.type=tcp,file.server.0.host=example.org,file.server.0.port=6000,\
|
||||||
file.server.1.type=tcp,file.server.1.host=example.org,file.server.1.port=24007,\
|
file.server.1.type=tcp,file.server.1.host=example.org,file.server.1.port=24007,\
|
||||||
file.server.2.type=unix,file.server.2.socket=/path/to/sock,format=qcow2,\
|
file.server.2.type=unix,file.server.2.socket=/path/to/sock,file.debug=4,\
|
||||||
if=none,id=drive-virtio-disk2 \
|
format=qcow2,if=none,id=drive-virtio-disk2 \
|
||||||
-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,\
|
-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,\
|
||||||
id=virtio-disk2
|
id=virtio-disk2
|
||||||
|
@ -858,7 +858,8 @@ mymain(void)
|
|||||||
DO_TEST("disk-drive-network-iscsi-lun",
|
DO_TEST("disk-drive-network-iscsi-lun",
|
||||||
QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_VIRTIO_SCSI,
|
QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_VIRTIO_SCSI,
|
||||||
QEMU_CAPS_SCSI_BLOCK);
|
QEMU_CAPS_SCSI_BLOCK);
|
||||||
DO_TEST("disk-drive-network-gluster", NONE);
|
DO_TEST("disk-drive-network-gluster",
|
||||||
|
QEMU_CAPS_GLUSTER_DEBUG_LEVEL);
|
||||||
DO_TEST("disk-drive-network-rbd", NONE);
|
DO_TEST("disk-drive-network-rbd", NONE);
|
||||||
DO_TEST("disk-drive-network-sheepdog", NONE);
|
DO_TEST("disk-drive-network-sheepdog", NONE);
|
||||||
DO_TEST("disk-drive-network-rbd-auth", NONE);
|
DO_TEST("disk-drive-network-rbd-auth", NONE);
|
||||||
|
Loading…
Reference in New Issue
Block a user