def test__check_defer_placement(self): os_instance = FakeOSInstance() driver = self._driver os_instance.os_instance['metadata']['powervm:defer_placement'] = 'true' self.assertTrue(driver._check_defer_placement(os_instance)) os_instance.os_instance['metadata']['powervm:defer_placement'] = \ 'false' self.assertFalse(driver._check_defer_placement(os_instance)) #if the property is not presented del os_instance.os_instance['metadata']['powervm:defer_placement'] self.assertFalse(driver._check_defer_placement(os_instance))
def test_live_migrate_with_recover(self): os_instance = FakeOSInstance() pvc_instance = FakePVCInstance() service = self._driver._service service.get_instance = MagicMock(return_value=pvc_instance) dest_compute_info = FakeHostStat().stat os_instance.os_instance['metadata']['powervm:defer_placement'] = \ 'false' recover_method = MagicMock() post_method = MagicMock() service.live_migrate = MagicMock(side_effect=Exception("Error")) self.assertRaises(Exception, self._driver.live_migration, None, os_instance, dest_compute_info, post_method, recover_method) recover_method.assert_called_once_with(None, os_instance, dest_compute_info, False, None)
def test_check_can_live_migrate_destination_no_instance(self): os_instance = FakeOSInstance() service = self._driver._service service.get_instance = MagicMock(return_value=None) cclmd = self._driver.check_can_live_migrate_destination dest_compute_info = FakeHostStat().stat self.assertRaises(Invalid, cclmd, None, os_instance, None, dest_compute_info)
def test_live_migrate_with_defer(self): os_instance = FakeOSInstance() pvc_instance = FakePVCInstance() service = self._driver._service service.get_instance = MagicMock(return_value=pvc_instance) dest_compute_info = FakeHostStat().stat os_instance.os_instance['metadata']['powervm:defer_placement'] = 'true' recover_method = MagicMock() post_method = MagicMock() def change_host(server): server.__dict__["OS-EXT-SRV-ATTR:host"] = "dest_host_name" timer = threading.Timer(1, change_host, [pvcIns]) timer.start() self._driver.live_migration(None, os_instance, dest_compute_info, post_method, recover_method) timer.cancel() post_method.assert_called_once_with(None, os_instance, None, False, None)
def test_check_can_live_migrate_destination_defer_placement(self): os_instance = FakeOSInstance() pvc_instance = FakePVCInstance() service = self._driver._service service.get_instance = MagicMock(return_value=pvc_instance) cclmd = self._driver.check_can_live_migrate_destination dest_compute_info = FakeHostStat().stat service._is_live_migration_valid = MagicMock(return_value=True) os_instance.os_instance['metadata']['powervm:defer_placement'] = 'true' self.assertEquals(dest_compute_info, cclmd(None, os_instance, None, dest_compute_info)) os_instance.os_instance['metadata']['powervm:defer_placement'] = \ 'false' service.get_valid_destinations = MagicMock(return_value=[]) self.assertRaises(Invalid, cclmd, None, os_instance, None, dest_compute_info) service.get_valid_destinations = \ MagicMock(return_value=[driver_conf.get('host')]) self.assertEquals(dest_compute_info, cclmd(None, os_instance, None, dest_compute_info))
def setUp(self): """Prepare for this test fixture.""" super(TestGetInfo, self).setUp() # fake data self.os_instance = FakeOSInstance().os_instance self.pvc_instance = FakePVCInstance() # save before monkey patch pvcdrv_init_copy = PowerVCDriver.__init__ # monkey patch PowerVCDriver.__init__ = mock.MagicMock(return_value=None) self.pvc_drv = PowerVCDriver() # restore from monkey patch, no need to wait until tearDown PowerVCDriver.__init__ = pvcdrv_init_copy
def test_check_can_live_migrate_destination_disc_over_commit(self): os_instance = FakeOSInstance() pvc_instance = FakePVCInstance() service = self._driver._service service.get_instance = MagicMock(return_value=pvc_instance) cclmd = self._driver.check_can_live_migrate_destination dest_compute_info = FakeHostStat().stat service._is_live_migration_valid = MagicMock(return_value=True) self.assertRaises(mpcError, cclmd, None, os_instance, None, dest_compute_info, disk_over_commit=True)
def setUp(self): """ The method "setUp" is used to initialize the fake environment """ # Create an instance of Mox self.moxer = mox.Mox() # Create a fake OpenStack flavor object self.osflavor = FakeOSFlavor() # Create a fake OpenStack image object self.osimage = FakeOSImage() # Create a fake OpenStack instance object self.osinstance = FakeOSInstance() # Create a fake PowerVC flavor object self.pvcflavor = FakePVCFlavor() # Create a fake PowerVC image object self.pvcimage = FakePVCImage() # Create a fake PowerVC instance object self.pvcinstance = FakePVCInstance() self.ctx = FakeCTX() def init(self, compute_driver=None, *args, **kwargs): self.project_id = "ibm-default" self.scg_id = "storage connection group" self._staging_cache = StagingCache() def init_utils(self): pass def fake_get_id(self): return "" def fake_get_user_id(self): return "" PowerVCCloudManager.__init__ = init Utils.__init__ = init_utils Utils.get_local_staging_project_id = fake_get_id Utils.get_local_staging_user_id = fake_get_user_id self.PowerVCCloudManager = PowerVCCloudManager()