From 57d0151e9a1885304a70c8d3bc720abfb3aa1502 Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Tue, 13 May 2008 12:24:56 +0000
Subject: [PATCH] CLI: remove command opts/args in "gnt-X"

[Forward-port of the 1.2 branch patch]

This patch removes all the parameters and options from the output
"gnt-X" (i.e. the subcommand list for command). This is done in order to
uniformize the output, currently only some parameters are shown and they
are not always consistent (e.g. required versus important parameters).

Reviewed-by: ultrotter
---
 lib/cli.py           |  9 ++++-----
 scripts/gnt-backup   |  6 ++----
 scripts/gnt-cluster  | 26 +++++++++++---------------
 scripts/gnt-debug    |  6 +++---
 scripts/gnt-instance | 30 ++++++++++++------------------
 scripts/gnt-job      |  4 ++--
 scripts/gnt-node     | 18 ++++++++----------
 scripts/gnt-os       |  4 ++--
 8 files changed, 44 insertions(+), 59 deletions(-)
 mode change 100644 => 100755 scripts/gnt-debug
 mode change 100644 => 100755 scripts/gnt-job

diff --git a/lib/cli.py b/lib/cli.py
index 5e75da6d2..e1ceabd68 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -251,16 +251,15 @@ def _ParseArgs(argv, commands, aliases):
            "\n%(bin)s <command> --help to see details, or"
            " man %(bin)s\n" % {"bin": binary})
     # compute the max line length for cmd + usage
-    mlen = max([len(" %s %s" % (cmd, commands[cmd][3])) for cmd in commands])
+    mlen = max([len(" %s" % cmd) for cmd in commands])
     mlen = min(60, mlen) # should not get here...
     # and format a nice command list
     print "Commands:"
     for cmd in sortedcmds:
-      cmdstr = " %s %s" % (cmd, commands[cmd][3])
-      help_text = commands[cmd][4]
+      cmdstr = " %s" % (cmd,)
+      help_text = commands[cmd][3]
       help_lines = textwrap.wrap(help_text, 79-3-mlen)
-      print "%-*s - %s" % (mlen, cmdstr,
-                                          help_lines.pop(0))
+      print "%-*s - %s" % (mlen, cmdstr, help_lines.pop(0))
       for line in help_lines:
         print "%-*s   %s" % (mlen, "", line)
     print
diff --git a/scripts/gnt-backup b/scripts/gnt-backup
index e11b43896..7191c83cf 100755
--- a/scripts/gnt-backup
+++ b/scripts/gnt-backup
@@ -177,7 +177,7 @@ commands = {
                         help="List only backups stored on this node"
                              " (can be used multiple times)"),
             ],
