コード例 #1
0
ファイル: test_pim.py プロジェクト: wilbeacham85/genielibs
    def test_learn_config(self):

        testbed = Testbed()
        dev = Device(testbed=testbed, name='PE2', os='nxos')
        dev.custom = {'abstraction': {'order': ['os'], 'context': 'cli'}}
        dev.mapping = {}
        dev.mapping['cli'] = 'cli'
        # Give the device as a connection type
        # This is done in order to call the parser on the output provided
        dev.connectionmgr.connections['cli'] = dev

        golden_output = {
            'return_value':
            '''
            N95_2_R2# show run pim
            !Command: show running-config pim
!Time: Wed Aug 15 14:45:52 2018

version 7.0(3)I7(3)
feature pim

ip pim bsr bsr-candidate loopback0 priority 128
ip pim rp-address 6.6.6.6 group-list 234.0.0.0/8
ip pim rp-address 6.6.6.6 group-list 239.1.1.0/24 bidir
ip pim rp-address 26.26.26.26 group-list 237.0.0.0/8
ip pim rp-address 126.126.126.126 group-list 238.0.0.0/8
ip pim bsr rp-candidate loopback0 group-list 235.0.0.0/8 priority 128
ip pim send-rp-announce loopback0 group-list 236.0.0.0/8
ip pim send-rp-discovery loopback0
ip pim ssm range 232.0.0.0/8
ip pim anycast-rp 126.126.126.126 2.2.2.2
ip pim anycast-rp 126.126.126.126 6.6.6.6
ip pim bsr forward listen
ip pim register-source loopback0

vrf context VRF1
  ip pim bsr bsr-candidate loopback11 priority 128
  ip pim rp-address 6.6.6.6 group-list 234.0.0.0/8
  ip pim rp-address 6.6.6.6 group-list 239.1.1.0/24 bidir
  ip pim rp-address 26.26.26.26 group-list 237.0.0.0/8
  ip pim rp-address 126.126.126.126 group-list 238.0.0.0/8
  ip pim bsr rp-candidate loopback11 group-list 235.0.0.0/8 priority 128
  ip pim send-rp-announce loopback11 group-list 236.0.0.0/8
  ip pim send-rp-discovery loopback11
  ip pim ssm range 232.0.0.0/8
  ip pim anycast-rp 126.126.126.126 2.2.2.2
  ip pim anycast-rp 126.126.126.126 6.6.6.6
  ip pim bsr forward listen
  ip pim register-source loopback11

interface loopback0
  ip pim sparse-mode
        '''
        }

        golden_output_vrf = '''
            N95_2_R2# show run pim | inc vrf
vrf context VRF1
        '''
        golden_output_vrf6 = '''
            N95_2_R2# show run pim6 | inc vrf
vrf context VRF1
        '''
        golden_output_feature = '''
            N95_2_R2# show run pim | inc feature
feature pim
        '''
        golden_output_feature6 = '''
            N95_2_R2# show run pim6 | inc feature
feature pim6
        '''
        golden_output_auto_rp = '''
            N95_2_R2# show run pim | sec '^i' | inc send-rp-announce
ip pim send-rp-announce loopback0 group-list 236.0.0.0/8
        '''
        golden_output_auto_rp_vrf = '''
            N95_2_R2# show run pim | sec VRF1 | inc send-rp-announce
  ip pim send-rp-announce loopback11 group-list 236.0.0.0/8
        '''

        pim = Pim()
        outputs[
            'show running-config pim | inc feature'] = golden_output_feature
        outputs[
            'show running-config pim6 | inc feature'] = golden_output_feature6
        outputs['show running-config pim | inc vrf'] = golden_output_vrf
        outputs['show running-config pim6 | inc vrf'] = golden_output_vrf6
        outputs[
            "show running-config pim | sec '^i' | inc send-rp-announce"] = golden_output_auto_rp
        outputs[
            "show running-config pim | sec VRF1 | inc send-rp-announce"] = golden_output_auto_rp_vrf
        # Return outputs above as inputs to parser when called
        dev.execute = Mock()
        dev.execute.side_effect = mapper

        learn = Pim.learn_config(
            device=dev,
            attributes=[
                'pim[vrf_attr][default][address_family_attr][ipv4][send_rp_announce_intf]'
            ])

        self.assertEqual(
            learn[0].device_attr[dev].vrf_attr['default'].
            address_family_attr['ipv4'].send_rp_announce_intf, 'loopback0')
        self.assertEqual(
            learn[0].device_attr[dev].vrf_attr['default'].
            address_family_attr['ipv4'].send_rp_announce_group_list, None)

        learn = Pim.learn_config(device=dev)

        self.assertEqual(
            learn[0].device_attr[dev].vrf_attr['default'].
            address_family_attr['ipv4'].send_rp_announce_intf, 'loopback0')
        self.assertEqual(
            learn[0].device_attr[dev].vrf_attr['default'].
            address_family_attr['ipv4'].send_rp_announce_group_list,
            '236.0.0.0/8')
        self.assertEqual(
            learn[0].device_attr[dev].vrf_attr['VRF1'].
            address_family_attr['ipv4'].send_rp_announce_intf, 'loopback11')
        self.assertEqual(
            learn[0].device_attr[dev].vrf_attr['VRF1'].
            address_family_attr['ipv4'].send_rp_announce_group_list,
            '236.0.0.0/8')
