Re: [libvirt] [PATCH] qemu: Add necessary for drive-backup block job constant

ping On 25/04/16 14:16, "Dmitry Mishin" <dim@virtuozzo.com> wrote:
If one wants to monitor 'drive-backup' command progress and completion, he needs a constant to recognize that. Right now, libvirt reports such block jobs as 'unknown'.
Signed-off-by: Dmitry Mishin <dim@virtuozzo.com> --- examples/object-events/event-test.c | 3 +++ include/libvirt/libvirt-domain.h | 3 +++ src/conf/domain_conf.c | 2 +- src/qemu/qemu_monitor_json.c | 2 ++ tools/virsh-domain.c | 3 ++- 5 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/examples/object-events/event-test.c b/examples/object-events/event-test.c index 2063536..57d3610 100644 --- a/examples/object-events/event-test.c +++ b/examples/object-events/event-test.c @@ -745,6 +745,9 @@ blockJobTypeToStr(int type)
case VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT: return "active layer block commit"; + + case VIR_DOMAIN_BLOCK_JOB_TYPE_BACKUP: + return "block backup"; }
return "unknown"; diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h index 160f20f..17ea991 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -1941,6 +1941,9 @@ typedef enum { /* Active Block Commit (virDomainBlockCommit with flags), job * exists as long as sync is active */
+ VIR_DOMAIN_BLOCK_JOB_TYPE_BACKUP = 5, + /* Block Backup job */ + # ifdef VIR_ENUM_SENTINELS VIR_DOMAIN_BLOCK_JOB_TYPE_LAST # endif diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 28248c8..30c97e3 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -820,7 +820,7 @@ VIR_ENUM_IMPL(virDomainLoader, * <mirror> XML (remaining types are not two-phase). */ VIR_ENUM_DECL(virDomainBlockJob) VIR_ENUM_IMPL(virDomainBlockJob, VIR_DOMAIN_BLOCK_JOB_TYPE_LAST, - "", "", "copy", "", "active-commit") + "", "", "copy", "", "active-commit", "")
VIR_ENUM_IMPL(virDomainMemoryModel, VIR_DOMAIN_MEMORY_MODEL_LAST, "", "dimm") diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 7bb9976..61fbdd9 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -831,6 +831,8 @@ qemuMonitorJSONHandleBlockJobImpl(qemuMonitorPtr mon, type = VIR_DOMAIN_BLOCK_JOB_TYPE_COMMIT; else if (STREQ(type_str, "mirror")) type = VIR_DOMAIN_BLOCK_JOB_TYPE_COPY; + else if (STREQ(type_str, "backup")) + type = VIR_DOMAIN_BLOCK_JOB_TYPE_BACKUP;
switch ((virConnectDomainEventBlockJobStatus) event) { case VIR_DOMAIN_BLOCK_JOB_COMPLETED: diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index a9f70dc..1b8c9b9 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -2527,7 +2527,8 @@ VIR_ENUM_IMPL(virshDomainBlockJob, N_("Block Pull"), N_("Block Copy"), N_("Block Commit"), - N_("Active Block Commit")) + N_("Active Block Commit"), + N_("Block Backup"))
static const char * virshDomainBlockJobToString(int type) -- 1.8.3.1

On Mon, May 16, 2016 at 08:20:57 +0000, Dmitry Mishin wrote:
ping
On 25/04/16 14:16, "Dmitry Mishin" <dim@virtuozzo.com> wrote:
If one wants to monitor 'drive-backup' command progress and completion, he needs a constant to recognize that. Right now, libvirt reports such block jobs as 'unknown'.
Since libvirt currently doesn't support starting a block backup job what's the motivation for doing this? I think we should add stuff like this along with the implementation itself since it may become apparent that something is missing what is not clear at this point. Peter

On Mon, May 16, 2016 at 08:20:57 +0000, Dmitry Mishin wrote:
ping
On 25/04/16 14:16, "Dmitry Mishin" <dim@virtuozzo.com> wrote:
If one wants to monitor 'drive-backup' command progress and completion, he needs a constant to recognize that. Right now, libvirt reports such block jobs as 'unknown'.
Since libvirt currently doesn't support starting a block backup job what's the motivation for doing this?
I think we should add stuff like this along with the implementation itself since it may become apparent that something is missing what is not clear at this point. This is a simple define, which allows to filter this job by ID for
On 16/05/16 11:48, "Peter Krempa" <pkrempa@redhat.com> wrote: third-party management apps. What could be missed here? Right now, there is a possibility to start this job via virtDomainQemuMonitorCommand(), get status via virtDomainGetBlockJobInfo(), but the problem is that in the latter case, job type is listed as "unknown" - and exactly this problem is solved by this simple patch. I'd like to know, that I track backup job, rather than something else. Thank you, Dmitry.
Peter
participants (2)
-
Dmitry Mishin
-
Peter Krempa