-           "", "Lists instance exports available in the ganeti cluster"),
+           "Lists instance exports available in the ganeti cluster"),
   'export': (ExportInstance, ARGS_ONE,
              [DEBUG_OPT, FORCE_OPT,
               make_option("-n", "--node", dest="node", help="Target node",
@@ -185,13 +185,11 @@ commands = {
               make_option("","--noshutdown", dest="shutdown",
                           action="store_false", default=True,
                           help="Don't shutdown the instance (unsafe)"), ],
-             "-n <target_node> [opts...] <name>",
              "Exports an instance to an image"),
-  'import': (ImportInstance, ARGS_ONE, import_opts, "[opts...] <name>",
+  'import': (ImportInstance, ARGS_ONE, import_opts,
              "Imports an instance from an exported image"),
   'remove': (RemoveExport, ARGS_ONE,
              [DEBUG_OPT],
-             "<name>",
              "Remove exports of named instance from the filesystem."),
   }
 
diff --git a/scripts/gnt-cluster b/scripts/gnt-cluster
index f5514ff11..258ef725c 100755
--- a/scripts/gnt-cluster
+++ b/scripts/gnt-cluster
@@ -359,7 +359,6 @@ commands = {
                              " (cluster-wide)",
                         action="store_false", default=True,),
             ],
-           "[opts...] <cluster_name>",
            "Initialises a new cluster configuration"),
   'destroy': (DestroyCluster, ARGS_NONE,
               [DEBUG_OPT,
@@ -367,9 +366,8 @@ commands = {
                            help="Destroy cluster",
                            action="store_true"),
               ],
-              "", "Destroy cluster"),
+              "Destroy cluster"),
   'rename': (RenameCluster, ARGS_ONE, [DEBUG_OPT, FORCE_OPT],
-               "<new_name>",
                "Renames the cluster"),
   'verify': (VerifyCluster, ARGS_NONE, [DEBUG_OPT,
              make_option("--no-nplus1-mem", dest="skip_nplusone_mem",
@@ -377,31 +375,29 @@ commands = {
                          action="store_true",
                          default=False,),
              ],
-             "", "Does a check on the cluster configuration"),
+             "Does a check on the cluster configuration"),
   'verify-disks': (VerifyDisks, ARGS_NONE, [DEBUG_OPT],
-                   "", "Does a check on the cluster disk status"),
+                   "Does a check on the cluster disk status"),
   'masterfailover': (MasterFailover, ARGS_NONE, [DEBUG_OPT],
-                     "", "Makes the current node the master"),
+                     "Makes the current node the master"),
   'version': (ShowClusterVersion, ARGS_NONE, [DEBUG_OPT],
-              "", "Shows the cluster version"),
+              "Shows the cluster version"),
   'getmaster': (ShowClusterMaster, ARGS_NONE, [DEBUG_OPT],
-                "", "Shows the cluster master"),
+                "Shows the cluster master"),
   'copyfile': (ClusterCopyFile, ARGS_ONE, [DEBUG_OPT, node_option],
-               "[-n node...] <filename>",
                "Copies a file to all (or only some) nodes"),
   'command': (RunClusterCommand, ARGS_ATLEAST(1), [DEBUG_OPT, node_option],
-              "[-n node...] <command>",
               "Runs a command on all (or only some) nodes"),
   'info': (ShowClusterConfig, ARGS_NONE, [DEBUG_OPT],
-                 "", "Show cluster configuration"),
+                 "Show cluster configuration"),
   'list-tags': (ListTags, ARGS_NONE,
-                [DEBUG_OPT], "", "List the tags of the cluster"),
+                [DEBUG_OPT], "List the tags of the cluster"),
   'add-tags': (AddTags, ARGS_ANY, [DEBUG_OPT, TAG_SRC_OPT],
-               "tag...", "Add tags to the cluster"),
+               "Add tags to the cluster"),
   'remove-tags': (RemoveTags, ARGS_ANY, [DEBUG_OPT, TAG_SRC_OPT],
-                  "tag...", "Remove tags from the cluster"),
+                  "Remove tags from the cluster"),
   'search-tags': (SearchTags, ARGS_ONE,
-                  [DEBUG_OPT], "", "Searches the tags on all objects on"
+                  [DEBUG_OPT], "Searches the tags on all objects on"
                   " the cluster for a given pattern (regex)"),
   'modify': (SetClusterParams, ARGS_NONE,
              [DEBUG_OPT,
diff --git a/scripts/gnt-debug b/scripts/gnt-debug
old mode 100644
new mode 100755
index f57dd5d80..6db5af4f0
--- a/scripts/gnt-debug
+++ b/scripts/gnt-debug
@@ -148,11 +148,11 @@ commands = {
                          action="append",
                          help="Select nodes to sleep on"),
              ],
-            "[opts...] <duration>", "Executes a TestDelay OpCode"),
+            "Executes a TestDelay OpCode"),
   'submit-job': (GenericOpCodes, ARGS_ONE,
                  [DEBUG_OPT,
                   ],
-                 "<op_list_file>", "Submits a job built from a json-file"
+                 "Submits a job built from a json-file"
                  " with a list of serialized opcodes"),
   'allocator': (TestAllocator, ARGS_ONE,
                 [DEBUG_OPT,
@@ -184,7 +184,7 @@ commands = {
                  make_option("--tags", default=None,
                              help="Comma separated list of tags"),
                  ],
-                "{opts...} <instance>", "Executes a TestAllocator OpCode"),
+                "Executes a TestAllocator OpCode"),
   }
 
 
