X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/b86a6bcd476e420269a24a9b3d6289bebba69442..5af3da74b7ecf4aa31ed8ddaad47bbf6c0953475:/scripts/gnt-cluster diff --git a/scripts/gnt-cluster b/scripts/gnt-cluster index 6ef9b62..f7f0bc3 100755 --- a/scripts/gnt-cluster +++ b/scripts/gnt-cluster @@ -34,6 +34,7 @@ from ganeti import errors from ganeti import utils from ganeti import bootstrap from ganeti import ssh +from ganeti import objects @UsesRPC @@ -70,27 +71,22 @@ def InitCluster(opts, args): return 1 hvparams = dict(opts.hvparams) - beparams = opts.beparams - # check for invalid parameters - for parameter in beparams: - if parameter not in constants.BES_PARAMETERS: - ToStderr("Invalid backend parameter: %s", parameter) - return 1 + nicparams = opts.nicparams # prepare beparams dict - for parameter in constants.BES_PARAMETERS: - if parameter not in beparams: - beparams[parameter] = constants.BEC_DEFAULTS[parameter] + beparams = objects.FillDict(constants.BEC_DEFAULTS, beparams) utils.ForceDictType(beparams, constants.BES_PARAMETER_TYPES) + # prepare nicparams dict + nicparams = objects.FillDict(constants.NICC_DEFAULTS, nicparams) + utils.ForceDictType(nicparams, constants.NICS_PARAMETER_TYPES) + # prepare hvparams dict for hv in constants.HYPER_TYPES: if hv not in hvparams: hvparams[hv] = {} - for parameter in constants.HVC_DEFAULTS[hv]: - if parameter not in hvparams[hv]: - hvparams[hv][parameter] = constants.HVC_DEFAULTS[hv][parameter] + hvparams[hv] = objects.FillDict(constants.HVC_DEFAULTS[hv], hvparams[hv]) utils.ForceDictType(hvparams[hv], constants.HVS_PARAMETER_TYPES) for hv in hvlist: @@ -109,6 +105,7 @@ def InitCluster(opts, args): default_hypervisor=opts.default_hypervisor, hvparams=hvparams, beparams=beparams, + nicparams=nicparams, candidate_pool_size=opts.candidate_pool_size, modify_etc_hosts=opts.modify_etc_hosts, ) @@ -460,7 +457,8 @@ def SetClusterParams(opts, args): """ if not (not opts.lvm_storage or opts.vg_name or opts.enabled_hypervisors or opts.hvparams or - opts.beparams or opts.candidate_pool_size is not None): + opts.beparams or opts.nicparams or + opts.candidate_pool_size is not None): ToStderr("Please give at least one of the parameters.") return 1 @@ -483,10 +481,14 @@ def SetClusterParams(opts, args): beparams = opts.beparams utils.ForceDictType(beparams, constants.BES_PARAMETER_TYPES) + nicparams = opts.nicparams + utils.ForceDictType(nicparams, constants.NICS_PARAMETER_TYPES) + op = opcodes.OpSetClusterParams(vg_name=vg_name, enabled_hypervisors=hvlist, hvparams=hvparams, beparams=beparams, + nicparams=nicparams, candidate_pool_size=opts.candidate_pool_size) SubmitOpCode(op) return 0 @@ -588,6 +590,9 @@ commands = { keyval_option("-B", "--backend-parameters", dest="beparams", type="keyval", default={}, help="Backend parameters"), + keyval_option("-N", "--nic-parameters", dest="nicparams", + type="keyval", default={}, + help="NIC parameters"), make_option("-C", "--candidate-pool-size", default=constants.MASTER_POOL_SIZE_DEFAULT, help="Set the candidate pool size", @@ -667,6 +672,9 @@ commands = { keyval_option("-B", "--backend-parameters", dest="beparams", type="keyval", default={}, help="Backend parameters"), + keyval_option("-N", "--nic-parameters", dest="nicparams", + type="keyval", default={}, + help="NIC parameters"), make_option("-C", "--candidate-pool-size", default=None, help="Set the candidate pool size", dest="candidate_pool_size", type="int"),