def test_refresh_ip_choose_ipv4(self): nic1 = Mock() nic1.network = 'A Network' nic1.ipAddress = ['192.168.1.1'] nic2 = Mock() nic2.network = 'A Network' nic2.ipAddress = ['2001:0db8:0a0b:12f0:0000:0000:0000:0001'] guest = Mock() guest.toolsStatus = 'toolsOk' guest.net = [nic1, nic2] vm = Mock() vm.guest = guest pyvmomi_service = Mock() pyvmomi_service.find_by_uuid = Mock(return_value=vm) ip_regex = self._create_custom_param('ip_regex', '') refresh_ip_timeout = self._create_custom_param('refresh_ip_timeout', '10') resource_instance = create_autospec(ResourceInfo) resource_instance.ResourceModelName = 'Generic Deployed App' resource_instance.ResourceAttributes = { 'vm_uuis': '123', 'cloud_provider': 'vCenter' } resource_instance.VmDetails = create_autospec(ResourceInfoVmDetails) resource_instance.VmDetails.VmCustomParams = [ ip_regex, refresh_ip_timeout ] refresh_ip_command = RefreshIpCommand(pyvmomi_service, ResourceModelParser(), Mock()) session = Mock() session.UpdateResourceAddress = Mock(return_value=True) session.GetResourceDetails = Mock(return_value=resource_instance) si = Mock() center_resource_model = VMwarevCenterResourceModel() center_resource_model.default_datacenter = 'QualiSB' center_resource_model.holding_network = 'anetwork' cancellation_context = Mock() # Act refresh_ip_command.refresh_ip( si=si, session=session, vcenter_data_model=center_resource_model, vm_uuid='machine1', resource_name='default_network', cancellation_context=cancellation_context, logger=Mock()) # Assert self.assertTrue( session.UpdateResourceAddress.called_with('machine1', '192.168.1.1'))
def test_refresh_ip_choose_ip_by_regex(self): nic1 = Mock() nic1.network = 'A Network' nic1.ipAddress = ['192.168.1.1'] nic2 = Mock() nic2.network = 'A Network' nic2.ipAddress = ['111.111.111.111'] guest = Mock() guest.toolsStatus = 'toolsOk' guest.net = [nic1, nic2] vm = Mock() vm.guest = guest pyvmomi_service = Mock() pyvmomi_service.find_by_uuid = Mock(return_value=vm) ip_regex = self._create_custom_param('ip_regex', '192\.168\..*') refresh_ip_timeout = self._create_custom_param('refresh_ip_timeout', '10') resource_model = create_autospec(GenericDeployedAppResourceModel) resource_model.fullname = 'Generic Deployed App' resource_model.vm_uuid = '123', resource_model.cloud_provider = 'vCenter' resource_model.vm_custom_params = [ip_regex, refresh_ip_timeout] refresh_ip_command = RefreshIpCommand(pyvmomi_service, ResourceModelParser(), Mock()) session = Mock() session.UpdateResourceAddress = Mock(return_value=True) session.GetResourceDetails = Mock(return_value=resource_model) si = Mock() center_resource_model = VMwarevCenterResourceModel() center_resource_model.default_datacenter = 'QualiSB' center_resource_model.holding_network = 'anetwork' cancellation_context = Mock() # Act refresh_ip_command.refresh_ip( si=si, session=session, vcenter_data_model=center_resource_model, resource_model=resource_model, cancellation_context=cancellation_context, logger=Mock(), app_request_json=Mock()) # Assert self.assertTrue( session.UpdateResourceAddress.called_with('machine1', '192.168.1.1'))
def test_refresh_ip_choose_ipv4(self): nic1 = Mock() nic1.network = 'A Network' nic1.ipAddress = ['192.168.1.1'] nic2 = Mock() nic2.network = 'A Network' nic2.ipAddress = ['2001:0db8:0a0b:12f0:0000:0000:0000:0001'] guest = Mock() guest.toolsStatus = 'toolsOk' guest.net = [nic1, nic2] vm = Mock() vm.guest = guest pyvmomi_service = Mock() pyvmomi_service.find_by_uuid = Mock(return_value=vm) ip_regex = self._create_custom_param('ip_regex', '') refresh_ip_timeout = self._create_custom_param('refresh_ip_timeout', '10') resource_instance = create_autospec(ResourceInfo) resource_instance.ResourceModelName = 'Generic Deployed App' resource_instance.ResourceAttributes = {'vm_uuis': '123', 'cloud_provider': 'vCenter' } resource_instance.VmDetails = create_autospec(ResourceInfoVmDetails) resource_instance.VmDetails.VmCustomParams = [ip_regex, refresh_ip_timeout] refresh_ip_command = RefreshIpCommand(pyvmomi_service, ResourceModelParser(), Mock()) session = Mock() session.UpdateResourceAddress = Mock(return_value=True) session.GetResourceDetails = Mock(return_value=resource_instance) si = Mock() center_resource_model = VMwarevCenterResourceModel() center_resource_model.default_datacenter = 'QualiSB' center_resource_model.holding_network = 'anetwork' cancellation_context = Mock() # Act refresh_ip_command.refresh_ip( si=si, session=session, vcenter_data_model=center_resource_model, vm_uuid='machine1', resource_name='default_network', cancellation_context=cancellation_context, logger=Mock(), app_request_json=Mock()) # Assert self.assertTrue(session.UpdateResourceAddress.called_with('machine1', '192.168.1.1'))
def test_connection_detail_retriever(self): session = Mock() decrypted_password = Mock() decrypted_password.Value = 'decrypted password' session.DecryptPassword = Mock(return_value=decrypted_password) resource_context = Mock() resource_context.address = '192.168.1.1' vcenter_data_model = VMwarevCenterResourceModel() vcenter_data_model.user = '******' vcenter_data_model.password = '******' connection_details = ResourceConnectionDetailsRetriever.get_connection_details( session=session, vcenter_resource_model=vcenter_data_model, resource_context=resource_context) self.assertEqual(connection_details.host, '192.168.1.1') self.assertEqual(connection_details.username, 'uzer') self.assertEqual(connection_details.password, 'decrypted password')
def test_delete(self): # arrange uuid = 'uuid' network_name = 'network_name' network = Mock() network.name = network_name si = Mock() vm = Mock() vm.network = [network] connection_detail = Mock() connection_detail.host = Mock() connection_detail.username = Mock() connection_detail.password = Mock() connection_detail.port = Mock() pv_service = Mock() pv_service.connect = Mock(return_value=si) pv_service.find_by_uuid = Mock(return_value=vm) connector = VirtualSwitchToMachineDisconnectCommand( pv_service, Mock(), 'anetwork') vcenter_data_model = VMwarevCenterResourceModel() # act res = connector.disconnect(si=si, logger=Mock(), vcenter_data_model=vcenter_data_model, vm_uuid=uuid, network_name=network_name) # assert self.assertTrue( pv_service.connect.called_with(connection_detail.host, connection_detail.username, connection_detail.password, connection_detail.port)) self.assertTrue(pv_service.find_by_uuid.called_with(si, uuid)) self.assertTrue(res)
def test_delete_all(self): # arrange uuid = 'uuid' si = Mock() vm = Mock() connection_detail = Mock() connection_detail.host = Mock() connection_detail.username = Mock() connection_detail.password = Mock() connection_detail.port = Mock() pv_service = Mock() pv_service.connect = Mock(return_value=si) pv_service.find_by_uuid = Mock(return_value=vm) connector = VirtualSwitchToMachineDisconnectCommand( pv_service, Mock(), 'anetwork') # virtual_switch_to_machine_connector.remove_interfaces_from_vm = Mock(return_value=True) connector.get_network_by_name = lambda x, y: Mock() vcenter_data_model = VMwarevCenterResourceModel() # act res = connector.disconnect(si=si, logger=Mock(), vcenter_data_model=vcenter_data_model, vm_uuid=uuid, network_name=None, vm=None) # assert self.assertTrue( pv_service.connect.called_with(connection_detail.host, connection_detail.username, connection_detail.password, connection_detail.port)) self.assertTrue(pv_service.find_by_uuid.called_with(si, uuid)) # self.assertTrue(virtual_switch_to_machine_connector.remove_interfaces_from_vm.called_with(vm)) self.assertTrue(res)
def _create_vcenter_resource_context(self): vc = VMwarevCenterResourceModel() vc.user = '******' vc.password = '******' vc.default_dvswitch = 'switch1' vc.holding_network = 'anetwork' vc.vm_cluster = 'Quali' vc.vm_location = 'Quali' vc.vm_resource_pool = 'Quali' vc.vm_storage = 'Quali' vc.shutdown_method = 'hard' vc.ovf_tool_path = 'C\\program files\ovf' vc.execution_server_selector = '' vc.reserved_networks = 'vlan65' vc.default_datacenter = 'QualiSB' return vc