"GLOBAL_FILEDIR_OPT",
"HID_OS_OPT",
"GLOBAL_SHARED_FILEDIR_OPT",
+ "HOTPLUG_OPT",
"HVLIST_OPT",
"HVOPTS_OPT",
"HYPERVISOR_OPT",
default=False, action="store_true",
help="Include default values")
+HOTPLUG_OPT = cli_option("--hotplug", dest="hotplug",
+ action="store_true", default=False,
+ help="Try to hotplug device")
+
#: Options provided by all commands
COMMON_OPTS = [DEBUG_OPT, REASON_OPT]
allowed_values=[constants.VALUE_DEFAULT])
nics = _ConvertNicDiskModifications(opts.nics)
+ for action, _, __ in nics:
+ if action == constants.DDM_MODIFY and opts.hotplug:
+ usertext = ("You are about to hot-modify a NIC. This will be done"
+ " by removing the exisiting and then adding a new one."
+ " Network connection might be lost. Continue?")
+ if not AskUser(usertext):
+ return 1
+
disks = _ParseDiskSizes(_ConvertNicDiskModifications(opts.disks))
if (opts.disk_template and
op = opcodes.OpInstanceSetParams(instance_name=args[0],
nics=nics,
disks=disks,
+ hotplug=opts.hotplug,
disk_template=opts.disk_template,
remote_node=opts.node,
pnode=opts.new_primary_node,
ToStdout("Modified instance %s", args[0])
for param, data in result:
ToStdout(" - %-5s -> %s", param, data)
- ToStdout("Please don't forget that most parameters take effect"
- " only at the next (re)start of the instance initiated by"
- " ganeti; restarting from within the instance will"
- " not be enough.")
+ if not opts.hotplug:
+ ToStdout("Please don't forget that most parameters take effect"
+ " only at the next (re)start of the instance initiated by"
+ " ganeti; restarting from within the instance will"
+ " not be enough.")
return 0
DISK_TEMPLATE_OPT, SINGLE_NODE_OPT, OS_OPT, FORCE_VARIANT_OPT,
OSPARAMS_OPT, DRY_RUN_OPT, PRIORITY_OPT, NWSYNC_OPT, OFFLINE_INST_OPT,
ONLINE_INST_OPT, IGNORE_IPOLICY_OPT, RUNTIME_MEM_OPT,
- NOCONFLICTSCHECK_OPT, NEW_PRIMARY_OPT],
+ NOCONFLICTSCHECK_OPT, NEW_PRIMARY_OPT, HOTPLUG_OPT],
"<instance>", "Alters the parameters of an instance"),
"shutdown": (
GenericManyOps("shutdown", _ShutdownInstance), [ArgInstance()],
pure emptyJSObject <*> arbitrary <*> pure emptyJSObject <*>
arbitrary <*> genMaybe genNodeNameNE <*> genMaybe genNodeNameNE <*>
genMaybe genNameNE <*> pure emptyJSObject <*> arbitrary <*>
- arbitrary <*> arbitrary
+ arbitrary <*> arbitrary <*> arbitrary
"OP_INSTANCE_GROW_DISK" ->
OpCodes.OpInstanceGrowDisk <$> genFQDN <*> arbitrary <*>
arbitrary <*> arbitrary <*> arbitrary