def test_ce_static_route_bfd_changed_true(self): srBfdPara_1 = load_fixture('ce_static_route_bfd', 'srBfdPara_1.txt') srBfdPara_2 = load_fixture('ce_static_route_bfd', 'srBfdPara_2.txt') staticrtbase_1 = load_fixture('ce_static_route_bfd', 'staticrtbase_1.txt') staticrtbase_2 = load_fixture('ce_static_route_bfd', 'staticrtbase_2.txt') self.get_nc_config.side_effect = (srBfdPara_1, staticrtbase_1, srBfdPara_2, staticrtbase_2) updates = [ 'ip route-static vpn-instance mgnt 255.255.0.0 255.255.252.0 10GE1/0/1 10.10.1.1', ' preference 22', ' tag 23', ' track bfd-session 43', ' description for a test' ] config = dict(prefix='255.255.0.0', mask=22, aftype='v4', next_hop='10.10.1.1', nhp_interface='10GE1/0/1', vrf='mgnt', destvrf='_public_', tag=23, description='for a test', pref='22', function_flag='dynamicBFD', min_tx_interval='32', min_rx_interval='23', detect_multiplier='24', bfd_session_name='43') set_module_args(config) result = self.execute_module(changed=True) self.assertEqual(sorted(result['updates']), sorted(updates))
def test_lacp_global_present(self): xml_existing = load_fixture('ce_lacp', 'ce_lacp_10.txt') xml_end_state = load_fixture('ce_lacp', 'ce_lacp_11.txt') self.get_nc_config.side_effect = (xml_existing, xml_end_state) set_module_args(dict(global_priority=32769, state='present')) result = self.execute_module(changed=True) self.assertEqual(result['updates'], ['lacp priority 32769'])
def test_lacp_eturnk_absent(self): xml_existing = load_fixture('ce_lacp', 'ce_lacp_10.txt') xml_end_state = load_fixture('ce_lacp', 'ce_lacp_00.txt') default_values = [ 'undo lacp priority', 'lacp timeout Fast', 'lacp max active-linknumber 1', 'lacp collector delay 0', 'lacp preempt enable false', 'lacp dampening state-flapping false', 'lacp dampening unexpected-mac disable false', 'lacp mixed-rate link enable false', 'lacp port-id-extension enable false', 'lacp preempt delay 30', 'lacp select Speed', 'lacp system-id 11-22-33', 'lacp timeout user-defined 3' ] self.get_nc_config.side_effect = (xml_existing, xml_end_state) set_module_args( dict(mode='Dynamic', trunk_id='10', preempt_enable='true', state_flapping='true', port_id_extension_enable='true', unexpected_mac_disable='true', system_id='0000-1111-2222', timeout_type='Fast', fast_timeout='10', mixed_rate_link_enable='true', preempt_delay=11, collector_delay=12, max_active_linknumber=13, select='Speed', state='absent')) result = self.execute_module(changed=True) self.assertEqual(sorted(result['updates']), sorted(default_values))
def test_lacp_sys_parameter_present(self): update = [ 'lldp enable', 'lldp mdn enable', 'lldp mdn enable', 'lldp transmit interval 8', 'lldp transmit multiplier 8', 'lldp restart 8', 'lldp transmit delay 8', 'lldp trap-interval 8', 'lldp fast-count 8', 'lldp mdn trap-interval 8', 'lldp management-address 1.1.1.1', 'lldp management-address bind interface bind-name' ] self.get_nc_config.side_effect = self.get_side_effect self.set_nc_config.side_effect = [self.result_ok] * 11 set_module_args( dict(lldpenable='enabled', mdnstatus='rxOnly', interval=8, hold_multiplier=8, restart_delay=8, transmit_delay=8, notification_interval=8, fast_count=8, mdn_notification_interval=8, management_address='1.1.1.1', bind_name='bind-name')) result = self.execute_module(changed=True) self.assertEqual(sorted(result['updates']), sorted(update))
def test_lldp_absent(self): self.get_nc_config.side_effect = (self.xml_present, self.xml_present, self.xml_absent, self.xml_absent) self.set_nc_config.return_value = self.result_ok config = dict(lldpenable='enabled', function_lldp_interface_flag='disableINTERFACE', type_tlv_disable='basic_tlv', type_tlv_enable='dot1_tlv', ifname='10GE1/0/1', lldpadminstatus='txOnly', manaddrtxenable=False, portdesctxenable=False, syscaptxenable=False, sysdesctxenable=False, sysnametxenable=False, portvlantxenable=False, protovlantxenable=False, txprotocolvlanid=False, vlannametxenable=False, txvlannameid=18, txinterval=18, protoidtxenable=False, macphytxenable=False, linkaggretxenable=False, maxframetxenable=False, eee=False, dcbx=False, state='absent') set_module_args(config) result = self.execute_module(changed=False)
def test_repeat_enable(self): self.get_nc_config.side_effect = (self.after, self.after, self.after, self.after, ) set_module_args(dict( lldpenable='enabled', mdnstatus='rxOnly', ifname='10GE1/0/1') ) self.execute_module(changed=False)
def test_mdn_enable(self): update = [['lldp enable', 'interface 10GE1/0/1', 'lldp mdn enable']] self.get_nc_config.side_effect = (self.before, self.before, self.after, self.after) set_module_args(dict( lldpenable='enabled', mdnstatus='rxOnly', ifname='10GE1/0/1') ) result = self.execute_module(changed=True) self.assertEquals(sorted(result['updates']), sorted(update))
def test_ce_is_is_view_absent(self): self.get_nc_config.side_effect = (self.after, self.before) config = dict(instance_id=100, description='ISIS', islevel='level_1', coststyle='narrow', stdlevel2cost=60, stdbandwidth=100, autocostenable=True, autocostenablecompatible=True, netentity='netentity', preference_value=100, route_policy_name='route', max_load=32, ip_address='1.1.1.1', weight=100, penetration_direct='level2-level1', import_routepolicy_name='import', tag=100, allow_filter=True, allow_up_down=True, enablelevel1tolevel2=True, defaultmode='always', mode_routepolicyname='mode', cost=100, mode_tag=100, level_type='level_1', avoid_learning=True, protocol='ospf', processid=100, cost_type='external', import_cost=100, import_tag=100, import_route_policy='import', impotr_leveltype='level_1', inheritcost=True, permitibgp=True, export_protocol='ospf', export_policytype='aclNumOrName', export_processid=100, export_ipprefix='export', export_routepolicyname='export', import_aclnumorname='acl', import_routepolicyname='import', bfd_min_rx=100, bfd_min_tx=100, bfd_multiplier_num=10, state='absent') set_module_args(config) self.execute_module(changed=True)
def test_isis_interface_absent(self): update = [ 'interface 10GE1/0/1', 'undo isis enable', 'undo isis circuit-level', 'undo isis ppp-negotiation' ] self.get_nc_config.side_effect = (self.after, self.before) config = dict(instance_id=100, ifname='10GE1/0/1', leveltype='level_1', level1dispriority=10, silentenable=True, silentcost=True, typep2penable=True, snpacheck=True, p2pnegotiationmode='2_way', p2ppeeripignore=True, ppposicpcheckenable=True, level2cost=10, state='absent') set_module_args(config) result = self.execute_module(changed=True) self.assertEquals(sorted(result['updates']), sorted(update))
def test_ce_static_route_bfd_changed_false(self): srBfdPara_1 = load_fixture('ce_static_route_bfd', 'srBfdPara_1.txt') staticrtbase_1 = load_fixture('ce_static_route_bfd', 'staticrtbase_1.txt') self.get_nc_config.side_effect = (srBfdPara_1, srBfdPara_1, staticrtbase_1, staticrtbase_1) config = dict(prefix='255.255.0.0', mask=22, aftype='v4', next_hop='10.10.1.1', nhp_interface='10GE1/0/1', vrf='mgnt', destvrf='_public_', tag=23, description='for a test', pref='22', function_flag='dynamicBFD', min_tx_interval='32', min_rx_interval='23', detect_multiplier='24', bfd_session_name='43') set_module_args(config) self.execute_module(changed=False)
def test_multicast_undo_enable(self): update = ['undo multicast routing-enable'] self.get_nc_config.side_effect = (self.after, self.before) set_module_args(dict(aftype='v4', vrf='vpna', state='absent')) result = self.execute_module(changed=True) self.assertEquals(sorted(result['updates']), sorted(update))
def test_ce_is_is_view_present(self): self.get_nc_config.side_effect = (self.before, self.after) update = [ 'isis 100', 'description ISIS', 'is-level level_1', 'cost-style narrow', 'circuit-cost 60 level-2', 'bandwidth-reference 100', 'network-entity netentity', 'preference 100 route-policy route', 'maximum load-balancing 32', 'nexthop 1.1.1.1 weight 100', 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', 'preference 100 route-policy route', 'undo import-route isis level-1 into level-2 disable', 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', 'preference 100 route-policy route', 'import-route ospf 100 inherit-cost cost-type external cost 100 tag 100 route-policy import level-1', 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', 'preference 100 route-policy route', 'bfd all-interfaces enable', 'bfd all-interfaces min-rx-interval 100 min-tx-interval 100 detect-multiplier 10', 'import-route ospf 100 inherit-cost cost-type external cost 100 tag 100 route-policy import level-1', 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', 'preference 100 route-policy route', 'filter-policy ip-prefix export route-policy export export ospf 100', 'bfd all-interfaces min-rx-interval 100 min-tx-interval 100 detect-multiplier 10', 'import-route ospf 100 inherit-cost cost-type external cost 100 tag 100 route-policy import level-1', 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', 'preference 100 route-policy route', 'filter-policy acl-name acl route-policy importimport', 'filter-policy ip-prefix export route-policy export export ospf 100', 'bfd all-interfaces min-rx-interval 100 min-tx-interval 100 detect-multiplier 10', 'import-route ospf 100 inherit-cost cost-type external cost 100 tag 100 route-policy import level-1', 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', 'preference 100 route-policy route', 'auto-cost enable', 'auto-cost enable compatible' ] config = dict(instance_id=100, description='ISIS', islevel='level_1', coststyle='narrow', stdlevel2cost=60, stdbandwidth=100, autocostenable=True, autocostenablecompatible=True, netentity='netentity', preference_value=100, route_policy_name='route', max_load=32, ip_address='1.1.1.1', weight=100, penetration_direct='level2-level1', import_routepolicy_name='import', tag=100, allow_filter=True, allow_up_down=True, enablelevel1tolevel2=True, defaultmode='always', mode_routepolicyname='mode', cost=100, mode_tag=100, level_type='level_1', avoid_learning=True, protocol='ospf', processid=100, cost_type='external', import_cost=100, import_tag=100, import_route_policy='import', impotr_leveltype='level_1', inheritcost=True, permitibgp=True, export_protocol='ospf', export_policytype='aclNumOrName', export_processid=100, export_ipprefix='export', export_routepolicyname='export', import_aclnumorname='acl', import_routepolicyname='import', bfd_min_rx=100, bfd_min_tx=100, bfd_multiplier_num=10) set_module_args(config) result = self.execute_module(changed=True) self.assertEquals(sorted(result['updates']), sorted(update))