mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-05-29 12:29:10 -07:00
deprecates the old module name (#53972)
adds ha order, ha group and ha load as failover types refactors main() function and module manager to accomodate new patterns updates docs refactors unit tests
This commit is contained in:
parent
cd1ff016ef
commit
dcf40d43ea
4 changed files with 383 additions and 45 deletions
22
test/units/modules/network/f5/fixtures/load_tg_ha_order.json
Normal file
22
test/units/modules/network/f5/fixtures/load_tg_ha_order.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"kind": "tm:cm:traffic-group:traffic-groupstate",
|
||||
"name": "traffic-group-2",
|
||||
"partition": "Common",
|
||||
"fullPath": "/Common/traffic-group-2",
|
||||
"generation": 227,
|
||||
"selfLink": "https://localhost/mgmt/tm/cm/traffic-group/~Common~traffic-group-2?ver=12.1.4",
|
||||
"autoFailbackEnabled": "true",
|
||||
"autoFailbackTime": 60,
|
||||
"haLoadFactor": 1,
|
||||
"isFloating": "true",
|
||||
"mac": "none",
|
||||
"unitId": 1,
|
||||
"haOrder": [
|
||||
"/Common/v12-1.ansible.local"
|
||||
],
|
||||
"haOrderReference": [
|
||||
{
|
||||
"link": "https://localhost/mgmt/tm/cm/device/~Common~v12-1.ansible.local?ver=12.1.4"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -17,10 +17,10 @@ if sys.version_info < (2, 7):
|
|||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
try:
|
||||
from library.modules.bigip_traffic_group import ApiParameters
|
||||
from library.modules.bigip_traffic_group import ModuleParameters
|
||||
from library.modules.bigip_traffic_group import ModuleManager
|
||||
from library.modules.bigip_traffic_group import ArgumentSpec
|
||||
from library.modules.bigip_device_traffic_group import ApiParameters
|
||||
from library.modules.bigip_device_traffic_group import ModuleParameters
|
||||
from library.modules.bigip_device_traffic_group import ModuleManager
|
||||
from library.modules.bigip_device_traffic_group import ArgumentSpec
|
||||
|
||||
# In Ansible 2.8, Ansible changed import paths.
|
||||
from test.units.compat import unittest
|
||||
|
@ -29,10 +29,10 @@ try:
|
|||
|
||||
from test.units.modules.utils import set_module_args
|
||||
except ImportError:
|
||||
from ansible.modules.network.f5.bigip_traffic_group import ApiParameters
|
||||
from ansible.modules.network.f5.bigip_traffic_group import ModuleParameters
|
||||
from ansible.modules.network.f5.bigip_traffic_group import ModuleManager
|
||||
from ansible.modules.network.f5.bigip_traffic_group import ArgumentSpec
|
||||
from ansible.modules.network.f5.bigip_device_traffic_group import ApiParameters
|
||||
from ansible.modules.network.f5.bigip_device_traffic_group import ModuleParameters
|
||||
from ansible.modules.network.f5.bigip_device_traffic_group import ModuleManager
|
||||
from ansible.modules.network.f5.bigip_device_traffic_group import ArgumentSpec
|
||||
|
||||
# Ansible 2.8 imports
|
||||
from units.compat import unittest
|
||||
|
@ -83,6 +83,22 @@ class TestParameters(unittest.TestCase):
|
|||
p = ModuleParameters(params=args)
|
||||
assert p.mac_address == '00:00:00:00:00:02'
|
||||
|
||||
def test_module_parameters_3(self):
|
||||
args = dict(
|
||||
name='foo',
|
||||
ha_order=['bigip1'],
|
||||
ha_group='',
|
||||
auto_failback='yes',
|
||||
auto_failback_time=40
|
||||
)
|
||||
|
||||
p = ModuleParameters(params=args)
|
||||
assert p.name == 'foo'
|
||||
assert p.ha_order == ['/Common/bigip1']
|
||||
assert p.ha_group == 'none'
|
||||
assert p.auto_failback == 'true'
|
||||
assert p.auto_failback_time == 40
|
||||
|
||||
def test_api_parameters_1(self):
|
||||
args = load_fixture('load_tm_cm_traffic_group_1.json')
|
||||
|
||||
|
@ -104,9 +120,11 @@ class TestManager(unittest.TestCase):
|
|||
def test_create(self, *args):
|
||||
set_module_args(dict(
|
||||
name='foo',
|
||||
server='localhost',
|
||||
password='password',
|
||||
user='admin'
|
||||
provider=dict(
|
||||
server='localhost',
|
||||
password='password',
|
||||
user='admin'
|
||||
)
|
||||
))
|
||||
|
||||
module = AnsibleModule(
|
||||
|
@ -121,3 +139,31 @@ class TestManager(unittest.TestCase):
|
|||
results = mm.exec_module()
|
||||
|
||||
assert results['changed'] is True
|
||||
|
||||
def test_modify_ha_order(self, *args):
|
||||
set_module_args(dict(
|
||||
name='traffic-group-2',
|
||||
ha_order=['v12-2.ansible.local', 'v12-1.ansible.local'],
|
||||
provider=dict(
|
||||
server='localhost',
|
||||
password='password',
|
||||
user='admin'
|
||||
)
|
||||
))
|
||||
|
||||
module = AnsibleModule(
|
||||
argument_spec=self.spec.argument_spec,
|
||||
supports_check_mode=self.spec.supports_check_mode,
|
||||
)
|
||||
|
||||
current = ApiParameters(params=load_fixture('load_tg_ha_order.json'))
|
||||
|
||||
mm = ModuleManager(module=module)
|
||||
mm.exists = Mock(return_value=True)
|
||||
mm.read_current_from_device = Mock(return_value=current)
|
||||
mm.update_on_device = Mock(return_value=True)
|
||||
|
||||
results = mm.exec_module()
|
||||
|
||||
assert results['changed'] is True
|
||||
assert results['ha_order'] == ['/Common/v12-2.ansible.local', '/Common/v12-1.ansible.local']
|
Loading…
Add table
Add a link
Reference in a new issue