def AddGroup(opts, args): """Add a node group to the cluster. @param opts: the command line options selected by the user @type args: list @param args: a list of length 1 with the name of the group to create @rtype: int @return: the desired exit code """ ipolicy = CreateIPolicyFromOpts( minmax_ispecs=opts.ipolicy_bounds_specs, ipolicy_vcpu_ratio=opts.ipolicy_vcpu_ratio, ipolicy_spindle_ratio=opts.ipolicy_spindle_ratio, ipolicy_disk_templates=opts.ipolicy_disk_templates, group_ipolicy=True) (group_name, ) = args diskparams = dict(opts.diskparams) if opts.disk_state: disk_state = utils.FlatToDict(opts.disk_state) else: disk_state = {} hv_state = dict(opts.hv_state) op = opcodes.OpGroupAdd(group_name=group_name, ndparams=opts.ndparams, alloc_policy=opts.alloc_policy, diskparams=diskparams, ipolicy=ipolicy, hv_state=hv_state, disk_state=disk_state) SubmitOrSend(op, opts)
def testAddNewGroupInvalidDiskparams(self): diskparams = {constants.DT_RBD: {constants.LV_STRIPES: 1}} op = opcodes.OpGroupAdd(group_name="new_group", diskparams=diskparams) self.ExecOpCodeExpectOpPrereqError( op, "Provided option keys not supported")
def testAddNewGroupParams(self): ndparams = {constants.ND_EXCLUSIVE_STORAGE: True} hv_state = {constants.HT_FAKE: {constants.HVST_CPU_TOTAL: 8}} disk_state = { constants.DT_PLAIN: { "mock_vg": {constants.DS_DISK_TOTAL: 10} } } diskparams = {constants.DT_RBD: {constants.RBD_POOL: "mock_pool"}} ipolicy = constants.IPOLICY_DEFAULTS op = opcodes.OpGroupAdd(group_name="new_group", ndparams=ndparams, hv_state=hv_state, disk_state=disk_state, diskparams=diskparams, ipolicy=ipolicy) self.ExecOpCode(op) self.mcpu.assertLogIsEmpty()
def testAddNewGroupInvalidIPolic(self): ipolicy = {"invalid_key": "value"} op = opcodes.OpGroupAdd(group_name="new_group", ipolicy=ipolicy) self.ExecOpCodeExpectOpPrereqError(op, "Invalid keys in ipolicy")
def testAddNewGroup(self): op = opcodes.OpGroupAdd(group_name="new_group") self.ExecOpCode(op) self.mcpu.assertLogIsEmpty()
def testAddExistingGroup(self): self.cfg.AddNewNodeGroup(name="existing_group") op = opcodes.OpGroupAdd(group_name="existing_group") self.ExecOpCodeExpectOpPrereqError( op, "Desired group name 'existing_group' already exists")