Example #1
0
 def test_power_on_instance_with_exception(self):
     session = fake.FakeSession()
     fake_instance = mock.MagicMock()
     with contextlib.nested(
         mock.patch.object(session, "_call_method",
                           return_value='fake-task'),
         mock.patch.object(session, "_wait_for_task",
                           side_effect=exception.NovaException('fake')),
     ) as (fake_call_method, fake_wait_for_task):
         self.assertRaises(exception.NovaException,
                           vm_util.power_on_instance,
                           session, fake_instance,
                           vm_ref='fake-vm-ref')
         fake_call_method.assert_called_once_with(session.vim,
                                                  "PowerOnVM_Task",
                                                  'fake-vm-ref')
         fake_wait_for_task.assert_called_once_with('fake-task')
Example #2
0
 def test_power_on_instance_without_vm_ref(self):
     session = fake.FakeSession()
     fake_instance = mock.MagicMock()
     with contextlib.nested(
             mock.patch.object(vm_util,
                               "get_vm_ref",
                               return_value='fake-vm-ref'),
             mock.patch.object(session,
                               "_call_method",
                               return_value='fake-task'),
             mock.patch.object(session, "_wait_for_task"),
     ) as (fake_get_vm_ref, fake_call_method, fake_wait_for_task):
         vm_util.power_on_instance(session, fake_instance)
         fake_get_vm_ref.assert_called_once_with(session, fake_instance)
         fake_call_method.assert_called_once_with(session._get_vim(),
                                                  "PowerOnVM_Task",
                                                  'fake-vm-ref')
         fake_wait_for_task.assert_called_once_with('fake-task')
Example #3
0
 def test_power_off_instance_power_state_exception(self, fake_get_ref):
     session = fake.FakeSession()
     fake_instance = mock.MagicMock()
     with contextlib.nested(
             mock.patch.object(session,
                               '_call_method',
                               return_value='fake-task'),
             mock.patch.object(
                 session,
                 '_wait_for_task',
                 side_effect=error_util.InvalidPowerStateException)) as (
                     fake_call_method, fake_wait_for_task):
         vm_util.power_off_instance(session, fake_instance, 'fake-vm-ref')
         fake_call_method.assert_called_once_with(session._get_vim(),
                                                  "PowerOffVM_Task",
                                                  'fake-vm-ref')
         fake_wait_for_task.assert_called_once_with('fake-task')
         self.assertFalse(fake_get_ref.called)
Example #4
0
 def test_copy_virtual_disk(self):
     session = fake.FakeSession()
     dm = session._get_vim().service_content.virtualDiskManager
     with contextlib.nested(
         mock.patch.object(session, "_call_method",
                           return_value='fake-task'),
         mock.patch.object(session, "_wait_for_task"),
     ) as (fake_call_method, fake_wait_for_task):
         vm_util.copy_virtual_disk(session, 'fake-dc-ref',
                                   'fake-source', 'fake-dest')
         fake_call_method.assert_called_once_with(
                 session._get_vim(),
                 "CopyVirtualDisk_Task",
                 dm,
                 sourceName='fake-source',
                 sourceDatacenter='fake-dc-ref',
                 destName='fake-dest')
         fake_wait_for_task.assert_called_once_with('fake-task')
Example #5
0
 def test_power_on_instance_with_power_state_exception(self):
     session = fake.FakeSession()
     fake_instance = mock.MagicMock()
     with contextlib.nested(
             mock.patch.object(session,
                               "_call_method",
                               return_value='fake-task'),
             mock.patch.object(session,
                               "_wait_for_task",
                               side_effect=vexc.InvalidPowerStateException),
     ) as (fake_call_method, fake_wait_for_task):
         vm_util.power_on_instance(session,
                                   fake_instance,
                                   vm_ref='fake-vm-ref')
         fake_call_method.assert_called_once_with(session._get_vim(),
                                                  "PowerOnVM_Task",
                                                  'fake-vm-ref')
         fake_wait_for_task.assert_called_once_with('fake-task')