コード例 #2
0
ファイル: test_msdp.py プロジェクト: wilbeacham85/genielibs
    def test_learn_config(self):

        testbed = Testbed()
        dev = Device(testbed=testbed, name='PE2', os='nxos')
        dev.custom = {'abstraction': {'order': ['os'], 'context': 'cli'}}
        dev.mapping = {}
        dev.mapping['cli'] = 'cli'
        # Give the device as a connection type
        # This is done in order to call the parser on the output provided
        dev.connectionmgr.connections['cli'] = dev

        golden_output = {
            'return_value':
            '''
            N95_2_R2# show run msdp
!Command: show running-config msdp
!Time: Mon Aug 27 20:17:11 2018

version 7.0(3)I7(3)
feature msdp

ip msdp description 6.6.6.6 test description
ip msdp keepalive 6.6.6.6 50 60
ip msdp reconnect-interval 15

vrf context VRF1
  ip msdp description 6.6.6.6 test description on VRF1
        '''
        }

        golden_output_vrf = '''
            N95_2_R2# show run pim | inc vrf
vrf context VRF1
        '''
        golden_output_reconnect = '''
            N95_2_R2# show run msdp | sec '^i' | inc reconnect-interval
ip msdp reconnect-interval 15
        '''
        golden_output_reconnect_vrf = '''
            N95_2_R2# show run msdp | sec VRF1 | inc reconnect-interval

        '''
        golden_output_description = '''
            N95_2_R2# show run msdp | sec '^i | inc description
ip msdp description 6.6.6.6 test description
        '''
        golden_output_description_vrf = '''
            N95_2_R2# show run msdp | sec VRF1 | inc description
  ip msdp description 6.6.6.6 test description on VRF1
        '''
        golden_output_keepalive = '''
            N95_2_R2# show run msdp | sec '^i' | inc keepalive
ip msdp keepalive 6.6.6.6 50 60
        '''
        golden_output_keepalive_vrf = '''
            N95_2_R2# show run msdp | sec VRF1 | inc keepalive
        '''
        golden_output_originator_id = '''
            N95_2_R2# show run msdp | sec '^i' | inc originator-id
ip msdp originator-id loopback0
        '''
        golden_output_originator_id_vrf = '''
            N95_2_R2# show run msdp | sec VRF1 | inc originator-id
  ip msdp originator-id loopback11
        '''
        golden_output_connect_source = '''
            N95_2_R2# show run msdp | sec '^i' | inc originator-id
ip msdp peer 6.6.6.6 connect-source loopback0
        '''
        golden_output_connect_source_vrf = '''
            N95_2_R2# show run msdp | sec VRF1 | inc originator-id
  ip msdp peer 6.6.6.6 connect-source loopback11 remote-as 234
        '''

        msdp = Msdp()
        outputs['show running-config msdp | inc vrf'] = golden_output_vrf
        outputs[
            "show running-config msdp | sec '^i' | inc reconnect-interval"] = golden_output_reconnect
        outputs[
            "show running-config msdp | sec VRF1 | inc reconnect-interval"] = golden_output_reconnect_vrf
        outputs[
            "show running-config msdp | sec '^i' | inc description"] = golden_output_description
        outputs[
            "show running-config msdp | sec VRF1 | inc description"] = golden_output_description_vrf
        outputs[
            "show running-config msdp | sec '^i' | inc keepalive"] = golden_output_keepalive
        outputs[
            "show running-config msdp | sec VRF1 | inc keepalive"] = golden_output_keepalive_vrf
        outputs[
            "show running-config msdp | sec '^i' | inc originator-id"] = golden_output_originator_id
        outputs[
            "show running-config msdp | sec VRF1 | inc originator-id"] = golden_output_originator_id_vrf
        outputs[
            "show running-config msdp | sec '^i' | inc connect-source"] = golden_output_connect_source
        outputs[
            "show running-config msdp | sec VRF1 | inc connect-source"] = golden_output_connect_source_vrf
        # Return outputs above as inputs to parser when called
        dev.execute = Mock()
        dev.execute.side_effect = mapper

        learn = Msdp.learn_config(
            device=dev,
            attributes=[
                'msdp[vrf_attr][default][peer_attr][(.*)][description]'
            ])

        self.assertEqual(learn[0].device_attr[dev].vrf_attr['default']\
                .peer_attr['6.6.6.6'].description, 'test description')
        self.assertEqual(learn[0].device_attr[dev].vrf_attr['default']\
                .peer_attr['6.6.6.6'].keepalive_interval, None)

        learn = Msdp.learn_config(device=dev)

        self.assertEqual(learn[0].device_attr[dev].vrf_attr['default']\
                .peer_attr['6.6.6.6'].keepalive_interval, 50)
        self.assertEqual(learn[0].device_attr[dev].vrf_attr['default']\
                .peer_attr['6.6.6.6'].holdtime_interval, 60)

        self.assertEqual(learn[0].device_attr[dev].vrf_attr['VRF1']\
                .peer_attr['6.6.6.6'].description, 'test description on VRF1')
        self.assertEqual(learn[0].device_attr[dev].vrf_attr['default']\
                .peer_attr['6.6.6.6'].description, 'test description')

        self.assertEqual(learn[0].device_attr[dev].vrf_attr['default']\
                .originating_rp, 'loopback0')
        self.assertEqual(learn[0].device_attr[dev].vrf_attr['VRF1']\
                .originating_rp, 'loopback11')

        self.assertEqual(learn[0].device_attr[dev].vrf_attr['default']\
                .peer_attr['6.6.6.6'].connected_source, 'loopback0')
        self.assertEqual(learn[0].device_attr[dev].vrf_attr['VRF1']\
                .peer_attr['6.6.6.6'].connected_source, 'loopback11')
        self.assertEqual(learn[0].device_attr[dev].vrf_attr['VRF1']\
                .peer_attr['6.6.6.6'].peer_as, '234')

        self.assertEqual(learn[0].device_attr[dev].vrf_attr['default']\
                .global_connect_retry_interval, 15)