From e053286d9c5a735d148e85b982156e0fe709aff3 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 17 Jan 2018 14:08:54 +0100 Subject: [PATCH] library: inject ArgsValidator instance instead of using instance in AnsibleUtil --- library/network_connections.py | 14 +++++++------- library/test_network_connections.py | 14 ++++++++------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/library/network_connections.py b/library/network_connections.py index e238496..d0c3671 100755 --- a/library/network_connections.py +++ b/library/network_connections.py @@ -1972,8 +1972,6 @@ class _AnsibleUtil(RunEnvironment): 'connections': { 'required': False, 'default': None, 'type': 'list' }, } - ARGS_CONNECTIONS = ArgValidator_ListConnections() - def __init__(self): self._module = None self._connections = None @@ -2020,7 +2018,7 @@ class _AnsibleUtil(RunEnvironment): c = self._connections if c is None: try: - c = self.ARGS_CONNECTIONS.validate(self.params['connections']) + c = ArgValidator_ListConnections().validate(self.params['connections']) except ValidationError as e: self.fail_json('configuration error: %s' % (e), warn_traceback = False) @@ -2166,8 +2164,9 @@ AnsibleUtil = _AnsibleUtil() class Cmd: - def __init__(self, run_env, is_check_mode = False): + def __init__(self, run_env, connection_validator, is_check_mode = False): self._run_env = run_env + self._connection_validator = connection_validator self._is_check_mode = is_check_mode self._check_mode = CheckMode.PREPARE @@ -2204,9 +2203,9 @@ class Cmd: def run(self): for idx, connection in enumerate(AnsibleUtil.connections): try: - AnsibleUtil.ARGS_CONNECTIONS.validate_connection_one(self.validate_one_type, - AnsibleUtil.connections, - idx) + self._connection_validator.validate_connection_one(self.validate_one_type, + AnsibleUtil.connections, + idx) except ValidationError as e: AnsibleUtil.log_fatal(idx, str(e)) self.run_prepare() @@ -2612,6 +2611,7 @@ if __name__ == '__main__': try: cmd = Cmd.create(ansible_util.params['provider'], run_env = ansible_util, + connection_validator = ArgValidator_ListConnections(), is_check_mode = ansible_util.module.check_mode) cmd.run() except Exception as e: diff --git a/library/test_network_connections.py b/library/test_network_connections.py index 0ee5376..61e71d0 100755 --- a/library/test_network_connections.py +++ b/library/test_network_connections.py @@ -40,6 +40,8 @@ def pprint(msg, obj): if nmutil is not None and isinstance(obj, NM.Connection): obj.dump() +ARGS_CONNECTIONS = n.ArgValidator_ListConnections() + class TestValidator(unittest.TestCase): def assertValidationError(self, v, value): @@ -62,12 +64,12 @@ class TestValidator(unittest.TestCase): self.assertEqual(route_list_exp, route_list_new) def do_connections_check_invalid(self, input_connections): - self.assertValidationError(n.AnsibleUtil.ARGS_CONNECTIONS, input_connections) + self.assertValidationError(ARGS_CONNECTIONS, input_connections) def do_connections_validate_nm(self, input_connections, **kwargs): if not nmutil: return - connections = n.AnsibleUtil.ARGS_CONNECTIONS.validate(input_connections) + connections = ARGS_CONNECTIONS.validate(input_connections) for connection in connections: if 'type' in connection: connection['nm.exists'] = False @@ -75,7 +77,7 @@ class TestValidator(unittest.TestCase): mode = n.ArgValidator_ListConnections.VALIDATE_ONE_MODE_INITSCRIPTS for idx, connection in enumerate(connections): try: - n.AnsibleUtil.ARGS_CONNECTIONS.validate_connection_one(mode, connections, idx) + ARGS_CONNECTIONS.validate_connection_one(mode, connections, idx) except n.ValidationError as e: continue if 'type' in connection: @@ -104,10 +106,10 @@ class TestValidator(unittest.TestCase): def do_connections_validate_ifcfg(self, input_connections, **kwargs): mode = n.ArgValidator_ListConnections.VALIDATE_ONE_MODE_INITSCRIPTS - connections = n.AnsibleUtil.ARGS_CONNECTIONS.validate(input_connections) + connections = ARGS_CONNECTIONS.validate(input_connections) for idx, connection in enumerate(connections): try: - n.AnsibleUtil.ARGS_CONNECTIONS.validate_connection_one(mode, connections, idx) + ARGS_CONNECTIONS.validate_connection_one(mode, connections, idx) except n.ValidationError as e: continue if 'type' in connection: @@ -122,7 +124,7 @@ class TestValidator(unittest.TestCase): def do_connections_validate(self, expected_connections, input_connections, **kwargs): - connections = n.AnsibleUtil.ARGS_CONNECTIONS.validate(input_connections) + connections = ARGS_CONNECTIONS.validate(input_connections) self.assertEqual(expected_connections, connections) self.do_connections_validate_nm(input_connections, **kwargs) self.do_connections_validate_ifcfg(input_connections, **kwargs)