mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
qemu: hotplug: Refactor PR props formatting to use qemuMonitorCreateObjectProps
Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
efd32528d0
commit
e4a2bfe264
@ -9725,18 +9725,11 @@ int
|
||||
qemuBuildPRManagerInfoProps(const virDomainDiskDef *disk,
|
||||
virJSONValuePtr *propsret)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
*propsret = NULL;
|
||||
|
||||
if (virJSONValueObjectCreate(propsret,
|
||||
"s:path", disk->src->pr->path,
|
||||
NULL) < 0)
|
||||
goto cleanup;
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
return ret;
|
||||
return qemuMonitorCreateObjectProps(propsret,
|
||||
"pr-manager-helper",
|
||||
disk->src->pr->mgralias,
|
||||
"s:path", disk->src->pr->path,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@ -9744,10 +9737,10 @@ static int
|
||||
qemuBuildMasterPRCommandLine(virCommandPtr cmd,
|
||||
const virDomainDef *def)
|
||||
{
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
size_t i;
|
||||
bool managedAdded = false;
|
||||
virJSONValuePtr props = NULL;
|
||||
char *tmp = NULL;
|
||||
int ret = -1;
|
||||
|
||||
for (i = 0; i < def->ndisks; i++) {
|
||||
@ -9766,19 +9759,16 @@ qemuBuildMasterPRCommandLine(virCommandPtr cmd,
|
||||
if (qemuBuildPRManagerInfoProps(disk, &props) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!(tmp = virQEMUBuildObjectCommandlineFromJSONType("pr-manager-helper",
|
||||
disk->src->pr->mgralias,
|
||||
props)))
|
||||
if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0)
|
||||
goto cleanup;
|
||||
virJSONValueFree(props);
|
||||
props = NULL;
|
||||
|
||||
virCommandAddArgList(cmd, "-object", tmp, NULL);
|
||||
VIR_FREE(tmp);
|
||||
virCommandAddArg(cmd, "-object");
|
||||
virCommandAddArgBuffer(cmd, &buf);
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
virBufferFreeAndReset(&buf);
|
||||
virJSONValueFree(props);
|
||||
return ret;
|
||||
}
|
||||
|
@ -421,10 +421,10 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
|
||||
char *devstr = NULL;
|
||||
char *drivestr = NULL;
|
||||
char *drivealias = NULL;
|
||||
char *prmgrAlias = NULL;
|
||||
bool driveAdded = false;
|
||||
bool secobjAdded = false;
|
||||
bool encobjAdded = false;
|
||||
bool prmgrAdded = false;
|
||||
bool prdStarted = false;
|
||||
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
||||
virJSONValuePtr secobjProps = NULL;
|
||||
@ -504,15 +504,9 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
|
||||
encobjAdded = true;
|
||||
}
|
||||
|
||||
if (prmgrProps) {
|
||||
rv = qemuMonitorAddObjectType(priv->mon, "pr-manager-helper",
|
||||
disk->src->pr->mgralias,
|
||||
prmgrProps);
|
||||
prmgrProps = NULL; /* qemuMonitorAddObjectType consumes */
|
||||
if (rv < 0)
|
||||
goto exit_monitor;
|
||||
prmgrAdded = true;
|
||||
}
|
||||
if (prmgrProps &&
|
||||
qemuMonitorAddObject(priv->mon, &prmgrProps, &prmgrAlias) < 0)
|
||||
goto exit_monitor;
|
||||
|
||||
if (qemuMonitorAddDrive(priv->mon, drivestr) < 0)
|
||||
goto exit_monitor;
|
||||
@ -536,6 +530,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
|
||||
virJSONValueFree(encobjProps);
|
||||
virJSONValueFree(secobjProps);
|
||||
qemuDomainSecretDiskDestroy(disk);
|
||||
VIR_FREE(prmgrAlias);
|
||||
VIR_FREE(drivealias);
|
||||
VIR_FREE(drivestr);
|
||||
VIR_FREE(devstr);
|
||||
@ -552,8 +547,8 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, secinfo->s.aes.alias));
|
||||
if (encobjAdded)
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, encinfo->s.aes.alias));
|
||||
if (prmgrAdded)
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, disk->src->pr->mgralias));
|
||||
if (prmgrAlias)
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, prmgrAlias));
|
||||
if (qemuDomainObjExitMonitor(driver, vm) < 0)
|
||||
ret = -2;
|
||||
virErrorRestore(&orig_err);
|
||||
|
Loading…
x
Reference in New Issue
Block a user