__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",
"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",
cli_option = CliOption
+_YESNO = ("yes", "no")
+_YORNO = "yes|no"
+
DEBUG_OPT = cli_option("-d", "--debug", default=False,
action="store_true",
help="Turn debugging on")
" 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.