Example #6
0
    def test_create_vm(self):

        method_list = ['CreateVM_Task', 'get_dynamic_property']

        def fake_call_method(module, method, *args, **kwargs):
            expected_method = method_list.pop(0)
            self.assertEqual(expected_method, method)
            if (expected_method == 'CreateVM_Task'):
                return 'fake_create_vm_task'
            elif (expected_method == 'get_dynamic_property'):
                task_info = mock.Mock(state="success", result="fake_vm_ref")
                return task_info
            else:
                self.fail('Should not get here....')

        def fake_wait_for_task(self, *args):
            task_info = mock.Mock(state="success", result="fake_vm_ref")
            return task_info

        session = fake.FakeSession()
        fake_instance = mock.MagicMock()
        fake_call_mock = mock.Mock(side_effect=fake_call_method)
        fake_wait_mock = mock.Mock(side_effect=fake_wait_for_task)
        with contextlib.nested(
                mock.patch.object(session, '_wait_for_task',
                                  fake_wait_mock),
                mock.patch.object(session, '_call_method',
                                  fake_call_mock)
        ) as (wait_for_task, call_method):
            vm_ref = vm_util.create_vm(
                session,
                fake_instance,
                'fake_vm_folder',
                'fake_config_spec',
                'fake_res_pool_ref')
            self.assertEqual('fake_vm_ref', vm_ref)

            call_method.assert_called_once_with(mock.ANY, 'CreateVM_Task',
                'fake_vm_folder', config='fake_config_spec',
                pool='fake_res_pool_ref')
            wait_for_task.assert_called_once_with('fake_create_vm_task')
Example #7
0
    def setUp(self):
        super(VMwareVifTestCase, self).setUp()
        self.flags(vlan_interface='vmnet0', group='vmware')
        network = network_model.Network(id=0,
                                        bridge='fa0',
                                        label='fake',
                                        vlan=3,
                                        bridge_interface='eth0',
                                        injected=True)

        self.vif = network_model.NetworkInfo([
            network_model.VIF(id=None,
                              address='DE:AD:BE:EF:00:00',
                              network=network,
                              type=None,
                              devname=None,
                              ovs_interfaceid=None,
                              rxtx_cap=3)
        ])[0]
        self.session = fake.FakeSession()
        self.cluster = None
Example #8
0
 def setUp(self):
     super(DsUtilTestCase, self).setUp()
     self.session = fake.FakeSession()
     self.flags(api_retry_count=1, group='vmware')
     fake.reset()
Example #9
0
    def _test_get_stats_from_cluster(self,
                                     connection_state="connected",
                                     maintenance_mode=False):
        ManagedObjectRefs = [
            fake.ManagedObjectReference("host1", "HostSystem"),
            fake.ManagedObjectReference("host2", "HostSystem")
        ]
        hosts = fake._convert_to_array_of_mor(ManagedObjectRefs)
        respool = fake.ManagedObjectReference("resgroup-11", "ResourcePool")
        prop_dict = {'host': hosts, 'resourcePool': respool}

        hardware = fake.DataObject()
        hardware.numCpuCores = 8
        hardware.numCpuThreads = 16
        hardware.vendor = "Intel"
        hardware.cpuModel = "Intel(R) Xeon(R)"

        runtime_host_1 = fake.DataObject()
        runtime_host_1.connectionState = "connected"
        runtime_host_1.inMaintenanceMode = False

        runtime_host_2 = fake.DataObject()
        runtime_host_2.connectionState = connection_state
        runtime_host_2.inMaintenanceMode = maintenance_mode

        prop_list_host_1 = [
            fake.Prop(name="hardware_summary", val=hardware),
            fake.Prop(name="runtime_summary", val=runtime_host_1)
        ]
        prop_list_host_2 = [
            fake.Prop(name="hardware_summary", val=hardware),
            fake.Prop(name="runtime_summary", val=runtime_host_2)
        ]

        fake_objects = fake.FakeRetrieveResult()
        fake_objects.add_object(
            fake.ObjectContent("prop_list_host1", prop_list_host_1))
        fake_objects.add_object(
            fake.ObjectContent("prop_list_host1", prop_list_host_2))

        respool_resource_usage = fake.DataObject()
        respool_resource_usage.maxUsage = 5368709120
        respool_resource_usage.overallUsage = 2147483648

        def fake_call_method(*args):
            if "get_dynamic_properties" in args:
                return prop_dict
            elif "get_properties_for_a_collection_of_objects" in args:
                return fake_objects
            else:
                return respool_resource_usage

        session = fake.FakeSession()
        with mock.patch.object(session, '_call_method', fake_call_method):
            result = vm_util.get_stats_from_cluster(session, "cluster1")
            cpu_info = {}
            mem_info = {}
            if connection_state == "connected" and not maintenance_mode:
                cpu_info['vcpus'] = 32
                cpu_info['cores'] = 16
                cpu_info['vendor'] = ["Intel", "Intel"]
                cpu_info['model'] = ["Intel(R) Xeon(R)", "Intel(R) Xeon(R)"]
            else:
                cpu_info['vcpus'] = 16
                cpu_info['cores'] = 8
                cpu_info['vendor'] = ["Intel"]
                cpu_info['model'] = ["Intel(R) Xeon(R)"]
            mem_info['total'] = 5120
            mem_info['free'] = 3072
            expected_stats = {'cpu': cpu_info, 'mem': mem_info}
            self.assertEqual(expected_stats, result)