Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
docs/manpages/virsh.rst | 8 +++++++-
tools/virsh-domain.c | 16 +++++++++++++++-
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index e36d64c164..1bb9044e0a 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -2053,10 +2053,16 @@ domjobabort
::
- domjobabort domain
+ domjobabort domain [--postcopy]
Abort the currently running domain job.
+When the job to be aborted is a migration which entered post-copy mode, it
+cannot be aborted as none of the hosts involved in migration has a complete
+state of the domain. Optional *--postcopy* can be used to interrupt such
+migration although doing so may effectively suspend the domain until the
+migration is resumed (see also *--postcopy-resume* option of ``migrate``).
+
domjobinfo
----------
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index b0d5b15dff..63a5ee7a34 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -6477,6 +6477,10 @@ static const vshCmdInfo info_domjobabort[] = {
static const vshCmdOptDef opts_domjobabort[] = {
VIRSH_COMMON_OPT_DOMAIN_FULL(VIR_CONNECT_LIST_DOMAINS_ACTIVE),
+ {.name = "postcopy",
+ .type = VSH_OT_BOOL,
+ .help = N_("interrupt post-copy migration")
+ },
{.name = NULL}
};
@@ -6484,11 +6488,21 @@ static bool
cmdDomjobabort(vshControl *ctl, const vshCmd *cmd)
{
g_autoptr(virshDomain) dom = NULL;
+ unsigned int flags = 0;
+ int rc;
if (!(dom = virshCommandOptDomain(ctl, cmd, NULL)))
return false;
- if (virDomainAbortJob(dom) < 0)
+ if (vshCommandOptBool(cmd, "postcopy"))
+ flags |= VIR_DOMAIN_ABORT_JOB_POSTCOPY;
+
+ if (flags == 0)
+ rc = virDomainAbortJob(dom);
+ else
+ rc = virDomainAbortJobFlags(dom, flags);
+
+ if (rc < 0)
return false;
return true;
--
2.35.1