Пример #1
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')
    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 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')