Merge "VMware: remove ESX support for getting resource pool"

This commit is contained in:
Jenkins
2014-11-20 12:11:43 +00:00
committed by Gerrit Code Review
4 changed files with 28 additions and 53 deletions
+1
View File
@@ -951,6 +951,7 @@ def create_cluster(name, ds_ref):
cluster._add_datastore(ds_ref)
cluster._add_root_resource_pool(create_res_pool())
_create_object('ClusterComputeResource', cluster)
return cluster
def create_vm(uuid=None, name=None,
+19 -21
View File
@@ -61,22 +61,7 @@ class VMwareVMOpsTestCase(test.NoDBTestCase):
self._session = driver.VMwareAPISession()
self._virtapi = mock.Mock()
self._vmops = vmops.VMwareVMOps(self._session, self._virtapi, None)
self._image_id = nova.tests.unit.image.fake.get_valid_image_id()
self._instance_values = {
'name': 'fake_name',
'uuid': 'fake_uuid',
'vcpus': 1,
'memory_mb': 512,
'image_ref': self._image_id,
'root_gb': 10,
'node': 'respool-1001(MyResPoolName)',
'expected_attrs': ['system_metadata'],
}
self._instance = fake_instance.fake_instance_obj(
self._context, **self._instance_values)
fake_ds_ref = vmwareapi_fake.ManagedObjectReference('fake-ds')
self._ds = ds_util.Datastore(
ref=fake_ds_ref, name='fake_ds',
@@ -85,6 +70,23 @@ class VMwareVMOpsTestCase(test.NoDBTestCase):
self._dc_info = vmops.DcInfo(
ref='fake_dc_ref', name='fake_dc',
vmFolder='fake_vm_folder')
cluster = vmwareapi_fake.create_cluster('fake_cluster', fake_ds_ref)
self._instance_values = {
'name': 'fake_name',
'uuid': 'fake_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._vmops = vmops.VMwareVMOps(self._session, self._virtapi, None,
cluster=cluster.obj)
self._cluster = cluster
subnet_4 = network_model.Subnet(cidr='192.168.0.1/24',
dns=[network_model.IP('192.168.0.1')],
@@ -760,8 +762,6 @@ class VMwareVMOpsTestCase(test.NoDBTestCase):
@mock.patch('nova.virt.vmwareapi.ds_util.get_datastore')
@mock.patch(
'nova.virt.vmwareapi.vmops.VMwareVMOps.get_datacenter_ref_and_name')
@mock.patch('nova.virt.vmwareapi.vm_util.get_mo_id_from_instance',
return_value='fake_node_mo_id')
@mock.patch('nova.virt.vmwareapi.vm_util.get_res_pool_ref',
return_value='fake_rp_ref')
@mock.patch('nova.virt.vmwareapi.vif.get_vif_info',
@@ -793,7 +793,6 @@ class VMwareVMOpsTestCase(test.NoDBTestCase):
mock_is_neutron,
mock_get_vif_info,
mock_get_res_pool_ref,
mock_get_mo_id_for_instance,
mock_get_datacenter_ref_and_name,
mock_get_datastore,
mock_configure_config_drive,
@@ -846,11 +845,10 @@ class VMwareVMOpsTestCase(test.NoDBTestCase):
self.assertEqual(expected_mkdir_calls, len(mock_mkdir.mock_calls))
mock_get_mo_id_for_instance.assert_called_once_with(self._instance)
mock_get_res_pool_ref.assert_called_once_with(
self._session, None, 'fake_node_mo_id')
self._session, self._cluster.obj)
mock_get_vif_info.assert_called_once_with(
self._session, None, False,
self._session, self._cluster.obj, False,
constants.DEFAULT_VIF_MODEL, network_info)
mock_get_create_spec.assert_called_once_with(
self._session.vim.client.factory,
+7 -30
View File
@@ -1057,25 +1057,14 @@ def get_vmdk_volume_disk(hardware_devices, path=None):
return device
def get_res_pool_ref(session, cluster, node_mo_id):
def get_res_pool_ref(session, cluster):
"""Get the resource pool."""
if cluster is None:
# With no cluster named, use the root resource pool.
results = session._call_method(vim_util, "get_objects",
"ResourcePool")
_cancel_retrieve_if_necessary(session, results)
# The 0th resource pool is always the root resource pool on both ESX
# and vCenter.
res_pool_ref = results.objects[0].obj
else:
if cluster.value == node_mo_id:
# Get the root resource pool of the cluster
res_pool_ref = session._call_method(vim_util,
"get_dynamic_property",
cluster,
"ClusterComputeResource",
"resourcePool")
# Get the root resource pool of the cluster
res_pool_ref = session._call_method(vim_util,
"get_dynamic_property",
cluster,
"ClusterComputeResource",
"resourcePool")
return res_pool_ref
@@ -1176,18 +1165,6 @@ def get_dict_mor(session, list_obj):
return dict_mors
def get_mo_id_from_instance(instance):
"""Return the managed object ID from the instance.
The instance['node'] will have the hypervisor_hostname field of the
compute node on which the instance exists or will be provisioned.
This will be of the form
'respool-1001(MyResPoolName)'
'domain-1001(MyClusterName)'
"""
return instance['node'].partition('(')[0]
def get_vmdk_adapter_type(adapter_type):
"""Return the adapter type to be used in vmdk descriptor.
+1 -2
View File
@@ -229,9 +229,8 @@ class VMwareVMOps(object):
def build_virtual_machine(self, instance, instance_name, image_info,
dc_info, datastore, network_info, flavor):
node_mo_id = vm_util.get_mo_id_from_instance(instance)
res_pool_ref = vm_util.get_res_pool_ref(self._session,
self._cluster, node_mo_id)
self._cluster)
vif_infos = vmwarevif.get_vif_info(self._session,
self._cluster,
utils.is_neutron(),