示例#1
0
  def BurnMigrate(self):
    """Migrate the instances."""
    Log("Migrating instances")
    for instance in self.instances:
      Log("instance %s", instance, indent=1)
      op1 = opcodes.OpInstanceMigrate(instance_name=instance, mode=None,
                                      cleanup=False)

      op2 = opcodes.OpInstanceMigrate(instance_name=instance, mode=None,
                                      cleanup=True)
      Log("migration and migration cleanup", indent=2)
      self.ExecOrQueue(instance, [op1, op2])
  def setUp(self):
    super(TestLUInstanceMigrate, self).setUp()

    self.snode = self.cfg.AddNewNode()

    self._ResetRPC()

    self.inst = self.cfg.AddNewInstance(disk_template=constants.DT_DRBD8,
                                        admin_state=constants.ADMINST_UP,
                                        secondary_node=self.snode)
    self.op = opcodes.OpInstanceMigrate(instance_name=self.inst.name)
示例#3
0
    def testTinySummary(self):
        self.assertFalse(
            utils.FindDuplicates(opcodes_base.SUMMARY_PREFIX.values()))
        self.assertTrue(
            compat.all(
                prefix.endswith("_") and supplement.endswith("_")
                for (prefix,
                     supplement) in opcodes_base.SUMMARY_PREFIX.items()))

        self.assertEqual(opcodes.OpClusterPostInit().TinySummary(),
                         "C_POST_INIT")
        self.assertEqual(opcodes.OpNodeRemove().TinySummary(), "N_REMOVE")
        self.assertEqual(opcodes.OpInstanceMigrate().TinySummary(),
                         "I_MIGRATE")
        self.assertEqual(opcodes.OpTestJqueue().TinySummary(), "TEST_JQUEUE")
示例#4
0
  def setUp(self):
    super(TestLUInstanceMigrate, self).setUp()

    self.snode = self.cfg.AddNewNode()

    hv_info = ("bootid",
               [{
                 "type": constants.ST_LVM_VG,
                 "storage_free": 10000
               }],
               ({"memory_free": 10000}, ))
    self.rpc.call_node_info.return_value = \
      self.RpcResultsBuilder() \
        .AddSuccessfulNode(self.master, hv_info) \
        .AddSuccessfulNode(self.snode, hv_info) \
        .Build()

    self.rpc.call_blockdev_find.return_value = \
      self.RpcResultsBuilder() \
        .CreateSuccessfulNodeResult(self.master, objects.BlockDevStatus())

    self.rpc.call_migration_info.return_value = \
      self.RpcResultsBuilder() \
        .CreateSuccessfulNodeResult(self.master, True)
    self.rpc.call_accept_instance.return_value = \
      self.RpcResultsBuilder() \
        .CreateSuccessfulNodeResult(self.snode, True)
    self.rpc.call_instance_migrate.return_value = \
      self.RpcResultsBuilder() \
        .CreateSuccessfulNodeResult(self.master, True)
    self.rpc.call_instance_get_migration_status.return_value = \
      self.RpcResultsBuilder() \
        .CreateSuccessfulNodeResult(self.master, objects.MigrationStatus())
    self.rpc.call_instance_finalize_migration_dst.return_value = \
      self.RpcResultsBuilder() \
        .CreateSuccessfulNodeResult(self.snode, True)
    self.rpc.call_instance_finalize_migration_src.return_value = \
      self.RpcResultsBuilder() \
        .CreateSuccessfulNodeResult(self.master, True)

    self.inst = self.cfg.AddNewInstance(disk_template=constants.DT_DRBD8,
                                        admin_state=constants.ADMINST_UP,
                                        secondary_node=self.snode)
    self.op = opcodes.OpInstanceMigrate(instance_name=self.inst.name)
    def testSuccess(self):
        for moved in [[],
                      [
                          ("inst20153.example.com", "grp2",
                           ["nodeA4509", "nodeB2912"]),
                      ]]:
            for early_release in [False, True]:
                for use_nodes in [False, True]:
                    jobs = [
                        [opcodes.OpInstanceReplaceDisks().__getstate__()],
                        [opcodes.OpInstanceMigrate().__getstate__()],
                    ]

                    alloc_result = (moved, [], jobs)
                    assert iallocator._NEVAC_RESULT(alloc_result)

                    lu = _FakeLU()
                    result = common.LoadNodeEvacResult(lu, alloc_result,
                                                       early_release,
                                                       use_nodes)

                    if moved:
                        (_, (info_args, )) = lu.info_log.pop(0)
                        for (instname, instgroup, instnodes) in moved:
                            self.assertTrue(instname in info_args)
                            if use_nodes:
                                for i in instnodes:
                                    self.assertTrue(i in info_args)
                            else:
                                self.assertTrue(instgroup in info_args)

                    self.assertFalse(lu.info_log)
                    self.assertFalse(lu.warning_log)

                    for op in itertools.chain(*result):
                        if hasattr(op.__class__, "early_release"):
                            self.assertEqual(op.early_release, early_release)
                        else:
                            self.assertFalse(hasattr(op, "early_release"))