mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 04:40:22 -07:00
Add new module mlnxos_mlag_vip for configuring MLAG VIP on Mellanox network devices (#34285)
* Add new module mlnxos_mlag_vip for configuring MLAG VIP on Mellanox network devices Signed-off-by: Samer Deeb <samerd@mellanox.com> * Remove unused variables Signed-off-by: Samer Deeb <samerd@mellanox.com> * Fix Test class name * Fix Documentation Signed-off-by: Samer Deeb <samerd@mellanox.com> * Fix MAC address case-insensitive Signed-off-by: Samer Deeb <samerd@mellanox.com> * Fix MAC address unit-test Signed-off-by: Samer Deeb <samerd@mellanox.com>
This commit is contained in:
parent
ad73bda323
commit
473b2d58ec
4 changed files with 292 additions and 0 deletions
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"Reload-delay": "30 sec",
|
||||
"Upgrade-timeout": "60 min",
|
||||
"System-mac": "00:00:5E:00:01:4E",
|
||||
"Admin status": "Disabled",
|
||||
"MLAG Ports Status Summary": {
|
||||
"Active-partial": "0",
|
||||
"Inactive": "0",
|
||||
"Active-full": "0"
|
||||
},
|
||||
"Keepalive-interval": "1 sec",
|
||||
"MLAG Ports Configuration Summary": {
|
||||
"Disabled": "0",
|
||||
"Configured": "0",
|
||||
"Enabled": "0"
|
||||
},
|
||||
"Operational status": "Down"
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"r-neo-sw12": [
|
||||
{
|
||||
"IP Address": "10.209.26.55",
|
||||
"VIP-State": "standby"
|
||||
}
|
||||
],
|
||||
"r-smg-sw14": [
|
||||
{
|
||||
"IP Address": "10.209.27.172",
|
||||
"VIP-State": "master"
|
||||
}
|
||||
],
|
||||
"MLAG-VIP": {
|
||||
"MLAG VIP address": "10.209.25.107/24",
|
||||
"MLAG group name": "neo-mlag-vip-500",
|
||||
"Active nodes": "2"
|
||||
}
|
||||
}
|
76
test/units/modules/network/mlnxos/test_mlnxos_mlag_vip.py
Normal file
76
test/units/modules/network/mlnxos/test_mlnxos_mlag_vip.py
Normal file
|
@ -0,0 +1,76 @@
|
|||
#
|
||||
# Copyright: Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
# Make coding more python3-ish
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
from ansible.compat.tests.mock import patch
|
||||
from ansible.modules.network.mlnxos import mlnxos_mlag_vip
|
||||
from units.modules.utils import set_module_args
|
||||
from .mlnxos_module import TestMlnxosModule, load_fixture
|
||||
|
||||
|
||||
class TestMlnxosMlagVipModule(TestMlnxosModule):
|
||||
|
||||
module = mlnxos_mlag_vip
|
||||
|
||||
def setUp(self):
|
||||
super(TestMlnxosMlagVipModule, self).setUp()
|
||||
self._mlag_enabled = True
|
||||
self.mock_show_mlag = patch.object(
|
||||
mlnxos_mlag_vip.MlnxosMLagVipModule,
|
||||
"_show_mlag")
|
||||
self.show_mlag = self.mock_show_mlag.start()
|
||||
self.mock_show_mlag_vip = patch.object(
|
||||
mlnxos_mlag_vip.MlnxosMLagVipModule,
|
||||
"_show_mlag_vip")
|
||||
self.show_mlag_vip = self.mock_show_mlag_vip.start()
|
||||
|
||||
self.mock_load_config = patch(
|
||||
'ansible.module_utils.network.mlnxos.mlnxos.load_config')
|
||||
self.load_config = self.mock_load_config.start()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestMlnxosMlagVipModule, self).tearDown()
|
||||
self.mock_show_mlag.stop()
|
||||
self.mock_show_mlag_vip.stop()
|
||||
self.mock_load_config.stop()
|
||||
|
||||
def load_fixtures(self, commands=None, transport='cli'):
|
||||
if self._mlag_enabled:
|
||||
config_file = 'mlnxos_mlag_vip_show.cfg'
|
||||
self.show_mlag_vip.return_value = load_fixture(config_file)
|
||||
config_file = 'mlnxos_mlag_show.cfg'
|
||||
self.show_mlag.return_value = load_fixture(config_file)
|
||||
else:
|
||||
self.show_mlag_vip.return_value = None
|
||||
self.show_mlag.return_value = None
|
||||
self.load_config.return_value = None
|
||||
|
||||
def test_mlag_no_change(self):
|
||||
set_module_args(dict(ipaddress='10.209.25.107/24',
|
||||
group_name='neo-mlag-vip-500',
|
||||
mac_address='00:00:5E:00:01:4E'))
|
||||
self.execute_module(changed=False)
|
||||
|
||||
def test_mlag_change(self):
|
||||
self._mlag_enabled = False
|
||||
set_module_args(dict(ipaddress='10.209.25.107/24',
|
||||
group_name='neo-mlag-vip-500',
|
||||
mac_address='00:00:5E:00:01:4E',
|
||||
delay=0))
|
||||
commands = ['mlag-vip neo-mlag-vip-500 ip 10.209.25.107 /24 force',
|
||||
'mlag system-mac 00:00:5e:00:01:4e', 'no mlag shutdown']
|
||||
self.execute_module(changed=True, commands=commands)
|
||||
|
||||
def test_mlag_absent_no_change(self):
|
||||
self._mlag_enabled = False
|
||||
set_module_args(dict(state='absent'))
|
||||
self.execute_module(changed=False)
|
||||
|
||||
def test_mlag_absent_change(self):
|
||||
set_module_args(dict(state='absent', delay=0))
|
||||
commands = ['no mlag-vip']
|
||||
self.execute_module(changed=True, commands=commands)
|
Loading…
Add table
Add a link
Reference in a new issue