コード例 #1
0
ファイル: test_driver.py プロジェクト: gpanda/powervc-driver
 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))
コード例 #2
0
ファイル: test_driver.py プロジェクト: gpanda/powervc-driver
 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)
コード例 #3
0
 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)
コード例 #4
0
 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)
コード例 #5
0
ファイル: test_driver.py プロジェクト: gpanda/powervc-driver
    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)
コード例 #6
0
ファイル: test_driver.py プロジェクト: gpanda/powervc-driver
 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))
コード例 #7
0
    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)
コード例 #8
0
 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))
コード例 #9
0
    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
コード例 #10
0
 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)
コード例 #11
0
    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()