Re: [libvirt] [PATCH 3/6] virsh: Add support for completed job stats

2014-09-05 Thread John Ferlan


On 09/01/2014 11:05 AM, Jiri Denemark wrote:
 New --completed flag for virsh domjobinfo command.
 
 Signed-off-by: Jiri Denemark jdene...@redhat.com
 ---
  tools/virsh-domain.c | 27 ---
  tools/virsh.pod  |  5 +++--
  2 files changed, 27 insertions(+), 5 deletions(-)
 
 diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
 index c75cd73..1ff264e 100644
 --- a/tools/virsh-domain.c
 +++ b/tools/virsh-domain.c
 @@ -5164,6 +5164,10 @@ static const vshCmdOptDef opts_domjobinfo[] = {
   .flags = VSH_OFLAG_REQ,
   .help = N_(domain name, id or uuid)
  },
 +{.name = completed,
 + .type = VSH_OT_BOOL,
 + .help = N_(return statistics of a recently completed job)
 +},
  {.name = NULL}
  };
  
 @@ -5195,14 +5199,18 @@ cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
  virTypedParameterPtr params = NULL;
  int nparams = 0;
  unsigned long long value;
 +unsigned int flags = 0;
  int rc;
  
  if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
  return false;
  
 +if (vshCommandOptBool(cmd, completed))
 +flags |= VIR_DOMAIN_JOB_STATS_COMPLETED;
 +
  memset(info, 0, sizeof(info));
  
 -rc = virDomainGetJobStats(dom, info.type, params, nparams, 0);
 +rc = virDomainGetJobStats(dom, info.type, params, nparams, flags);
  if (rc == 0) {
  if (virTypedParamsGetULLong(params, nparams,
  VIR_DOMAIN_JOB_TIME_ELAPSED,
 @@ -5239,6 +5247,11 @@ cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
  info.fileRemaining)  0)
  goto save_error;
  } else if (last_error-code == VIR_ERR_NO_SUPPORT) {
 +if (flags) {
 +vshError(ctl, %s, _(Optional flags are not supported by the 
 +  daemon));
 +goto cleanup;
 +}
  vshDebug(ctl, VSH_ERR_DEBUG, detailed statistics not supported\n);
  vshResetLibvirtError();
  rc = virDomainGetJobInfo(dom, info);
 @@ -5249,7 +5262,9 @@ cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
  vshPrint(ctl, %-17s %-12s\n, _(Job type:),
   vshDomainJobToString(info.type));
  if (info.type != VIR_DOMAIN_JOB_BOUNDED 
 -info.type != VIR_DOMAIN_JOB_UNBOUNDED) {
 +info.type != VIR_DOMAIN_JOB_UNBOUNDED 
 +(!(flags  VIR_DOMAIN_JOB_STATS_COMPLETED) ||
 + info.type != VIR_DOMAIN_JOB_COMPLETED)) {
  ret = true;
  goto cleanup;
  }
 @@ -5314,7 +5329,13 @@ cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
value))  0) {
  goto save_error;
  } else if (rc) {
 -vshPrint(ctl, %-17s %-12llu ms\n, _(Expected downtime:), value);
 +if (info.type == VIR_DOMAIN_JOB_COMPLETED) {
 +vshPrint(ctl, %-17s %-12llu ms\n,
 + _(Total downtime:), value);
 +} else {
 +vshPrint(ctl, %-17s %-12llu ms\n,
 + _(Expected downtime:), value);
 +}
  }
  
  if ((rc = virTypedParamsGetULLong(params, nparams,
 diff --git a/tools/virsh.pod b/tools/virsh.pod
 index ea9267e..3c71db9 100644
 --- a/tools/virsh.pod
 +++ b/tools/virsh.pod
 @@ -1112,9 +1112,10 @@ Convert a domain name (or UUID) to a domain id
  
  Abort the currently running domain job.
  
 -=item Bdomjobinfo Idomain
 +=item Bdomjobinfo Idomain [I--completed]
  
 -Returns information about jobs running on a domain.
 +Returns information about jobs running on a domain. I--completed tells
 +virsh to return information about a recently finished job.

Perhaps a bit more about the once read or libvirtd restart will
cause statistics to be destroyed.

ACK with that

John
  
  =item Bdomname Idomain-id-or-uuid
  
 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH 3/6] virsh: Add support for completed job stats

2014-09-01 Thread Jiri Denemark
New --completed flag for virsh domjobinfo command.

Signed-off-by: Jiri Denemark jdene...@redhat.com
---
 tools/virsh-domain.c | 27 ---
 tools/virsh.pod  |  5 +++--
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index c75cd73..1ff264e 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -5164,6 +5164,10 @@ static const vshCmdOptDef opts_domjobinfo[] = {
  .flags = VSH_OFLAG_REQ,
  .help = N_(domain name, id or uuid)
 },
+{.name = completed,
+ .type = VSH_OT_BOOL,
+ .help = N_(return statistics of a recently completed job)
+},
 {.name = NULL}
 };
 
@@ -5195,14 +5199,18 @@ cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
 virTypedParameterPtr params = NULL;
 int nparams = 0;
 unsigned long long value;
+unsigned int flags = 0;
 int rc;
 
 if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
 return false;
 
+if (vshCommandOptBool(cmd, completed))
+flags |= VIR_DOMAIN_JOB_STATS_COMPLETED;
+
 memset(info, 0, sizeof(info));
 
-rc = virDomainGetJobStats(dom, info.type, params, nparams, 0);
+rc = virDomainGetJobStats(dom, info.type, params, nparams, flags);
 if (rc == 0) {
 if (virTypedParamsGetULLong(params, nparams,
 VIR_DOMAIN_JOB_TIME_ELAPSED,
@@ -5239,6 +5247,11 @@ cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
 info.fileRemaining)  0)
 goto save_error;
 } else if (last_error-code == VIR_ERR_NO_SUPPORT) {
+if (flags) {
+vshError(ctl, %s, _(Optional flags are not supported by the 
+  daemon));
+goto cleanup;
+}
 vshDebug(ctl, VSH_ERR_DEBUG, detailed statistics not supported\n);
 vshResetLibvirtError();
 rc = virDomainGetJobInfo(dom, info);
@@ -5249,7 +5262,9 @@ cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
 vshPrint(ctl, %-17s %-12s\n, _(Job type:),
  vshDomainJobToString(info.type));
 if (info.type != VIR_DOMAIN_JOB_BOUNDED 
-info.type != VIR_DOMAIN_JOB_UNBOUNDED) {
+info.type != VIR_DOMAIN_JOB_UNBOUNDED 
+(!(flags  VIR_DOMAIN_JOB_STATS_COMPLETED) ||
+ info.type != VIR_DOMAIN_JOB_COMPLETED)) {
 ret = true;
 goto cleanup;
 }
@@ -5314,7 +5329,13 @@ cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
   value))  0) {
 goto save_error;
 } else if (rc) {
-vshPrint(ctl, %-17s %-12llu ms\n, _(Expected downtime:), value);
+if (info.type == VIR_DOMAIN_JOB_COMPLETED) {
+vshPrint(ctl, %-17s %-12llu ms\n,
+ _(Total downtime:), value);
+} else {
+vshPrint(ctl, %-17s %-12llu ms\n,
+ _(Expected downtime:), value);
+}
 }
 
 if ((rc = virTypedParamsGetULLong(params, nparams,
diff --git a/tools/virsh.pod b/tools/virsh.pod
index ea9267e..3c71db9 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -1112,9 +1112,10 @@ Convert a domain name (or UUID) to a domain id
 
 Abort the currently running domain job.
 
-=item Bdomjobinfo Idomain
+=item Bdomjobinfo Idomain [I--completed]
 
-Returns information about jobs running on a domain.
+Returns information about jobs running on a domain. I--completed tells
+virsh to return information about a recently finished job.
 
 =item Bdomname Idomain-id-or-uuid
 
-- 
2.1.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list