def build_virtual_machine(self, instance, instance_name, image_info, dc_info, datastore, network_info, pg_vlan_instance_map): 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) vif_infos = vmwarevif.get_vif_info(self._session, self._cluster, utils.is_neutron(), image_info.vif_model, network_info, pg_vlan_instance_map) allocations = self._get_cpu_allocations(instance.instance_type_id) # Get the create vm config spec client_factory = self._session._get_vim().client.factory config_spec = vm_util.get_vm_create_spec(client_factory, instance, instance_name, datastore.name, vif_infos, image_info.os_type, allocations=allocations) # Create the VM vm_ref = vm_util.create_vm(self._session, instance, dc_info.vmFolder, config_spec, res_pool_ref) return vm_ref
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')
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_session() 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")