Fixes coding conventions, adds a small feature (#39211)

Fixes some coding conventions and adds allowed_addresses to bigip_snmp_trap.
This commit is contained in:
Tim Rupp
2018-04-23 22:06:33 -07:00
committed by GitHub
parent 39e4754fc9
commit 3227143dc8
8 changed files with 430 additions and 132 deletions

View File

@@ -21,10 +21,10 @@ from ansible.compat.tests.mock import patch
from ansible.module_utils.basic import AnsibleModule
try:
from library.bigip_selfip import ApiParameters
from library.bigip_selfip import ModuleParameters
from library.bigip_selfip import ModuleManager
from library.bigip_selfip import ArgumentSpec
from library.modules.bigip_selfip import ApiParameters
from library.modules.bigip_selfip import ModuleParameters
from library.modules.bigip_selfip import ModuleManager
from library.modules.bigip_selfip import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
from library.module_utils.network.f5.common import iControlUnexpectedHTTPError
from test.unit.modules.utils import set_module_args

View File

@@ -20,9 +20,9 @@ from ansible.compat.tests.mock import patch
from ansible.module_utils.basic import AnsibleModule
try:
from library.bigip_snat_pool import Parameters
from library.bigip_snat_pool import ModuleManager
from library.bigip_snat_pool import ArgumentSpec
from library.modules.bigip_snat_pool import Parameters
from library.modules.bigip_snat_pool import ModuleManager
from library.modules.bigip_snat_pool import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
from library.module_utils.network.f5.common import iControlUnexpectedHTTPError
from test.unit.modules.utils import set_module_args

View File

@@ -20,15 +20,17 @@ from ansible.compat.tests.mock import patch
from ansible.module_utils.basic import AnsibleModule
try:
from library.bigip_snmp import Parameters
from library.bigip_snmp import ModuleManager
from library.bigip_snmp import ArgumentSpec
from library.modules.bigip_snmp import ApiParameters
from library.modules.bigip_snmp import ModuleParameters
from library.modules.bigip_snmp import ModuleManager
from library.modules.bigip_snmp import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
from library.module_utils.network.f5.common import iControlUnexpectedHTTPError
from test.unit.modules.utils import set_module_args
except ImportError:
try:
from ansible.modules.network.f5.bigip_snmp import Parameters
from ansible.modules.network.f5.bigip_snmp import ApiParameters
from ansible.modules.network.f5.bigip_snmp import ModuleParameters
from ansible.modules.network.f5.bigip_snmp import ModuleManager
from ansible.modules.network.f5.bigip_snmp import ArgumentSpec
from ansible.module_utils.network.f5.common import F5ModuleError
@@ -71,7 +73,7 @@ class TestParameters(unittest.TestCase):
server='localhost',
user='admin'
)
p = Parameters(params=args)
p = ModuleParameters(params=args)
assert p.agent_status_traps == 'enabled'
assert p.agent_authentication_traps == 'enabled'
assert p.device_warning_traps == 'enabled'
@@ -87,7 +89,7 @@ class TestParameters(unittest.TestCase):
server='localhost',
user='admin'
)
p = Parameters(params=args)
p = ModuleParameters(params=args)
assert p.agent_status_traps == 'disabled'
assert p.agent_authentication_traps == 'disabled'
assert p.device_warning_traps == 'disabled'
@@ -100,7 +102,7 @@ class TestParameters(unittest.TestCase):
sysLocation='Lunar orbit',
sysContact='Alice@foo.org',
)
p = Parameters(params=args)
p = ApiParameters(params=args)
assert p.agent_status_traps == 'enabled'
assert p.agent_authentication_traps == 'enabled'
assert p.device_warning_traps == 'enabled'
@@ -113,7 +115,7 @@ class TestParameters(unittest.TestCase):
authTrap='disabled',
bigipTraps='disabled',
)
p = Parameters(params=args)
p = ApiParameters(params=args)
assert p.agent_status_traps == 'disabled'
assert p.agent_authentication_traps == 'disabled'
assert p.device_warning_traps == 'disabled'
@@ -134,7 +136,7 @@ class TestManager(unittest.TestCase):
# Configure the parameters that would be returned by querying the
# remote device
current = Parameters(
current = ApiParameters(
params=dict(
agent_status_traps='disabled'
)
@@ -154,3 +156,108 @@ class TestManager(unittest.TestCase):
assert results['changed'] is True
assert results['agent_status_traps'] == 'enabled'
def test_update_allowed_addresses(self, *args):
set_module_args(dict(
allowed_addresses=[
'127.0.0.0/8',
'10.10.10.10',
'foo',
'baz.foo.com'
],
password='passsword',
server='localhost',
user='admin'
))
# Configure the parameters that would be returned by querying the
# remote device
current = ApiParameters(
params=dict(
allowed_addresses=['127.0.0.0/8']
)
)
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode
)
mm = ModuleManager(module=module)
# Override methods to force specific logic in the module to happen
mm.update_on_device = Mock(return_value=True)
mm.read_current_from_device = Mock(return_value=current)
results = mm.exec_module()
assert results['changed'] is True
assert len(results['allowed_addresses']) == 4
assert results['allowed_addresses'] == [
'10.10.10.10', '127.0.0.0/8', 'baz.foo.com', 'foo'
]
def test_update_allowed_addresses_default(self, *args):
set_module_args(dict(
allowed_addresses=[
'default'
],
password='passsword',
server='localhost',
user='admin'
))
# Configure the parameters that would be returned by querying the
# remote device
current = ApiParameters(
params=dict(
allowed_addresses=['10.0.0.0']
)
)
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode
)
mm = ModuleManager(module=module)
# Override methods to force specific logic in the module to happen
mm.update_on_device = Mock(return_value=True)
mm.read_current_from_device = Mock(return_value=current)
results = mm.exec_module()
assert results['changed'] is True
assert len(results['allowed_addresses']) == 1
assert results['allowed_addresses'] == ['127.0.0.0/8']
def test_update_allowed_addresses_empty(self, *args):
set_module_args(dict(
allowed_addresses=[''],
password='passsword',
server='localhost',
user='admin'
))
# Configure the parameters that would be returned by querying the
# remote device
current = ApiParameters(
params=dict(
allowed_addresses=['10.0.0.0']
)
)
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode
)
mm = ModuleManager(module=module)
# Override methods to force specific logic in the module to happen
mm.update_on_device = Mock(return_value=True)
mm.read_current_from_device = Mock(return_value=current)
results = mm.exec_module()
assert results['changed'] is True
assert len(results['allowed_addresses']) == 1
assert results['allowed_addresses'] == ['127.0.0.0/8']

