From 43099a2b6373d670b6e7cf0aa3f6b45020efd0be Mon Sep 17 00:00:00 2001 From: Eric Cook Date: Sun, 28 Feb 2016 00:32:52 -0500 Subject: [PATCH 1/2] nspawn.py: Fix bad keyword assignment Currently every keyword for _pull_image is considered a bad keyword. ``` % salt node nspawn.pull_tar url bar ERROR executing 'nspawn.pull_tar': The following invalid keyword arguments were passed: verify=False. ``` --- salt/modules/nspawn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/modules/nspawn.py b/salt/modules/nspawn.py index e100293728e1..b7f10a5a19f7 100644 --- a/salt/modules/nspawn.py +++ b/salt/modules/nspawn.py @@ -1318,7 +1318,7 @@ def _pull_image(pull_type, image, name, **kwargs): bad_kwargs = [x for x in kwargs if not x.startswith('__') - or x not in valid_kwargs] + and x not in valid_kwargs] if bad_kwargs: _invalid_kwargs(*bad_kwargs, **kwargs) From 9a296bd1bf432f4cdec0b06cd4c433e220514319 Mon Sep 17 00:00:00 2001 From: Erik Johnson Date: Mon, 29 Feb 2016 11:20:20 -0600 Subject: [PATCH 2/2] Use clean_kwargs and invalid_kwargs utils funcs to handle invalid kwargs --- salt/modules/nspawn.py | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/salt/modules/nspawn.py b/salt/modules/nspawn.py index b7f10a5a19f7..ef3fb3503656 100644 --- a/salt/modules/nspawn.py +++ b/salt/modules/nspawn.py @@ -37,6 +37,7 @@ import salt.utils import salt.utils.systemd from salt.exceptions import CommandExecutionError, SaltInvocationError +from salt.ext import six from salt.ext.six.moves import range # pylint: disable=redefined-builtin log = logging.getLogger(__name__) @@ -293,17 +294,6 @@ def _run(name, return ret[output] -def _invalid_kwargs(*args, **kwargs): - ''' - Raise an exception on bad kwarg input - ''' - raise SaltInvocationError( - 'The following invalid keyword arguments were passed: {0}' - .format(', '.join(['{0}={1}'.format(x, kwargs[x]) - for x in args])) - ) - - @_ensure_exists def pid(name): ''' @@ -935,11 +925,10 @@ def info(name, **kwargs): salt myminion nspawn.info arch1 salt myminion nspawn.info arch1 force_start=False ''' - # Use kwargs to + kwargs = salt.utils.clean_kwargs(**kwargs) start_ = kwargs.pop('start', False) - bad_kwargs = [x for x in kwargs if not x.startswith('__')] - if bad_kwargs: - _invalid_kwargs(*bad_kwargs, **kwargs) + if kwargs: + salt.utils.invalid_kwargs(kwargs) if not start_: _ensure_running(name) @@ -1310,18 +1299,20 @@ def _pull_image(pull_type, image, name, **kwargs): if pull_type in ('raw', 'tar'): valid_kwargs = ('verify',) elif pull_type == 'dkr': - valid_kwargs = 'index' + valid_kwargs = ('index',) else: raise SaltInvocationError( 'Unsupported image type \'{0}\''.format(pull_type) ) - bad_kwargs = [x for x in kwargs - if not x.startswith('__') - and x not in valid_kwargs] + kwargs = salt.utils.clean_kwargs(**kwargs) + bad_kwargs = dict( + [(x, y) for x, y in six.iteritems(salt.utils.clean_kwargs(**kwargs)) + if x not in valid_kwargs] + ) if bad_kwargs: - _invalid_kwargs(*bad_kwargs, **kwargs) + salt.utils.invalid_kwargs(bad_kwargs) pull_opts = []