Merge "VMware: remove ESX support for getting resource pool"
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user