adds system_mtu argument to nxos_system (#21970)
* updates argument_spec * adds unit test case
This commit is contained in:
parent
8dbb12a9c4
commit
216877c6ca
3 changed files with 28 additions and 2 deletions
|
@ -179,6 +179,9 @@ def map_obj_to_commands(want, have, module):
|
||||||
cmd = 'no ip name-server %s' % item['server']
|
cmd = 'no ip name-server %s' % item['server']
|
||||||
remove(cmd, commands, item['vrf'])
|
remove(cmd, commands, item['vrf'])
|
||||||
|
|
||||||
|
if have['system_mtu']:
|
||||||
|
commands.append('no system jumbomtu')
|
||||||
|
|
||||||
if state == 'present':
|
if state == 'present':
|
||||||
if needs_update('hostname'):
|
if needs_update('hostname'):
|
||||||
commands.append('hostname %s' % want['hostname'])
|
commands.append('hostname %s' % want['hostname'])
|
||||||
|
@ -213,6 +216,9 @@ def map_obj_to_commands(want, have, module):
|
||||||
cmd = 'ip name-server %s' % item['server']
|
cmd = 'ip name-server %s' % item['server']
|
||||||
add(cmd, commands, item['vrf'])
|
add(cmd, commands, item['vrf'])
|
||||||
|
|
||||||
|
if needs_update('system_mtu'):
|
||||||
|
commands.append('system jumbomtu %s' % want['system_mtu'])
|
||||||
|
|
||||||
return commands
|
return commands
|
||||||
|
|
||||||
def parse_hostname(config):
|
def parse_hostname(config):
|
||||||
|
@ -262,6 +268,11 @@ def parse_name_servers(config, vrf_config):
|
||||||
|
|
||||||
return objects
|
return objects
|
||||||
|
|
||||||
|
def parse_system_mtu(config):
|
||||||
|
match = re.search('^system jumbomtu (\d+)', config, re.M)
|
||||||
|
if match:
|
||||||
|
return int(match.group(1))
|
||||||
|
|
||||||
def map_config_to_obj(module):
|
def map_config_to_obj(module):
|
||||||
config = get_config(module)
|
config = get_config(module)
|
||||||
configobj = NetworkConfig(indent=2, contents=config)
|
configobj = NetworkConfig(indent=2, contents=config)
|
||||||
|
@ -278,13 +289,19 @@ def map_config_to_obj(module):
|
||||||
'domain_lookup': 'no ip domain-lookup' not in config,
|
'domain_lookup': 'no ip domain-lookup' not in config,
|
||||||
'domain_name': parse_domain_name(config, vrf_config),
|
'domain_name': parse_domain_name(config, vrf_config),
|
||||||
'domain_search': parse_domain_search(config, vrf_config),
|
'domain_search': parse_domain_search(config, vrf_config),
|
||||||
'name_servers': parse_name_servers(config, vrf_config)
|
'name_servers': parse_name_servers(config, vrf_config),
|
||||||
|
'system_mtu': parse_system_mtu(config)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def validate_system_mtu(value, module):
|
||||||
|
if not 1500 <= value <= 9216:
|
||||||
|
module.fail_json(msg='system_mtu must be between 1500 and 9216')
|
||||||
|
|
||||||
def map_params_to_obj(module):
|
def map_params_to_obj(module):
|
||||||
obj = {
|
obj = {
|
||||||
'hostname': module.params['hostname'],
|
'hostname': module.params['hostname'],
|
||||||
'domain_lookup': module.params['domain_lookup'],
|
'domain_lookup': module.params['domain_lookup'],
|
||||||
|
'system_mtu': module.params['system_mtu']
|
||||||
}
|
}
|
||||||
|
|
||||||
domain_name = ComplexList(dict(
|
domain_name = ComplexList(dict(
|
||||||
|
@ -327,6 +344,8 @@ def main():
|
||||||
# { server: <str>; vrf: <str> }
|
# { server: <str>; vrf: <str> }
|
||||||
name_servers=dict(type='list'),
|
name_servers=dict(type='list'),
|
||||||
|
|
||||||
|
system_mtu=dict(type='int'),
|
||||||
|
|
||||||
state=dict(default='present', choices=['present', 'absent'])
|
state=dict(default='present', choices=['present', 'absent'])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
hostname nxos01
|
hostname nxos01
|
||||||
|
system jumbomtu 1500
|
||||||
!
|
!
|
||||||
no ip domain-lookup
|
no ip domain-lookup
|
||||||
ip domain-name ansible.com
|
ip domain-name ansible.com
|
||||||
|
|
|
@ -109,6 +109,11 @@ class TestNxosSystemModule(TestNxosModule):
|
||||||
'vrf context management', 'ip name-server 1.2.3.4', 'exit']
|
'vrf context management', 'ip name-server 1.2.3.4', 'exit']
|
||||||
self.execute_module(changed=True, commands=commands)
|
self.execute_module(changed=True, commands=commands)
|
||||||
|
|
||||||
|
def test_nxos_system_system_mtu(self):
|
||||||
|
set_module_args(dict(system_mtu=2000))
|
||||||
|
commands = ['system jumbomtu 2000']
|
||||||
|
self.execute_module(changed=True, commands=commands)
|
||||||
|
|
||||||
def test_nxos_system_state_absent(self):
|
def test_nxos_system_state_absent(self):
|
||||||
set_module_args(dict(state='absent'))
|
set_module_args(dict(state='absent'))
|
||||||
commands = ['no hostname', 'no ip domain-name ansible.com',
|
commands = ['no hostname', 'no ip domain-name ansible.com',
|
||||||
|
@ -118,7 +123,8 @@ class TestNxosSystemModule(TestNxosModule):
|
||||||
'vrf context management', 'no ip domain-list redhat.com', 'exit',
|
'vrf context management', 'no ip domain-list redhat.com', 'exit',
|
||||||
'no ip name-server 8.8.8.8', 'no ip name-server 172.26.1.1',
|
'no ip name-server 8.8.8.8', 'no ip name-server 172.26.1.1',
|
||||||
'vrf context management', 'no ip name-server 8.8.8.8', 'exit',
|
'vrf context management', 'no ip name-server 8.8.8.8', 'exit',
|
||||||
'vrf context management', 'no ip name-server 172.26.1.1', 'exit']
|
'vrf context management', 'no ip name-server 172.26.1.1', 'exit',
|
||||||
|
'no system jumbomtu']
|
||||||
self.execute_module(changed=True, commands=commands)
|
self.execute_module(changed=True, commands=commands)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue