}
+int
+qemuMonitorJobCancel(qemuMonitorPtr mon,
+ const char *jobname,
+ bool quiet)
+{
+ VIR_DEBUG("jobname='%s' quiet=%d", jobname, quiet);
+
+ QEMU_CHECK_MONITOR(mon);
+
+ return qemuMonitorJSONJobCancel(mon, jobname, quiet);
+}
+
+
int
qemuMonitorSetBlockIoThrottle(qemuMonitorPtr mon,
const char *drivealias,
const char *jobname)
ATTRIBUTE_NONNULL(2);
+int qemuMonitorJobCancel(qemuMonitorPtr mon,
+ const char *jobname,
+ bool quiet)
+ ATTRIBUTE_NONNULL(2);
+
int qemuMonitorOpenGraphics(qemuMonitorPtr mon,
const char *protocol,
int fd,
}
+int
+qemuMonitorJSONJobCancel(qemuMonitorPtr mon,
+ const char *jobname,
+ bool quiet)
+{
+ VIR_AUTOPTR(virJSONValue) cmd = NULL;
+ VIR_AUTOPTR(virJSONValue) reply = NULL;
+
+ if (!(cmd = qemuMonitorJSONMakeCommand("job-cancel",
+ "s:id", jobname,
+ NULL)))
+ return -1;
+
+ if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
+ return -1;
+
+ if (quiet) {
+ if (virJSONValueObjectHasKey(reply, "error") != 0)
+ return -1;
+ } else {
+ if (qemuMonitorJSONBlockJobError(cmd, reply, jobname) < 0)
+ return -1;
+ }
+
+ return 0;
+}
+
+
int qemuMonitorJSONOpenGraphics(qemuMonitorPtr mon,
const char *protocol,
const char *fdname,
const char *jobname)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
+int qemuMonitorJSONJobCancel(qemuMonitorPtr mon,
+ const char *jobname,
+ bool quiet)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
+
int qemuMonitorJSONSetLink(qemuMonitorPtr mon,
const char *name,
virDomainNetInterfaceLinkState state);
GEN_TEST_FUNC(qemuMonitorJSONEnableBitmap, "node", "bitmap")
GEN_TEST_FUNC(qemuMonitorJSONDeleteBitmap, "node", "bitmap")
GEN_TEST_FUNC(qemuMonitorJSONJobDismiss, "jobname")
+GEN_TEST_FUNC(qemuMonitorJSONJobCancel, "jobname", false)
static int
testQemuMonitorJSONqemuMonitorJSONNBDServerStart(const void *opaque)
DO_TEST_GEN(qemuMonitorJSONEnableBitmap);
DO_TEST_GEN(qemuMonitorJSONDeleteBitmap);
DO_TEST_GEN(qemuMonitorJSONJobDismiss);
+ DO_TEST_GEN(qemuMonitorJSONJobCancel);
DO_TEST(qemuMonitorJSONGetBalloonInfo);
DO_TEST(qemuMonitorJSONGetBlockInfo);
DO_TEST(qemuMonitorJSONGetAllBlockStatsInfo);