Test a detach/attach sequence with a DRBD disk and a different primary node for the disk and the instance. This should raise an exception.
Signed-off-by: Lisa Velden <[email protected]> --- test/py/cmdlib/instance_unittest.py | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/test/py/cmdlib/instance_unittest.py b/test/py/cmdlib/instance_unittest.py index 3c328dd..1a4a45b 100644 --- a/test/py/cmdlib/instance_unittest.py +++ b/test/py/cmdlib/instance_unittest.py @@ -2968,6 +2968,44 @@ class TestLUInstanceSetParams(CmdlibTestCase): self.ExecOpCode(op) self.assertEqual([disk], self.cfg.GetInstanceDisks(inst.uuid)) + def testDetachAttachDrbdDiskWithWrongPrimaryNode(self): + """Check if disk attachment with a wrong primary node fails. + + """ + disk1 = self.cfg.CreateDisk(uuid=self.mocked_disk_uuid, + primary_node=self.master.uuid, + secondary_node=self.snode.uuid, + dev_type=constants.DT_DRBD8) + + inst1 = self.cfg.AddNewInstance(disks=[disk1], primary_node=self.master, + secondary_node=self.snode) + + op = self.CopyOpCode(self.op, + instance_name=inst1.name, + disks=[[constants.DDM_DETACH, + self.mocked_disk_uuid, {}]]) + + self.ExecOpCode(op) + self.assertEqual([], self.cfg.GetInstanceDisks(inst1.uuid)) + + disk2 = self.cfg.CreateDisk(uuid="mock_uuid_1135", + primary_node=self.snode.uuid, + secondary_node=self.master.uuid, + dev_type=constants.DT_DRBD8) + + inst2 = self.cfg.AddNewInstance(disks=[disk2], primary_node=self.snode, + secondary_node=self.master) + + op = self.CopyOpCode(self.op, + instance_name=inst2.name, + disks=[[constants.DDM_ATTACH, 0, + { + 'uuid': self.mocked_disk_uuid + }]]) + + self.assertRaises(errors.OpExecError, self.ExecOpCode, op) + + def testDetachAttachExtDisk(self): """Check attach/detach functionality of ExtStorage disks. -- 2.6.0.rc2.230.g3dd15c0
