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')
Пример #2
0
    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')
Пример #3
0
    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 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 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')
Пример #6
0
    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)