mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 21:34:54 +03:00
qemu: Expose disk serial in virDomainGetGuestInfo()
When querying guest info via virDomainGetGuestInfo() the 'guest-get-disks' agent command is called. It may report disk serial number which we parse, but never report nor use for anything else. As it turns out, it may help management application find matching disk in their internals. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-By: Tomáš Golembiovský <tgolembi@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
07497fc6da
commit
3bf8dfd56f
@ -2787,6 +2787,7 @@ returned:
|
||||
* ``disk.<num>.partition`` - whether this is a partition or disk
|
||||
* ``disk.<num>.dependency.count`` - the number of device dependencies
|
||||
* ``disk.<num>.dependency.<num>.name`` - a dependency name
|
||||
* ``disk.<num>.serial`` - optional disk serial number
|
||||
* ``disk.<num>.alias`` - the device alias of the disk (e.g. sda)
|
||||
* ``disk.<num>.guest_alias`` - optional alias assigned to the disk
|
||||
|
||||
|
@ -12561,6 +12561,7 @@ virDomainSetVcpu(virDomainPtr domain,
|
||||
* hold the list of PVs, for LUKS encrypted volume this will
|
||||
* contain the disk where the volume is placed. (Linux)
|
||||
* "disk.<num>.dependency.<num>.name" - a dependency
|
||||
* "disk.<num>.serial" - optional disk serial number (as string)
|
||||
* "disk.<num>.alias" - the device alias of the disk (e.g. sda)
|
||||
* "disk.<num>.guest_alias" - optional alias assigned to the disk, on Linux
|
||||
* this is a name assigned by device mapper
|
||||
|
@ -19951,15 +19951,24 @@ qemuAgentDiskInfoFormatParams(qemuAgentDiskInfo **info,
|
||||
}
|
||||
|
||||
if (info[i]->address) {
|
||||
qemuAgentDiskAddress *address = info[i]->address;
|
||||
virDomainDiskDef *diskdef = NULL;
|
||||
|
||||
if (address->serial) {
|
||||
g_snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
|
||||
"disk.%zu.serial", i);
|
||||
if (virTypedParamsAddString(params, nparams, maxparams,
|
||||
param_name, address->serial) < 0)
|
||||
return;
|
||||
}
|
||||
|
||||
/* match the disk to the target in the vm definition */
|
||||
diskdef = virDomainDiskByAddress(vmdef,
|
||||
&info[i]->address->pci_controller,
|
||||
info[i]->address->ccw_addr,
|
||||
info[i]->address->bus,
|
||||
info[i]->address->target,
|
||||
info[i]->address->unit);
|
||||
&address->pci_controller,
|
||||
address->ccw_addr,
|
||||
address->bus,
|
||||
address->target,
|
||||
address->unit);
|
||||
if (diskdef) {
|
||||
g_snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
|
||||
"disk.%zu.alias", i);
|
||||
|
Loading…
Reference in New Issue
Block a user