def test_connect_vnic_to_network(self): # arrange connect_command = VirtualSwitchConnectCommand( self.pv_service, self.dv_connector, self.dv_port_name_gen, self.vlan_spec_factory, self.vlan_id_range_parser, Mock()) mapping = VmNetworkMapping() mapping.vnic_name = 'name' mapping.vlan_id = 'vlan_id' mapping.vlan_spec = 'trunc' mapping.dv_port_name = 'port_name' # act connect_results = connect_command.connect_to_networks( self.si, self.vm_uuid, [mapping], 'default_network') mapping.dv_switch_path = self.vcenter_context.default_dvswitch_path mapping.dv_switch_name = self.vcenter_context.default_dvswitch_name mapping.port_group_path = self.vcenter_context.default_port_group_path # assert self.assertTrue( self.vlan_id_range_parser.parse_vlan_id.called_with(self.vlan_id)) self.assertTrue( self.dv_port_name_gen.generate_port_group_name.called_with( self.vlan_id)) self.assertTrue( self.vlan_spec_factory.get_vlan_spec.called_with(self.spec_type)) self.assertTrue( self.dv_connector.connect_by_mapping.called_with( self.si, self.vm, [mapping])) self.assertEqual(connect_results[0].mac_address, 'AA-BB')
def integration_test_connect_A(self): py_vmomi_service = pyVmomiService(SmartConnect, Disconnect) cred = TestCredentials() si = py_vmomi_service.connect(cred.host, cred.username, cred.password, cred.port) synchronous_task_waiter = SynchronousTaskWaiter() mapper = VnicToNetworkMapper(DvPortGroupNameGenerator()) dv_port_group_creator = DvPortGroupCreator(py_vmomi_service, synchronous_task_waiter) virtual_machine_port_group_configurer = VirtualMachinePortGroupConfigurer(py_vmomi_service, synchronous_task_waiter, mapper, VNicService()) mapping = VmNetworkMapping() mapping.vlan_id = [vim.NumericRange(start=65, end=65)] mapping.dv_port_name = DvPortGroupNameGenerator().generate_port_group_name(65) mapping.dv_switch_name = 'dvSwitch' mapping.dv_switch_path = 'QualiSB' mapping.port_group_path = 'QualiSB' mapping.vlan_spec = vim.dvs.VmwareDistributedVirtualSwitch.TrunkVlanSpec() connector = VirtualSwitchToMachineConnector( dv_port_group_creator, virtual_machine_port_group_configurer) vm = py_vmomi_service.find_vm_by_name(si, 'QualiSB/Raz', '2') # Act connector.connect_by_mapping(si, vm, [mapping], None) pass
def integration_test_connect_B(self): py_vmomi_service = pyVmomiService(SmartConnect, Disconnect) cred = TestCredentials() si = py_vmomi_service.connect(cred.host, cred.username, cred.password, cred.port) vm_uuid = py_vmomi_service.find_vm_by_name(si, 'QualiSB/Boris', 'Boris2-win7').config.uuid mapping = VmNetworkMapping() mapping.vlan_id = '114' # mapping.dv_port_name = 65 mapping.dv_switch_name = 'dvSwitch' mapping.dv_switch_path = 'QualiSB' mapping.port_group_path = 'QualiSB' mapping.vlan_spec = 'Trunk' vlan_spec = VlanSpecFactory() range_fac = VLanIdRangeParser() synchronous_task_waiter = SynchronousTaskWaiter() name_gen = DvPortGroupNameGenerator() mapper = VnicToNetworkMapper(name_gen) dv_port_group_creator = DvPortGroupCreator(py_vmomi_service, synchronous_task_waiter) virtual_machine_port_group_configurer = VirtualMachinePortGroupConfigurer(py_vmomi_service, synchronous_task_waiter, mapper, VNicService()) connector = VirtualSwitchToMachineConnector(dv_port_group_creator, virtual_machine_port_group_configurer) vnic_updater = VnicUpdater(helpers) command = VirtualSwitchConnectCommand(py_vmomi_service, connector, name_gen, vlan_spec, range_fac, vnic_updater) command.connect_to_networks(si, vm_uuid, [mapping], 'QualiSB/anetwork')
def test_connect_vnic_to_network(self): # arrange connect_command = VirtualSwitchConnectCommand(self.pv_service, self.dv_connector, self.dv_port_name_gen, self.vlan_spec_factory, self.vlan_id_range_parser, Mock()) mapping = VmNetworkMapping() mapping.vnic_name = 'name' mapping.vlan_id = 'vlan_id' mapping.vlan_spec = 'trunc' mapping.dv_port_name = 'port_name' # act connect_results = connect_command.connect_to_networks(self.si, self.vm_uuid, [mapping], 'default_network') mapping.dv_switch_path = self.vcenter_context.default_dvswitch_path mapping.dv_switch_name = self.vcenter_context.default_dvswitch_name mapping.port_group_path = self.vcenter_context.default_port_group_path # assert self.assertTrue(self.vlan_id_range_parser.parse_vlan_id.called_with(self.vlan_id)) self.assertTrue(self.dv_port_name_gen.generate_port_group_name.called_with(self.vlan_id)) self.assertTrue(self.vlan_spec_factory.get_vlan_spec.called_with(self.spec_type)) self.assertTrue(self.dv_connector.connect_by_mapping.called_with(self.si, self.vm, [mapping])) self.assertEqual(connect_results[0].mac_address, 'AA-BB')
def connect(self): # get command parameters from the environment uuid = self.qualipy_helpers.get_user_param('VM_UUID') vlan_id = self.qualipy_helpers.get_user_param('VLAN_ID') vlan_spec_type = self.qualipy_helpers.get_user_param('VLAN_SPEC_TYPE') if not uuid: raise ValueError('VM_UUID is missing') if not vlan_id: raise ValueError('VLAN_ID is missing') if not vlan_spec_type: raise ValueError('VLAN_SPEC_TYPE is missing') # load default params dv_switch_path = self.vcenter_resource_model.default_dvswitch_path dv_switch_name = self.vcenter_resource_model.default_dvswitch_name port_group_path = self.vcenter_resource_model.default_port_group_path default_network = self.vcenter_resource_model.default_network vnic_to_network = VmNetworkMapping() vnic_to_network.dv_switch_path = dv_switch_path vnic_to_network.dv_switch_name = dv_switch_name vnic_to_network.port_group_path = port_group_path vnic_to_network.vlan_id = vlan_id vnic_to_network.vlan_spec = vlan_spec_type # prepare for execute command connection_details = self.connection_retriever.connection_details() # execute command connection_results = self.command_wrapper.execute_command_with_connection( connection_details, self.virtual_switch_connect_command.connect_to_networks, uuid, [vnic_to_network], default_network) set_command_result(result=connection_results, unpicklable=False)
def connect(self): # get command parameters from the environment uuid = self.qualipy_helpers.get_user_param('VM_UUID') vlan_id = self.qualipy_helpers.get_user_param('VLAN_ID') vlan_spec_type = self.qualipy_helpers.get_user_param('VLAN_SPEC_TYPE') if not uuid: raise ValueError('VM_UUID is missing') if not vlan_id: raise ValueError('VLAN_ID is missing') if not vlan_spec_type: raise ValueError('VLAN_SPEC_TYPE is missing') # load default params dv_switch_path = self.vcenter_resource_model.default_dvswitch_path dv_switch_name = self.vcenter_resource_model.default_dvswitch_name port_group_path = self.vcenter_resource_model.default_port_group_path default_network = self.vcenter_resource_model.default_network vnic_to_network = VmNetworkMapping() vnic_to_network.dv_switch_path = dv_switch_path vnic_to_network.dv_switch_name = dv_switch_name vnic_to_network.port_group_path = port_group_path vnic_to_network.vlan_id = vlan_id vnic_to_network.vlan_spec = vlan_spec_type # prepare for execute command connection_details = self.connection_retriever.connection_details() # execute command connection_results = self.command_wrapper.execute_command_with_connection(connection_details, self.virtual_switch_connect_command.connect_to_networks, uuid, [vnic_to_network], default_network) set_command_result(result=connection_results, unpicklable=False)