Move the node flags options to cli.py
[ganeti-local] / lib / cli.py
index 9062c2e..67b3fcc 100644 (file)
@@ -44,13 +44,17 @@ from optparse import (OptionParser, TitledHelpFormatter,
 
 __all__ = [
   # Command line options
+  "ALL_OPT",
+  "AUTO_REPLACE_OPT",
   "BACKEND_OPT",
+  "CLEANUP_OPT",
   "CONFIRM_OPT",
   "DEBUG_OPT",
   "DEBUG_SIMERR_OPT",
   "DISKIDX_OPT",
   "DISK_OPT",
   "DISK_TEMPLATE_OPT",
+  "DRAINED_OPT",
   "FIELDS_OPT",
   "FILESTORE_DIR_OPT",
   "FILESTORE_DRIVER_OPT",
@@ -59,17 +63,36 @@ __all__ = [
   "HYPERVISOR_OPT",
   "IALLOCATOR_OPT",
   "IGNORE_CONSIST_OPT",
+  "IGNORE_FAILURES_OPT",
+  "IGNORE_SIZE_OPT",
   "FORCE_OPT",
+  "MC_OPT",
   "NET_OPT",
+  "NEW_SECONDARY_OPT",
+  "NODE_LIST_OPT",
+  "NODE_PLACEMENT_OPT",
   "NOHDR_OPT",
   "NOIPCHECK_OPT",
   "NONICS_OPT",
   "NONLIVE_OPT",
+  "NOSTART_OPT",
+  "NOSSH_KEYCHECK_OPT",
   "NWSYNC_OPT",
+  "ON_PRIMARY_OPT",
+  "ON_SECONDARY_OPT",
+  "OFFLINE_OPT",
   "OS_OPT",
   "OS_SIZE_OPT",
+  "READD_OPT",
+  "SECONDARY_IP_OPT",
+  "SELECT_OS_OPT",
   "SEP_OPT",
+  "SHOWCMD_OPT",
+  "SINGLE_NODE_OPT",
+  "SRC_DIR_OPT",
+  "SRC_NODE_OPT",
   "SUBMIT_OPT",
+  "STATIC_OPT",
   "SYNC_OPT",
   "TAG_SRC_OPT",
   "USEUNITS_OPT",
@@ -433,6 +456,9 @@ class CliOption(Option):
 cli_option = CliOption
 
 
+_YESNO = ("yes", "no")
+_YORNO = "yes|no"
+
 DEBUG_OPT = cli_option("-d", "--debug", default=False,
                        action="store_true",
                        help="Turn debugging on")
@@ -574,6 +600,116 @@ NONLIVE_OPT = cli_option("--non-live", dest="live",
                          " freeze the instance, save the state, transfer and"
                          " only then resume running on the secondary node)")
 
+NODE_PLACEMENT_OPT = cli_option("-n", "--node", dest="node",
+                                help="Target node and optional secondary node",
+                                metavar="<pnode>[:<snode>]",
+                                completion_suggest=OPT_COMPL_INST_ADD_NODES)
+
+NODE_LIST_OPT = cli_option("-n", "--node", dest="nodes", default=[],
+                           action="append", metavar="<node>",
+                           help="Use only this node (can be used multiple"
+                           " times, if not given defaults to all nodes)",
+                           completion_suggest=OPT_COMPL_ONE_NODE)
+
+SINGLE_NODE_OPT = cli_option("-n", "--node", dest="node", help="Target node",
+                             metavar="<node>",
+                             completion_suggest=OPT_COMPL_ONE_NODE)
+
+NOSTART_OPT = cli_option("--no-start", dest="start", default=True,
+                         action="store_false",
+                         help="Don't start the instance after creation")
+
+SHOWCMD_OPT = cli_option("--show-cmd", dest="show_command",
+                         action="store_true", default=False,
+                         help="Show command instead of executing it")
+
+CLEANUP_OPT = cli_option("--cleanup", dest="cleanup",
+                         default=False, action="store_true",
+                         help="Instead of performing the migration, try to"
+                         " recover from a failed cleanup. This is safe"
+                         " to run even if the instance is healthy, but it"
+                         " will create extra replication traffic and "
+                         " disrupt briefly the replication (like during the"
+                         " migration")
+
+STATIC_OPT = cli_option("-s", "--static", dest="static",
+                        action="store_true", default=False,
+                        help="Only show configuration data, not runtime data")
+
+ALL_OPT = cli_option("--all", dest="show_all",
+                     default=False, action="store_true",
+                     help="Show info on all instances on the cluster."
+                     " This can take a long time to run, use wisely")
+
+SELECT_OS_OPT = cli_option("--select-os", dest="select_os",
+                           action="store_true", default=False,
+                           help="Interactive OS reinstall, lists available"
+                           " OS templates for selection")
+
+IGNORE_FAILURES_OPT = cli_option("--ignore-failures", dest="ignore_failures",
+                                 action="store_true", default=False,
+                                 help="Remove the instance from the cluster"
+                                 " configuration even if there are failures"
+                                 " during the removal process")
+
+NEW_SECONDARY_OPT = cli_option("-n", "--new-secondary", dest="dst_node",
+                               help="Specifies the new secondary node",
+                               metavar="NODE", default=None,
+                               completion_suggest=OPT_COMPL_ONE_NODE)
+
+ON_PRIMARY_OPT = cli_option("-p", "--on-primary", dest="on_primary",
+                            default=False, action="store_true",
+                            help="Replace the disk(s) on the primary"
+                            " node (only for the drbd template)")
+
+ON_SECONDARY_OPT = cli_option("-s", "--on-secondary", dest="on_secondary",
+                              default=False, action="store_true",
+                              help="Replace the disk(s) on the secondary"
+                              " node (only for the drbd template)")
+
+AUTO_REPLACE_OPT = cli_option("-a", "--auto", dest="auto",
+                              default=False, action="store_true",
+                              help="Automatically replace faulty disks"
+                              " (only for the drbd template)")
+
+IGNORE_SIZE_OPT = cli_option("--ignore-size", dest="ignore_size",
+                             default=False, action="store_true",
+                             help="Ignore current recorded size"
+                             " (useful for forcing activation when"
+                             " the recorded size is wrong)")
+
+SRC_NODE_OPT = cli_option("--src-node", dest="src_node", help="Source node",
+                          metavar="<node>",
+                          completion_suggest=OPT_COMPL_ONE_NODE)
+
+SRC_DIR_OPT = cli_option("--src-dir", dest="src_dir", help="Source directory",
+                         metavar="<dir>")
+
+SECONDARY_IP_OPT = cli_option("-s", "--secondary-ip", dest="secondary_ip",
+                              help="Specify the secondary ip for the node",
+                              metavar="ADDRESS", default=None)
+
+READD_OPT = cli_option("--readd", dest="readd",
+                       default=False, action="store_true",
+                       help="Readd old node after replacing it")
+
+NOSSH_KEYCHECK_OPT = cli_option("--no-ssh-key-check", dest="ssh_key_check",
+                                default=True, action="store_false",
+                                help="Disable SSH key fingerprint checking")
+
+
+MC_OPT = cli_option("-C", "--master-candidate", dest="master_candidate",
+                    choices=_YESNO, default=None, metavar=_YORNO,
+                    help="Set the master_candidate flag on the node")
+
+OFFLINE_OPT = cli_option("-O", "--offline", dest="offline", metavar=_YORNO,
+                         choices=_YESNO, default=None,
+                         help="Set the offline flag on the node")
+
+DRAINED_OPT = cli_option("-D", "--drained", dest="drained", metavar=_YORNO,
+                         choices=_YESNO, default=None,
+                         help="Set the drained flag on the node")
+
 
 def _ParseArgs(argv, commands, aliases):
   """Parser for the command line arguments.