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

[libvirt] [PATCH v2 4/4] virsh: add --persistent to cmd schedinfo



This enables user to modify cpu.shares even when domain is inactive.
---
 tools/virsh.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/tools/virsh.c b/tools/virsh.c
index 2b16714..58facc4 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -1590,6 +1590,7 @@ static const vshCmdOptDef opts_schedinfo[] = {
     {"set", VSH_OT_STRING, VSH_OFLAG_NONE, N_("parameter=value")},
     {"weight", VSH_OT_INT, VSH_OFLAG_NONE, N_("weight for XEN_CREDIT")},
     {"cap", VSH_OT_INT, VSH_OFLAG_NONE, N_("cap for XEN_CREDIT")},
+    {"persistent", VSH_OT_BOOL, 0, N_("persist VM on destination")},
     {NULL, 0, 0, NULL}
 };
 
@@ -1697,6 +1698,7 @@ cmdSchedinfo(vshControl *ctl, const vshCmd *cmd)
     int update = 0;
     int i, ret;
     bool ret_val = false;
+    unsigned int flags = 0;
 
     if (!vshConnectionUsability(ctl, ctl->conn))
         return false;
@@ -1704,6 +1706,16 @@ cmdSchedinfo(vshControl *ctl, const vshCmd *cmd)
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
 
+    if (vshCommandOptBool(cmd, "persistent"))
+        flags |= VIR_DOMAIN_SCHEDPARAM_CONFIG;
+    if (virDomainIsActive(dom))
+        flags |= VIR_DOMAIN_SCHEDPARAM_LIVE;
+
+    if (!(flags & (VIR_DOMAIN_SCHEDPARAM_CONFIG | VIR_DOMAIN_SCHEDPARAM_LIVE))) {
+        vshError(ctl, "%s", _("Domain is not running and you didn't specify --persistent parameter."));
+        goto cleanup;
+    }
+
     /* Print SchedulerType */
     schedulertype = virDomainGetSchedulerType(dom, &nparams);
     if (schedulertype!= NULL){
@@ -1735,7 +1747,7 @@ cmdSchedinfo(vshControl *ctl, const vshCmd *cmd)
 
         /* Update parameters & refresh data */
         if (update) {
-            ret = virDomainSetSchedulerParameters(dom, params, nparams);
+            ret = virDomainSetSchedulerParametersFlags(dom, params, nparams, flags);
             if (ret == -1)
                 goto cleanup;
 
-- 
1.7.3.1


-- 
Thanks,
Hu Tao


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