[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 2/2] blockjob: make PIVOT and ASYNC flags mutually exclusive



(CC'd Eric)

On 07/01/13 15:09, Ján Tomko wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=977678
---
  src/qemu/qemu_driver.c | 7 +++++++
  tools/virsh-domain.c   | 9 ++++++---
  2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 6a83fda..aa7affe 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -14153,6 +14153,13 @@ qemuDomainBlockJobAbort(virDomainPtr dom, const char *path, unsigned int flags)
      virCheckFlags(VIR_DOMAIN_BLOCK_JOB_ABORT_ASYNC |
                    VIR_DOMAIN_BLOCK_JOB_ABORT_PIVOT, -1);

+    if ((flags & VIR_DOMAIN_BLOCK_JOB_ABORT_ASYNC) &&
+        (flags & VIR_DOMAIN_BLOCK_JOB_ABORT_PIVOT)) {
+        virReportError(VIR_ERR_INVALID_ARG, "%s",
+                       _("asynchronnous pivot not supported"));
+        return -1;
+    }
+

I agree with this hunk.

      if (!(vm = qemuDomObjFromDomain(dom)))
          return -1;

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 5257416..2653388 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -1919,11 +1919,14 @@ cmdBlockJob(vshControl *ctl, const vshCmd *cmd)
      virDomainBlockJobInfo info;
      const char *type;
      int ret;
-    bool abortMode = (vshCommandOptBool(cmd, "abort") ||
-                      vshCommandOptBool(cmd, "async") ||
-                      vshCommandOptBool(cmd, "pivot"));
+    bool abort = vshCommandOptBool(cmd, "abort");
+    bool async = vshCommandOptBool(cmd, "async");
+    bool pivot = vshCommandOptBool(cmd, "pivot");
      bool infoMode = vshCommandOptBool(cmd, "info");
      bool bandwidth = vshCommandOptBool(cmd, "bandwidth");
+    bool abortMode = abort || async || pivot;
+
+    VSH_EXCLUSIVE_OPTIONS_VAR(async, pivot);

.. but I don't think we should forbid this combination in virsh. I think could happen that we might need this combination. I think that the combination of _ABORT and _PIVOT is less usefull.

Eric, what do you think?

(Or if we do forbid it, we need to document it, and ban it at library level instead of qemu driver)


      if (abortMode + infoMode + bandwidth > 1) {
          vshError(ctl, "%s",


Peter


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]