diff --git a/scripts/gnt-instance b/scripts/gnt-instance
index c81be88f1..106b1b46a 100755
--- a/scripts/gnt-instance
+++ b/scripts/gnt-instance
@@ -795,14 +795,12 @@ add_opts = [
 
 commands = {
   'add': (AddInstance, ARGS_ONE, add_opts,
-          "[opts...] <name>",
           "Creates and adds a new instance to the cluster"),
   'console': (ConnectToInstanceConsole, ARGS_ONE,
               [DEBUG_OPT,
                make_option("--show-cmd", dest="show_command",
                            action="store_true", default=False,
                            help=("Show command instead of executing it"))],
-              "[--show-cmd] <instance>",
               "Opens a console on the specified instance"),
   'failover': (FailoverInstance, ARGS_ONE,
                [DEBUG_OPT, FORCE_OPT,
@@ -811,13 +809,12 @@ commands = {
                             help="Ignore the consistency of the disks on"
                             " the secondary"),
                 ],
-               "[-f] <instance>",
                "Stops the instance and starts it on the backup node, using"
                " the remote mirror (only for instances of type drbd)"),
-  'info': (ShowInstanceConfig, ARGS_ANY, [DEBUG_OPT], "[<instance>...]",
+  'info': (ShowInstanceConfig, ARGS_ANY, [DEBUG_OPT],
            "Show information on the specified instance"),
   'list': (ListInstances, ARGS_NONE,
-           [DEBUG_OPT, NOHDR_OPT, SEP_OPT, USEUNITS_OPT, FIELDS_OPT], "",
+           [DEBUG_OPT, NOHDR_OPT, SEP_OPT, USEUNITS_OPT, FIELDS_OPT],
            "Lists the instances and their status. The available fields are"
            " (see the man page for details): status, oper_state, oper_ram,"
            " name, os, pnode, snodes, admin_state, admin_ram, disk_template,"
@@ -825,7 +822,7 @@ commands = {
            " list is (in order): %s." % ", ".join(_LIST_DEF_FIELDS),
            ),
   'reinstall': (ReinstallInstance, ARGS_ONE, [DEBUG_OPT, FORCE_OPT, os_opt],
-                "[-f] <instance>", "Reinstall a stopped instance"),
+                "Reinstall a stopped instance"),
   'remove': (RemoveInstance, ARGS_ONE,
              [DEBUG_OPT, FORCE_OPT,
               make_option("--ignore-failures", dest="ignore_failures",
@@ -834,7 +831,7 @@ commands = {
                                 " if there are failures during the removal"
                                 " process (shutdown, disk removal, etc.)")),
               ],
-             "[-f] <instance>", "Shuts down the instance and removes it"),
+             "Shuts down the instance and removes it"),
   'rename': (RenameInstance, ARGS_FIXED(2),
              [DEBUG_OPT,
               make_option("--no-ip-check", dest="ignore_ip",
@@ -842,7 +839,7 @@ commands = {
                           " is alive",
                           default=False, action="store_true"),
               ],
-             "<instance> <new_name>", "Rename the instance"),
+             "Rename the instance"),
   'replace-disks': (ReplaceDisks, ARGS_ONE,
                     [DEBUG_OPT,
                      make_option("-n", "--new-secondary", dest="new_secondary",
@@ -867,7 +864,6 @@ commands = {
                                  " secondary node replacement)",
                                  default=None, type="string"),
                      ],
-                    "[-s|-p|-n NODE] <instance>",
                     "Replaces all disks for the instance"),
   'modify': (SetInstanceParams, ARGS_ONE,
              [DEBUG_OPT, FORCE_OPT,
@@ -899,11 +895,11 @@ commands = {
                           "(either one or more of [acdn] or 'default')",
                           default=None, type="string", metavar="<BOOTORDER>"),
               ],
-             "<instance>", "Alters the parameters of an instance"),
+             "Alters the parameters of an instance"),
   'shutdown': (ShutdownInstance, ARGS_ANY,
                [DEBUG_OPT, m_node_opt, m_pri_node_opt, m_sec_node_opt,
                 m_clust_opt, m_inst_opt, m_force_multi],
-               "<instance>", "Stops an instance"),
+               "Stops an instance"),
   'startup': (StartupInstance, ARGS_ANY,
               [DEBUG_OPT, FORCE_OPT, m_force_multi,
                make_option("-e", "--extra", dest="extra_args",
@@ -912,7 +908,7 @@ commands = {
                m_node_opt, m_pri_node_opt, m_sec_node_opt,
                m_clust_opt, m_inst_opt,
                ],
-            "<instance>", "Starts an instance"),
+              "Starts an instance"),
 
   'reboot': (RebootInstance, ARGS_ANY,
               [DEBUG_OPT, m_force_multi,
@@ -929,19 +925,17 @@ commands = {
                m_node_opt, m_pri_node_opt, m_sec_node_opt,
                m_clust_opt, m_inst_opt,
                ],
-            "<instance>", "Reboots an instance"),
+             "Reboots an instance"),
   'activate-disks': (ActivateDisks, ARGS_ONE, [DEBUG_OPT],
-                     "<instance>",
                      "Activate an instance's disks"),
   'deactivate-disks': (DeactivateDisks, ARGS_ONE, [DEBUG_OPT],
-                       "<instance>",
                        "Deactivate an instance's disks"),
   'list-tags': (ListTags, ARGS_ONE, [DEBUG_OPT],
-                "<node_name>", "List the tags of the given instance"),
+                "List the tags of the given instance"),
   'add-tags': (AddTags, ARGS_ATLEAST(1), [DEBUG_OPT, TAG_SRC_OPT],
-               "<node_name> tag...", "Add tags to the given instance"),
+               "Add tags to the given instance"),
   'remove-tags': (RemoveTags, ARGS_ATLEAST(1), [DEBUG_OPT, TAG_SRC_OPT],
-                  "<node_name> tag...", "Remove tags from given instance"),
+                  "Remove tags from given instance"),
   }
 
 aliases = {
diff --git a/scripts/gnt-job b/scripts/gnt-job
old mode 100644
new mode 100755
index e98f6373a..3e6d88c2a
--- a/scripts/gnt-job
+++ b/scripts/gnt-job
@@ -95,8 +95,8 @@ def ListJobs(opts, args):
 
 commands = {
   'list': (ListJobs, ARGS_NONE,
-            [DEBUG_OPT, NOHDR_OPT, SEP_OPT, USEUNITS_OPT, FIELDS_OPT],
-            "", "List the jobs and their status. The available fields are"
+           [DEBUG_OPT, NOHDR_OPT, SEP_OPT, USEUNITS_OPT, FIELDS_OPT],
+           "List the jobs and their status. The available fields are"
            " (see the man page for details): id, status, op_list,"
            " op_status, op_result."
            " The default field"
diff --git a/scripts/gnt-node b/scripts/gnt-node
index b4938cda2..6423562d8 100755
--- a/scripts/gnt-node
+++ b/scripts/gnt-node
@@ -295,10 +295,9 @@ commands = {
                        default=False, action="store_true",
                        help="Readd old node after replacing it"),
            ],
-          "[-s ip] <node_name>", "Add a node to the cluster"),
+          "Add a node to the cluster"),
   'evacuate': (EvacuateNode, ARGS_FIXED(2),
                [DEBUG_OPT, FORCE_OPT],
-               "[-f] <src> <dst>",
                "Relocate the secondary instances from the first node"
                " to the second one (only for instances of type remote_raid1"
                " drbd)"),