View File

@@ -21,22 +21,22 @@ from ansible.compat.tests.mock import DEFAULT
from ansible.module_utils.basic import AnsibleModule
try:
from library.bigip_snmp_trap import NetworkedParameters
from library.bigip_snmp_trap import NonNetworkedParameters
from library.bigip_snmp_trap import ModuleManager
from library.bigip_snmp_trap import NetworkedManager
from library.bigip_snmp_trap import NonNetworkedManager
from library.bigip_snmp_trap import ArgumentSpec
from library.modules.bigip_snmp_trap import V2Parameters
from library.modules.bigip_snmp_trap import V1Parameters
from library.modules.bigip_snmp_trap import ModuleManager
from library.modules.bigip_snmp_trap import V2Manager
from library.modules.bigip_snmp_trap import V1Manager
from library.modules.bigip_snmp_trap import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
from library.module_utils.network.f5.common import iControlUnexpectedHTTPError
from test.unit.modules.utils import set_module_args
except ImportError:
try:
from ansible.modules.network.f5.bigip_snmp_trap import NetworkedParameters
from ansible.modules.network.f5.bigip_snmp_trap import NonNetworkedParameters
from ansible.modules.network.f5.bigip_snmp_trap import V2Parameters
from ansible.modules.network.f5.bigip_snmp_trap import V1Parameters
from ansible.modules.network.f5.bigip_snmp_trap import ModuleManager
from ansible.modules.network.f5.bigip_snmp_trap import NetworkedManager
from ansible.modules.network.f5.bigip_snmp_trap import NonNetworkedManager
from ansible.modules.network.f5.bigip_snmp_trap import V2Manager
from ansible.modules.network.f5.bigip_snmp_trap import V1Manager
from ansible.modules.network.f5.bigip_snmp_trap import ArgumentSpec
from ansible.module_utils.network.f5.common import F5ModuleError
from ansible.module_utils.network.f5.common import iControlUnexpectedHTTPError
@@ -79,7 +79,7 @@ class TestParameters(unittest.TestCase):
server='localhost',
user='admin'
)
p = NetworkedParameters(params=args)
p = V2Parameters(params=args)
assert p.name == 'foo'
assert p.snmp_version == '1'
assert p.community == 'public'
@@ -99,7 +99,7 @@ class TestParameters(unittest.TestCase):
server='localhost',
user='admin'
)
p = NonNetworkedParameters(params=args)
p = V1Parameters(params=args)
assert p.name == 'foo'
assert p.snmp_version == '1'
assert p.community == 'public'
@@ -116,7 +116,7 @@ class TestParameters(unittest.TestCase):
version=1,
port=1000
)
p = NetworkedParameters(params=args)
p = V2Parameters(params=args)
assert p.name == 'foo'
assert p.snmp_version == '1'
assert p.community == 'public'
@@ -149,17 +149,18 @@ class TestManager(unittest.TestCase):
)
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
mm.is_version_non_networked = Mock(return_value=False)
m0 = ModuleManager(module=module)
m0.is_version_without_network = Mock(return_value=False)
m0.is_version_with_default_network = Mock(return_value=True)
patches = dict(
create_on_device=DEFAULT,
exists=DEFAULT
)
with patch.multiple(NetworkedManager, **patches) as mo:
with patch.multiple(V2Manager, **patches) as mo:
mo['create_on_device'].side_effect = Mock(return_value=True)
mo['exists'].side_effect = Mock(return_value=False)
results = mm.exec_module()
results = m0.exec_module()
assert results['changed'] is True
assert results['port'] == 1000
@@ -183,17 +184,17 @@ class TestManager(unittest.TestCase):
)
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
mm.is_version_non_networked = Mock(return_value=True)
m0 = ModuleManager(module=module)
m0.is_version_without_network = Mock(return_value=True)
patches = dict(
create_on_device=DEFAULT,
exists=DEFAULT
)
with patch.multiple(NonNetworkedManager, **patches) as mo:
with patch.multiple(V1Manager, **patches) as mo:
mo['create_on_device'].side_effect = Mock(return_value=True)
mo['exists'].side_effect = Mock(return_value=False)
results = mm.exec_module()
results = m0.exec_module()
assert results['changed'] is True
assert results['port'] == 1000