Example #1
0
    def test_8_per_vrf_per_neighbor(self):

        ldp = Ldp()
        self.link.add_feature(ldp)
        vrf = Vrf(name='vrf1')
        ldp.add_force_vrf(vrf)
        nbr1 = IPv4LsrNeighbor('1.2.3.4:0')
        nbr2 = IPv4LsrNeighbor('1.2.3.5:0')
        nbr3 = IPv4LsrNeighbor('1.2.3.6:0')

        ldp.device_attr['PE1'].vrf_attr['vrf1'].neighbors = [nbr1, nbr2, nbr3]
        ldp.device_attr['PE1'].vrf_attr['vrf1'].neighbor_attr[
            '1.2.3.5:0'].password = '******'
        ldp.device_attr['PE1'].vrf_attr['vrf1'].neighbor_attr[
            '1.2.3.6:0'].password = '******'

        # ==Test per vrf per neighbor config==
        out = ldp.build_config(apply=False)

        self.assertMultiLineEqual(
            str(out['PE1']), '\n'.join([
                'mpls label protocol ldp',
                'mpls ip',
                'mpls ldp neighbor vrf vrf1 1.2.3.5 password blah22',
                'mpls ldp neighbor vrf vrf1 1.2.3.6 password 060506324F41',
                'interface GigabitEthernet0/0/1',
                ' mpls ip',
                ' exit',
            ]))
Example #2
0
    def test_2_per_vrf(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)
        vrf = Vrf(name='vrf1')
        ldp.add_force_vrf(vrf)
        vrf2 = Vrf(name='vrf2')
        ldp.add_force_vrf(vrf2)
        ldp.device_attr['PE1'].router_id = self.i1
        ldp.device_attr['PE2'].router_id = self.i2
        ldp.device_attr['PE1'].vrf_attr['vrf1'].router_id = self.i3
        ldp.device_attr['PE2'].vrf_attr['vrf1'].router_id = self.i4

        # Test per vrf config

        # Check vrf config - full config
        out = ldp.build_config(apply=False)

        self.assertMultiLineEqual(
            str(out['PE1']), '\n'.join([
                'mpls label protocol ldp',
                'mpls ip',
                'mpls ldp router-id GigabitEthernet0/0/1',
                'mpls ldp router-id vrf vrf1 GigabitEthernet0/0/3',
                'interface GigabitEthernet0/0/1',
                ' mpls ip',
                ' exit',
            ]))

        self.assertMultiLineEqual(
            str(out['PE2']), '\n'.join([
                'mpls label protocol ldp',
                'mpls ip',
                'mpls ldp router-id GigabitEthernet0/0/2',
                'mpls ldp router-id vrf vrf1 GigabitEthernet0/0/4',
                'interface GigabitEthernet0/0/2',
                ' mpls ip',
                ' exit',
            ]))

        # Test VRF unconfig
        out = ldp.build_unconfig(apply=False,
                                 attributes='device_attr__*__vrf_attr')
        self.assertTrue(
            'no mpls ldp router-id GigabitEthernet0/0/1' in str(out['PE1']))
        self.assertTrue(
            'no mpls ldp router-id GigabitEthernet0/0/2' in str(out['PE2']))
        self.assertTrue('no mpls ldp router-id vrf vrf1 GigabitEthernet0/0/3'
                        in str(out['PE1']))
        self.assertTrue('no mpls ldp router-id vrf vrf1 GigabitEthernet0/0/4'
                        in str(out['PE2']))

        out2 = ldp.build_config(apply=False,
                                attributes='device_attr__*__vrf_attr')
        self.assertTrue(
            'mpls ldp router-id GigabitEthernet0/0/1' in str(out2['PE1']))
        self.assertTrue(
            'mpls ldp router-id GigabitEthernet0/0/2' in str(out2['PE2']))
        self.assertTrue('mpls ldp router-id vrf vrf1 GigabitEthernet0/0/3' in
                        str(out2['PE1']))
        self.assertTrue('mpls ldp router-id vrf vrf1 GigabitEthernet0/0/4' in
                        str(out2['PE2']))

        # Check vrf config - vrf <vrf1> config filter
        out3 = ldp.build_config(apply=False,
                                attributes='device_attr__*__vrf_attr__vrf1')
        self.assertTrue('mpls ldp router-id vrf vrf1 GigabitEthernet0/0/3' in
                        str(out3['PE1']))
        self.assertTrue('mpls ldp router-id vrf vrf1 GigabitEthernet0/0/4' in
                        str(out3['PE2']))
        # interface output from default vrf should not be built
        self.assertNotRegex(str(out['PE1']), '(?s)interface Gig')

        # Check vrf unconfig - vrf <vrf1> config filter
        out = ldp.build_unconfig(apply=False,
                                 attributes='device_attr__*__vrf_attr__vrf1')
        self.assertEqual(
            str(out['PE1']),
            'no mpls ldp router-id vrf vrf1 GigabitEthernet0/0/3')
        self.assertEqual(
            str(out['PE2']),
            'no mpls ldp router-id vrf vrf1 GigabitEthernet0/0/4')

        # Check vrf unconfig - vrf <vrf1> config filter
        out = ldp.build_unconfig(
            apply=False, attributes='device_attr__*__vrf_attr__*__router_id')
        self.assertTrue(
            'no mpls ldp router-id GigabitEthernet0/0/1' in str(out['PE1']))
        self.assertTrue(
            'no mpls ldp router-id GigabitEthernet0/0/2' in str(out['PE2']))
        self.assertTrue('no mpls ldp router-id vrf vrf1 GigabitEthernet0/0/3'
                        in str(out['PE1']))
        self.assertTrue('no mpls ldp router-id vrf vrf1 GigabitEthernet0/0/4'
                        in str(out['PE2']))

        # Check vrf unconfig - vrf <vrf1> config filter after adding router-id to vrf2
        ldp.device_attr['PE2'].vrf_attr['vrf2'].router_id = self.i6
        out = ldp.build_unconfig(
            apply=False, attributes='device_attr__*__vrf_attr__*__router_id')
        self.assertTrue(
            'mpls ldp router-id GigabitEthernet0/0/1' in str(out['PE1']))
        self.assertTrue(
            'mpls ldp router-id GigabitEthernet0/0/2' in str(out['PE2']))
        self.assertTrue('mpls ldp router-id vrf vrf1 GigabitEthernet0/0/3' in
                        str(out['PE1']))
        self.assertTrue('mpls ldp router-id vrf vrf1 GigabitEthernet0/0/4' in
                        str(out['PE2']))
        self.assertTrue('mpls ldp router-id vrf vrf2 GigabitEthernet0/0/6' in
                        str(out['PE2']))

        # Check vrf config - vrf <vrf2> config filter
        out3 = ldp.build_config(apply=False,
                                attributes='device_attr__*__vrf_attr__vrf2')
        self.assertEqual(str(out3['PE2']),
                         'mpls ldp router-id vrf vrf2 GigabitEthernet0/0/6')