Add passive_interface property to nxos_ospf_vrf module (#28288)

* add passive_interface property to nxos_ospf_vrf module

* Add version_added for
pull/28778/head
rahushen 7 years ago committed by Nathaniel Case
parent 1c4fe510d0
commit 2cf836772d

@ -112,6 +112,14 @@ options:
Valid values are an integer, in Mbps, or the keyword 'default'. Valid values are an integer, in Mbps, or the keyword 'default'.
required: false required: false
default: null default: null
passive_interface:
description:
- Setting to true will suppress routing update on interface.
Valid values are 'true' and 'false'.
version_added: "2.4"
required: false
choices: ['true','false']
default: null
''' '''
EXAMPLES = ''' EXAMPLES = '''
@ -143,6 +151,9 @@ from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.netcfg import CustomNetworkConfig from ansible.module_utils.netcfg import CustomNetworkConfig
BOOL_PARAMS = [
'passive_interface'
]
PARAM_TO_COMMAND_KEYMAP = { PARAM_TO_COMMAND_KEYMAP = {
'vrf': 'vrf', 'vrf': 'vrf',
'router_id': 'router-id', 'router_id': 'router-id',
@ -154,7 +165,8 @@ PARAM_TO_COMMAND_KEYMAP = {
'timer_throttle_spf_max': 'timers throttle spf', 'timer_throttle_spf_max': 'timers throttle spf',
'timer_throttle_spf_start': 'timers throttle spf', 'timer_throttle_spf_start': 'timers throttle spf',
'timer_throttle_spf_hold': 'timers throttle spf', 'timer_throttle_spf_hold': 'timers throttle spf',
'auto_cost': 'auto-cost reference-bandwidth' 'auto_cost': 'auto-cost reference-bandwidth',
'passive_interface': 'passive-interface default'
} }
PARAM_TO_DEFAULT_KEYMAP = { PARAM_TO_DEFAULT_KEYMAP = {
'timer_throttle_lsa_start': '0', 'timer_throttle_lsa_start': '0',
@ -178,6 +190,11 @@ def get_value(arg, config, module):
value = 'detail' value = 'detail'
else: else:
value = 'log' value = 'log'
elif arg == 'passive_interface':
if 'passive-interface default' in config:
value = True
else:
value = False
else: else:
value_list = command_re.search(config).group('value').split() value_list = command_re.search(config).group('value').split()
if 'hold' in arg: if 'hold' in arg:
@ -243,7 +260,11 @@ def state_present(module, existing, proposed, candidate):
commands.append(key) commands.append(key)
elif value is False: elif value is False:
commands.append('no {0}'.format(key)) if key == 'passive-interface default':
if existing_commands.get(key):
commands.append('no {0}'.format(key))
else:
commands.append('no {0}'.format(key))
elif value == 'default': elif value == 'default':
if existing_commands.get(key): if existing_commands.get(key):
@ -283,7 +304,6 @@ def state_present(module, existing, proposed, candidate):
parents = ['router ospf {0}'.format(module.params['ospf'])] parents = ['router ospf {0}'.format(module.params['ospf'])]
if module.params['vrf'] != 'default': if module.params['vrf'] != 'default':
parents.append('vrf {0}'.format(module.params['vrf'])) parents.append('vrf {0}'.format(module.params['vrf']))
candidate.add(commands, parents=parents) candidate.add(commands, parents=parents)
@ -293,8 +313,10 @@ def state_absent(module, existing, proposed, candidate):
if module.params['vrf'] == 'default': if module.params['vrf'] == 'default':
existing_commands = apply_key_map(PARAM_TO_COMMAND_KEYMAP, existing) existing_commands = apply_key_map(PARAM_TO_COMMAND_KEYMAP, existing)
for key, value in existing_commands.items(): for key, value in existing_commands.items():
if value: if value and key != 'vrf':
if key == 'timers throttle lsa': if key == 'passive-interface default':
command = 'no {0}'.format(key)
elif key == 'timers throttle lsa':
command = 'no {0} {1} {2} {3}'.format( command = 'no {0} {1} {2} {3}'.format(
key, key,
existing['timer_throttle_lsa_start'], existing['timer_throttle_lsa_start'],
@ -314,7 +336,9 @@ def state_absent(module, existing, proposed, candidate):
commands.append(command) commands.append(command)
else: else:
commands = ['no vrf {0}'.format(module.params['vrf'])] commands = ['no vrf {0}'.format(module.params['vrf'])]
candidate.add(commands, parents=parents)
if commands:
candidate.add(commands, parents=parents)
def main(): def main():
@ -331,6 +355,7 @@ def main():
timer_throttle_spf_hold=dict(required=False, type='str'), timer_throttle_spf_hold=dict(required=False, type='str'),
timer_throttle_spf_max=dict(required=False, type='str'), timer_throttle_spf_max=dict(required=False, type='str'),
auto_cost=dict(required=False, type='str'), auto_cost=dict(required=False, type='str'),
passive_interface=dict(required=False, type='bool'),
state=dict(choices=['present', 'absent'], default='present', required=False), state=dict(choices=['present', 'absent'], default='present', required=False),
include_defaults=dict(default=True), include_defaults=dict(default=True),
config=dict(), config=dict(),

@ -20,6 +20,7 @@
timer_throttle_lsa_hold: 1100 timer_throttle_lsa_hold: 1100
timer_throttle_lsa_max: 3000 timer_throttle_lsa_max: 3000
vrf: test vrf: test
passive_interface: true
state: present state: present
provider: "{{ connection }}" provider: "{{ connection }}"
register: result register: result

Loading…
Cancel
Save