Example #1
0
    def setUp(self):
        super(OVSvAppVMOpsTestCase, self).setUp()
        fake_ds_ref = vmwareapi_fake.ManagedObjectReference('fake-ds')
        vmwareapi_fake.reset()
        cluster = vmwareapi_fake.create_cluster('fake_cluster', fake_ds_ref)
        self.flags(enabled=True, group='vnc')
        self.flags(image_cache_subdirectory_name='vmware_base',
                   my_ip='',
                   flat_injected=True)
        self._context = context.RequestContext('fake_user', 'fake_project')
        self._session = driver.VMwareAPISession()

        self._virtapi = mock.Mock()
        self._image_id = nova.tests.unit.image.fake.get_valid_image_id()
        self._instance_values = {
            'name': 'fake_name',
            'display_name': 'fake_display_name',
            'uuid': self._uuid,
            'vcpus': 1,
            'memory_mb': 512,
            'image_ref': self._image_id,
            'root_gb': 10,
            'node': '%s(%s)' % (cluster.mo_id, cluster.name),
            'expected_attrs': ['system_metadata'],
        }
        self._instance = fake_instance.fake_instance_obj(
            self._context, **self._instance_values)
        self._image_meta = objects.ImageMeta.from_dict({'id': self._image_id})
        self._flavor = objects.Flavor(name='m1.small', memory_mb=512, vcpus=1,
                                      root_gb=10, ephemeral_gb=0, swap=0,
                                      extra_specs={})
        self._instance.flavor = self._flavor
        self._vmops = ovsvapp_vmops.OVSvAppVMOps(self._session, self._virtapi,
                                                 None, cluster=cluster.obj)
Example #2
0
    def test_list_base_images(self):
        def fake_get_dynamic_property(vim, mobj, type, property_name):
            return 'fake-ds-browser'

        def fake_get_sub_folders(session, ds_browser, ds_path):
            files = set()
            files.add('image-ref-uuid')
            return files

        with contextlib.nested(
                mock.patch.object(vim_util, 'get_dynamic_property',
                                  fake_get_dynamic_property),
                mock.patch.object(ds_util, 'get_sub_folders',
                                  fake_get_sub_folders)) as (_get_dynamic,
                                                             _get_sub_folders):
            fake_ds_ref = fake.ManagedObjectReference('fake-ds-ref')
            datastore = ds_obj.Datastore(name='ds', ref=fake_ds_ref)
            ds_path = datastore.build_path('base_folder')
            images = self._imagecache._list_datastore_images(
                ds_path, datastore)
            originals = set()
            originals.add('image-ref-uuid')
            self.assertEqual({
                'originals': originals,
                'unexplained_images': []
            }, images)
Example #3
0
 def test_get_volume_uuid_not_found(self):
     vm_ref = vmwareapi_fake.ManagedObjectReference('VirtualMachine',
                                                    'vm-134')
     uuid = '1234'
     fake_call = self._fake_call_get_object_property(uuid, None)
     with mock.patch.object(self._session, "_call_method", fake_call):
         val = self._volumeops._get_volume_uuid(vm_ref, uuid)
         self.assertIsNone(val)
Example #4
0
 def test_get_volume_uuid(self):
     vm_ref = vmwareapi_fake.ManagedObjectReference('VirtualMachine',
                                                    'vm-134')
     uuid = '1234'
     opt_val = vmwareapi_fake.OptionValue('volume-%s' % uuid, 'volume-val')
     fake_call = self._fake_call_get_object_property(uuid, opt_val)
     with mock.patch.object(self._session, "_call_method", fake_call):
         val = self._volumeops._get_volume_uuid(vm_ref, uuid)
         self.assertEqual('volume-val', val)
Example #5
0
 def test_get_ds_browser(self):
     cache = self._imagecache._ds_browser
     ds_browser = mock.Mock()
     moref = fake.ManagedObjectReference('datastore-100')
     self.assertIsNone(cache.get(moref.value))
     mock_get_method = mock.Mock(return_value=ds_browser)
     with mock.patch.object(vutil, 'get_object_property', mock_get_method):
         ret = self._imagecache._get_ds_browser(moref)
         mock_get_method.assert_called_once_with(mock.ANY, moref, 'browser')
         self.assertIs(ds_browser, ret)
         self.assertIs(ds_browser, cache.get(moref.value))
Example #6
0
    def test_get_connected_hosts(self):
        host = fake.ManagedObjectReference(value='fake-host',
                                           name='HostSystem')
        host_mount = mock.Mock(spec=object)
        host_mount.key = host
        host_mounts = mock.Mock(spec=object)
        host_mounts.DatastoreHostMount = [host_mount]

        with mock.patch.object(self.session,
                               '_call_method',
                               return_value=host_mounts) as _call_method:
            hosts = ds_util.get_connected_hosts(self.session, 'fake_datastore')
            self.assertEqual(['fake-host'], hosts)
            _call_method.assert_called_once_with(mock.ANY,
                                                 'get_object_property',
                                                 'fake_datastore', 'host')
Example #7
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)
Example #8
0
 def __init__(self, ref=None):
     super(FakeStableMoRefProxy, self).__init__(
         ref or
         vmwareapi_fake.ManagedObjectReference(value=mock.sentinel.moref))
Example #9
0
def _fake_fetch_moref_impl(inst, _):
    inst.moref = vmwareapi_fake.ManagedObjectReference(
        value=mock.sentinel.moref2)