Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
  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")
Ejemplo n.º 3
0
  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()
Ejemplo n.º 4
0
    def testAddNewGroupInvalidIPolic(self):
        ipolicy = {"invalid_key": "value"}
        op = opcodes.OpGroupAdd(group_name="new_group", ipolicy=ipolicy)

        self.ExecOpCodeExpectOpPrereqError(op, "Invalid keys in ipolicy")
Ejemplo n.º 5
0
    def testAddNewGroup(self):
        op = opcodes.OpGroupAdd(group_name="new_group")

        self.ExecOpCode(op)

        self.mcpu.assertLogIsEmpty()
Ejemplo n.º 6
0
    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")