@@ -309,30 +308,29 @@ commands = {
                             help="Ignore the consistency of the disks on"
                             " the secondary"),
                 ],
-               "[-f] <node>",
                "Stops the primary instances on a node and start them on their"
                " secondary node (only for instances of type remote_raid1)"),
   'info': (ShowNodeConfig, ARGS_ANY, [DEBUG_OPT],
-           "[<node_name>...]", "Show information about the node(s)"),
+           "Show information about the node(s)"),
   'list': (ListNodes, ARGS_NONE,
            [DEBUG_OPT, NOHDR_OPT, SEP_OPT, USEUNITS_OPT, FIELDS_OPT],
-           "", "Lists the nodes in the cluster. The available fields"
+           "Lists the nodes in the cluster. The available fields"
            " are (see the man page for details): name, pinst_cnt, pinst_list,"
            " sinst_cnt, sinst_list, pip, sip, dtotal, dfree, mtotal, mnode,"
            " mfree, bootid, cpu_count. The default field list is"
            " (in order): %s." % ", ".join(_LIST_DEF_FIELDS),
            ),
   'remove': (RemoveNode, ARGS_ONE, [DEBUG_OPT],
-             "<node_name>", "Removes a node from the cluster"),
+             "Removes a node from the cluster"),
   'volumes': (ListVolumes, ARGS_ANY,
               [DEBUG_OPT, NOHDR_OPT, SEP_OPT, USEUNITS_OPT, FIELDS_OPT],
-              "[<node_name>...]", "List logical volumes on node(s)"),
+              "List logical volumes on node(s)"),
   'list-tags': (ListTags, ARGS_ONE, [DEBUG_OPT],
-                "<node_name>", "List the tags of the given node"),
+                "List the tags of the given node"),
   'add-tags': (AddTags, ARGS_ATLEAST(1), [DEBUG_OPT, TAG_SRC_OPT],
-               "<node_name> tag...", "Add tags to the given node"),
+               "Add tags to the given node"),
   'remove-tags': (RemoveTags, ARGS_ATLEAST(1), [DEBUG_OPT, TAG_SRC_OPT],
-                  "<node_name> tag...", "Remove tags from the given node"),
+                  "Remove tags from the given node"),
   }
 
 
diff --git a/scripts/gnt-os b/scripts/gnt-os
index e4041c728..873f09f91 100755
--- a/scripts/gnt-os
+++ b/scripts/gnt-os
@@ -116,9 +116,9 @@ def DiagnoseOS(opts, args):
 
 
 commands = {
-  'list': (ListOS, ARGS_NONE, [DEBUG_OPT, NOHDR_OPT], "",
+  'list': (ListOS, ARGS_NONE, [DEBUG_OPT, NOHDR_OPT],
            "Lists all valid OSes on the master"),
-  'diagnose': (DiagnoseOS, ARGS_NONE, [DEBUG_OPT], "",
+  'diagnose': (DiagnoseOS, ARGS_NONE, [DEBUG_OPT],
                "Diagnose all OSes"),
   }
 
-- 
GitLab