mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06: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,
|
qemuBuildPRManagerInfoProps(const virDomainDiskDef *disk,
|
||||||
virJSONValuePtr *propsret)
|
virJSONValuePtr *propsret)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
return qemuMonitorCreateObjectProps(propsret,
|
||||||
|
"pr-manager-helper",
|
||||||
*propsret = NULL;
|
disk->src->pr->mgralias,
|
||||||
|
"s:path", disk->src->pr->path,
|
||||||
if (virJSONValueObjectCreate(propsret,
|
NULL);
|
||||||
"s:path", disk->src->pr->path,
|
|
||||||
NULL) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
ret = 0;
|
|
||||||
cleanup:
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -9744,10 +9737,10 @@ static int
|
|||||||
qemuBuildMasterPRCommandLine(virCommandPtr cmd,
|
qemuBuildMasterPRCommandLine(virCommandPtr cmd,
|
||||||
const virDomainDef *def)
|
const virDomainDef *def)
|
||||||
{
|
{
|
||||||
|
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||||
size_t i;
|
size_t i;
|
||||||
bool managedAdded = false;
|
bool managedAdded = false;
|
||||||
virJSONValuePtr props = NULL;
|
virJSONValuePtr props = NULL;
|
||||||
char *tmp = NULL;
|
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
for (i = 0; i < def->ndisks; i++) {
|
for (i = 0; i < def->ndisks; i++) {
|
||||||
@ -9766,19 +9759,16 @@ qemuBuildMasterPRCommandLine(virCommandPtr cmd,
|
|||||||
if (qemuBuildPRManagerInfoProps(disk, &props) < 0)
|
if (qemuBuildPRManagerInfoProps(disk, &props) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (!(tmp = virQEMUBuildObjectCommandlineFromJSONType("pr-manager-helper",
|
if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0)
|
||||||
disk->src->pr->mgralias,
|
|
||||||
props)))
|
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
virJSONValueFree(props);
|
|
||||||
props = NULL;
|
|
||||||
|
|
||||||
virCommandAddArgList(cmd, "-object", tmp, NULL);
|
virCommandAddArg(cmd, "-object");
|
||||||
VIR_FREE(tmp);
|
virCommandAddArgBuffer(cmd, &buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
|
virBufferFreeAndReset(&buf);
|
||||||
virJSONValueFree(props);
|
virJSONValueFree(props);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -421,10 +421,10 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
|
|||||||
char *devstr = NULL;
|
char *devstr = NULL;
|
||||||
char *drivestr = NULL;
|
char *drivestr = NULL;
|
||||||
char *drivealias = NULL;
|
char *drivealias = NULL;
|
||||||
|
char *prmgrAlias = NULL;
|
||||||
bool driveAdded = false;
|
bool driveAdded = false;
|
||||||
bool secobjAdded = false;
|
bool secobjAdded = false;
|
||||||
bool encobjAdded = false;
|
bool encobjAdded = false;
|
||||||
bool prmgrAdded = false;
|
|
||||||
bool prdStarted = false;
|
bool prdStarted = false;
|
||||||
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
||||||
virJSONValuePtr secobjProps = NULL;
|
virJSONValuePtr secobjProps = NULL;
|
||||||
@ -504,15 +504,9 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
|
|||||||
encobjAdded = true;
|
encobjAdded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prmgrProps) {
|
if (prmgrProps &&
|
||||||
rv = qemuMonitorAddObjectType(priv->mon, "pr-manager-helper",
|
qemuMonitorAddObject(priv->mon, &prmgrProps, &prmgrAlias) < 0)
|
||||||
disk->src->pr->mgralias,
|
goto exit_monitor;
|
||||||
prmgrProps);
|
|
||||||
prmgrProps = NULL; /* qemuMonitorAddObjectType consumes */
|
|
||||||
if (rv < 0)
|
|
||||||
goto exit_monitor;
|
|
||||||
prmgrAdded = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (qemuMonitorAddDrive(priv->mon, drivestr) < 0)
|
if (qemuMonitorAddDrive(priv->mon, drivestr) < 0)
|
||||||
goto exit_monitor;
|
goto exit_monitor;
|
||||||
@ -536,6 +530,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
|
|||||||
virJSONValueFree(encobjProps);
|
virJSONValueFree(encobjProps);
|
||||||
virJSONValueFree(secobjProps);
|
virJSONValueFree(secobjProps);
|
||||||
qemuDomainSecretDiskDestroy(disk);
|
qemuDomainSecretDiskDestroy(disk);
|
||||||
|
VIR_FREE(prmgrAlias);
|
||||||
VIR_FREE(drivealias);
|
VIR_FREE(drivealias);
|
||||||
VIR_FREE(drivestr);
|
VIR_FREE(drivestr);
|
||||||
VIR_FREE(devstr);
|
VIR_FREE(devstr);
|
||||||
@ -552,8 +547,8 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
|
|||||||
ignore_value(qemuMonitorDelObject(priv->mon, secinfo->s.aes.alias));
|
ignore_value(qemuMonitorDelObject(priv->mon, secinfo->s.aes.alias));
|
||||||
if (encobjAdded)
|
if (encobjAdded)
|
||||||
ignore_value(qemuMonitorDelObject(priv->mon, encinfo->s.aes.alias));
|
ignore_value(qemuMonitorDelObject(priv->mon, encinfo->s.aes.alias));
|
||||||
if (prmgrAdded)
|
if (prmgrAlias)
|
||||||
ignore_value(qemuMonitorDelObject(priv->mon, disk->src->pr->mgralias));
|
ignore_value(qemuMonitorDelObject(priv->mon, prmgrAlias));
|
||||||
if (qemuDomainObjExitMonitor(driver, vm) < 0)
|
if (qemuDomainObjExitMonitor(driver, vm) < 0)
|
||||||
ret = -2;
|
ret = -2;
|
||||||
virErrorRestore(&orig_err);
|
virErrorRestore(&orig_err);
|
||||||
|
Loading…
Reference in New Issue
Block a user