library: inject ArgsValidator instance instead of using instance in AnsibleUtil

This commit is contained in:
Thomas Haller 2018-01-17 14:08:54 +01:00
parent adff2af90b
commit e053286d9c
2 changed files with 15 additions and 13 deletions

View file

@ -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:

View file

@ -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)