parent
aa32f4e80c
commit
0296c2285b
5 changed files with 47 additions and 19 deletions
|
@ -98,7 +98,7 @@ commands:
|
||||||
'''
|
'''
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from ansible.module_utils.nxos import get_config, load_config, run_commands
|
from ansible.module_utils.nxos import load_config, run_commands
|
||||||
from ansible.module_utils.nxos import nxos_argument_spec, check_args
|
from ansible.module_utils.nxos import nxos_argument_spec, check_args
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
|
||||||
|
@ -190,6 +190,7 @@ def get_vrf(vrf, module):
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
parsed_vrf = apply_key_map(vrf_key, vrf_table)
|
parsed_vrf = apply_key_map(vrf_key, vrf_table)
|
||||||
|
parsed_vrf['admin_state'] = parsed_vrf['admin_state'].lower()
|
||||||
|
|
||||||
command = 'show run all | section vrf.context.{0}'.format(vrf)
|
command = 'show run all | section vrf.context.{0}'.format(vrf)
|
||||||
body = execute_show_command(command, module)[0]
|
body = execute_show_command(command, module)[0]
|
||||||
|
@ -259,13 +260,13 @@ def main():
|
||||||
if proposed.get('vni'):
|
if proposed.get('vni'):
|
||||||
if existing.get('vni') and existing.get('vni') != '':
|
if existing.get('vni') and existing.get('vni') != '':
|
||||||
commands.insert(1, 'no vni {0}'.format(existing['vni']))
|
commands.insert(1, 'no vni {0}'.format(existing['vni']))
|
||||||
if module.check_mode:
|
|
||||||
module.exit_json(changed=True, commands=commands)
|
if not module.check_mode:
|
||||||
else:
|
|
||||||
load_config(module, commands)
|
load_config(module, commands)
|
||||||
results['changed'] = True
|
|
||||||
if 'configure' in commands:
|
results['changed'] = True
|
||||||
commands.pop(0)
|
if 'configure' in commands:
|
||||||
|
commands.pop(0)
|
||||||
|
|
||||||
results['commands'] = commands
|
results['commands'] = commands
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
vrf context coke
|
||||||
|
vrf context management
|
||||||
|
ip route 172.26.0.0/16 172.26.4.1
|
||||||
|
vrf context test-vrf
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"TABLE_vrf": {
|
||||||
|
"ROW_vrf": {
|
||||||
|
"vrf_name": "management",
|
||||||
|
"vrf_id": 2,
|
||||||
|
"vrf_state": "Up",
|
||||||
|
"vrf_reason": "--"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -19,7 +19,7 @@
|
||||||
from __future__ import (absolute_import, division, print_function)
|
from __future__ import (absolute_import, division, print_function)
|
||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
import json
|
import os
|
||||||
|
|
||||||
from ansible.compat.tests.mock import patch
|
from ansible.compat.tests.mock import patch
|
||||||
from ansible.modules.network.nxos import nxos_vrf
|
from ansible.modules.network.nxos import nxos_vrf
|
||||||
|
@ -31,32 +31,45 @@ class TestNxosVrfModule(TestNxosModule):
|
||||||
module = nxos_vrf
|
module = nxos_vrf
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.mock_run_commands = patch('ansible.modules.network.nxos.nxos_vrf.run_commands')
|
|
||||||
self.run_commands = self.mock_run_commands.start()
|
|
||||||
|
|
||||||
self.mock_load_config = patch('ansible.modules.network.nxos.nxos_vrf.load_config')
|
self.mock_load_config = patch('ansible.modules.network.nxos.nxos_vrf.load_config')
|
||||||
self.load_config = self.mock_load_config.start()
|
self.load_config = self.mock_load_config.start()
|
||||||
|
|
||||||
self.mock_get_config = patch('ansible.modules.network.nxos.nxos_vrf.get_config')
|
self.mock_run_commands = patch('ansible.modules.network.nxos.nxos_vrf.run_commands')
|
||||||
self.get_config = self.mock_get_config.start()
|
self.run_commands = self.mock_run_commands.start()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.mock_run_commands.stop()
|
|
||||||
self.mock_load_config.stop()
|
self.mock_load_config.stop()
|
||||||
self.mock_get_config.stop()
|
self.mock_run_commands.stop()
|
||||||
|
|
||||||
def load_fixtures(self, commands=None):
|
def load_fixtures(self, commands=None):
|
||||||
|
def load_from_file(*args, **kwargs):
|
||||||
|
module, commands = args
|
||||||
|
output = list()
|
||||||
|
|
||||||
|
for command in commands:
|
||||||
|
filename = str(command).split(' | ')[0].replace(' ', '_')
|
||||||
|
filename = os.path.join('nxos_vrf', filename)
|
||||||
|
output.append(load_fixture(filename))
|
||||||
|
return output
|
||||||
|
|
||||||
self.load_config.return_value = None
|
self.load_config.return_value = None
|
||||||
|
self.run_commands.side_effect = load_from_file
|
||||||
|
|
||||||
def test_nxos_vrf_present(self):
|
def test_nxos_vrf_present(self):
|
||||||
set_module_args(dict(vrf='ntc', state='present', admin_state='up'))
|
set_module_args(dict(vrf='ntc', state='present', admin_state='up'))
|
||||||
result = self.execute_module(changed=True)
|
self.execute_module(changed=True, commands=['vrf context ntc', 'no shutdown'])
|
||||||
self.assertEqual(result['commands'], ['vrf context ntc', 'no shutdown'])
|
|
||||||
|
def test_nxos_vrf_present_no_change(self):
|
||||||
|
set_module_args(dict(vrf='management', state='present', admin_state='up'))
|
||||||
|
self.execute_module(changed=False, commands=[])
|
||||||
|
|
||||||
def test_nxos_vrf_absent(self):
|
def test_nxos_vrf_absent(self):
|
||||||
|
set_module_args(dict(vrf='management', state='absent'))
|
||||||
|
self.execute_module(changed=True, commands=['no vrf context management'])
|
||||||
|
|
||||||
|
def test_nxos_vrf_absent_no_change(self):
|
||||||
set_module_args(dict(vrf='ntc', state='absent'))
|
set_module_args(dict(vrf='ntc', state='absent'))
|
||||||
result = self.execute_module(changed=True)
|
self.execute_module(changed=False, commands=[])
|
||||||
self.assertEqual(result['commands'], ['no vrf context ntc'])
|
|
||||||
|
|
||||||
def test_nxos_vrf_default(self):
|
def test_nxos_vrf_default(self):
|
||||||
set_module_args(dict(vrf='default'))
|
set_module_args(dict(vrf='default'))
|
||||||
|
|
Loading…
Reference in a new issue