def test_multi_refresh_on_slaves_deactivate_error(self): vgName = "test_vg" sr_uuid = str(uuid.uuid4()) vdi_uuid = str(uuid.uuid4()) lv_name = 'test_lv' lock_ref = lvhdutil.NS_PREFIX_LVM + sr_uuid self.mock_lvmcache.deactivate.side_effect = util.CommandException( errno.EIO, 'activate') args = { "vgName": vgName, "action1": "activate", "uuid1": vdi_uuid, "ns1": lock_ref, "lvName1": lv_name, "action2": "refresh", "lvName2": lv_name, "action3": "deactivate", "uuid3": vdi_uuid, "ns3": lock_ref, "lvName3": lv_name } with self.assertRaises(util.CommandException): on_slave.multi(self.session, args) self.mock_lvmcache.activate.assert_called_once_with( lock_ref, vdi_uuid, lv_name, False) self.mock_lvmcache.activateNoRefcount.assert_called_once_with( lv_name, True) self.mock_lvmcache.deactivate.assert_called_once_with( lock_ref, vdi_uuid, lv_name, False)
def test_multi_rename_refresh_error(self, mock_refcount): vgName = "test_vg" old_name_lv = "old-lv-name" vdi_fileName = "test-vdi.vhd" origParentUuid = str(uuid.uuid4()) vdi_uuid = str(uuid.uuid4()) lock_ref = lvhdutil.NS_PREFIX_LVM + vdi_uuid self.mock_lvmcache.activateNoRefcount.side_effect = util.CommandException( errno.EIO, 'activate') args = { "vgName": vgName, "action1": "deactivateNoRefcount", "lvName1": old_name_lv, "action2": "refresh", "lvName2": vdi_fileName, "action3": "cleanupLockAndRefcount", "uuid3": origParentUuid, "ns3": lock_ref } with self.assertRaises(util.CommandException): on_slave.multi(self.session, args) self.mock_lvmcache.deactivateNoRefcount.assert_called_once_with( old_name_lv) self.assertEqual(0, mock_refcount.reset.call_count)
def test_multi_refresh_on_slaves(self): vgName = "test_vg" sr_uuid = str(uuid.uuid4()) vdi_uuid = str(uuid.uuid4()) lv_name = 'test_lv' lock_ref = lvhdutil.NS_PREFIX_LVM + sr_uuid args = { "vgName": vgName, "action1": "activate", "uuid1": vdi_uuid, "ns1": lock_ref, "lvName1": lv_name, "action2": "refresh", "lvName2": lv_name, "action3": "deactivate", "uuid3": vdi_uuid, "ns3": lock_ref, "lvName3": lv_name } on_slave.multi(self.session, args) self.mock_lvmcache.activate.assert_called_once_with( lock_ref, vdi_uuid, lv_name, False) self.mock_lvmcache.activateNoRefcount.assert_called_once_with( lv_name, True) self.mock_lvmcache.deactivate.assert_called_once_with( lock_ref, vdi_uuid, lv_name, False)
def test_multi_update_slave_rename(self, mock_refcount): vgName = "test_vg" old_name_lv = "old-lv-name" vdi_fileName = "test-vdi.vhd" origParentUuid = str(uuid.uuid4()) vdi_uuid = str(uuid.uuid4()) lock_ref = lvhdutil.NS_PREFIX_LVM + vdi_uuid args = { "vgName": vgName, "action1": "deactivateNoRefcount", "lvName1": old_name_lv, "action2": "refresh", "lvName2": vdi_fileName, "action3": "cleanupLockAndRefcount", "uuid3": origParentUuid, "ns3": lock_ref } on_slave.multi(self.session, args) self.mock_lvmcache.deactivateNoRefcount.assert_called_once_with( old_name_lv) self.mock_lvmcache.activateNoRefcount.assert_called_once_with( vdi_fileName, True) mock_refcount.reset.assert_called_once_with(origParentUuid, lock_ref)
def test_multi_undo_leaf_coalesce(self): vgName = "test_vg" sr_uuid = str(uuid.uuid4()) child_uuid = str(uuid.uuid4()) child_fileName = "child-vdi.vhd" parent_fileName = "parent-vdi.vhd" tmpName = lvhdutil.LV_PREFIX[vhdutil.VDI_TYPE_VHD] + \ self.TMP_RENAME_PREFIX + child_uuid args = { "vgName": vgName, "action1": "deactivateNoRefcount", "lvName1": tmpName, "action2": "deactivateNoRefcount", "lvName2": child_fileName, "action3": "refresh", "lvName3": child_fileName, "action4": "refresh", "lvName4": parent_fileName } on_slave.multi(self.session, args) self.mock_lvmcache.deactivateNoRefcount.assert_has_calls( [mock.call(tmpName), mock.call(child_fileName)]) self.mock_lvmcache.activateNoRefcount.assert_has_calls([ mock.call(child_fileName, True), mock.call(parent_fileName, True) ])
def test_multi_vdi_inactive(self, mock_refcount): vgName = "test_vg" sr_uuid = str(uuid.uuid4()) vdi_uuid = str(uuid.uuid4()) vdi_fileName = "test-vdi.vhd" lock_ref = lvhdutil.NS_PREFIX_LVM + sr_uuid args = { "vgName": vgName, "action1": "deactivateNoRefcount", "lvName1": vdi_fileName, "action2": "cleanupLockAndRefcount", "uuid2": vdi_uuid, "ns2": lock_ref } on_slave.multi(self.session, args) self.mock_lvmcache.deactivateNoRefcount.assert_called_once_with( vdi_fileName) mock_refcount.reset.assert_called_once_with(vdi_uuid, lock_ref)
def test_multi_bad_operation(self): args = {"vgName": 'test-vg', "action1": "bad_operation"} with self.assertRaises(util.SMException): on_slave.multi(self.session, args)