Move the node flags options to cli.py
[ganeti-local] / lib / cli.py
index 3f4d938..67b3fcc 100644 (file)
@@ -44,11 +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",
@@ -56,13 +62,37 @@ __all__ = [
   "HVOPTS_OPT",
   "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",
@@ -426,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")
@@ -533,6 +566,150 @@ HVLIST_OPT = cli_option("-H", "--hypervisor-parameters", dest="hvparams",
                         " format hypervisor:option=value,option=value,...",
                         default=[], action="append", type="identkeyval")
 
+NOIPCHECK_OPT = cli_option("--no-ip-check", dest="ip_check", default=True,
+                           action="store_false",
+                           help="Don't check that the instance's IP"
+                           " is alive")
+
+NET_OPT = cli_option("--net",
+                     help="NIC parameters", default=[],
+                     dest="nics", action="append", type="identkeyval")
+
+DISK_OPT = cli_option("--disk", help="Disk parameters", default=[],
+                      dest="disks", action="append", type="identkeyval")
+
+DISKIDX_OPT = cli_option("--disks", dest="disks", default=None,
+                         help="Comma-separated list of disks"
+                         " indices to act on (e.g. 0,2) (optional,"
+                         " defaults to all disks)")
+
+OS_SIZE_OPT = cli_option("-s", "--os-size", dest="sd_size",
+                         help="Enforces a single-disk configuration using the"
+                         " given disk size, in MiB unless a suffix is used",
+                         default=None, type="unit", metavar="<size>")
+
+IGNORE_CONSIST_OPT = cli_option("--ignore-consistency",
+                                dest="ignore_consistency",
+                                action="store_true", default=False,
+                                help="Ignore the consistency of the disks on"
+                                " the secondary")
+
+NONLIVE_OPT = cli_option("--non-live", dest="live",
+                         default=True, action="store_false",
+                         help="Do a non-live migration (this usually means"
+                         " 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.