(opts.default_hypervisor, hvlist))
return 1
- hvparams = opts.hvparams
- if hvparams:
- # a list of (name, dict) we can pass directly to dict()
- hvparams = dict(opts.hvparams)
- else:
- # otherwise init as empty dict
- hvparams = {}
+ hvparams = dict(opts.hvparams)
beparams = opts.beparams
# check for invalid parameters
for parameter in constants.BES_PARAMETERS:
if parameter not in beparams:
beparams[parameter] = constants.BEC_DEFAULTS[parameter]
-
- # type wrangling
- try:
- beparams[constants.BE_VCPUS] = int(beparams[constants.BE_VCPUS])
- except ValueError:
- ToStderr("%s must be an integer", constants.BE_VCPUS)
- return 1
-
- if not isinstance(beparams[constants.BE_MEMORY], int):
- beparams[constants.BE_MEMORY] = utils.ParseUnit(
- beparams[constants.BE_MEMORY])
+ utils.ForceDictType(beparams, constants.BES_PARAMETER_TYPES)
# prepare hvparams dict
for hv in constants.HYPER_TYPES:
for parameter in constants.HVC_DEFAULTS[hv]:
if parameter not in hvparams[hv]:
hvparams[hv][parameter] = constants.HVC_DEFAULTS[hv][parameter]
+ utils.ForceDictType(hvparams[hv], constants.HVS_PARAMETER_TYPES)
for hv in hvlist:
if hv not in constants.HYPER_TYPES:
@return: the desired exit code
"""
- op = opcodes.OpRedistributeConf()
+ op = opcodes.OpRedistributeConfig()
SubmitOrSend(op, opts)
return 0
@return: the desired exit code
"""
- op = opcodes.OpQueryClusterInfo()
- result = SubmitOpCode(op)
+ cl = GetClient()
+ result = cl.QueryClusterInfo()
ToStdout("Software version: %s", result["software_version"])
ToStdout("Internode protocol: %s", result["protocol_version"])
ToStdout("Configuration format: %s", result["config_version"])
@return: the desired exit code
"""
- ToStdout("%s", GetClient().QueryConfigValues(["master_node"])[0])
+ master = bootstrap.GetMaster()
+ ToStdout(master)
return 0
@return: the desired exit code
"""
- op = opcodes.OpQueryClusterInfo()
- result = SubmitOpCode(op)
+ cl = GetClient()
+ result = cl.QueryClusterInfo()
ToStdout("Cluster name: %s", result["name"])
ToStdout("Cluster parameters:")
ToStdout(" - candidate pool size: %s", result["candidate_pool_size"])
+ ToStdout(" - master netdev: %s", result["master_netdev"])
+ ToStdout(" - default bridge: %s", result["default_bridge"])
+ ToStdout(" - lvm volume group: %s", result["volume_group_name"])
+ ToStdout(" - file storage path: %s", result["file_storage_dir"])
ToStdout("Default instance parameters:")
for gr_name, gr_dict in result["beparams"].items():
if hvlist is not None:
hvlist = hvlist.split(",")
- hvparams = opts.hvparams
- if hvparams:
- # a list of (name, dict) we can pass directly to dict()
- hvparams = dict(opts.hvparams)
+ # a list of (name, dict) we can pass directly to dict() (or [])
+ hvparams = dict(opts.hvparams)
+ for hv, hv_params in hvparams.iteritems():
+ utils.ForceDictType(hv_params, constants.HVS_PARAMETER_TYPES)
beparams = opts.beparams
+ utils.ForceDictType(beparams, constants.BES_PARAMETER_TYPES)
op = opcodes.OpSetClusterParams(vg_name=opts.vg_name,
enabled_hypervisors=hvlist,
else:
val = "unset"
ToStdout("The drain flag is %s" % val)
+ else:
+ raise errors.OpPrereqError("Command '%s' is not valid." % command)
+
return 0
# this is an option common to more than one command, so we declare