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