def test_1_top_level(self): acl1 = AccessList(name='1') acl2 = AccessList(name='2') acl3 = AccessList(name='3') acl4 = AccessList(name='4') acl5 = AccessList(name='5') acl6 = AccessList(name='6') acl7 = AccessList(name='7') acl8 = AccessList(name='8') acl9 = AccessList(name='9') acl11 = AccessList(name='11') acl22 = AccessList(name='22') acl33 = AccessList(name='33') acl44 = AccessList(name='44') ldp = Ldp() self.link.add_feature(ldp) # ==Test top-level config== ldp.hello_holdtime = 100 ldp.hello_interval = 200 ldp.targeted_hello_accept = True ldp.gr = True ldp.gr_fwdstate_holdtime = 60 ldp.nsr = True ldp.device_attr['PE1'].session_holdtime = 444 ldp.session_protection = True ldp.session_protection_dur = 222 ldp.device_attr['PE2'].session_protection_dur = 333 ldp.session_protection_for_acl = acl1 out = ldp.build_config(apply=False) if 1: self.assertCountEqual(out.keys(), ['PE1', 'PE2']) self.assertMultiLineEqual( str(out['PE1']), '\n'.join([ 'mpls label protocol ldp', 'mpls ip', 'mpls ldp nsr', 'mpls ldp graceful-restart', 'mpls ldp graceful-restart timers forwarding-holding 60', 'mpls ldp discovery hello interval 200', 'mpls ldp discovery hello holdtime 100', 'mpls ldp discovery targeted-hello accept', 'mpls ldp session protection for 1 222', 'interface GigabitEthernet0/0/1', ' mpls ip', ' exit', ])) self.assertMultiLineEqual( str(out['PE2']), '\n'.join([ 'mpls label protocol ldp', 'mpls ip', 'mpls ldp nsr', 'mpls ldp graceful-restart', 'mpls ldp graceful-restart timers forwarding-holding 60', 'mpls ldp discovery hello interval 200', 'mpls ldp discovery hello holdtime 100', 'mpls ldp discovery targeted-hello accept', 'mpls ldp session protection for 1 333', 'interface GigabitEthernet0/0/2', ' mpls ip', ' exit', ])) if 1: # set the per-attr variables that are inherited by VRF ldp.device_attr['PE1'].vrf_attr['default'].router_id = self.i1 ldp.device_attr['PE2'].vrf_attr['default'].router_id = self.i2 out = ldp.build_config(apply=False) self.assertRegex(str(out['PE1']), 'router-id GigabitEthernet0/0/1') self.assertRegex(str(out['PE2']), 'router-id GigabitEthernet0/0/2') # Check unconfig - <nsr> config filter out = ldp.build_unconfig(apply=False, attributes='device_attr__*__nsr') if 1: self.assertRegex(str(out['PE1']), 'no mpls ldp nsr') self.assertRegex(str(out['PE2']), 'no mpls ldp nsr') # Check unconfig - <gr> config filter= out = ldp.build_unconfig(apply=False, attributes='device_attr__*__gr') if 1: self.assertRegex(str(out['PE1']), 'no mpls ldp graceful-restart') self.assertRegex(str(out['PE2']), 'no mpls ldp graceful-restart')
def test_3_per_intf(self): acl1 = AccessList(name='1') acl2 = AccessList(name='2') acl3 = AccessList(name='3') acl4 = AccessList(name='4') acl5 = AccessList(name='5') acl6 = AccessList(name='6') acl7 = AccessList(name='7') acl8 = AccessList(name='8') acl9 = AccessList(name='9') acl11 = AccessList(name='11') acl22 = AccessList(name='22') acl33 = AccessList(name='33') acl44 = AccessList(name='44') ldp = Ldp() self.link.add_feature(ldp) self.link4.add_feature(ldp) ldp.hello_interval = 88 ldp.device_attr['PE2'].hello_holdtime = 99 # ==Test per interface config=== out = ldp.build_config(apply=False) if 1: self.assertMultiLineEqual( str(out['PE1']), '\n'.join([ 'mpls label protocol ldp', 'mpls ip', 'mpls ldp discovery hello interval 88', 'interface GigabitEthernet0/0/1', ' mpls ip', ' exit', 'interface GigabitEthernet0/0/7', ' mpls ip', ' exit', ])) self.assertMultiLineEqual( str(out['PE2']), '\n'.join([ 'mpls label protocol ldp', 'mpls ip', 'mpls ldp discovery hello interval 88', 'mpls ldp discovery hello holdtime 99', 'interface GigabitEthernet0/0/2', ' mpls ip', ' exit', 'interface GigabitEthernet0/0/8', ' mpls ip', ' exit', ])) # Check intf unconfig - intf <GigabitEthernet0/0/0/8> config filter out = ldp.build_unconfig( apply=False, attributes='device_attr__*__interface_attr__GigabitEthernet0/0/8') self.assertMultiLineEqual( str(out['PE2']), '\n'.join([ 'interface GigabitEthernet0/0/8', ' no mpls ip', ' exit', ]))