Esempio n. 1
0
    def test_port_channel_interface_l2(self):
        # For failures
        self.maxDiff = None

        # Set Genie Tb
        testbed = Testbed()
        Genie.testbed = testbed

        # Device
        dev1 = Device(name='PE1', testbed=testbed, os='nxos')
        intf1 = Interface(name='port-channel10', device=dev1)

        # Apply configuration
        intf1.channel_group_mode = 'active'
        intf1.enabled = True
        intf1.switchport_enable = True
        intf1.switchport_mode = "access"
        intf1.access_vlan = '10'

        uut1_int3 = Interface(name='Ethernet0/0/1', device=dev1)
        intf1.add_member(uut1_int3)

        # Build config
        cfgs = intf1.build_config(apply=False)
        # Check config build correctly
        self.assertMultiLineEqual(
            str(cfgs), '\n'.join([
                'interface Ethernet0/0/1', ' channel-group 10 mode active',
                ' exit', 'interface port-channel10', ' no shutdown',
                ' switchport', ' switchport mode access',
                ' switchport access vlan 10', ' exit'
            ]))

        # Build unconfig
        uncfgs = intf1.build_unconfig(apply=False)
        # Check config build correctly
        self.assertMultiLineEqual(
            str(uncfgs), '\n'.join([
                'interface Ethernet0/0/1', ' no channel-group 10 mode active',
                ' exit', 'no interface port-channel10'
            ]))
Esempio n. 2
0
    def test_single_line_config(self):

        # For failures
        self.maxDiff = None

        # Set Genie Tb
        testbed = Testbed()
        Genie.testbed = testbed

        # Device
        dev1 = Device(name='PE1', testbed=testbed, os='nxos')
        intf1 = Interface(name='Ethernet3/7', device=dev1, aliases=['PE1_1'])
        intf2 = Interface(name='Ethernet3/9', device=dev1, aliases=['PE1_2'])
        subif1 = Interface(name='Ethernet3/6.10',
                           device=dev1,
                           aliases=['PE1_1'])
        vrf = Vrf(name='test', testbed=testbed)
        dev1.add_feature(vrf)

        # Apply configuration
        intf1.description = 'test'
        intf1.enabled = False
        # intf1.shutdown = False
        intf1.link_up_down_trap_enable = True
        intf1.mtu = 1492
        intf1.vrf = vrf
        intf1.mac_address = 'aabb.ccdd.eeff'
        intf1.bandwidth = 8192
        intf1.link_status = True
        intf1.load_interval = 33
        intf1.dhcp = True
        intf1.unnumbered_intf_ref = 'Ethernet3/6.10'
        intf1.ipv6_autoconf = True
        intf1.switchport_mode = 'access'
        intf1.medium = 'p2p'
        intf1.delay = 11
        intf1.access_vlan = '19'
        intf1.auto_negotiate = False
        # make intf2 as L2 interface
        intf1.switchport_enable = True

        intf2.enabled = True
        intf2.switchport_enable = True
        intf2.switchport_mode = 'trunk'
        intf2.trunk_add_vlans = '1,2,3'

        # Build config
        cfgs = intf1.build_config(apply=False)
        # Check config build correctly
        self.assertMultiLineEqual(
            str(cfgs), '\n'.join([
                'interface Ethernet3/7', ' medium p2p', ' bandwidth 8192',
                ' delay 11', ' description test', ' mtu 1492', ' shutdown',
                ' snmp trap link-status', ' vrf member test',
                ' logging event port link-status', ' ip address dhcp',
                ' ip unnumbered Ethernet3/6.10', ' ipv6 address autoconfig',
                ' switchport', ' switchport mode access', ' load-interval 33',
                ' mac-address aabb.ccdd.eeff', ' switchport access vlan 19',
                ' no speed', ' no duplex', ' exit'
            ]))

        cfgs = intf2.build_config(apply=False)
        # Check config build correctly
        self.assertMultiLineEqual(
            str(cfgs), '\n'.join([
                'interface Ethernet3/9', ' no shutdown', ' switchport',
                ' switchport mode trunk',
                ' switchport trunk allowed vlan add 1,2,3', ' exit'
            ]))

        # Build unconfig
        uncfgs = intf1.build_unconfig(apply=False,
                                      attributes={
                                          'mtu': True,
                                          'enabled': True
                                      })
        # Check config build correctly
        self.assertMultiLineEqual(
            str(uncfgs), '\n'.join(
                ['interface Ethernet3/7', ' no mtu', ' no shutdown', ' exit']))

        uncfgs = intf2.build_unconfig(apply=False,
                                      attributes={'trunk_add_vlans': True})
        # Check config build correctly
        self.assertMultiLineEqual(
            str(uncfgs), '\n'.join([
                'interface Ethernet3/9',
                ' switchport trunk allowed vlan remove 1,2,3', ' exit'
            ]))
    def test_InterfaceSwitchport(self):
        Genie.testbed = Testbed()
        dev1 = Device(name='PE1', os='iosxe')
        intf1 = Interface(device=dev1, name='GigabitEthernet0/0/1')

        # Do not set switchport - default
        # Check config
        cfg1 = intf1.build_config(apply=False)
        self.assertMultiLineEqual(
            str(cfg1), '\n'.join([
                'interface GigabitEthernet0/0/1',
                ' exit',
            ]))

        # Set switchport to True
        intf1.switchport = True
        # Check config
        cfg2 = intf1.build_config(apply=False)
        self.assertMultiLineEqual(
            str(cfg2), '\n'.join([
                'interface GigabitEthernet0/0/1',
                ' switchport',
                ' exit',
            ]))
        # Check unconfig
        uncfg2 = intf1.build_unconfig(apply=False, attributes="switchport")
        self.assertMultiLineEqual(
            str(uncfg2), '\n'.join([
                'interface GigabitEthernet0/0/1',
                ' no switchport',
                ' exit',
            ]))

        # Set switchport to False
        intf1.switchport = False
        # Check config
        cfg3 = intf1.build_config(apply=False)
        self.assertMultiLineEqual(
            str(cfg3), '\n'.join([
                'interface GigabitEthernet0/0/1',
                ' no switchport',
                ' exit',
            ]))
        # Check unconfig
        uncfg3 = intf1.build_unconfig(apply=False, attributes="switchport")
        self.assertMultiLineEqual(
            str(uncfg3), '\n'.join([
                'interface GigabitEthernet0/0/1',
                ' switchport',
                ' exit',
            ]))

        # test full switchport related configuration
        intf1.switchport_enable = True
        intf1.switchport_mode = "access"
        intf1.access_vlan = "100"
        intf1.trunk_vlans = "all"
        intf1.trunk_add_vlans = "100"
        intf1.trunk_remove_vlans = "100-200"
        intf1.native_vlan = "1"

        cfg1 = intf1.build_config(apply=False)
        self.assertMultiLineEqual(
            str(cfg1), '\n'.join([
                'interface GigabitEthernet0/0/1',
                ' switchport',
                ' switchport mode access',
                ' switchport trunk allowed vlan all',
                ' switchport trunk native vlan 1',
                ' switchport access vlan 100',
                ' switchport trunk allowed vlan add 100',
                ' switchport trunk allowed vlan remove 100-200',
                ' exit',
            ]))