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' ]))
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', ]))