mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add ospf net type (#45904)
* Added ospf network type option to nxos_interface_ospf module * Added documentation and example for the 'network' parameter * adding version
This commit is contained in:
parent
d5f8738bf2
commit
a6c20488d3
3 changed files with 28 additions and 1 deletions
|
@ -36,6 +36,7 @@ notes:
|
||||||
- To remove an existing authentication configuration you should use
|
- To remove an existing authentication configuration you should use
|
||||||
C(message_digest_key_id=default) plus all other options matching their
|
C(message_digest_key_id=default) plus all other options matching their
|
||||||
existing values.
|
existing values.
|
||||||
|
- Loopback interfaces only support ospf network type 'point-to-point'.
|
||||||
- C(state=absent) removes the whole OSPF interface configuration.
|
- C(state=absent) removes the whole OSPF interface configuration.
|
||||||
options:
|
options:
|
||||||
interface:
|
interface:
|
||||||
|
@ -69,6 +70,11 @@ options:
|
||||||
- Setting to true will prevent this interface from receiving
|
- Setting to true will prevent this interface from receiving
|
||||||
HELLO packets.
|
HELLO packets.
|
||||||
type: bool
|
type: bool
|
||||||
|
network:
|
||||||
|
description:
|
||||||
|
- Specifies interface ospf network type. Valid values are 'point-to-point' or 'broadcast'.
|
||||||
|
choices: ['point-to-point', 'broadcast']
|
||||||
|
version_added: "2.8"
|
||||||
message_digest:
|
message_digest:
|
||||||
description:
|
description:
|
||||||
- Enables or disables the usage of message digest authentication.
|
- Enables or disables the usage of message digest authentication.
|
||||||
|
@ -105,6 +111,13 @@ EXAMPLES = '''
|
||||||
ospf: 1
|
ospf: 1
|
||||||
area: 1
|
area: 1
|
||||||
cost: default
|
cost: default
|
||||||
|
|
||||||
|
- nxos_interface_ospf:
|
||||||
|
interface: loopback0
|
||||||
|
ospf: prod
|
||||||
|
area: 0.0.0.0
|
||||||
|
network: point-to-point
|
||||||
|
state: present
|
||||||
'''
|
'''
|
||||||
|
|
||||||
RETURN = '''
|
RETURN = '''
|
||||||
|
@ -141,6 +154,7 @@ PARAM_TO_COMMAND_KEYMAP = {
|
||||||
'message_digest_algorithm_type': 'ip ospf message-digest-key',
|
'message_digest_algorithm_type': 'ip ospf message-digest-key',
|
||||||
'message_digest_encryption_type': 'ip ospf message-digest-key',
|
'message_digest_encryption_type': 'ip ospf message-digest-key',
|
||||||
'message_digest_password': 'ip ospf message-digest-key',
|
'message_digest_password': 'ip ospf message-digest-key',
|
||||||
|
'network': 'ip ospf network',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -249,6 +263,12 @@ def get_custom_command(existing_cmd, proposed, key, module):
|
||||||
if command not in existing_cmd:
|
if command not in existing_cmd:
|
||||||
commands.append(command)
|
commands.append(command)
|
||||||
|
|
||||||
|
if key == 'ip ospf network':
|
||||||
|
command = '{0} {1}'.format(key, proposed['network'])
|
||||||
|
|
||||||
|
if command not in existing_cmd:
|
||||||
|
commands.append(command)
|
||||||
|
|
||||||
elif key.startswith('ip ospf message-digest-key'):
|
elif key.startswith('ip ospf message-digest-key'):
|
||||||
if (proposed['message_digest_key_id'] != 'default' and
|
if (proposed['message_digest_key_id'] != 'default' and
|
||||||
'options' not in key):
|
'options' not in key):
|
||||||
|
@ -281,6 +301,8 @@ def state_present(module, existing, proposed, candidate):
|
||||||
|
|
||||||
if key == 'ip ospf passive-interface' and module.params.get('interface').upper().startswith('LO'):
|
if key == 'ip ospf passive-interface' and module.params.get('interface').upper().startswith('LO'):
|
||||||
module.fail_json(msg='loopback interface does not support passive_interface')
|
module.fail_json(msg='loopback interface does not support passive_interface')
|
||||||
|
if key == 'ip ospf network' and value == 'broadcast' and module.params.get('interface').upper().startswith('LO'):
|
||||||
|
module.fail_json(msg='loopback interface does not support ospf network type broadcast')
|
||||||
if value is True:
|
if value is True:
|
||||||
commands.append(key)
|
commands.append(key)
|
||||||
elif value is False:
|
elif value is False:
|
||||||
|
@ -325,7 +347,7 @@ def state_absent(module, existing, proposed, candidate):
|
||||||
existing['message_digest_password'])
|
existing['message_digest_password'])
|
||||||
commands.append(command)
|
commands.append(command)
|
||||||
elif key in ['ip ospf authentication message-digest',
|
elif key in ['ip ospf authentication message-digest',
|
||||||
'ip ospf passive-interface']:
|
'ip ospf passive-interface', 'ip ospf network']:
|
||||||
if value:
|
if value:
|
||||||
commands.append('no {0}'.format(key))
|
commands.append('no {0}'.format(key))
|
||||||
elif key == 'ip router ospf':
|
elif key == 'ip router ospf':
|
||||||
|
@ -359,6 +381,7 @@ def main():
|
||||||
hello_interval=dict(required=False, type='str'),
|
hello_interval=dict(required=False, type='str'),
|
||||||
dead_interval=dict(required=False, type='str'),
|
dead_interval=dict(required=False, type='str'),
|
||||||
passive_interface=dict(required=False, type='bool'),
|
passive_interface=dict(required=False, type='bool'),
|
||||||
|
network=dict(required=False, type='str', choices=['broadcast', 'point-to-point']),
|
||||||
message_digest=dict(required=False, type='bool'),
|
message_digest=dict(required=False, type='bool'),
|
||||||
message_digest_key_id=dict(required=False, type='str'),
|
message_digest_key_id=dict(required=False, type='str'),
|
||||||
message_digest_algorithm_type=dict(required=False, type='str', choices=['md5', 'default']),
|
message_digest_algorithm_type=dict(required=False, type='str', choices=['md5', 'default']),
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
passive_interface: true
|
passive_interface: true
|
||||||
hello_interval: 15
|
hello_interval: 15
|
||||||
dead_interval: 75
|
dead_interval: 75
|
||||||
|
network: point-to-point
|
||||||
provider: "{{ connection }}"
|
provider: "{{ connection }}"
|
||||||
state: present
|
state: present
|
||||||
register: result
|
register: result
|
||||||
|
@ -80,6 +81,7 @@
|
||||||
passive_interface: false
|
passive_interface: false
|
||||||
hello_interval: 17
|
hello_interval: 17
|
||||||
dead_interval: 70
|
dead_interval: 70
|
||||||
|
network: broadcast
|
||||||
provider: "{{ connection }}"
|
provider: "{{ connection }}"
|
||||||
state: present
|
state: present
|
||||||
register: result
|
register: result
|
||||||
|
|
|
@ -54,3 +54,5 @@ class TestNxosInterfaceOspfModule(TestNxosModule):
|
||||||
def test_loopback_interface_failed(self):
|
def test_loopback_interface_failed(self):
|
||||||
set_module_args(dict(interface='loopback0', ospf=1, area=0, passive_interface=True))
|
set_module_args(dict(interface='loopback0', ospf=1, area=0, passive_interface=True))
|
||||||
self.execute_module(failed=True, changed=False)
|
self.execute_module(failed=True, changed=False)
|
||||||
|
set_module_args(dict(interface='loopback0', ospf=1, area=0, network='broadcast'))
|
||||||
|
self.execute_module(failed=True, changed=False)
|
||||||
|
|
Loading…
Reference in a new issue