Ejemplo n.º 1
0
 def test_get_datastore_ref_and_name_with_regex(self):
     # Test with a regex that matches with a datastore
     datastore_valid_regex = re.compile("^openstack.*\d$")
     fake_objects = fake.FakeRetrieveResult()
     fake_objects.add_object(fake.Datastore("openstack-ds0"))
     fake_objects.add_object(fake.Datastore("fake-ds0"))
     fake_objects.add_object(fake.Datastore("fake-ds1"))
     result = vm_util.get_datastore_ref_and_name(
         fake_session(fake_objects), None, None, datastore_valid_regex)
     self.assertEqual("openstack-ds0", result[1])
Ejemplo n.º 2
0
 def test_get_datastore_ref_and_name_with_list(self):
     # Test with a regex containing whitelist of datastores
     datastore_valid_regex = re.compile("(openstack-ds0|openstack-ds2)")
     fake_objects = fake.FakeRetrieveResult()
     fake_objects.add_object(fake.Datastore("openstack-ds0"))
     fake_objects.add_object(fake.Datastore("openstack-ds1"))
     fake_objects.add_object(fake.Datastore("openstack-ds2"))
     result = vm_util.get_datastore_ref_and_name(
         fake_session(fake_objects), None, None, datastore_valid_regex)
     self.assertNotEquals("openstack-ds1", result[1])
Ejemplo n.º 3
0
 def test_get_datastore_ref_and_name_with_token(self):
     regex = re.compile("^ds.*\d$")
     fake0 = fake.FakeRetrieveResult()
     fake0.add_object(fake.Datastore("ds0", 10 * units.Gi, 5 * units.Gi))
     fake0.add_object(fake.Datastore("foo", 10 * units.Gi, 9 * units.Gi))
     setattr(fake0, 'token', 'token-0')
     fake1 = fake.FakeRetrieveResult()
     fake1.add_object(fake.Datastore("ds2", 10 * units.Gi, 8 * units.Gi))
     fake1.add_object(fake.Datastore("ds3", 10 * units.Gi, 1 * units.Gi))
     result = vm_util.get_datastore_ref_and_name(fake_session(fake0, fake1),
                                                 None, None, regex)
     self.assertEqual("ds2", result[1])
Ejemplo n.º 4
0
    def test_get_datastore_ref_and_name(self):
        result = vm_util.get_datastore_ref_and_name(
            fake_session([fake.Datastore()]))

        self.assertEquals(result[1], "fake-ds")
        self.assertEquals(result[2], 1024 * 1024 * 1024)
        self.assertEquals(result[3], 1024 * 1024 * 500)
Ejemplo n.º 5
0
    def test_get_datastore_ref_and_name(self):
        fake_objects = fake.FakeRetrieveResult()
        fake_objects.add_object(fake.Datastore())
        result = vm_util.get_datastore_ref_and_name(fake_session(fake_objects))

        self.assertEqual(result[1], "fake-ds")
        self.assertEqual(result[2], units.Ti)
        self.assertEqual(result[3], 500 * units.Gi)
Ejemplo n.º 6
0
    def test_get_datastore(self):
        fake_objects = fake.FakeRetrieveResult()
        fake_objects.add_object(fake.Datastore())
        result = vm_util.get_datastore(fake_session(fake_objects))

        self.assertEqual("fake-ds", result.name)
        self.assertEqual(units.Ti, result.capacity)
        self.assertEqual(500 * units.Gi, result.freespace)
Ejemplo n.º 7
0
    def test_get_datastore_inaccessible_ds(self):
        data_store = fake.Datastore()
        data_store.set("summary.accessible", False)

        fake_objects = fake.FakeRetrieveResult()
        fake_objects.add_object(data_store)

        self.assertRaises(exception.DatastoreNotFound, vm_util.get_datastore,
                          fake_session(fake_objects))
Ejemplo n.º 8
0
 def test_get_datastore_with_regex_error(self):
     # Test with a regex that has no match
     # Checks if code raises DatastoreNotFound with a specific message
     datastore_invalid_regex = re.compile("unknown-ds")
     exp_message = (_("Datastore regex %s did not match any datastores") %
                    datastore_invalid_regex.pattern)
     fake_objects = fake.FakeRetrieveResult()
     fake_objects.add_object(fake.Datastore("fake-ds0"))
     fake_objects.add_object(fake.Datastore("fake-ds1"))
     # assertRaisesRegExp would have been a good choice instead of
     # try/catch block, but it's available only from Py 2.7.
     try:
         vm_util.get_datastore(fake_session(fake_objects), None, None,
                               datastore_invalid_regex)
     except exception.DatastoreNotFound as e:
         self.assertEqual(exp_message, e.args[0])
     else:
         self.fail("DatastoreNotFound Exception was not raised with "
                   "message: %s" % exp_message)
Ejemplo n.º 9
0
    def test_get_cdrom_attach_config_spec(self):

        result = vm_util.get_cdrom_attach_config_spec(fake.FakeFactory(),
                                             fake.Datastore(),
                                             "/tmp/foo.iso",
                                             0)
        expected = """{
    'deviceChange': [
        {
            'device': {
                'connectable': {
                    'allowGuestControl': False,
                    'startConnected': True,
                    'connected': True,
                    'obj_name': 'ns0: VirtualDeviceConnectInfo'
                },
                'backing': {
                    'datastore': {
                        "summary.type": "VMFS",
                        "summary.accessible":true,
                        "summary.name": "fake-ds",
                        "summary.capacity": 1099511627776,
                        "summary.freeSpace": 536870912000,
                        "browser": ""
                    },
                    'fileName': '/tmp/foo.iso',
                    'obj_name': 'ns0: VirtualCdromIsoBackingInfo'
                },
                'controllerKey': 200,
                'unitNumber': 0,
                'key': -1,
                'obj_name': 'ns0: VirtualCdrom'
            },
            'operation': 'add',
            'obj_name': 'ns0: VirtualDeviceConfigSpec'
        }
    ],
    'obj_name': 'ns0: VirtualMachineConfigSpec'
}
"""

        expected = re.sub(r'\s+', '', expected)
        result = re.sub(r'\s+', '', repr(result))
        self.assertEqual(expected, result)
Ejemplo n.º 10
0
    def test_get_stats_from_cluster(self):
        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_2 = fake.DataObject()
        runtime_host_2.connectionState = "disconnected"

        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))

        fake_datastores = fake.FakeRetrieveResult()
        fake_datastores.add_object(fake.Datastore("fake-ds0"))
        fake_datastores.add_object(fake.Datastore("fake-ds1"))

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

        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
            elif "get_dynamic_property" in args:
                return respool_resource_usage
            elif "get_inner_objects" in args:
                return fake_datastores

        with mock.patch.object(fake_session, '_call_method', fake_call_method):
            result = vm_util.get_stats_from_cluster(session, "cluster1")
            cpu_info = {}
            mem_info = {}
            disk_info = {}
            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
            disk_info['free'] = 1000
            disk_info['total'] = 2048
            expected_stats = {
                'cpu': cpu_info,
                'mem': mem_info,
                'disk': disk_info
            }
            self.assertEqual(expected_stats, result)