提交 2f259d59 编写于 作者: P Peter Krempa

qemu: monitor: Remove old code for dual handling of 'transaction' data

Now that we use only the separate function for creating data for the
'transaction' command we can remove all the boilerplate which was
necessary before.
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
Reviewed-by: NJán Tomko <jtomko@redhat.com>
上级 42f3bbb1
......@@ -515,48 +515,30 @@ qemuMonitorJSONTransactionAdd(virJSONValuePtr actions,
* qemuMonitorJSONMakeCommandInternal:
* @cmdname: QMP command name
* @arguments: a JSON object containing command arguments or NULL
* @transaction: format the command as arguments for the 'transaction' command
*
* Create a JSON object used on the QMP monitor to call a command. If
* @transaction is true, the returned object is formatted to be used as a member
* of the 'transaction' command.
* Create a JSON object used on the QMP monitor to call a command.
*
* Note that @arguments is always consumed and should not be referenced after
* the call to this function.
*/
static virJSONValuePtr
qemuMonitorJSONMakeCommandInternal(const char *cmdname,
virJSONValuePtr arguments,
bool transaction)
virJSONValuePtr arguments)
{
virJSONValuePtr cmd = NULL;
virJSONValuePtr ret = NULL;
if (!transaction) {
if (virJSONValueObjectCreate(&cmd,
"s:execute", cmdname,
"A:arguments", &arguments, NULL) < 0)
goto cleanup;
} else {
if (virJSONValueObjectCreate(&cmd,
"s:type", cmdname,
"A:data", &arguments, NULL) < 0)
goto cleanup;
}
VIR_STEAL_PTR(ret, cmd);
ignore_value(virJSONValueObjectCreate(&ret,
"s:execute", cmdname,
"A:arguments", &arguments, NULL));
cleanup:
virJSONValueFree(arguments);
virJSONValueFree(cmd);
return ret;
}
static virJSONValuePtr ATTRIBUTE_SENTINEL
qemuMonitorJSONMakeCommandRaw(bool transaction,
const char *cmdname,
...)
qemuMonitorJSONMakeCommand(const char *cmdname,
...)
{
virJSONValuePtr obj = NULL;
virJSONValuePtr jargs = NULL;
......@@ -567,7 +549,7 @@ qemuMonitorJSONMakeCommandRaw(bool transaction,
if (virJSONValueObjectCreateVArgs(&jargs, args) < 0)
goto cleanup;
obj = qemuMonitorJSONMakeCommandInternal(cmdname, jargs, transaction);
obj = qemuMonitorJSONMakeCommandInternal(cmdname, jargs);
cleanup:
va_end(args);
......@@ -575,9 +557,6 @@ qemuMonitorJSONMakeCommandRaw(bool transaction,
return obj;
}
#define qemuMonitorJSONMakeCommand(cmdname, ...) \
qemuMonitorJSONMakeCommandRaw(false, cmdname, __VA_ARGS__)
static virJSONValuePtr
qemuMonitorJSONKeywordStringToJSON(const char *str, const char *firstkeyword)
......@@ -4068,7 +4047,7 @@ qemuMonitorJSONAddObject(qemuMonitorPtr mon,
virJSONValuePtr cmd;
virJSONValuePtr reply = NULL;
if (!(cmd = qemuMonitorJSONMakeCommandInternal("object-add", props, false)))
if (!(cmd = qemuMonitorJSONMakeCommandInternal("object-add", props)))
goto cleanup;
if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
......@@ -7975,8 +7954,7 @@ qemuMonitorJSONBlockdevAdd(qemuMonitorPtr mon,
virJSONValuePtr reply = NULL;
int ret = -1;
if (!(cmd = qemuMonitorJSONMakeCommandInternal("blockdev-add",
props, false)))
if (!(cmd = qemuMonitorJSONMakeCommandInternal("blockdev-add", props)))
return -1;
if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册