Exemple #1
0
    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')
Exemple #2
0
    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',
            ]))