From 53919782a684d95456d72496f98010e4b2663313 Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Wed, 27 Oct 2010 14:43:32 +0200
Subject: [PATCH] Add vm_capable to gnt-node modify

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
---
 lib/cli.py             | 5 +++++
 lib/client/gnt_node.py | 8 ++++++--
 man/gnt-node.sgml      | 1 +
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/cli.py b/lib/cli.py
index a4c0de394..32e1a0fb4 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -54,6 +54,7 @@ __all__ = [
   "BACKEND_OPT",
   "BLK_OS_OPT",
   "CAPAB_MASTER_OPT",
+  "CAPAB_VM_OPT",
   "CLEANUP_OPT",
   "CLUSTER_DOMAIN_SECRET_OPT",
   "CONFIRM_OPT",
@@ -875,6 +876,10 @@ CAPAB_MASTER_OPT = cli_option("--master-capable", dest="master_capable",
                     type="bool", default=None, metavar=_YORNO,
                     help="Set the master_capable flag on the node")
 
+CAPAB_VM_OPT = cli_option("--vm-capable", dest="vm_capable",
+                    type="bool", default=None, metavar=_YORNO,
+                    help="Set the vm_capable flag on the node")
+
 ALLOCATABLE_OPT = cli_option("--allocatable", dest="allocatable",
                              type="bool", default=None, metavar=_YORNO,
                              help="Set the allocatable flag on a volume")
diff --git a/lib/client/gnt_node.py b/lib/client/gnt_node.py
index 26e5ca8d1..28586d502 100644
--- a/lib/client/gnt_node.py
+++ b/lib/client/gnt_node.py
@@ -649,7 +649,9 @@ def SetNodeParams(opts, args):
   @return: the desired exit code
 
   """
-  if [opts.master_candidate, opts.drained, opts.offline].count(None) == 3:
+  all_changes = [opts.master_candidate, opts.drained, opts.offline,
+                 opts.master_capable, opts.vm_capable]
+  if all_changes.count(None) == len(all_changes):
     ToStderr("Please give at least one of the parameters.")
     return 1
 
@@ -658,6 +660,7 @@ def SetNodeParams(opts, args):
                                offline=opts.offline,
                                drained=opts.drained,
                                master_capable=opts.master_capable,
+                               vm_capable=opts.vm_capable,
                                force=opts.force,
                                auto_promote=opts.auto_promote)
 
@@ -709,7 +712,8 @@ commands = {
     (utils.CommaJoin(_LIST_HEADERS), utils.CommaJoin(_LIST_DEF_FIELDS))),
   'modify': (
     SetNodeParams, ARGS_ONE_NODE,
-    [FORCE_OPT, SUBMIT_OPT, MC_OPT, DRAINED_OPT, OFFLINE_OPT, CAPAB_MASTER_OPT,
+    [FORCE_OPT, SUBMIT_OPT, MC_OPT, DRAINED_OPT, OFFLINE_OPT,
+     CAPAB_MASTER_OPT, CAPAB_VM_OPT,
      AUTO_PROMOTE_OPT, DRY_RUN_OPT, PRIORITY_OPT],
     "<node_name>", "Alters the parameters of a node"),
   'powercycle': (
diff --git a/man/gnt-node.sgml b/man/gnt-node.sgml
index 39e169f73..e876b0cba 100644
--- a/man/gnt-node.sgml
+++ b/man/gnt-node.sgml
@@ -627,6 +627,7 @@
         <arg>--drained=<option>yes|no</option></arg>
         <arg>--offline=<option>yes|no</option></arg>
         <arg>--master-capable=<option>yes|no</option></arg>
+        <arg>--vm-capable=<option>yes|no</option></arg>
         <arg>--auto-promote</arg>
         <arg choice="req"><replaceable>node</replaceable></arg>
       </cmdsynopsis>
-- 
GitLab