From f7df41fa9411da7cc96808680e8a65e9b99e753e Mon Sep 17 00:00:00 2001 From: Daniel Wallace Date: Tue, 26 Sep 2017 12:59:23 -0600 Subject: [PATCH 01/18] split build and install for pkg osx --- pkg/osx/build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/osx/build.sh b/pkg/osx/build.sh index 7850d48cd8..fcf4b4e061 100755 --- a/pkg/osx/build.sh +++ b/pkg/osx/build.sh @@ -88,7 +88,8 @@ sudo $PKGRESOURCES/build_env.sh $PYVER echo -n -e "\033]0;Build: Install Salt\007" sudo rm -rf $SRCDIR/build sudo rm -rf $SRCDIR/dist -sudo $PYTHON $SRCDIR/setup.py build -e "$PYTHON -E -s" install +sudo $PYTHON $SRCDIR/setup.py build -e "$PYTHON -E -s" +sudo $PYTHON $SRCDIR/setup.py install ############################################################################ # Build Package From 0cac15e502d1565c718ebb289fb95c6e67dcdf10 Mon Sep 17 00:00:00 2001 From: Mike Place Date: Sat, 30 Sep 2017 22:41:30 +0200 Subject: [PATCH 02/18] Fix to module.run [WIP] DO NOT MERGE For @terminalmage to review --- salt/states/module.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/salt/states/module.py b/salt/states/module.py index 202999e7d8..3c8ce96b50 100644 --- a/salt/states/module.py +++ b/salt/states/module.py @@ -314,22 +314,31 @@ def _call_function(name, returner=None, **kwargs): :return: ''' argspec = salt.utils.args.get_function_argspec(__salt__[name]) + + # func_kw is initialized to a dictinary of keyword arguments the function to be run accepts func_kw = dict(zip(argspec.args[-len(argspec.defaults or []):], # pylint: disable=incompatible-py3-code argspec.defaults or [])) + + # func_args is initialized to a list of keyword arguments the function to be run accepts + func_args = argspec.args[:len(argspec.args or [] ) - len(argspec.defaults or [])] arg_type, na_type, kw_type = [], {}, False for funcset in reversed(kwargs.get('func_args') or []): if not isinstance(funcset, dict): - kw_type = True - if kw_type: - if isinstance(funcset, dict): - arg_type += funcset.values() - na_type.update(funcset) - else: - arg_type.append(funcset) + # We are just receiving a list of args to the function to be run, so just append + # those to the arg list that we will pass to the func. + arg_type.append(funcset) else: - func_kw.update(funcset) + for kwarg_key in funcset.keys(): + # We are going to pass in a keyword argument. The trick here is to make certain + # that if we find that in the *args* list that we pass it there and not as a kwarg + if kwarg_key in func_args: + arg_type.append(funcset[kwarg_key]) + continue + else: + # Otherwise, we're good and just go ahead and pass the keyword/value pair into + # the kwargs list to be run. + func_kw.update(funcset) arg_type.reverse() - _exp_prm = len(argspec.args or []) - len(argspec.defaults or []) _passed_prm = len(arg_type) missing = [] From a6c2d78518bf9e6b9d26cdbd4e245e762ab65def Mon Sep 17 00:00:00 2001 From: Mike Place Date: Sun, 1 Oct 2017 00:39:37 +0200 Subject: [PATCH 03/18] Fix typo found by @s0undt3ch --- salt/states/module.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/states/module.py b/salt/states/module.py index 3c8ce96b50..de701af51c 100644 --- a/salt/states/module.py +++ b/salt/states/module.py @@ -319,7 +319,7 @@ def _call_function(name, returner=None, **kwargs): func_kw = dict(zip(argspec.args[-len(argspec.defaults or []):], # pylint: disable=incompatible-py3-code argspec.defaults or [])) - # func_args is initialized to a list of keyword arguments the function to be run accepts + # func_args is initialized to a list of positional arguments that the function to be run accepts func_args = argspec.args[:len(argspec.args or [] ) - len(argspec.defaults or [])] arg_type, na_type, kw_type = [], {}, False for funcset in reversed(kwargs.get('func_args') or []): From 782e67c199afb51bec10e93fcd65f9af59972247 Mon Sep 17 00:00:00 2001 From: Mike Place Date: Sun, 1 Oct 2017 10:59:09 +0200 Subject: [PATCH 04/18] Lint --- salt/states/module.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/salt/states/module.py b/salt/states/module.py index de701af51c..91e9fb8b57 100644 --- a/salt/states/module.py +++ b/salt/states/module.py @@ -319,8 +319,8 @@ def _call_function(name, returner=None, **kwargs): func_kw = dict(zip(argspec.args[-len(argspec.defaults or []):], # pylint: disable=incompatible-py3-code argspec.defaults or [])) - # func_args is initialized to a list of positional arguments that the function to be run accepts - func_args = argspec.args[:len(argspec.args or [] ) - len(argspec.defaults or [])] + # func_args is initialized to a list of positional arguments that the function to be run accepts + func_args = argspec.args[:len(argspec.args or []) - len(argspec.defaults or [])] arg_type, na_type, kw_type = [], {}, False for funcset in reversed(kwargs.get('func_args') or []): if not isinstance(funcset, dict): From c297ae55575a790637f1dd5d780ce324a027744d Mon Sep 17 00:00:00 2001 From: Erik Johnson Date: Fri, 29 Sep 2017 17:15:18 -0500 Subject: [PATCH 05/18] Improve failures for module.run states Bare asserts are zero help in troubleshooting. This commit changes the tests that uses bare asserts such that they fail with a useful error mesage as well as the return data from the module.run call. --- tests/unit/states/test_module.py | 79 ++++++++++++++++++++++++++------ 1 file changed, 65 insertions(+), 14 deletions(-) diff --git a/tests/unit/states/test_module.py b/tests/unit/states/test_module.py index 4588e20ca8..2d082fed2a 100644 --- a/tests/unit/states/test_module.py +++ b/tests/unit/states/test_module.py @@ -6,6 +6,7 @@ # Import Python Libs from __future__ import absolute_import from inspect import ArgSpec +import logging # Import Salt Libs import salt.states.module as module @@ -20,6 +21,8 @@ from tests.support.mock import ( patch ) +log = logging.getLogger(__name__) + CMD = 'foo.bar' @@ -91,8 +94,9 @@ class ModuleStateTest(TestCase, LoaderModuleMockMixin): with patch.dict(module.__salt__, {}, clear=True): with patch.dict(module.__opts__, {'use_superseded': ['module.run']}): ret = module.run(**{CMD: None}) - assert ret['comment'] == "Unavailable function: {0}.".format(CMD) - assert not ret['result'] + if ret['comment'] != "Unavailable function: {0}.".format(CMD) \ + or ret['result']: + self.fail('module.run did not fail as expected: {0}'.format(ret)) def test_module_run_hidden_varargs(self): ''' @@ -111,8 +115,9 @@ class ModuleStateTest(TestCase, LoaderModuleMockMixin): ''' with patch.dict(module.__opts__, {'test': True, 'use_superseded': ['module.run']}): ret = module.run(**{CMD: None}) - assert ret['comment'] == "Function {0} to be executed.".format(CMD) - assert ret['result'] + if ret['comment'] != "Function {0} to be executed.".format(CMD) \ + or not ret['result']: + self.fail('module.run failed: {0}'.format(ret)) def test_run_missing_arg(self): ''' @@ -122,7 +127,10 @@ class ModuleStateTest(TestCase, LoaderModuleMockMixin): with patch.dict(module.__salt__, {CMD: _mocked_func_named}): with patch.dict(module.__opts__, {'use_superseded': ['module.run']}): ret = module.run(**{CMD: None}) - assert ret['comment'] == "'{0}' failed: Function expects 1 parameters, got only 0".format(CMD) + expected_comment = \ + "'{0}' failed: Function expects 1 parameters, got only 0".format(CMD) + if ret['comment'] != expected_comment: + self.fail('module.run did not fail as expected: {0}'.format(ret)) def test_run_correct_arg(self): ''' @@ -132,16 +140,17 @@ class ModuleStateTest(TestCase, LoaderModuleMockMixin): with patch.dict(module.__salt__, {CMD: _mocked_func_named}): with patch.dict(module.__opts__, {'use_superseded': ['module.run']}): ret = module.run(**{CMD: ['Fred']}) - assert ret['comment'] == '{0}: Success'.format(CMD) - assert ret['result'] + if ret['comment'] != '{0}: Success'.format(CMD) or not ret['result']: + self.fail('module.run failed: {0}'.format(ret)) def test_run_unexpected_keywords(self): with patch.dict(module.__salt__, {CMD: _mocked_func_args}): with patch.dict(module.__opts__, {'use_superseded': ['module.run']}): ret = module.run(**{CMD: [{'foo': 'bar'}]}) - assert ret['comment'] == "'{0}' failed: {1}() got an unexpected keyword argument " \ - "'foo'".format(CMD, module.__salt__[CMD].__name__) - assert not ret['result'] + expected_comment = "'{0}' failed: {1}() got an unexpected keyword argument " \ + "'foo'".format(CMD, module.__salt__[CMD].__name__) + if ret['comment'] != expected_comment or ret['result']: + self.fail('module.run did not fail as expected: {0}'.format(ret)) def test_run_args(self): ''' @@ -150,7 +159,17 @@ class ModuleStateTest(TestCase, LoaderModuleMockMixin): ''' with patch.dict(module.__salt__, {CMD: _mocked_func_args}): with patch.dict(module.__opts__, {'use_superseded': ['module.run']}): - assert module.run(**{CMD: ['foo', 'bar']})['result'] + try: + ret = module.run(**{CMD: ['foo', 'bar']}) + except Exception as exc: + log.exception('test_run_none_return: raised exception') + self.fail('module.run raised exception: {0}'.format(exc)) + if not ret['result']: + log.exception( + 'test_run_none_return: test failed, result: %s', + ret + ) + self.fail('module.run failed: {0}'.format(ret)) def test_run_none_return(self): ''' @@ -159,7 +178,17 @@ class ModuleStateTest(TestCase, LoaderModuleMockMixin): ''' with patch.dict(module.__salt__, {CMD: _mocked_none_return}): with patch.dict(module.__opts__, {'use_superseded': ['module.run']}): - assert module.run(**{CMD: None})['result'] + try: + ret = module.run(**{CMD: None}) + except Exception as exc: + log.exception('test_run_none_return: raised exception') + self.fail('module.run raised exception: {0}'.format(exc)) + if not ret['result']: + log.exception( + 'test_run_none_return: test failed, result: %s', + ret + ) + self.fail('module.run failed: {0}'.format(ret)) def test_run_typed_return(self): ''' @@ -169,7 +198,18 @@ class ModuleStateTest(TestCase, LoaderModuleMockMixin): for val in [1, 0, 'a', '', (1, 2,), (), [1, 2], [], {'a': 'b'}, {}, True, False]: with patch.dict(module.__salt__, {CMD: _mocked_none_return}): with patch.dict(module.__opts__, {'use_superseded': ['module.run']}): - assert module.run(**{CMD: [{'ret': val}]})['result'] + log.debug('test_run_typed_return: trying %s', val) + try: + ret = module.run(**{CMD: [{'ret': val}]}) + except Exception as exc: + log.exception('test_run_typed_return: raised exception') + self.fail('module.run raised exception: {0}'.format(exc)) + if not ret['result']: + log.exception( + 'test_run_typed_return: test failed, result: %s', + ret + ) + self.fail('module.run failed: {0}'.format(ret)) def test_run_batch_call(self): ''' @@ -182,7 +222,18 @@ class ModuleStateTest(TestCase, LoaderModuleMockMixin): 'second': _mocked_none_return, 'third': _mocked_none_return}, clear=True): for f_name in module.__salt__: - assert module.run(**{f_name: None})['result'] + log.debug('test_run_batch_call: trying %s', f_name) + try: + ret = module.run(**{f_name: None}) + except Exception as exc: + log.exception('test_run_batch_call: raised exception') + self.fail('module.run raised exception: {0}'.format(exc)) + if not ret['result']: + log.exception( + 'test_run_batch_call: test failed, result: %s', + ret + ) + self.fail('module.run failed: {0}'.format(ret)) def test_module_run_module_not_available(self): ''' From e21d8e9583bba816b6ebc8c9bed379fb4790dfa4 Mon Sep 17 00:00:00 2001 From: Erik Johnson Date: Mon, 2 Oct 2017 11:40:00 -0500 Subject: [PATCH 06/18] Use six.iterkeys() instead of dict.keys() This avoids generating a new list on PY2. --- salt/states/module.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/salt/states/module.py b/salt/states/module.py index 91e9fb8b57..2e907959f7 100644 --- a/salt/states/module.py +++ b/salt/states/module.py @@ -178,6 +178,7 @@ from __future__ import absolute_import import salt.loader import salt.utils import salt.utils.jid +from salt.ext import six from salt.ext.six.moves import range from salt.ext.six.moves import zip from salt.exceptions import SaltInvocationError @@ -315,7 +316,7 @@ def _call_function(name, returner=None, **kwargs): ''' argspec = salt.utils.args.get_function_argspec(__salt__[name]) - # func_kw is initialized to a dictinary of keyword arguments the function to be run accepts + # func_kw is initialized to a dictionary of keyword arguments the function to be run accepts func_kw = dict(zip(argspec.args[-len(argspec.defaults or []):], # pylint: disable=incompatible-py3-code argspec.defaults or [])) @@ -328,7 +329,7 @@ def _call_function(name, returner=None, **kwargs): # those to the arg list that we will pass to the func. arg_type.append(funcset) else: - for kwarg_key in funcset.keys(): + for kwarg_key in six.iterkeys(funcset): # We are going to pass in a keyword argument. The trick here is to make certain # that if we find that in the *args* list that we pass it there and not as a kwarg if kwarg_key in func_args: From 2337904656e5b935ff330bf1cee5a54299439960 Mon Sep 17 00:00:00 2001 From: rallytime Date: Mon, 2 Oct 2017 17:18:30 -0400 Subject: [PATCH 07/18] Add updated release notes to 2017.7.2 branch --- doc/topics/releases/2017.7.2.rst | 3162 ++++++++++++++++++++++++++++++ 1 file changed, 3162 insertions(+) create mode 100644 doc/topics/releases/2017.7.2.rst diff --git a/doc/topics/releases/2017.7.2.rst b/doc/topics/releases/2017.7.2.rst new file mode 100644 index 0000000000..ac8ef25146 --- /dev/null +++ b/doc/topics/releases/2017.7.2.rst @@ -0,0 +1,3162 @@ +=========================== +Salt 2017.7.2 Release Notes +=========================== + + +Changes for v2017.7.1..v2017.7.2 +-------------------------------- + +Extended changelog courtesy of Todd Stansell (https://github.com/tjstansell/salt-changelogs): + +*Generated at: 2017-10-02T21:10:14Z* + +Statistics +========== + +- Total Merges: **328** +- Total Issue references: **134** +- Total PR references: **391** + +Changes +======= + +- **PR** `#43868`_: (*rallytime*) Back-port `#43847`_ to 2017.7.2 + * Fix to module.run + +- **PR** `#43756`_: (*gtmanfred*) split build and install for pkg osx + @ *2017-09-26T20:51:28Z* + + * 88414d5 Merge pull request `#43756`_ from gtmanfred/2017.7.2 + * f7df41f split build and install for pkg osx + +- **PR** `#43585`_: (*rallytime*) Back-port `#43330`_ to 2017.7.2 + @ *2017-09-19T17:33:34Z* + + - **ISSUE** `#43077`_: (*Manoj2087*) Issue with deleting key via wheel + | refs: `#43330`_ + - **PR** `#43330`_: (*terminalmage*) Fix reactor regression + unify reactor config schema + | refs: `#43585`_ + * 89f6292 Merge pull request `#43585`_ from rallytime/`bp-43330`_ + * c4f693b Merge branch '2017.7.2' into `bp-43330`_ + +- **PR** `#43586`_: (*rallytime*) Back-port `#43526`_ to 2017.7.2 + @ *2017-09-19T15:36:27Z* + + - **ISSUE** `#43447`_: (*UtahDave*) When using Syndic with Multi Master the top level master doesn't reliably get returns from lower minion. + | refs: `#43526`_ + - **PR** `#43526`_: (*DmitryKuzmenko*) Forward events to all masters syndic connected to + | refs: `#43586`_ + * abb7fe4 Merge pull request `#43586`_ from rallytime/`bp-43526`_ + * e076e9b Forward events to all masters syndic connected to. + + * 7abd07f Simplify client logic + + * b5f1069 Improve the reactor documentation + + * 7a2f12b Include a better example for reactor in master conf file + + * 531cac6 Rewrite the reactor unit tests + + * 2a35ab7 Unify reactor configuration, fix caller reactors + + * 4afb179 Un-deprecate passing kwargs outside of 'kwarg' param + +- **PR** `#43551`_: (*twangboy*) Fix preinstall script on OSX for 2017.7.2 + @ *2017-09-18T18:35:35Z* + + * 3d3b093 Merge pull request `#43551`_ from twangboy/osx_fix_preinstall_2017.7.2 + * c3d9fb6 Merge branch '2017.7.2' into osx_fix_preinstall_2017.7.2 + +- **PR** `#43509`_: (*rallytime*) Back-port `#43333`_ to 2017.7.2 + @ *2017-09-15T21:21:40Z* + + - **ISSUE** `#2`_: (*thatch45*) salt job queries + - **PR** `#43333`_: (*damon-atkins*) Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed as params + 1 bug + | refs: `#43509`_ + * 24691da Merge pull request `#43509`_ from rallytime/`bp-43333`_-2017.7.2 + * b3dbafb Update doco + + * 5cdcdbf Update win_pkg.py + + * c3e1666 Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (`#2`_) + + * f33395f Fix logic in `/etc/paths.d/salt` detection + +- **PR** `#43440`_: (*rallytime*) Back-port `#43421`_ to 2017.7.2 + @ *2017-09-11T20:59:53Z* + + - **PR** `#43421`_: (*gtmanfred*) Revert "Reduce fileclient.get_file latency by merging _file_find and … + | refs: `#43440`_ + * 8964cac Merge pull request `#43440`_ from rallytime/`bp-43421`_ + * ea6e661 Revert "Reduce fileclient.get_file latency by merging _file_find and _file_hash" + +- **PR** `#43377`_: (*rallytime*) Back-port `#43193`_ to 2017.7.2 + @ *2017-09-11T15:32:23Z* + + - **PR** `#43193`_: (*jettero*) Prevent spurious "Template does not exist" error + | refs: `#43377`_ + - **PR** `#39516`_: (*jettero*) Prevent spurious "Template does not exist" error + | refs: `#43193`_ + * 7fda186 Merge pull request `#43377`_ from rallytime/`bp-43193`_ + * 842b07f Prevent spurious "Template does not exist" error + +- **PR** `#43315`_: (*rallytime*) Back-port `#43283`_ to 2017.7.2 + @ *2017-09-05T20:04:25Z* + + - **ISSUE** `#42459`_: (*iavael*) Broken ldap groups retrieval in salt.auth.ldap after upgrade to 2017.7 + | refs: `#43283`_ + - **PR** `#43283`_: (*DmitryKuzmenko*) Fix ldap token groups auth. + | refs: `#43315`_ + * 85dba1e Merge pull request `#43315`_ from rallytime/`bp-43283`_ + * f29f5b0 Fix for tests: don't require 'groups' in the eauth token. + + * 56938d5 Fix ldap token groups auth. + +- **PR** `#43266`_: (*gtmanfred*) switch virtualbox cloud driver to use __utils__ + @ *2017-08-30T18:36:20Z* + + - **ISSUE** `#43259`_: (*mahesh21*) NameError: global name '__opts__' is not defined + | refs: `#43266`_ + * 26ff808 Merge pull request `#43266`_ from gtmanfred/virtualbox + * 382bf92 switch virtualbox cloud driver to use __utils__ + +- **PR** `#43073`_: (*Mapel88*) Fix bug `#42936`_ - win_iis module container settings + @ *2017-08-30T18:34:37Z* + + - **ISSUE** `#43110`_: (*Mapel88*) bug in iis_module - create_cert_binding + - **ISSUE** `#42936`_: (*Mapel88*) bug in win_iis module & state - container_setting + | refs: `#43073`_ + * ee209b1 Merge pull request `#43073`_ from Mapel88/patch-2 + * b1a3d15 Remove trailing whitespace for linter + + * 25c8190 Fix pylint errors + + * 1eba8c4 Fix pylint errors + + * 290d7b5 Fix plint errors + + * f4f3242 Fix plint errors + + * ec20e9a Fix bug `#43110`_ - win_iis module + + * 009ef66 Fix dictionary keys from string to int + + * dc793f9 Fix bug `#42936`_ - win_iis state + + * 13404a4 Fix bug `#42936`_ - win_iis module + +- **PR** `#43254`_: (*twangboy*) Fix `unit.modules.test_inspect_collector` on Windows + @ *2017-08-30T15:46:07Z* + + * ec1bedc Merge pull request `#43254`_ from twangboy/win_fix_test_inspect_collector + * b401340 Fix `unit.modules.test_inspect_collector` on Windows + +- **PR** `#43255`_: (*gtmanfred*) always return a dict object + @ *2017-08-30T14:47:15Z* + + - **ISSUE** `#43241`_: (*mirceaulinic*) Error whilst collecting napalm grains + | refs: `#43255`_ + * 1fc7307 Merge pull request `#43255`_ from gtmanfred/2017.7 + * 83b0bab opt_args needs to be a dict + +- **PR** `#43229`_: (*twangboy*) Bring changes from `#43228`_ to 2017.7 + @ *2017-08-30T14:26:55Z* + + - **PR** `#43228`_: (*twangboy*) Win fix pkg.install + | refs: `#43229`_ + * fa904ee Merge pull request `#43229`_ from twangboy/win_fix_pkg.install-2017.7 + * e007a1c Fix regex, add `.` + + * 23ec47c Add _ to regex search + + * b1788b1 Bring changes from `#43228`_ to 2017.7 + +- **PR** `#43251`_: (*twangboy*) Skips `unit.modules.test_groupadd` on Windows + @ *2017-08-30T13:56:36Z* + + * 25666f8 Merge pull request `#43251`_ from twangboy/win_skip_test_groupadd + * 5185071 Skips `unit.modules.test_groupadd` on Windows + +- **PR** `#43256`_: (*twangboy*) Skip mac tests for user and group + @ *2017-08-30T13:18:13Z* + + * a8e0962 Merge pull request `#43256`_ from twangboy/win_skip_mac_tests + * cec627a Skip mac tests for user and group + +- **PR** `#43226`_: (*lomeroe*) Fixes for issues in PR `#43166`_ + @ *2017-08-29T19:05:39Z* + + - **ISSUE** `#42279`_: (*dafyddj*) win_lgpo matches multiple policies due to startswith() + | refs: `#43116`_ `#43116`_ `#43166`_ `#43226`_ `#43156`_ + - **PR** `#43166`_: (*lomeroe*) Backport `#43116`_ to 2017.7 + | refs: `#43226`_ + - **PR** `#43156`_: (*lomeroe*) Backport `#43116`_ to 2017.7 + | refs: `#43166`_ + - **PR** `#43116`_: (*lomeroe*) Fix 42279 in develop + | refs: `#43166`_ `#43156`_ + - **PR** `#39773`_: (*twangboy*) Make win_file use the win_dacl salt util + | refs: `#43226`_ + * ac2189c Merge pull request `#43226`_ from lomeroe/fix_43166 + * 0c424dc Merge branch '2017.7' into fix_43166 + + * 324cfd8d correcting bad format statement in search for policy to be disabled (fix for `#43166`_) verify that file exists before attempting to remove (fix for commits from `#39773`_) + +- **PR** `#43227`_: (*twangboy*) Fix `unit.fileserver.test_gitfs` for Windows + @ *2017-08-29T19:03:36Z* + + * 6199fb4 Merge pull request `#43227`_ from twangboy/win_fix_unit_test_gitfs + * c956d24 Fix is_windows detection when USERNAME missing + + * 869e8cc Fix `unit.fileserver.test_gitfs` for Windows + +- **PR** `#43217`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-28T16:36:28Z* + + - **ISSUE** `#43101`_: (*aogier*) genesis.bootstrap fails if no pkg AND exclude_pkgs (which can't be a string) + | refs: `#43103`_ + - **ISSUE** `#42642`_: (*githubcdr*) state.augeas + | refs: `#42669`_ `#43202`_ + - **ISSUE** `#42329`_: (*jagguli*) State git.latest does not pull latest tags + | refs: `#42663`_ + - **PR** `#43202`_: (*garethgreenaway*) Reverting previous augeas module changes + - **PR** `#43103`_: (*aogier*) genesis.bootstrap deboostrap fix + - **PR** `#42663`_: (*jagguli*) Check remote tags before deciding to do a fetch `#42329`_ + * 6adc03e Merge pull request `#43217`_ from rallytime/merge-2017.7 + * 3911df2 Merge branch '2016.11' into '2017.7' + + * 5308c27 Merge pull request `#43202`_ from garethgreenaway/42642_2016_11_augeas_module_revert_fix + + * ef7e93e Reverting this change due to it breaking other uses. + + * f16b724 Merge pull request `#43103`_ from aogier/43101-genesis-bootstrap + + * db94f3b better formatting + + * e5cc667 tests: fix a leftover and simplify some parts + + * 13e5997 lint + + * 216ced6 allow comma-separated pkgs lists, quote args, test deb behaviour + + * d8612ae fix debootstrap and enhance packages selection/deletion via cmdline + + * 4863771 Merge pull request `#42663`_ from StreetHawkInc/fix_git_tag_check + + * 2b5af5b Remove refs/tags prefix from remote tags + + * 3f2e96e Convert set to list for serializer + + * 2728e5d Only include new tags in changes + + * 4b1df2f Exclude annotated tags from checks + + * 389c037 Check remote tags before deciding to do a fetch `#42329`_ + +- **PR** `#43201`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-25T22:56:46Z* + + - **ISSUE** `#43198`_: (*corywright*) disk.format_ needs to be aliased to disk.format + | refs: `#43199`_ + - **ISSUE** `#43143`_: (*abulford*) git.detached does not fetch if rev is missing from local + | refs: `#43178`_ + - **ISSUE** `#495`_: (*syphernl*) mysql.* without having MySQL installed/configured gives traceback + | refs: `#43196`_ + - **PR** `#43199`_: (*corywright*) Add `disk.format` alias for `disk.format_` + - **PR** `#43196`_: (*gtmanfred*) Pin request install to version for npm tests + - **PR** `#43179`_: (*terminalmage*) Fix missed deprecation + - **PR** `#43178`_: (*terminalmage*) git.detached: Fix traceback when rev is a SHA and is not present locally + - **PR** `#43173`_: (*Ch3LL*) Add New Release Branch Strategy to Contribution Docs + - **PR** `#43171`_: (*terminalmage*) Add warning about adding new functions to salt/utils/__init__.py + * a563a94 Merge pull request `#43201`_ from rallytime/merge-2017.7 + * d40eba6 Merge branch '2016.11' into '2017.7' + + * 4193e7f Merge pull request `#43199`_ from corywright/disk-format-alias + + * f00d3a9 Add `disk.format` alias for `disk.format_` + + * 5471f9f Merge pull request `#43196`_ from gtmanfred/2016.11 + + * ccd2241 Pin request install to version + + * ace2715 Merge pull request `#43178`_ from terminalmage/issue43143 + + * 2640833 git.detached: Fix traceback when rev is a SHA and is not present locally + + * 12e9507 Merge pull request `#43179`_ from terminalmage/old-deprecation + + * 3adf8ad Fix missed deprecation + + * b595440 Merge pull request `#43171`_ from terminalmage/salt-utils-warning + + * 7b5943a Add warning about adding new functions to salt/utils/__init__.py + + * 4f273ca Merge pull request `#43173`_ from Ch3LL/add_branch_docs + + * 1b24244 Add New Release Branch Strategy to Contribution Docs + +- **PR** `#42997`_: (*twangboy*) Fix `unit.test_test_module_names` for Windows + @ *2017-08-25T21:19:11Z* + + * ce04ab4 Merge pull request `#42997`_ from twangboy/win_fix_test_module_names + * 2722e95 Use os.path.join to create paths + +- **PR** `#43006`_: (*SuperPommeDeTerre*) Try to fix `#26995`_ + @ *2017-08-25T21:16:07Z* + + - **ISSUE** `#26995`_: (*jbouse*) Issue with artifactory.downloaded and snapshot artifacts + | refs: `#43006`_ `#43006`_ + * c0279e4 Merge pull request `#43006`_ from SuperPommeDeTerre/SuperPommeDeTerre-patch-`#26995`_ + * 30dd6f5 Merge remote-tracking branch 'upstream/2017.7' into SuperPommeDeTerre-patch-`#26995`_ + + * f42ae9b Merge branch 'SuperPommeDeTerre-patch-`#26995`_' of https://github.com/SuperPommeDeTerre/salt into SuperPommeDeTerre-patch-`#26995`_ + + * 50ee3d5 Merge remote-tracking branch 'remotes/origin/2017.7' into SuperPommeDeTerre-patch-`#26995`_ + + * 0b666e1 Fix typo. + + * 1b8729b Fix for `#26995`_ + + * e314102 Fix typo. + + * db11e19 Fix for `#26995`_ + +- **PR** `#43184`_: (*terminalmage*) docker.compare_container: Perform boolean comparison when one side's value is null/None + @ *2017-08-25T18:42:11Z* + + - **ISSUE** `#43162`_: (*MorphBonehunter*) docker_container.running interference with restart_policy + | refs: `#43184`_ + * b6c5314 Merge pull request `#43184`_ from terminalmage/issue43162 + * 081f42a docker.compare_container: Perform boolean comparison when one side's value is null/None + +- **PR** `#43165`_: (*mirceaulinic*) Improve napalm state output in debug mode + @ *2017-08-24T23:05:37Z* + + * 688125b Merge pull request `#43165`_ from cloudflare/fix-napalm-ret + * c10717d Lint and fix + + * 1cd33cb Simplify the loaded_ret logic + + * 0bbea6b Document the new compliance_report arg + + * 3a90610 Include compliance reports + + * 3634055 Improve napalm state output in debug mode + +- **PR** `#43155`_: (*terminalmage*) Resolve image ID during container comparison + @ *2017-08-24T22:09:47Z* + + * a6a327b Merge pull request `#43155`_ from terminalmage/issue43001 + * 0186835 Fix docstring in test + + * a0bb654 Fixing lint issues + + * d5b2a0b Resolve image ID during container comparison + +- **PR** `#43170`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-24T19:22:26Z* + + - **PR** `#43151`_: (*ushmodin*) state.sls hangs on file.recurse with clean: True on windows + - **PR** `#42969`_: (*ushmodin*) state.sls hangs on file.recurse with clean: True on windows + | refs: `#43151`_ + * c071fd4 Merge pull request `#43170`_ from rallytime/merge-2017.7 + * 3daad5a Merge branch '2016.11' into '2017.7' + + * 669b376 Merge pull request `#43151`_ from ushmodin/2016.11 + + * c5841e2 state.sls hangs on file.recurse with clean: True on windows + +- **PR** `#43168`_: (*rallytime*) Back-port `#43041`_ to 2017.7 + @ *2017-08-24T19:07:23Z* + + - **ISSUE** `#43040`_: (*darcoli*) gitFS ext_pillar with branch name __env__ results in empty pillars + | refs: `#43041`_ `#43041`_ + - **PR** `#43041`_: (*darcoli*) Do not try to match pillarenv with __env__ + | refs: `#43168`_ + * 034c325 Merge pull request `#43168`_ from rallytime/`bp-43041`_ + * d010b74 Do not try to match pillarenv with __env__ + +- **PR** `#43172`_: (*rallytime*) Move new utils/__init__.py funcs to utils.files.py + @ *2017-08-24T19:05:30Z* + + - **PR** `#43056`_: (*damon-atkins*) safe_filename_leaf(file_basename) and safe_filepath(file_path_name) + | refs: `#43172`_ + * d48938e Merge pull request `#43172`_ from rallytime/move-utils-funcs + * 5385c79 Move new utils/__init__.py funcs to utils.files.py + +- **PR** `#43061`_: (*pabloh007*) Have docker.save use the image name when valid if not use image id, i… + @ *2017-08-24T16:32:02Z* + + - **ISSUE** `#43043`_: (*pabloh007*) docker.save and docker.load problem + | refs: `#43061`_ `#43061`_ + * e60f586 Merge pull request `#43061`_ from pabloh007/fix-save-image-name-id + * 0ffc57d Have docker.save use the image name when valid if not use image id, issue when loading and image is savid with id issue `#43043`_ + +- **PR** `#43166`_: (*lomeroe*) Backport `#43116`_ to 2017.7 + | refs: `#43226`_ + @ *2017-08-24T15:01:23Z* + + - **ISSUE** `#42279`_: (*dafyddj*) win_lgpo matches multiple policies due to startswith() + | refs: `#43116`_ `#43116`_ `#43166`_ `#43226`_ `#43156`_ + - **PR** `#43156`_: (*lomeroe*) Backport `#43116`_ to 2017.7 + | refs: `#43166`_ + - **PR** `#43116`_: (*lomeroe*) Fix 42279 in develop + | refs: `#43166`_ `#43156`_ + * 9da5754 Merge pull request `#43166`_ from lomeroe/`bp-43116`_-2017.7 + * af181b3 correct fopen calls from salt.utils for 2017.7 + + * f74480f lint fix + + * ecd446f track xml namespace to ensure policies w/duplicate IDs or Names do not conflict + + * 9f3047c add additional checks for ADM policies that have the same ADMX policy ID (`#42279`_) + +- **PR** `#43056`_: (*damon-atkins*) safe_filename_leaf(file_basename) and safe_filepath(file_path_name) + | refs: `#43172`_ + @ *2017-08-23T17:35:02Z* + + * 44b3cae Merge pull request `#43056`_ from damon-atkins/2017.7 + * 08ded15 more lint + + * 6e9c095 fix typo + + * ee41171 lint fixes + + * 8c864f0 fix missing imports + + * 964cebd safe_filename_leaf(file_basename) and safe_filepath(file_path_name) + +- **PR** `#43146`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-23T16:56:10Z* + + - **ISSUE** `#43036`_: (*mcarlton00*) Linux VMs in Bhyve aren't displayed properly in grains + | refs: `#43037`_ + - **PR** `#43100`_: (*vutny*) [DOCS] Add missing `utils` sub-dir listed for `extension_modules` + - **PR** `#43037`_: (*mcarlton00*) Issue `#43036`_ Bhyve virtual grain in Linux VMs + - **PR** `#42986`_: (*renner*) Notify systemd synchronously (via NOTIFY_SOCKET) + * 6ca9131 Merge pull request `#43146`_ from rallytime/merge-2017.7 + * bcbe180 Merge branch '2016.11' into '2017.7' + + * ae9d2b7 Merge pull request `#42986`_ from renner/systemd-notify + + * 79c53f3 Fallback to systemd_notify_call() in case of socket.error + + * f176547 Notify systemd synchronously (via NOTIFY_SOCKET) + + * b420fbe Merge pull request `#43037`_ from mcarlton00/fix-bhyve-grains + + * 73315f0 Issue `#43036`_ Bhyve virtual grain in Linux VMs + + * 0a86f2d Merge pull request `#43100`_ from vutny/doc-add-missing-utils-ext + + * af743ff [DOCS] Add missing `utils` sub-dir listed for `extension_modules` + +- **PR** `#43123`_: (*twangboy*) Fix `unit.utils.test_which` for Windows + @ *2017-08-23T16:01:39Z* + + * 03f6521 Merge pull request `#43123`_ from twangboy/win_fix_test_which + * ed97cff Fix `unit.utils.test_which` for Windows + +- **PR** `#43142`_: (*rallytime*) Back-port `#43068`_ to 2017.7 + @ *2017-08-23T15:56:48Z* + + - **ISSUE** `#42505`_: (*ikogan*) selinux.fcontext_policy_present exception looking for selinux.filetype_id_to_string + | refs: `#43068`_ + - **PR** `#43068`_: (*ixs*) Mark selinux._filetype_id_to_string as public function + | refs: `#43142`_ + * 5a4fc07 Merge pull request `#43142`_ from rallytime/`bp-43068`_ + * efc1c8c Mark selinux._filetype_id_to_string as public function + +- **PR** `#43038`_: (*twangboy*) Fix `unit.utils.test_url` for Windows + @ *2017-08-23T13:35:25Z* + + * 0467a0e Merge pull request `#43038`_ from twangboy/win_unit_utils_test_url + * 7f5ee55 Fix `unit.utils.test_url` for Windows + +- **PR** `#43097`_: (*twangboy*) Fix `group.present` for Windows + @ *2017-08-23T13:19:56Z* + + * e9ccaa6 Merge pull request `#43097`_ from twangboy/win_fix_group + * 43b0360 Fix lint + + * 9ffe315 Add kwargs + + * 4f4e34c Fix group state for Windows + +- **PR** `#43115`_: (*rallytime*) Back-port `#42067`_ to 2017.7 + @ *2017-08-22T20:09:52Z* + + - **PR** `#42067`_: (*vitaliyf*) Removed several uses of name.split('.')[0] in SoftLayer driver. + | refs: `#43115`_ + * 8140855 Merge pull request `#43115`_ from rallytime/`bp-42067`_ + * 8a6ad0a Fixed typo. + + * 9a5ae2b Removed several uses of name.split('.')[0] in SoftLayer driver. + +- **PR** `#42962`_: (*twangboy*) Fix `unit.test_doc test` for Windows + @ *2017-08-22T18:06:23Z* + + * 1e1a810 Merge pull request `#42962`_ from twangboy/win_unit_test_doc + * 201ceae Fix lint, remove debug statement + + * 37029c1 Fix unit.test_doc test + +- **PR** `#42995`_: (*twangboy*) Fix malformed requisite for Windows + @ *2017-08-22T16:50:01Z* + + * d347d1c Merge pull request `#42995`_ from twangboy/win_fix_invalid_requisite + * 93390de Fix malformed requisite for Windows + +- **PR** `#43108`_: (*rallytime*) Back-port `#42988`_ to 2017.7 + @ *2017-08-22T16:49:27Z* + + - **PR** `#42988`_: (*thusoy*) Fix broken negation in iptables + | refs: `#43108`_ + * 1c7992a Merge pull request `#43108`_ from rallytime/`bp-42988`_ + * 1a987cb Fix broken negation in iptables + +- **PR** `#43107`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-22T16:11:25Z* + + - **ISSUE** `#42869`_: (*abednarik*) Git Module : Failed to update repository + | refs: `#43064`_ + - **ISSUE** `#42041`_: (*lorengordon*) pkg.list_repo_pkgs fails to find pkgs with spaces around yum repo enabled value + | refs: `#43054`_ + - **ISSUE** `#15171`_: (*JensRantil*) Maximum recursion limit hit related to requisites + | refs: `#42985`_ + - **PR** `#43092`_: (*blarghmatey*) Fixed issue with silently passing all tests in Testinfra module + - **PR** `#43064`_: (*terminalmage*) Fix race condition in git.latest + - **PR** `#43060`_: (*twangboy*) Osx update pkg scripts + - **PR** `#43054`_: (*lorengordon*) Uses ConfigParser to read yum config files + - **PR** `#42985`_: (*DmitryKuzmenko*) Properly handle `prereq` having lost requisites. + - **PR** `#42045`_: (*arount*) Fix: salt.modules.yumpkg: ConfigParser to read ini like files. + | refs: `#43054`_ + * c6993f4 Merge pull request `#43107`_ from rallytime/merge-2017.7 + * 328dd6a Merge branch '2016.11' into '2017.7' + + * e2bf2f4 Merge pull request `#42985`_ from DSRCorporation/bugs/15171_recursion_limit + + * 651b1ba Properly handle `prereq` having lost requisites. + + * e513333 Merge pull request `#43092`_ from mitodl/2016.11 + + * d4b113a Fixed issue with silently passing all tests in Testinfra module + + * 77a443c Merge pull request `#43060`_ from twangboy/osx_update_pkg_scripts + + * ef8a14c Remove /opt/salt instead of /opt/salt/bin + + * 2dd62aa Add more information to the description + + * f44f5b7 Only stop services if they are running + + * 3b62bf9 Remove salt from the path + + * ebdca3a Update pkg-scripts + + * 1b1b6da Merge pull request `#43064`_ from terminalmage/issue42869 + + * 093c0c2 Fix race condition in git.latest + + * 96e8e83 Merge pull request `#43054`_ from lorengordon/fix/yumpkg/config-parser + + * 3b2cb81 fix typo in salt.modules.yumpkg + + * 38add0e break if leading comments are all fetched + + * d7f65dc fix configparser import & log if error was raised + + * ca1b1bb use configparser to parse yum repo file + +- **PR** `#42996`_: (*twangboy*) Fix `unit.test_stateconf` for Windows + @ *2017-08-21T22:43:58Z* + + * f9b4976 Merge pull request `#42996`_ from twangboy/win_fix_test_stateconf + * 92dc3c0 Use os.sep for path + +- **PR** `#43024`_: (*twangboy*) Fix `unit.utils.test_find` for Windows + @ *2017-08-21T22:38:10Z* + + * 19fc644 Merge pull request `#43024`_ from twangboy/win_unit_utils_test_find + * fbe54c9 Remove unused import six (lint) + + * b04d1a2 Fix `unit.utils.test_find` for Windows + +- **PR** `#43088`_: (*gtmanfred*) allow docker util to be reloaded with reload_modules + @ *2017-08-21T22:14:37Z* + + * 1a53116 Merge pull request `#43088`_ from gtmanfred/2017.7 + * 373a9a0 allow docker util to be reloaded with reload_modules + +- **PR** `#43091`_: (*blarghmatey*) Fixed issue with silently passing all tests in Testinfra module + @ *2017-08-21T22:06:22Z* + + * 83e528f Merge pull request `#43091`_ from mitodl/2017.7 + * b502560 Fixed issue with silently passing all tests in Testinfra module + +- **PR** `#41994`_: (*twangboy*) Fix `unit.modules.test_cmdmod` on Windows + @ *2017-08-21T21:53:01Z* + + * 5482524 Merge pull request `#41994`_ from twangboy/win_unit_test_cmdmod + * a5f7288 Skip test that uses pwd, not available on Windows + +- **PR** `#42933`_: (*garethgreenaway*) Fixes to osquery module + @ *2017-08-21T20:48:31Z* + + - **ISSUE** `#42873`_: (*TheVakman*) osquery Data Empty Upon Return / Reporting Not Installed + | refs: `#42933`_ + * b33c4ab Merge pull request `#42933`_ from garethgreenaway/42873_2017_7_osquery_fix + * 8915e62 Removing an import that is not needed. + + * 74bc377 Updating the other function that uses cmd.run_all + + * e6a4619 Better approach without using python_shell=True. + + * 5ac41f4 When running osquery commands through cmd.run we should pass python_shell=True to ensure everything is formatted right. `#42873`_ + +- **PR** `#43093`_: (*gtmanfred*) Fix ec2 list_nodes_full to work on 2017.7 + @ *2017-08-21T20:21:21Z* + + * 53c2115 Merge pull request `#43093`_ from gtmanfred/ec2 + * c7cffb5 This block isn't necessary + + * b7283bc _vm_provider_driver isn't needed anymore + +- **PR** `#43087`_: (*rallytime*) Back-port `#42174`_ to 2017.7 + @ *2017-08-21T18:40:18Z* + + - **ISSUE** `#43085`_: (*brejoc*) Patch for Kubernetes module missing from 2017.7 and 2017.7.1 + | refs: `#43087`_ + - **PR** `#42174`_: (*mcalmer*) kubernetes: provide client certificate authentication + | refs: `#43087`_ + * 32f9ade Merge pull request `#43087`_ from rallytime/`bp-42174`_ + * cf65636 add support for certificate authentication to kubernetes module + +- **PR** `#43029`_: (*terminalmage*) Normalize the salt caching API + @ *2017-08-21T16:54:58Z* + + * 882fcd8 Merge pull request `#43029`_ from terminalmage/fix-func-alias + * f8f74a3 Update localfs cache tests to reflect changes to func naming + + * c4ae79b Rename other refs to cache.ls with cache.list + + * ee59d12 Normalize the salt caching API + +- **PR** `#43039`_: (*gtmanfred*) catch ImportError for kubernetes.client import + @ *2017-08-21T14:32:38Z* + + - **ISSUE** `#42843`_: (*brejoc*) Kubernetes module won't work with Kubernetes Python client > 1.0.2 + | refs: `#42845`_ + - **PR** `#42845`_: (*brejoc*) API changes for Kubernetes version 2.0.0 + | refs: `#43039`_ + * dbee735 Merge pull request `#43039`_ from gtmanfred/kube + * 7e269cb catch ImportError for kubernetes.client import + +- **PR** `#43058`_: (*rallytime*) Update release version number for jenkins.run function + @ *2017-08-21T14:13:34Z* + + * c56a849 Merge pull request `#43058`_ from rallytime/fix-release-num + * d7eef70 Update release version number for jenkins.run function + +- **PR** `#43051`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-18T17:05:57Z* + + - **ISSUE** `#42992`_: (*pabloh007*) docker.save flag push does is ignored + - **ISSUE** `#42627`_: (*taigrrr8*) salt-cp no longer works. Was working a few months back. + | refs: `#42890`_ + - **ISSUE** `#40490`_: (*alxwr*) saltstack x509 incompatible to m2crypto 0.26.0 + | refs: `#42760`_ + - **PR** `#43048`_: (*rallytime*) Back-port `#43031`_ to 2016.11 + - **PR** `#43033`_: (*rallytime*) Back-port `#42760`_ to 2016.11 + - **PR** `#43032`_: (*rallytime*) Back-port `#42547`_ to 2016.11 + - **PR** `#43031`_: (*gtmanfred*) use a ruby gem that doesn't have dependencies + | refs: `#43048`_ + - **PR** `#43027`_: (*pabloh007*) Fixes ignore push flag for docker.push module issue `#42992`_ + - **PR** `#43026`_: (*rallytime*) Back-port `#43020`_ to 2016.11 + - **PR** `#43023`_: (*terminalmage*) Fixes/improvements to Jenkins state/module + - **PR** `#43021`_: (*terminalmage*) Use socket.AF_INET6 to get the correct value instead of doing an OS check + - **PR** `#43020`_: (*gtmanfred*) test with gem that appears to be abandoned + | refs: `#43026`_ + - **PR** `#43019`_: (*rallytime*) Update bootstrap script to latest stable: v2017.08.17 + - **PR** `#43014`_: (*Ch3LL*) Change AF_INET6 family for mac in test_host_to_ips + | refs: `#43021`_ + - **PR** `#43009`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11 + - **PR** `#42954`_: (*Ch3LL*) [2016.3] Bump latest and previous versions + - **PR** `#42949`_: (*Ch3LL*) Add Security Notice to 2016.3.7 Release Notes + - **PR** `#42942`_: (*Ch3LL*) [2016.3] Add clean_id function to salt.utils.verify.py + - **PR** `#42890`_: (*DmitryKuzmenko*) Make chunked mode in salt-cp optional + - **PR** `#42760`_: (*AFriemann*) Catch TypeError thrown by m2crypto when parsing missing subjects in c… + | refs: `#43033`_ + - **PR** `#42547`_: (*blarghmatey*) Updated testinfra modules to work with more recent versions + | refs: `#43032`_ + * 7b0c947 Merge pull request `#43051`_ from rallytime/merge-2017.7 + * 153a463 Lint: Add missing blank line + + * 84829a6 Merge branch '2016.11' into '2017.7' + + * 43aa46f Merge pull request `#43048`_ from rallytime/`bp-43031`_ + + * 35e4504 use a ruby gem that doesn't have dependencies + + * ad89ff3 Merge pull request `#43023`_ from terminalmage/fix-jenkins-xml-caching + + * 33fd8ff Update jenkins.py + + * fc306fc Add missing colon in `if` statement + + * 822eabc Catch exceptions raised when making changes to jenkins + + * 91b583b Improve and correct execption raising + + * f096917 Raise an exception if we fail to cache the config xml + + * 2957467 Merge pull request `#43026`_ from rallytime/`bp-43020`_ + + * 0eb15a1 test with gem that appears to be abandoned + + * 4150b09 Merge pull request `#43033`_ from rallytime/`bp-42760`_ + + * 3e3f7f5 Catch TypeError thrown by m2crypto when parsing missing subjects in certificate files. + + * b124d36 Merge pull request `#43032`_ from rallytime/`bp-42547`_ + + * ea4d7f4 Updated testinfra modules to work with more recent versions + + * a88386a Merge pull request `#43027`_ from pabloh007/fix-docker-save-push-2016-11 + + * d0fd949 Fixes ignore push flag for docker.push module issue `#42992`_ + + * 51d1684 Merge pull request `#42890`_ from DSRCorporation/bugs/42627_salt-cp + + * cfddbf1 Apply code review: update the doc + + * afedd3b Typos and version fixes in the doc. + + * 9fedf60 Fixed 'test_valid_docs' test. + + * 9993886 Make chunked mode in salt-cp optional (disabled by default). + + * b3c253c Merge pull request `#43009`_ from rallytime/merge-2016.11 + + * 566ba4f Merge branch '2016.3' into '2016.11' + + * 13b8637 Merge pull request `#42942`_ from Ch3LL/2016.3.6_follow_up + + * f281e17 move additional minion config options to 2016.3.8 release notes + + * 168604b remove merge conflict + + * 8a07d95 update release notes with cve number + + * 149633f Add release notes for 2016.3.7 release + + * 7a4cddc Add clean_id function to salt.utils.verify.py + + * bbb1b29 Merge pull request `#42954`_ from Ch3LL/latest_2016.3 + + * b551e66 [2016.3] Bump latest and previous versions + + * 5d5edc5 Merge pull request `#42949`_ from Ch3LL/2016.3.7_docs + + * d75d374 Add Security Notice to 2016.3.7 Release Notes + + * 37c63e7 Merge pull request `#43021`_ from terminalmage/fix-network-test + + * 4089b7b Use socket.AF_INET6 to get the correct value instead of doing an OS check + + * 8f64232 Merge pull request `#43019`_ from rallytime/bootstrap_2017.08.17 + + * 2f762b3 Update bootstrap script to latest stable: v2017.08.17 + + * ff1caeee Merge pull request `#43014`_ from Ch3LL/fix_network_mac + + * b8eee44 Change AF_INET6 family for mac in test_host_to_ips + +- **PR** `#43035`_: (*rallytime*) [2017.7] Merge forward from 2017.7.1 to 2017.7 + @ *2017-08-18T12:58:17Z* + + - **PR** `#42948`_: (*Ch3LL*) [2017.7.1] Add clean_id function to salt.utils.verify.py + | refs: `#43035`_ + - **PR** `#42945`_: (*Ch3LL*) [2017.7] Add clean_id function to salt.utils.verify.py + | refs: `#43035`_ + * d15b0ca Merge pull request `#43035`_ from rallytime/merge-2017.7 + * 756128a Merge branch '2017.7.1' into '2017.7' + + * ab1b099 Merge pull request `#42948`_ from Ch3LL/2017.7.0_follow_up + +- **PR** `#43034`_: (*rallytime*) Back-port `#43002`_ to 2017.7 + @ *2017-08-17T23:18:16Z* + + - **ISSUE** `#42989`_: (*blbradley*) GitFS GitPython performance regression in 2017.7.1 + | refs: `#43002`_ `#43002`_ + - **PR** `#43002`_: (*the-glu*) Try to fix `#42989`_ + | refs: `#43034`_ + * bcbb973 Merge pull request `#43034`_ from rallytime/`bp-43002`_ + * 350c076 Try to fix `#42989`_ by doing sslVerify and refspecs for origin remote only if there is no remotes + +- **PR** `#42958`_: (*gtmanfred*) runit module should also be loaded as runit + @ *2017-08-17T22:30:23Z* + + - **ISSUE** `#42375`_: (*dragonpaw*) salt.modules.*.__virtualname__ doens't work as documented. + | refs: `#42523`_ `#42958`_ + * 9182f55 Merge pull request `#42958`_ from gtmanfred/2017.7 + * fd68746 runit module should also be loaded as runit + +- **PR** `#43031`_: (*gtmanfred*) use a ruby gem that doesn't have dependencies + | refs: `#43048`_ + @ *2017-08-17T22:26:25Z* + + * 5985cc4 Merge pull request `#43031`_ from gtmanfred/test_gem + * ba80a7d use a ruby gem that doesn't have dependencies + +- **PR** `#43030`_: (*rallytime*) Small cleanup to dockermod.save + @ *2017-08-17T22:26:00Z* + + * 246176b Merge pull request `#43030`_ from rallytime/dockermod-minor-change + * d6a5e85 Small cleanup to dockermod.save + +- **PR** `#42993`_: (*pabloh007*) Fixes ignored push flag for docker.push module issue `#42992`_ + @ *2017-08-17T18:50:37Z* + + - **ISSUE** `#42992`_: (*pabloh007*) docker.save flag push does is ignored + * 1600011 Merge pull request `#42993`_ from pabloh007/fix-docker-save-push + * fe7554c Fixes ignored push flag for docker.push module issue `#42992`_ + +- **PR** `#42967`_: (*terminalmage*) Fix bug in on_header callback when no Content-Type is found in headers + @ *2017-08-17T18:48:52Z* + + - **ISSUE** `#42941`_: (*danlsgiga*) pkg.installed fails on installing from HTTPS rpm source + | refs: `#42967`_ + * 9009a97 Merge pull request `#42967`_ from terminalmage/issue42941 + * b838460 Fix bug in on_header callback when no Content-Type is found in headers + +- **PR** `#43016`_: (*gtmanfred*) service should return false on exception + @ *2017-08-17T18:08:05Z* + + - **ISSUE** `#43008`_: (*fillarios*) states.service.running always succeeds when watched state has changes + | refs: `#43016`_ + * 58f070d Merge pull request `#43016`_ from gtmanfred/service + * 21c264f service should return false on exception + +- **PR** `#43020`_: (*gtmanfred*) test with gem that appears to be abandoned + | refs: `#43026`_ + @ *2017-08-17T16:40:41Z* + + * 973d288 Merge pull request `#43020`_ from gtmanfred/test_gem + * 0a1f40a test with gem that appears to be abandoned + +- **PR** `#42999`_: (*garethgreenaway*) Fixes to slack engine + @ *2017-08-17T15:46:24Z* + + * 9cd0607 Merge pull request `#42999`_ from garethgreenaway/slack_engine_allow_editing_messages + * 0ece2a8 Fixing a bug that prevented editing Slack messages and having the commands resent to the Slack engine. + +- **PR** `#43010`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-17T15:10:29Z* + + - **ISSUE** `#42803`_: (*gmcwhistler*) master_type: str, not working as expected, parent salt-minion process dies. + | refs: `#42848`_ + - **ISSUE** `#42753`_: (*grichmond-salt*) SaltReqTimeout Error on Some Minions when One Master in a Multi-Master Configuration is Unavailable + | refs: `#42848`_ + - **ISSUE** `#42644`_: (*stamak*) nova salt-cloud -P Private IPs returned, but not public. Checking for misidentified IPs + | refs: `#42940`_ + - **ISSUE** `#38839`_: (*DaveOHenry*) Invoking runner.cloud.action via reactor sls fails + | refs: `#42291`_ + - **PR** `#42968`_: (*vutny*) [DOCS] Fix link to Salt Cloud Feature Matrix + - **PR** `#42959`_: (*rallytime*) Back-port `#42883`_ to 2016.11 + - **PR** `#42952`_: (*Ch3LL*) [2016.11] Bump latest and previous versions + - **PR** `#42950`_: (*Ch3LL*) Add Security Notice to 2016.11.7 Release Notes + - **PR** `#42944`_: (*Ch3LL*) [2016.11] Add clean_id function to salt.utils.verify.py + - **PR** `#42940`_: (*gtmanfred*) create new ip address before checking list of allocated ips + - **PR** `#42919`_: (*rallytime*) Back-port `#42871`_ to 2016.11 + - **PR** `#42918`_: (*rallytime*) Back-port `#42848`_ to 2016.11 + - **PR** `#42883`_: (*rallytime*) Fix failing boto tests + | refs: `#42959`_ + - **PR** `#42871`_: (*amalleo25*) Update joyent.rst + | refs: `#42919`_ + - **PR** `#42861`_: (*twangboy*) Fix pkg.install salt-minion using salt-call + - **PR** `#42848`_: (*DmitryKuzmenko*) Execute fire_master asynchronously in the main minion thread. + | refs: `#42918`_ + - **PR** `#42836`_: (*aneeshusa*) Backport salt.utils.versions from develop to 2016.11 + - **PR** `#42835`_: (*aneeshusa*) Fix typo in utils/versions.py module + | refs: `#42836`_ + - **PR** `#42798`_: (*s-sebastian*) Update return data before calling returners + - **PR** `#42291`_: (*vutny*) Fix `#38839`_: remove `state` from Reactor runner kwags + * 31627a9 Merge pull request `#43010`_ from rallytime/merge-2017.7 + * 8a0f948 Merge branch '2016.11' into '2017.7' + + * 1ee9499 Merge pull request `#42968`_ from vutny/doc-salt-cloud-ref + + * 44ed53b [DOCS] Fix link to Salt Cloud Feature Matrix + + * 923f974 Merge pull request `#42291`_ from vutny/`fix-38839`_ + + * 5f8f98a Fix `#38839`_: remove `state` from Reactor runner kwags + + * c20bc7d Merge pull request `#42940`_ from gtmanfred/2016.11 + + * 253e216 fix IP address spelling + + * bd63074 create new ip address before checking list of allocated ips + + * d6496ec Merge pull request `#42959`_ from rallytime/`bp-42883`_ + + * c6b9ca4 Lint fix: add missing space + + * 5597b1a Skip 2 failing tests in Python 3 due to upstream bugs + + * a0b19bd Update account id value in boto_secgroup module unit test + + * 60b406e @mock_elb needs to be changed to @mock_elb_deprecated as well + + * 6ae1111 Replace @mock_ec2 calls with @mock_ec2_deprecated calls + + * 6366e05 Merge pull request `#42944`_ from Ch3LL/2016.11.6_follow_up + + * 7e0a20a Add release notes for 2016.11.7 release + + * 63823f8 Add clean_id function to salt.utils.verify.py + + * 49d339c Merge pull request `#42952`_ from Ch3LL/latest_2016.11 + + * 74e7055 [2016.11] Bump latest and previous versions + + * b0d2e05 Merge pull request `#42950`_ from Ch3LL/2016.11.7_docs + + * a6f902d Add Security Notice to 2016.11.77 Release Notes + + * c0ff69f Merge pull request `#42836`_ from lyft/backport-utils.versions-to-2016.11 + + * 86ce700 Backport salt.utils.versions from develop to 2016.11 + + * 64a79dd Merge pull request `#42919`_ from rallytime/`bp-42871`_ + + * 4e46c96 Update joyent.rst + + * bea8ec1 Merge pull request `#42918`_ from rallytime/`bp-42848`_ + + * cdb4812 Make lint happier. + + * 62eca9b Execute fire_master asynchronously in the main minion thread. + + * 52bce32 Merge pull request `#42861`_ from twangboy/win_pkg_install_salt + + * 0d3789f Fix pkg.install salt-minion using salt-call + + * b9f4f87 Merge pull request `#42798`_ from s-sebastian/2016.11 + + * 1cc8659 Update return data before calling returners + +- **PR** `#42884`_: (*Giandom*) Convert to dict type the pillar string value passed from slack + @ *2017-08-16T22:30:43Z* + + - **ISSUE** `#42842`_: (*Giandom*) retreive kwargs passed with slack engine + | refs: `#42884`_ + * 82be9dc Merge pull request `#42884`_ from Giandom/2017.7.1-fix-slack-engine-pillar-args + * 80fd733 Update slack.py + +- **PR** `#42963`_: (*twangboy*) Fix `unit.test_fileclient` for Windows + @ *2017-08-16T14:18:18Z* + + * 42bd553 Merge pull request `#42963`_ from twangboy/win_unit_test_fileclient + * e9febe4 Fix unit.test_fileclient + +- **PR** `#42964`_: (*twangboy*) Fix `salt.utils.recursive_copy` for Windows + @ *2017-08-16T14:17:27Z* + + * 7dddeee Merge pull request `#42964`_ from twangboy/win_fix_recursive_copy + * 121cd4e Fix `salt.utils.recursive_copy` for Windows + +- **PR** `#42946`_: (*mirceaulinic*) extension_modules should default to $CACHE_DIR/proxy/extmods + @ *2017-08-15T21:26:36Z* + + - **ISSUE** `#42943`_: (*mirceaulinic*) `extension_modules` defaulting to `/var/cache/minion` although running under proxy minion + | refs: `#42946`_ + * 6da4d1d Merge pull request `#42946`_ from cloudflare/px_extmods_42943 + * 73f9135 extension_modules should default to /proxy/extmods + +- **PR** `#42945`_: (*Ch3LL*) [2017.7] Add clean_id function to salt.utils.verify.py + | refs: `#43035`_ + @ *2017-08-15T18:04:20Z* + + * 95645d4 Merge pull request `#42945`_ from Ch3LL/2017.7.0_follow_up + * dcd9204 remove extra doc + + * 693a504 update release notes with cve number + +- **PR** `#42812`_: (*terminalmage*) Update custom YAML loader tests to properly test unicode literals + @ *2017-08-15T17:50:22Z* + + - **ISSUE** `#42427`_: (*grichmond-salt*) Issue Passing Variables created from load_json as Inline Pillar Between States + | refs: `#42435`_ + - **PR** `#42435`_: (*terminalmage*) Modify our custom YAML loader to treat unicode literals as unicode strings + | refs: `#42812`_ + * 47ff9d5 Merge pull request `#42812`_ from terminalmage/yaml-loader-tests + * 9d8486a Add test for custom YAML loader with unicode literal strings + + * a0118bc Remove bytestrings and use textwrap.dedent for readability + +- **PR** `#42953`_: (*Ch3LL*) [2017.7] Bump latest and previous versions + @ *2017-08-15T17:23:28Z* + + * 5d0c219 Merge pull request `#42953`_ from Ch3LL/latest_2017.7 + * cbecf65 [2017.7] Bump latest and previous versions + +- **PR** `#42951`_: (*Ch3LL*) Add Security Notice to 2017.7.1 Release Notes + @ *2017-08-15T16:49:56Z* + + * 730e71d Merge pull request `#42951`_ from Ch3LL/2017.7.1_docs + * 1d8f827 Add Security Notice to 2017.7.1 Release Notes + +- **PR** `#42868`_: (*carsonoid*) Stub out required functions in redis_cache + @ *2017-08-15T14:33:54Z* + + * c1c8cb9 Merge pull request `#42868`_ from carsonoid/redisjobcachefix + * 885bee2 Stub out required functions for redis cache + +- **PR** `#42810`_: (*amendlik*) Ignore error values when listing Windows SNMP community strings + @ *2017-08-15T03:55:15Z* + + * e192d6e Merge pull request `#42810`_ from amendlik/win-snmp-community + * dc20e46 Ignore error values when listing Windows SNMP community strings + +- **PR** `#42920`_: (*cachedout*) pid_race + @ *2017-08-15T03:49:10Z* + + * a1817f1 Merge pull request `#42920`_ from cachedout/pid_race + * 5e930b8 If we catch the pid file in a transistory state, return None + +- **PR** `#42925`_: (*terminalmage*) Add debug logging to troubleshoot test failures + @ *2017-08-15T03:47:51Z* + + * 11a33fe Merge pull request `#42925`_ from terminalmage/f26-debug-logging + * 8165f46 Add debug logging to troubleshoot test failures + +- **PR** `#42913`_: (*twangboy*) Change service shutdown timeouts for salt-minion service (Windows) + @ *2017-08-14T20:55:24Z* + + * a537197 Merge pull request `#42913`_ from twangboy/win_change_timeout + * ffb23fb Remove the line that wipes out the cache + + * a3becf8 Change service shutdown timeouts + +- **PR** `#42800`_: (*skizunov*) Fix exception when master_type=disable + @ *2017-08-14T20:53:38Z* + + * ca0555f Merge pull request `#42800`_ from skizunov/develop6 + * fa58220 Fix exception when master_type=disable + +- **PR** `#42679`_: (*mirceaulinic*) Add multiprocessing option for NAPALM proxy + @ *2017-08-14T20:45:06Z* + + * 3af264b Merge pull request `#42679`_ from cloudflare/napalm-multiprocessing + * 9c4566d multiprocessing option tagged for 2017.7.2 + + * 37bca1b Add multiprocessing option for NAPALM proxy + + * a2565ba Add new napalm option: multiprocessing + +- **PR** `#42657`_: (*nhavens*) back-port `#42612`_ to 2017.7 + @ *2017-08-14T19:42:26Z* + + - **ISSUE** `#42611`_: (*nhavens*) selinux.boolean state does not return changes + | refs: `#42612`_ + - **PR** `#42612`_: (*nhavens*) fix for issue `#42611`_ + | refs: `#42657`_ + * 4fcdab3 Merge pull request `#42657`_ from nhavens/2017.7 + * d73c4b5 back-port `#42612`_ to 2017.7 + +- **PR** `#42709`_: (*whiteinge*) Add token_expire_user_override link to auth runner docstring + @ *2017-08-14T19:03:06Z* + + * d2b6ce3 Merge pull request `#42709`_ from whiteinge/doc-token_expire_user_override + * c7ea631 Add more docs on the token_expire param + + * 4a9f6ba Add token_expire_user_override link to auth runner docstring + +- **PR** `#42848`_: (*DmitryKuzmenko*) Execute fire_master asynchronously in the main minion thread. + | refs: `#42918`_ + @ *2017-08-14T18:28:38Z* + + - **ISSUE** `#42803`_: (*gmcwhistler*) master_type: str, not working as expected, parent salt-minion process dies. + | refs: `#42848`_ + - **ISSUE** `#42753`_: (*grichmond-salt*) SaltReqTimeout Error on Some Minions when One Master in a Multi-Master Configuration is Unavailable + | refs: `#42848`_ + * c6a7bf0 Merge pull request `#42848`_ from DSRCorporation/bugs/42753_mmaster_timeout + * 7f5412c Make lint happier. + + * ff66b7a Execute fire_master asynchronously in the main minion thread. + +- **PR** `#42911`_: (*gtmanfred*) cloud driver isn't a provider + @ *2017-08-14T17:47:16Z* + + * 6a3279e Merge pull request `#42911`_ from gtmanfred/2017.7 + * 99046b4 cloud driver isn't a provider + +- **PR** `#42860`_: (*skizunov*) hash_and_stat_file should return a 2-tuple + @ *2017-08-14T15:44:54Z* + + * 4456f73 Merge pull request `#42860`_ from skizunov/develop7 + * 5f85a03 hash_and_stat_file should return a 2-tuple + +- **PR** `#42889`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-14T14:16:20Z* + + - **ISSUE** `#41976`_: (*abulford*) dockerng network states do not respect test=True + | refs: `#41977`_ `#41977`_ + - **ISSUE** `#41770`_: (*Ch3LL*) NPM v5 incompatible with salt.modules.cache_list + | refs: `#42856`_ + - **ISSUE** `#475`_: (*thatch45*) Change yaml to use C bindings + | refs: `#42856`_ + - **PR** `#42886`_: (*sarcasticadmin*) Adding missing output flags to salt cli docs + - **PR** `#42882`_: (*gtmanfred*) make sure cmd is not run when npm isn't installed + - **PR** `#42877`_: (*terminalmage*) Add virtual func for cron state module + - **PR** `#42864`_: (*whiteinge*) Make syndic_log_file respect root_dir setting + - **PR** `#42859`_: (*terminalmage*) Add note about git CLI requirement for GitPython to GitFS tutorial + - **PR** `#42856`_: (*gtmanfred*) skip cache_clean test if npm version is >= 5.0.0 + - **PR** `#42788`_: (*amendlik*) Remove waits and retries from Saltify deployment + - **PR** `#41977`_: (*abulford*) Fix dockerng.network_* ignoring of tests=True + * c6ca7d6 Merge pull request `#42889`_ from rallytime/merge-2017.7 + * fb7117f Use salt.utils.versions.LooseVersion instead of distutils + + * 29ff19c Merge branch '2016.11' into '2017.7' + + * c15d003 Merge pull request `#41977`_ from redmatter/fix-dockerng-network-ignores-test + + * 1cc2aa5 Fix dockerng.network_* ignoring of tests=True + + * 3b9c3c5 Merge pull request `#42886`_ from sarcasticadmin/adding_docs_salt_outputs + + * 744bf95 Adding missing output flags to salt cli + + * e5b98c8 Merge pull request `#42882`_ from gtmanfred/2016.11 + + * da3402a make sure cmd is not run when npm isn't installed + + * 5962c95 Merge pull request `#42788`_ from amendlik/saltify-timeout + + * 928b523 Remove waits and retries from Saltify deployment + + * 227ecdd Merge pull request `#42877`_ from terminalmage/add-cron-state-virtual + + * f1de196 Add virtual func for cron state module + + * ab9f6ce Merge pull request `#42859`_ from terminalmage/gitpython-git-cli-note + + * 35e05c9 Add note about git CLI requirement for GitPython to GitFS tutorial + + * 682b4a8 Merge pull request `#42856`_ from gtmanfred/2016.11 + + * b458b89 skip cache_clean test if npm version is >= 5.0.0 + + * 01ea854 Merge pull request `#42864`_ from whiteinge/syndic-log-root_dir + + * 4b1f55d Make syndic_log_file respect root_dir setting + +- **PR** `#42898`_: (*mirceaulinic*) Minor eos doc correction + @ *2017-08-14T13:42:21Z* + + * 4b6fe2e Merge pull request `#42898`_ from mirceaulinic/patch-11 + * 93be79a Index eos under the installation instructions list + + * f903e7b Minor eos doc correction + +- **PR** `#42883`_: (*rallytime*) Fix failing boto tests + | refs: `#42959`_ + @ *2017-08-11T20:29:12Z* + + * 1764878 Merge pull request `#42883`_ from rallytime/fix-boto-tests + * 6a7bf99 Lint fix: add missing space + + * 4364322 Skip 2 failing tests in Python 3 due to upstream bugs + + * 7f46603 Update account id value in boto_secgroup module unit test + + * 7c1d493 @mock_elb needs to be changed to @mock_elb_deprecated as well + + * 3055e17 Replace @mock_ec2 calls with @mock_ec2_deprecated calls + +- **PR** `#42885`_: (*terminalmage*) Move weird tearDown test to an actual tearDown + @ *2017-08-11T19:14:42Z* + + * b21778e Merge pull request `#42885`_ from terminalmage/fix-f26-tests + * 462d653 Move weird tearDown test to an actual tearDown + +- **PR** `#42887`_: (*rallytime*) Remove extraneous "deprecated" notation + @ *2017-08-11T18:34:25Z* + + - **ISSUE** `#42870`_: (*boltronics*) webutil.useradd marked as deprecated:: 2016.3.0 by mistake? + | refs: `#42887`_ + * 9868ab6 Merge pull request `#42887`_ from rallytime/`fix-42870`_ + * 71e7581 Remove extraneous "deprecated" notation + +- **PR** `#42881`_: (*gtmanfred*) fix vmware for python 3.4.2 in salt.utils.vmware + @ *2017-08-11T17:52:29Z* + + * da71f2a Merge pull request `#42881`_ from gtmanfred/vmware + * 05ecc6a fix vmware for python 3.4.2 in salt.utils.vmware + +- **PR** `#42845`_: (*brejoc*) API changes for Kubernetes version 2.0.0 + | refs: `#43039`_ + @ *2017-08-11T14:04:30Z* + + - **ISSUE** `#42843`_: (*brejoc*) Kubernetes module won't work with Kubernetes Python client > 1.0.2 + | refs: `#42845`_ + * c7750d5 Merge pull request `#42845`_ from brejoc/updates-for-kubernetes-2.0.0 + * 81674aa Version info in :optdepends: not needed anymore + + * 7199550 Not depending on specific K8s version anymore + + * d8f7d7a API changes for Kubernetes version 2.0.0 + +- **PR** `#42678`_: (*frankiexyz*) Add eos.rst in the installation guide + @ *2017-08-11T13:58:37Z* + + * 459fded Merge pull request `#42678`_ from frankiexyz/2017.7 + * 1598571 Add eos.rst in the installation guide + +- **PR** `#42778`_: (*gtmanfred*) make sure to use the correct out_file + @ *2017-08-11T13:44:48Z* + + - **ISSUE** `#42646`_: (*gmacon*) SPM fails to install multiple packages + | refs: `#42778`_ + * 4ce96eb Merge pull request `#42778`_ from gtmanfred/spm + * 7ef691e make sure to use the correct out_file + +- **PR** `#42857`_: (*gtmanfred*) use older name if _create_unverified_context is unvailable + @ *2017-08-11T13:37:59Z* + + - **ISSUE** `#480`_: (*zyluo*) PEP8 types clean-up + | refs: `#42857`_ + * 3d05d89 Merge pull request `#42857`_ from gtmanfred/vmware + * c1f673e use older name if _create_unverified_context is unvailable + +- **PR** `#42866`_: (*twangboy*) Change to GitPython version 2.1.1 + @ *2017-08-11T13:23:52Z* + + * 7e8cfff Merge pull request `#42866`_ from twangboy/osx_downgrade_gitpython + * 28053a8 Change GitPython version to 2.1.1 + +- **PR** `#42855`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-10T21:40:39Z* + + - **ISSUE** `#42747`_: (*whiteinge*) Outputters mutate data which can be a problem for Runners and perhaps other things + | refs: `#42748`_ + - **ISSUE** `#42731`_: (*infoveinx*) http.query template_data render exception + | refs: `#42804`_ + - **ISSUE** `#42690`_: (*ChristianBeer*) git.latest state with remote set fails on first try + | refs: `#42694`_ + - **ISSUE** `#42683`_: (*rgcosma*) Gluster module broken in 2017.7 + | refs: `#42806`_ + - **ISSUE** `#42600`_: (*twangboy*) Unable to set 'Not Configured' using win_lgpo execution module + | refs: `#42744`_ `#42794`_ `#42795`_ + - **PR** `#42851`_: (*terminalmage*) Backport `#42651`_ to 2016.11 + - **PR** `#42838`_: (*twangboy*) Document requirements for win_pki + - **PR** `#42829`_: (*twangboy*) Fix passing version in pkgs as shown in docs + - **PR** `#42826`_: (*terminalmage*) Fix misspelling of "versions" + - **PR** `#42806`_: (*rallytime*) Update doc references in glusterfs.volume_present + - **PR** `#42805`_: (*rallytime*) Back-port `#42552`_ to 2016.11 + - **PR** `#42804`_: (*rallytime*) Back-port `#42784`_ to 2016.11 + - **PR** `#42795`_: (*lomeroe*) backport `#42744`_ to 2016.11 + - **PR** `#42786`_: (*Ch3LL*) Fix typo for template_dict in http docs + - **PR** `#42784`_: (*gtmanfred*) only read file if ret is not a string in http.query + | refs: `#42804`_ + - **PR** `#42764`_: (*amendlik*) Fix infinite loop with salt-cloud and Windows nodes + - **PR** `#42748`_: (*whiteinge*) Workaround Orchestrate problem that highstate outputter mutates data + - **PR** `#42744`_: (*lomeroe*) fix `#42600`_ in develop + | refs: `#42794`_ `#42795`_ + - **PR** `#42694`_: (*gtmanfred*) allow adding extra remotes to a repository + - **PR** `#42651`_: (*gtmanfred*) python2- prefix for fedora 26 packages + - **PR** `#42552`_: (*remijouannet*) update consul module following this documentation https://www.consul.… + | refs: `#42805`_ + * 3ce1863 Merge pull request `#42855`_ from rallytime/merge-2017.7 + * 08bbcf5 Merge branch '2016.11' into '2017.7' + + * 2dde1f7 Merge pull request `#42851`_ from terminalmage/`bp-42651`_ + + * a3da86e fix syntax + + * 6ecdbce make sure names are correct + + * f83b553 add py3 for versionlock + + * 21934f6 python2- prefix for fedora 26 packages + + * c746f79 Merge pull request `#42806`_ from rallytime/`fix-42683`_ + + * 8c8640d Update doc references in glusterfs.volume_present + + * 27a8a26 Merge pull request `#42829`_ from twangboy/win_pkg_fix_install + + * 83b9b23 Add winrepo to docs about supporting versions in pkgs + + * 81fefa6 Add ability to pass version in pkgs list + + * 3c3ac6a Merge pull request `#42838`_ from twangboy/win_doc_pki + + * f0a1d06 Standardize PKI Client + + * 7de687a Document requirements for win_pki + + * b3e2ae3 Merge pull request `#42805`_ from rallytime/`bp-42552`_ + + * 5a91c1f update consul module following this documentation https://www.consul.io/api/acl.html + + * d2ee793 Merge pull request `#42804`_ from rallytime/`bp-42784`_ + + * dbd29e4 only read file if it is not a string + + * 4cbf805 Merge pull request `#42826`_ from terminalmage/fix-spelling + + * 00f9314 Fix misspelling of "versions" + + * de997ed Merge pull request `#42786`_ from Ch3LL/fix_typo + + * 90a2fb6 Fix typo for template_dict in http docs + + * bf6153e Merge pull request `#42795`_ from lomeroe/`bp-42744`__201611 + + * 695f8c1 fix `#42600`_ in develop + + * 61fad97 Merge pull request `#42748`_ from whiteinge/save-before-output + + * de60b77 Workaround Orchestrate problem that highstate outputter mutates data + + * a4e3e7e Merge pull request `#42764`_ from amendlik/cloud-win-loop + + * f3dcfca Fix infinite loops on failed Windows deployments + + * da85326 Merge pull request `#42694`_ from gtmanfred/2016.11 + + * 1a0457a allow adding extra remotes to a repository + +- **PR** `#42808`_: (*terminalmage*) Fix regression in yum/dnf version specification + @ *2017-08-10T15:59:22Z* + + - **ISSUE** `#42774`_: (*rossengeorgiev*) pkg.installed succeeds, but fails when you specify package version + | refs: `#42808`_ + * f954f4f Merge pull request `#42808`_ from terminalmage/issue42774 + * c69f17d Add integration test for `#42774`_ + + * 78d826d Fix regression in yum/dnf version specification + +- **PR** `#42807`_: (*rallytime*) Update modules --> states in kubernetes doc module + @ *2017-08-10T14:10:40Z* + + - **ISSUE** `#42639`_: (*amnonbc*) k8s module needs a way to manage configmaps + | refs: `#42807`_ + * d9b0f44 Merge pull request `#42807`_ from rallytime/`fix-42639`_ + * 152eb88 Update modules --> states in kubernetes doc module + +- **PR** `#42841`_: (*Mapel88*) Fix bug `#42818`_ in win_iis module + @ *2017-08-10T13:44:21Z* + + - **ISSUE** `#42818`_: (*Mapel88*) Bug in win_iis module - "create_cert_binding" + | refs: `#42841`_ + * b8c7bda Merge pull request `#42841`_ from Mapel88/patch-1 + * 497241f Fix bug `#42818`_ in win_iis module + +- **PR** `#42782`_: (*rallytime*) Add a cmp compatibility function utility + @ *2017-08-09T22:37:29Z* + + - **ISSUE** `#42697`_: (*Ch3LL*) [Python3] NameError when running salt-run manage.versions + | refs: `#42782`_ + * 135f952 Merge pull request `#42782`_ from rallytime/`fix-42697`_ + * d707f94 Update all other calls to "cmp" function + + * 5605104 Add a cmp compatibility function utility + +- **PR** `#42784`_: (*gtmanfred*) only read file if ret is not a string in http.query + | refs: `#42804`_ + @ *2017-08-08T17:20:13Z* + + * ac75222 Merge pull request `#42784`_ from gtmanfred/http + * d397c90 only read file if it is not a string + +- **PR** `#42794`_: (*lomeroe*) Backport `#42744`_ to 2017.7 + @ *2017-08-08T17:16:31Z* + + - **ISSUE** `#42600`_: (*twangboy*) Unable to set 'Not Configured' using win_lgpo execution module + | refs: `#42744`_ `#42794`_ `#42795`_ + - **PR** `#42744`_: (*lomeroe*) fix `#42600`_ in develop + | refs: `#42794`_ `#42795`_ + * 44995b1 Merge pull request `#42794`_ from lomeroe/`bp-42744`_ + * 0acffc6 fix `#42600`_ in develop + +- **PR** `#42708`_: (*cro*) Do not change the arguments of the function when memoizing + @ *2017-08-08T13:47:01Z* + + - **ISSUE** `#42707`_: (*cro*) Service module and state fails on FreeBSD + | refs: `#42708`_ + * dcf474c Merge pull request `#42708`_ from cro/dont_change_args_during_memoize + * a260e91 Do not change the arguments of the function when memoizing + +- **PR** `#42783`_: (*rallytime*) Sort lists before comparing them in python 3 unit test + @ *2017-08-08T13:25:15Z* + + - **PR** `#42206`_: (*rallytime*) [PY3] Fix test that is flaky in Python 3 + | refs: `#42783`_ + * ddb671b Merge pull request `#42783`_ from rallytime/fix-flaky-py3-test + * 998834f Sort lists before compairing them in python 3 unit test + +- **PR** `#42721`_: (*hibbert*) Allow no ip sg + @ *2017-08-07T22:07:18Z* + + * d69822f Merge pull request `#42721`_ from hibbert/allow_no_ip_sg + * f582568 allow_no_ip_sg: Allow user to not supply ipaddress or securitygroups when running boto_efs.create_mount_target + +- **PR** `#42769`_: (*terminalmage*) Fix domainname parameter input translation + @ *2017-08-07T20:46:07Z* + + - **ISSUE** `#42538`_: (*marnovdm*) docker_container.running issue since 2017.7.0: passing domainname gives Error 500: json: cannot unmarshal array into Go value of type string + | refs: `#42769`_ + * bf7938f Merge pull request `#42769`_ from terminalmage/issue42538 + * 665de2d Fix domainname parameter input translation + +- **PR** `#42388`_: (*The-Loeki*) pillar.items pillar_env & pillar_override are never used + @ *2017-08-07T17:51:48Z* + + * 7bf2cdb Merge pull request `#42388`_ from The-Loeki/patch-1 + * 664f4b5 pillar.items pillar_env & pillar_override are never used + +- **PR** `#42770`_: (*rallytime*) [2017.7] Merge forward from 2017.7.1 to 2017.7 + @ *2017-08-07T16:21:45Z* + + * 9a8c9eb Merge pull request `#42770`_ from rallytime/merge-2017.7.1-into-2017.7 + * 6d17c9d Merge branch '2017.7.1' into '2017.7' + +- **PR** `#42768`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-08-07T16:21:17Z* + + - **ISSUE** `#42686`_: (*gilbsgilbs*) Unable to set multiple RabbitMQ tags + | refs: `#42693`_ `#42693`_ + - **ISSUE** `#42642`_: (*githubcdr*) state.augeas + | refs: `#42669`_ `#43202`_ + - **ISSUE** `#41433`_: (*sbojarski*) boto_cfn.present fails when reporting error for failed state + | refs: `#42574`_ + - **PR** `#42693`_: (*gilbsgilbs*) Fix RabbitMQ tags not properly set. + - **PR** `#42669`_: (*garethgreenaway*) [2016.11] Fixes to augeas module + - **PR** `#42655`_: (*whiteinge*) Reenable cpstats for rest_cherrypy + - **PR** `#42629`_: (*xiaoanyunfei*) tornado api + - **PR** `#42623`_: (*terminalmage*) Fix unicode constructor in custom YAML loader + - **PR** `#42574`_: (*sbojarski*) Fixed error reporting in "boto_cfn.present" function. + - **PR** `#33806`_: (*cachedout*) Work around upstream cherrypy bug + | refs: `#42655`_ + * c765e52 Merge pull request `#42768`_ from rallytime/merge-2017.7 + * 0f75482 Merge branch '2016.11' into '2017.7' + + * 7b2119f Merge pull request `#42669`_ from garethgreenaway/42642_2016_11_augeas_module_fix + + * 2441308 Updating the call to shlex_split to pass the posix=False argument so that quotes are preserved. + + * 3072576 Merge pull request `#42629`_ from xiaoanyunfei/tornadoapi + + * 1e13383 tornado api + + * f0f00fc Merge pull request `#42655`_ from whiteinge/rest_cherrypy-reenable-stats + + * deb6316 Fix lint errors + + * 6bd91c8 Reenable cpstats for rest_cherrypy + + * 21cf15f Merge pull request `#42693`_ from gilbsgilbs/fix-rabbitmq-tags + + * 78fccdc Cast to list in case tags is a tuple. + + * 287b57b Fix RabbitMQ tags not properly set. + + * f2b0c9b Merge pull request `#42574`_ from sbojarski/boto-cfn-error-reporting + + * 5c945f1 Fix debug message in "boto_cfn._validate" function. + + * 181a1be Fixed error reporting in "boto_cfn.present" function. + + * bc1effc Merge pull request `#42623`_ from terminalmage/fix-unicode-constructor + + * fcf4588 Fix unicode constructor in custom YAML loader + +- **PR** `#42651`_: (*gtmanfred*) python2- prefix for fedora 26 packages + @ *2017-08-07T14:35:04Z* + + * 3f5827f Merge pull request `#42651`_ from gtmanfred/2017.7 + * 8784899 fix syntax + + * 178cc1b make sure names are correct + + * f179b97 add py3 for versionlock + + * 1958d18 python2- prefix for fedora 26 packages + +- **PR** `#42689`_: (*hibbert*) boto_efs_fix_tags: Fix `#42688`_ invalid type for parameter tags + @ *2017-08-06T17:47:07Z* + + - **ISSUE** `#42688`_: (*hibbert*) salt.modules.boto_efs module Invalid type for parameter Tags - type: , valid types: , + | refs: `#42689`_ + * 791248e Merge pull request `#42689`_ from hibbert/boto_efs_fix_tags + * 157fb28 boto_efs_fix_tags: Fix `#42688`_ invalid type for parameter tags + +- **PR** `#42745`_: (*terminalmage*) docker.compare_container: treat null oom_kill_disable as False + @ *2017-08-05T15:28:20Z* + + - **ISSUE** `#42705`_: (*hbruch*) salt.states.docker_container.running replaces container on subsequent runs if oom_kill_disable unsupported + | refs: `#42745`_ + * 1b34076 Merge pull request `#42745`_ from terminalmage/issue42705 + * 710bdf6 docker.compare_container: treat null oom_kill_disable as False + +- **PR** `#42704`_: (*whiteinge*) Add import to work around likely multiprocessing scoping bug + @ *2017-08-04T23:03:13Z* + + - **ISSUE** `#42649`_: (*tehsu*) local_batch no longer working in 2017.7.0, 500 error + | refs: `#42704`_ + * 5d5b220 Merge pull request `#42704`_ from whiteinge/expr_form-warn-scope-bug + * 03b675a Add import to work around likely multiprocessing scoping bug + +- **PR** `#42743`_: (*kkoppel*) Fix docker.compare_container for containers with links + @ *2017-08-04T16:00:33Z* + + - **ISSUE** `#42741`_: (*kkoppel*) docker_container.running keeps re-creating containers with links to other containers + | refs: `#42743`_ + * 888e954 Merge pull request `#42743`_ from kkoppel/fix-issue-42741 + * de6d3cc Update dockermod.py + + * 58b997c Added a helper function that removes container names from container HostConfig:Links values to enable compare_container() to make the correct decision about differences in links. + +- **PR** `#42710`_: (*gtmanfred*) use subtraction instead of or + @ *2017-08-04T15:14:14Z* + + - **ISSUE** `#42668`_: (*UtahDave*) Minions under syndics don't respond to MoM + | refs: `#42710`_ + - **ISSUE** `#42545`_: (*paul-mulvihill*) Salt-api failing to return results for minions connected via syndics. + | refs: `#42710`_ + * 03a7f9b Merge pull request `#42710`_ from gtmanfred/syndic + * 683561a use subtraction instead of or + +- **PR** `#42670`_: (*gtmanfred*) render kubernetes docs + @ *2017-08-03T20:30:56Z* + + * 005182b Merge pull request `#42670`_ from gtmanfred/kube + * bca1790 add version added info + + * 4bbfc75 render kubernetes docs + +- **PR** `#42712`_: (*twangboy*) Remove master config file from minion-only installer + @ *2017-08-03T20:25:02Z* + + * df354dd Merge pull request `#42712`_ from twangboy/win_build_pkg + * 8604312 Remove master conf in minion install + +- **PR** `#42714`_: (*cachedout*) Set fact gathering style to 'old' for test_junos + @ *2017-08-03T13:39:40Z* + + * bb1dfd4 Merge pull request `#42714`_ from cachedout/workaround_jnpr_test_bug + * 834d6c6 Set fact gathering style to 'old' for test_junos + +- **PR** `#42481`_: (*twangboy*) Fix `unit.test_crypt` for Windows + @ *2017-08-01T18:10:50Z* + + * 4c1d931 Merge pull request `#42481`_ from twangboy/win_unit_test_crypt + * 1025090 Remove chown mock, fix path seps + +- **PR** `#42654`_: (*morganwillcock*) Disable ZFS in the core grain for NetBSD + @ *2017-08-01T17:52:36Z* + + * 8bcefb5 Merge pull request `#42654`_ from morganwillcock/zfsgrain + * 49023de Disable ZFS grain on NetBSD + +- **PR** `#42453`_: (*gtmanfred*) don't pass user to makedirs on windows + @ *2017-07-31T19:57:57Z* + + - **ISSUE** `#42421`_: (*bartuss7*) archive.extracted on Windows failed when dir not exist + | refs: `#42453`_ + * 5baf265 Merge pull request `#42453`_ from gtmanfred/makedirs + * 559d432 fix tests + + * afa7a13 use logic from file.directory for makedirs + +- **PR** `#42603`_: (*twangboy*) Add runas_passwd as a global for states + @ *2017-07-31T19:49:49Z* + + * fb81e78 Merge pull request `#42603`_ from twangboy/win_fix_runas + * 0c9e400 Remove deprecation, add logic to state.py + + * 464ec34 Fix another instance of runas_passwd + + * 18d6ce4 Add global vars to cmd.call + + * 6c71ab6 Remove runas and runas_password after state run + + * 4ea264e Change to runas_password in docs + + * 61aba35 Deprecate password, make runas_password a named arg + + * 41f0f75 Add new var to list, change to runas_password + + * b9c91eb Add runas_passwd as a global for states + +- **PR** `#42541`_: (*Mareo*) Avoid confusing warning when using file.line + @ *2017-07-31T19:41:58Z* + + * 75ba23c Merge pull request `#42541`_ from epita/fix-file-line-warning + * 2fd172e Avoid confusing warning when using file.line + +- **PR** `#42625`_: (*twangboy*) Fix the list function in the win_wua execution module + @ *2017-07-31T19:27:16Z* + + * 3d328eb Merge pull request `#42625`_ from twangboy/fix_win_wua + * 1340c15 Add general usage instructions + + * 19f34bd Fix docs, formatting + + * b17495c Fix problem with list when install=True + +- **PR** `#42602`_: (*garethgreenaway*) Use superseded and deprecated configuration from pillar + @ *2017-07-31T18:53:06Z* + + - **ISSUE** `#42514`_: (*rickh563*) `module.run` does not work as expected in 2017.7.0 + | refs: `#42602`_ + * 25094ad Merge pull request `#42602`_ from garethgreenaway/42514_2017_7_superseded_deprecated_from_pillar + * 2e132da Slight update to formatting + + * 74bae13 Small update to something I missed in the first commit. Updating tests to also test for pillar values. + + * 928a480 Updating the superseded and deprecated decorators to work when specified as pillar values. + +- **PR** `#42621`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-07-28T19:45:51Z* + + - **ISSUE** `#42456`_: (*gdubroeucq*) Use yum lib + | refs: `#42586`_ + - **ISSUE** `#41982`_: (*abulford*) dockerng.network_* matches too easily + | refs: `#41988`_ `#41988`_ `#42006`_ `#42006`_ + - **PR** `#42586`_: (*gdubroeucq*) [Fix] yumpkg.py: add option to the command "check-update" + - **PR** `#42515`_: (*gtmanfred*) Allow not interpreting backslashes in the repl + - **PR** `#41988`_: (*abulford*) Fix dockerng.network_* name matching + | refs: `#42006`_ + * b7cd30d Merge pull request `#42621`_ from rallytime/merge-2017.7 + * 58dcb58 Merge branch '2016.11' into '2017.7' + + * cbf752c Merge pull request `#42515`_ from gtmanfred/backslash + + * cc4e456 Allow not interpreting backslashes in the repl + + * 5494958 Merge pull request `#42586`_ from gdubroeucq/2016.11 + + * 9c0b5cc Remove extra newline + + * d2ef448 yumpkg.py: clean + + * a96f7c0 yumpkg.py: add option to the command "check-update" + + * 6b45deb Merge pull request `#41988`_ from redmatter/fix-dockerng-network-matching + + * 9eea796 Add regression tests for `#41982`_ + + * 3369f00 Fix broken unit test test_network_absent + + * 0ef6cf6 Add trace logging of dockerng.networks result + + * 515c612 Fix dockerng.network_* name matching + +- **PR** `#42618`_: (*rallytime*) Back-port `#41690`_ to 2017.7 + @ *2017-07-28T19:27:11Z* + + - **ISSUE** `#34245`_: (*Talkless*) ini.options_present always report state change + | refs: `#41690`_ + - **PR** `#41690`_: (*m03*) Fix issue `#34245`_ with ini.options_present reporting changes + | refs: `#42618`_ + * d48749b Merge pull request `#42618`_ from rallytime/`bp-41690`_ + * 22c6a7c Improve output precision + + * ee4ea6b Fix `#34245`_ ini.options_present reporting changes + +- **PR** `#42619`_: (*rallytime*) Back-port `#42589`_ to 2017.7 + @ *2017-07-28T19:26:36Z* + + - **ISSUE** `#42588`_: (*ixs*) salt-ssh fails when using scan roster and detected minions are uncached + | refs: `#42589`_ + - **PR** `#42589`_: (*ixs*) Fix ssh-salt calls with scan roster for uncached clients + | refs: `#42619`_ + * e671242 Merge pull request `#42619`_ from rallytime/`bp-42589`_ + * cd5eb93 Fix ssh-salt calls with scan roster for uncached clients + +- **PR** `#42006`_: (*abulford*) Fix dockerng.network_* name matching + @ *2017-07-28T15:52:52Z* + + - **ISSUE** `#41982`_: (*abulford*) dockerng.network_* matches too easily + | refs: `#41988`_ `#41988`_ `#42006`_ `#42006`_ + - **PR** `#41988`_: (*abulford*) Fix dockerng.network_* name matching + | refs: `#42006`_ + * 7d385f8 Merge pull request `#42006`_ from redmatter/fix-dockerng-network-matching-2017.7 + * f83960c Lint: Remove extra line at end of file. + + * c7d364e Add regression tests for `#41982`_ + + * d31f291 Fix broken unit test test_network_absent + + * d42f781 Add trace logging of docker.networks result + + * 8c00c63 Fix dockerng.network_* name matching + +- **PR** `#42616`_: (*amendlik*) Sync cloud modules + @ *2017-07-28T15:40:36Z* + + - **ISSUE** `#12587`_: (*Katafalkas*) salt-cloud custom functions/actions + | refs: `#42616`_ + * ee8aee1 Merge pull request `#42616`_ from amendlik/sync-clouds + * ab21bd9 Sync cloud modules when saltutil.sync_all is run + +- **PR** `#42601`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-07-27T22:32:07Z* + + - **ISSUE** `#1036125`_: (**) + - **ISSUE** `#42477`_: (*aikar*) Invalid ssh_interface value prevents salt-cloud provisioning without reason of why + | refs: `#42479`_ + - **ISSUE** `#42405`_: (*felrivero*) The documentation is incorrectly compiled (PILLAR section) + | refs: `#42516`_ + - **ISSUE** `#42403`_: (*astronouth7303*) [2017.7] Pillar empty when state is applied from orchestrate + | refs: `#42433`_ + - **ISSUE** `#42375`_: (*dragonpaw*) salt.modules.*.__virtualname__ doens't work as documented. + | refs: `#42523`_ `#42958`_ + - **ISSUE** `#42371`_: (*tsaridas*) Minion unresponsive after trying to failover + | refs: `#42387`_ + - **ISSUE** `#41955`_: (*root360-AndreasUlm*) rabbitmq 3.6.10 changed output => rabbitmq-module broken + | refs: `#41968`_ + - **ISSUE** `#23516`_: (*dkiser*) BUG: cron job scheduler sporadically works + | refs: `#42077`_ + - **PR** `#42573`_: (*rallytime*) Back-port `#42433`_ to 2016.11 + - **PR** `#42571`_: (*twangboy*) Avoid loading system PYTHON* environment vars + - **PR** `#42551`_: (*binocvlar*) Remove '-s' (--script) argument to parted within align_check function + - **PR** `#42527`_: (*twangboy*) Document changes to Windows Update in Windows 10/Server 2016 + - **PR** `#42523`_: (*rallytime*) Add a mention of the True/False returns with __virtual__() + - **PR** `#42516`_: (*rallytime*) Add info about top file to pillar walk-through example to include edit.vim + - **PR** `#42479`_: (*gtmanfred*) validate ssh_interface for ec2 + - **PR** `#42433`_: (*terminalmage*) Only force saltenv/pillarenv to be a string when not None + | refs: `#42573`_ + - **PR** `#42414`_: (*vutny*) DOCS: unify hash sum with hash type format + - **PR** `#42387`_: (*DmitryKuzmenko*) Fix race condition in usage of weakvaluedict + - **PR** `#42339`_: (*isbm*) Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc`#1036125`_) + - **PR** `#42077`_: (*vutny*) Fix scheduled job run on Master if `when` parameter is a list + | refs: `#42107`_ + - **PR** `#41973`_: (*vutny*) Fix Master/Minion scheduled jobs based on Cron expressions + | refs: `#42077`_ + - **PR** `#41968`_: (*root360-AndreasUlm*) Fix rabbitmqctl output sanitizer for version 3.6.10 + * e2dd443 Merge pull request `#42601`_ from rallytime/merge-2017.7 + * 36a1bcf Merge branch '2016.11' into '2017.7' + + * 4b16109 Merge pull request `#42339`_ from isbm/isbm-jobs-scheduled-in-a-future-bsc1036125 + + * bbba84c Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc`#1036125`_) + + * 6c5a7c6 Merge pull request `#42077`_ from vutny/fix-jobs-scheduled-with-whens + + * b1960ce Fix scheduled job run on Master if `when` parameter is a list + + * f9cb536 Merge pull request `#42414`_ from vutny/unify-hash-params-format + + * d1f2a93 DOCS: unify hash sum with hash type format + + * 535c922 Merge pull request `#42523`_ from rallytime/`fix-42375`_ + + * 685c2cc Add information about returning a tuple with an error message + + * fa46651 Add a mention of the True/False returns with __virtual__() + + * 0df0e7e Merge pull request `#42527`_ from twangboy/win_wua + + * 0373791 Correct capatlization + + * af3bcc9 Document changes to Windows Update in 10/2016 + + * 69b0658 Merge pull request `#42551`_ from binocvlar/fix-lack-of-align-check-output + + * c4fabaa Remove '-s' (--script) argument to parted within align_check function + + * 9e0b4e9 Merge pull request `#42573`_ from rallytime/`bp-42433`_ + + * 0293429 Only force saltenv/pillarenv to be a string when not None + + * e931ed2 Merge pull request `#42571`_ from twangboy/win_add_pythonpath + + * d55a44d Avoid loading user site packages + + * 9af1eb2 Ignore any PYTHON* environment vars already on the system + + * 4e2fb03 Add pythonpath to batch files and service + + * de2f397 Merge pull request `#42387`_ from DSRCorporation/bugs/42371_KeyError_WeakValueDict + + * e721c7e Don't use `key in weakvaluedict` because it could lie. + + * 641a9d7 Merge pull request `#41968`_ from root360-AndreasUlm/fix-rabbitmqctl-output-handler + + * 76fd941 added tests for rabbitmq 3.6.10 output handler + + * 3602af1 Fix rabbitmqctl output handler for 3.6.10 + + * 66fede3 Merge pull request `#42479`_ from gtmanfred/interface + + * c32c1b2 fix pylint + + * 99ec634 validate ssh_interface for ec2 + + * a925c70 Merge pull request `#42516`_ from rallytime/`fix-42405`_ + + * e3a6717 Add info about top file to pillar walk-through example to include edit.vim + +- **PR** `#42290`_: (*isbm*) Backport of `#42270`_ + @ *2017-07-27T22:30:05Z* + + * 22eea38 Merge pull request `#42290`_ from isbm/isbm-module_run_parambug_42270_217 + * e38d432 Fix docs + + * 1e8a56e Describe function tagging + + * 1d72332 Describe function batching + + * 1391a05 Bugfix: syntax error in the example + + * 8c71257 Call unnamed parameters properly + + * 94c97a8 Update and correct the error message + + * ea83513 Bugfix: args gets ignored alongside named parameters + + * 74689e3 Add ability to use tagged functions in the same set + +- **PR** `#42251`_: (*twangboy*) Fix `unit.modules.test_win_ip` for Windows + @ *2017-07-27T19:22:03Z* + + * 4c20f1c Merge pull request `#42251`_ from twangboy/unit_win_test_win_ip + * 97261bf Fix win_inet_pton check for malformatted ip addresses + +- **PR** `#42255`_: (*twangboy*) Fix `unit.modules.test_win_system` for Windows + @ *2017-07-27T19:12:42Z* + + * 2985e4c Merge pull request `#42255`_ from twangboy/win_unit_test_win_system + * acc0345 Fix unit tests + +- **PR** `#42528`_: (*twangboy*) Namespace `cmp_to_key` in the pkg state for Windows + @ *2017-07-27T18:30:23Z* + + * a573386 Merge pull request `#42528`_ from twangboy/win_fix_pkg_state + * a040443 Move functools import inside pylint escapes + + * 118d513 Remove namespaced function `cmp_to_key` + + * a02c91a Namespace `cmp_to_key` in the pkg state for Windows + +- **PR** `#42534`_: (*jmarinaro*) Fixes AttributeError thrown by chocolatey state + @ *2017-07-27T17:59:50Z* + + - **ISSUE** `#42521`_: (*rickh563*) chocolatey.installed broken on 2017.7.0 + | refs: `#42534`_ + * 62ae12b Merge pull request `#42534`_ from jmarinaro/2017.7 + * b242d2d Fixes AttributeError thrown by chocolatey state Fixes `#42521`_ + +- **PR** `#42557`_: (*justincbeard*) Fixing output so --force-color and --no-color override master and min… + @ *2017-07-27T17:07:33Z* + + - **ISSUE** `#40354`_: (*exc414*) CentOS 6.8 Init Script - Sed unterminated address regex + | refs: `#42557`_ + - **ISSUE** `#37312`_: (*gtmanfred*) CLI flags should take overload settings in the config files + | refs: `#42557`_ + * 52605c2 Merge pull request `#42557`_ from justincbeard/bugfix_37312 + * ee3bc6e Fixing output so --force-color and --no-color override master and minion config color value + +- **PR** `#42567`_: (*skizunov*) Fix disable_ config option + @ *2017-07-27T17:05:00Z* + + * ab33517 Merge pull request `#42567`_ from skizunov/develop3 + * 0f0b7e3 Fix disable_ config option + +- **PR** `#42577`_: (*twangboy*) Compile scripts with -E -s params for Salt on Mac + @ *2017-07-26T22:44:37Z* + + * 30bb941 Merge pull request `#42577`_ from twangboy/mac_scripts + * 69d5973 Compile scripts with -E -s params for python + +- **PR** `#42524`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-07-26T22:41:06Z* + + - **ISSUE** `#42417`_: (*clem-compilatio*) salt-cloud - openstack - "no more floating IP addresses" error - but public_ip in node + | refs: `#42509`_ + - **ISSUE** `#42413`_: (*goten4*) Invalid error message when proxy_host is set and tornado not installed + | refs: `#42424`_ + - **ISSUE** `#42357`_: (*Giandom*) Salt pillarenv problem with slack engine + | refs: `#42443`_ `#42444`_ + - **ISSUE** `#42198`_: (*shengis*) state sqlite3.row_absent fail with "parameters are of unsupported type" + | refs: `#42200`_ + - **PR** `#42509`_: (*clem-compilatio*) Fix _assign_floating_ips in openstack.py + - **PR** `#42464`_: (*garethgreenaway*) [2016.11] Small fix to modules/git.py + - **PR** `#42443`_: (*garethgreenaway*) [2016.11] Fix to slack engine + - **PR** `#42424`_: (*goten4*) Fix error message when tornado or pycurl is not installed + - **PR** `#42200`_: (*shengis*) Fix `#42198`_ + * 60cd078 Merge pull request `#42524`_ from rallytime/merge-2017.7 + * 14d8d79 Merge branch '2016.11' into '2017.7' + + * 1bd5bbc Merge pull request `#42509`_ from clem-compilatio/`fix-42417`_ + + * 72924b0 Fix _assign_floating_ips in openstack.py + + * 4bf35a7 Merge pull request `#42464`_ from garethgreenaway/2016_11_remove_tmp_identity_file + + * ff24102 Uncomment the line that removes the temporary identity file. + + * e2120db Merge pull request `#42443`_ from garethgreenaway/42357_pass_args_kwargs_correctly + + * 635810b Updating the slack engine in 2016.11 to pass the args and kwrags correctly to LocalClient + + * 8262cc9 Merge pull request `#42200`_ from shengis/sqlite3_fix_row_absent_2016.11 + + * 407b8f4 Fix `#42198`_ If where_args is not set, not using it in the delete request. + + * d9df97e Merge pull request `#42424`_ from goten4/2016.11 + + * 1c0574d Fix error message when tornado or pycurl is not installed + +- **PR** `#42575`_: (*rallytime*) [2017.7] Merge forward from 2017.7.1 to 2017.7 + @ *2017-07-26T22:39:10Z* + + * 2acde83 Merge pull request `#42575`_ from rallytime/merge-2017.7.1-into-2017.7 + * 63bb0fb pass in empty kwarg for reactor + + * 2868061 update chunk, not kwarg in chunk + + * 46715e9 Merge branch '2017.7.1' into '2017.7' + +- **PR** `#42555`_: (*Ch3LL*) add changelog to 2017.7.1 release notes + @ *2017-07-26T14:57:43Z* + + * 1d93e92 Merge pull request `#42555`_ from Ch3LL/7.1_add_changelog + * fb69e71 add changelog to 2017.7.1 release notes + +- **PR** `#42266`_: (*twangboy*) Fix `unit.states.test_file` for Windows + @ *2017-07-25T20:26:32Z* + + * 07c2793 Merge pull request `#42266`_ from twangboy/win_unit_states_test_file + * 669aaee Mock file exists properly + + * a4231c9 Fix ret mock for linux + + * 0c484f8 Fix unit tests on Windows + +- **PR** `#42484`_: (*shengis*) Fix a potential Exception with an explicit error message + @ *2017-07-25T18:34:12Z* + + * df417ea Merge pull request `#42484`_ from shengis/fix-explicit-error-msg-x509-sign-remote + * 0b548c7 Fix a potential Exception with an explicit error message + +- **PR** `#42529`_: (*gtmanfred*) Fix joyent for python3 + @ *2017-07-25T16:37:48Z* + + - **ISSUE** `#41720`_: (*rallytime*) [Py3] Some salt-cloud drivers do not work using Python 3 + | refs: `#42529`_ + - **PR** `#396`_: (*mb0*) add file state template context and defaults + | refs: `#42529`_ + * 0f25ec7 Merge pull request `#42529`_ from gtmanfred/2017.7 + * b7ebb4d these drivers do not actually have an issue. + + * e90ca7a use salt encoding for joyent on 2017.7 + +- **PR** `#42465`_: (*garethgreenaway*) [2017.7] Small fix to modules/git.py + @ *2017-07-24T17:24:55Z* + + * 488457c Merge pull request `#42465`_ from garethgreenaway/2017_7_remove_tmp_identity_file + * 1920dc6 Uncomment the line that removes the temporary identity file. + +- **PR** `#42107`_: (*vutny*) [2017.7] Fix scheduled jobs if `when` parameter is a list + @ *2017-07-24T17:04:12Z* + + - **ISSUE** `#23516`_: (*dkiser*) BUG: cron job scheduler sporadically works + | refs: `#42077`_ + - **PR** `#42077`_: (*vutny*) Fix scheduled job run on Master if `when` parameter is a list + | refs: `#42107`_ + - **PR** `#41973`_: (*vutny*) Fix Master/Minion scheduled jobs based on Cron expressions + | refs: `#42077`_ + * 4f04499 Merge pull request `#42107`_ from vutny/2017.7-fix-jobs-scheduled-with-whens + * 905be49 [2017.7] Fix scheduled jobs if `when` parameter is a list + +- **PR** `#42506`_: (*terminalmage*) Add PER_REMOTE_ONLY to init_remotes call in git_pillar runner + @ *2017-07-24T16:59:21Z* + + * 6eaa076 Merge pull request `#42506`_ from terminalmage/fix-git-pillar-runner + * 6352f44 Add PER_REMOTE_ONLY to init_remotes call in git_pillar runner + +- **PR** `#42502`_: (*shengis*) Fix azurerm query to show IPs + @ *2017-07-24T15:54:45Z* + + * b88e645 Merge pull request `#42502`_ from shengis/fix_azurerm_request_ips + * 92f1890 Fix azurerm query to show IPs + +- **PR** `#42180`_: (*twangboy*) Fix `unit.modules.test_timezone` for Windows + @ *2017-07-24T14:46:16Z* + + * c793d83 Merge pull request `#42180`_ from twangboy/win_unit_test_timezone + * 832a3d8 Skip tests that use os.symlink on Windows + +- **PR** `#42474`_: (*whiteinge*) Cmd arg kwarg parsing test + @ *2017-07-24T14:13:30Z* + + - **PR** `#39646`_: (*terminalmage*) Handle deprecation of passing string args to load_args_and_kwargs + | refs: `#42474`_ + * 083ff00 Merge pull request `#42474`_ from whiteinge/cmd-arg-kwarg-parsing-test + * 0cc0c09 Lint fixes + + * 6609373 Add back support for string kwargs + + * 622ff5b Add LocalClient.cmd test for arg/kwarg parsing + + * 9f4eb80 Add a test.arg variant that cleans the pub kwargs by default + +- **PR** `#42425`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-07-21T22:43:41Z* + + - **ISSUE** `#42333`_: (*b3hni4*) Getting "invalid type of dict, a list is required" when trying to configure engines in master config file + | refs: `#42352`_ + - **ISSUE** `#32400`_: (*rallytime*) Document Default Config Values + | refs: `#42319`_ + - **PR** `#42370`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11 + - **PR** `#42368`_: (*twangboy*) Remove build and dist directories before install (2016.11) + - **PR** `#42360`_: (*Ch3LL*) [2016.11] Update version numbers in doc config for 2017.7.0 release + - **PR** `#42359`_: (*Ch3LL*) [2016.3] Update version numbers in doc config for 2017.7.0 release + - **PR** `#42356`_: (*meaksh*) Allow to check whether a function is available on the AliasesLoader wrapper + - **PR** `#42352`_: (*CorvinM*) Multiple documentation fixes + - **PR** `#42350`_: (*twangboy*) Fixes problem with Version and OS Release related grains on certain versions of Python (2016.11) + - **PR** `#42319`_: (*rallytime*) Add more documentation for config options that are missing from master/minion docs + * c91a5e5 Merge pull request `#42425`_ from rallytime/merge-2017.7 + * ea457aa Remove ALIASES block from template util + + * c673b64 Merge branch '2016.11' into '2017.7' + + * 42bb1a6 Merge pull request `#42350`_ from twangboy/win_fix_ver_grains_2016.11 + + * 8c04840 Detect Server OS with a desktop release name + + * 0a72e56 Merge pull request `#42356`_ from meaksh/2016.11-AliasesLoader-wrapper-fix + + * 915d942 Allow to check whether a function is available on the AliasesLoader wrapper + + * 10eb7b7 Merge pull request `#42368`_ from twangboy/win_fix_build_2016.11 + + * a7c910c Remove build and dist directories before install + + * 016189f Merge pull request `#42370`_ from rallytime/merge-2016.11 + + * 0aa5dde Merge branch '2016.3' into '2016.11' + + * e9b0f20 Merge pull request `#42359`_ from Ch3LL/doc-update-2016.3 + + * dc85b5e [2016.3] Update version numbers in doc config for 2017.7.0 release + + * f06a6f1 Merge pull request `#42360`_ from Ch3LL/doc-update-2016.11 + + * b90b7a7 [2016.11] Update version numbers in doc config for 2017.7.0 release + + * e0595b0 Merge pull request `#42319`_ from rallytime/config-docs + + * b40f980 Add more documentation for config options that are missing from master/minion docs + + * 7894040 Merge pull request `#42352`_ from CorvinM/issue42333 + + * 526b6ee Multiple documentation fixes + +- **PR** `#42444`_: (*garethgreenaway*) [2017.7] Fix to slack engine + @ *2017-07-21T22:03:48Z* + + - **ISSUE** `#42357`_: (*Giandom*) Salt pillarenv problem with slack engine + | refs: `#42443`_ `#42444`_ + * 10e4d92 Merge pull request `#42444`_ from garethgreenaway/42357_2017_7_pass_args_kwargs_correctly + * f411cfc Updating the slack engine in 2017.7 to pass the args and kwrags correctly to LocalClient + +- **PR** `#42461`_: (*rallytime*) Bump warning version from Oxygen to Fluorine in roster cache + @ *2017-07-21T21:33:25Z* + + * 723be49 Merge pull request `#42461`_ from rallytime/bump-roster-cache-deprecations + * c0df013 Bump warning version from Oxygen to Fluorine in roster cache + +- **PR** `#42436`_: (*garethgreenaway*) Fixes to versions function in manage runner + @ *2017-07-21T19:41:07Z* + + - **ISSUE** `#42374`_: (*tyhunt99*) [2017.7.0] salt-run mange.versions throws exception if minion is offline or unresponsive + | refs: `#42436`_ + * 0952160 Merge pull request `#42436`_ from garethgreenaway/42374_manage_runner_minion_offline + * 0fd3949 Updating the versions function inside the manage runner to account for when a minion is offline and we are unable to determine it's version. + +- **PR** `#42435`_: (*terminalmage*) Modify our custom YAML loader to treat unicode literals as unicode strings + | refs: `#42812`_ + @ *2017-07-21T19:40:34Z* + + - **ISSUE** `#42427`_: (*grichmond-salt*) Issue Passing Variables created from load_json as Inline Pillar Between States + | refs: `#42435`_ + * 54193ea Merge pull request `#42435`_ from terminalmage/issue42427 + * 31273c7 Modify our custom YAML loader to treat unicode literals as unicode strings + +- **PR** `#42399`_: (*rallytime*) Update old "ref" references to "rev" in git.detached state + @ *2017-07-21T19:38:59Z* + + - **ISSUE** `#42381`_: (*zebooka*) Git.detached broken in 2017.7.0 + | refs: `#42399`_ + - **ISSUE** `#38878`_: (*tomlaredo*) [Naming consistency] git.latest "rev" option VS git.detached "ref" option + | refs: `#38898`_ + - **PR** `#38898`_: (*terminalmage*) git.detached: rename ref to rev for consistency + | refs: `#42399`_ + * 0b31791 Merge pull request `#42399`_ from rallytime/`fix-42381`_ + * d9d94fe Update old "ref" references to "rev" in git.detached state + +- **PR** `#42031`_: (*skizunov*) Fix: Reactor emits critical error + @ *2017-07-21T19:38:34Z* + + - **ISSUE** `#42400`_: (*Enquier*) Conflict in execution of passing pillar data to orch/reactor event executions 2017.7.0 + | refs: `#42031`_ + * bd4adb4 Merge pull request `#42031`_ from skizunov/develop3 + * 540977b Fix: Reactor emits critical error + +- **PR** `#42027`_: (*gtmanfred*) import salt.minion for EventReturn for Windows + @ *2017-07-21T19:37:03Z* + + - **ISSUE** `#41949`_: (*jrporcaro*) Event returner doesn't work with Windows Master + | refs: `#42027`_ + * 3abf7ad Merge pull request `#42027`_ from gtmanfred/2017.7 + * fd4458b import salt.minion for EventReturn for Windows + +- **PR** `#42454`_: (*terminalmage*) Document future renaming of new rand_str jinja filter + @ *2017-07-21T18:47:51Z* + + * 994d3dc Merge pull request `#42454`_ from terminalmage/jinja-docs-2017.7 + * 98b6614 Document future renaming of new rand_str jinja filter + +- **PR** `#42452`_: (*Ch3LL*) update windows urls to new py2/py3 naming scheme + @ *2017-07-21T17:20:47Z* + + * 4480075 Merge pull request `#42452`_ from Ch3LL/fix_url_windows + * 3f4a918 update windows urls to new py2/py3 naming scheme + +- **PR** `#42411`_: (*seedickcode*) Fix file.managed check_cmd file not found - Issue `#42404`_ + @ *2017-07-20T21:59:17Z* + + - **ISSUE** `#42404`_: (*gabekahen*) [2017.7] file.managed with cmd_check "No such file or directory" + | refs: `#42411`_ + - **ISSUE** `#33708`_: (*pepinje*) visudo check command leaves cache file in /tmp + | refs: `#42411`_ `#38063`_ + - **PR** `#38063`_: (*llua*) tmp file clean up in file.manage - fix for `#33708`_ + | refs: `#42411`_ + * 33e90be Merge pull request `#42411`_ from seedickcode/check_cmd_fix + * 4ae3911 Fix file.managed check_cmd file not found - Issue `#42404`_ + +- **PR** `#42409`_: (*twangboy*) Add Scripts to build Py3 on Mac + @ *2017-07-20T21:36:34Z* + + * edde313 Merge pull request `#42409`_ from twangboy/mac_py3_scripts + * ac0e04a Remove build and dist, sign pkgs + + * 9d66e27 Fix hard coded pip path + + * 7b8d6cb Add support for Py3 + + * aa4eed9 Update Python and other reqs + +- **PR** `#42433`_: (*terminalmage*) Only force saltenv/pillarenv to be a string when not None + | refs: `#42573`_ + @ *2017-07-20T21:32:24Z* + + - **ISSUE** `#42403`_: (*astronouth7303*) [2017.7] Pillar empty when state is applied from orchestrate + | refs: `#42433`_ + * 82982f9 Merge pull request `#42433`_ from terminalmage/issue42403 +- **PR** `#42408`_: (*CorvinM*) Fix documentation misformat in salt.states.file.replace + @ *2017-07-20T00:45:43Z* + + * a71938c Merge pull request `#42408`_ from CorvinM/file-replace-doc-fix + * 246a2b3 Fix documentation misformat in salt.states.file.replace + +- **PR** `#42347`_: (*twangboy*) Fixes problem with Version and OS Release related grains on certain versions of Python + @ *2017-07-19T17:05:43Z* + + * d385dfd Merge pull request `#42347`_ from twangboy/win_fix_ver_grains + * ef1f663 Detect server OS with a desktop release name + +- **PR** `#42366`_: (*twangboy*) Remove build and dist directories before install + @ *2017-07-19T16:37:41Z* + + * eb9e420 Merge pull request `#42366`_ from twangboy/win_fix_build + * 0946002 Add blank line after delete + + * f7c0bb4 Remove build and dist directories before install + +- **PR** `#42373`_: (*Ch3LL*) Add initial 2017.7.1 Release Notes File + @ *2017-07-19T16:28:46Z* + + * af7820f Merge pull request `#42373`_ from Ch3LL/add_2017.7.1 + * ce1c1b6 Add initial 2017.7.1 Release Notes File + +- **PR** `#42150`_: (*twangboy*) Fix `unit.modules.test_pip` for Windows + @ *2017-07-19T16:01:17Z* + + * 59e012b Merge pull request `#42150`_ from twangboy/win_unit_test_pip + * 4ee2420 Fix unit tests for test_pip + +- **PR** `#42154`_: (*twangboy*) Fix `unit.modules.test_reg_win` for Windows + @ *2017-07-19T16:00:38Z* + + * ade25c6 Merge pull request `#42154`_ from twangboy/win_unit_test_reg + * 00d9a52 Fix problem with handling REG_QWORD in list values + +- **PR** `#42182`_: (*twangboy*) Fix `unit.modules.test_useradd` for Windows + @ *2017-07-19T15:55:33Z* + + * 0759367 Merge pull request `#42182`_ from twangboy/win_unit_test_useradd + * 8260a71 Disable tests that require pwd in Windows + +- **PR** `#42364`_: (*twangboy*) Windows Package notes for 2017.7.0 + @ *2017-07-18T19:24:45Z* + + * a175c40 Merge pull request `#42364`_ from twangboy/release_notes_2017.7.0 + * 96517d1 Add note about patched windows packages + +- **PR** `#42361`_: (*Ch3LL*) [2017.7] Update version numbers in doc config for 2017.7.0 release + @ *2017-07-18T19:23:22Z* + + * 4dfe50e Merge pull request `#42361`_ from Ch3LL/doc-update-2017.7 + * dc5bb30 [2017.7] Update version numbers in doc config for 2017.7.0 release + +- **PR** `#42363`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-07-18T18:40:48Z* + + - **ISSUE** `#42295`_: (*lubyou*) file.absent fails on windows if the file to be removed has the "readonly" attribute set + | refs: `#42308`_ + - **ISSUE** `#42267`_: (*gzcwnk*) salt-ssh not creating ssh keys automatically as per documentation + | refs: `#42314`_ + - **ISSUE** `#42240`_: (*casselt*) empty_password in user.present always changes password, even with test=True + | refs: `#42289`_ + - **ISSUE** `#42232`_: (*astronouth7303*) Half of dnsutil refers to dig + | refs: `#42235`_ + - **ISSUE** `#42194`_: (*jryberg*) pkg version: latest are now broken, appending -latest to filename + | refs: `#42275`_ + - **ISSUE** `#42152`_: (*dubb-b*) salt-cloud errors on Rackspace driver using -out=yaml + | refs: `#42282`_ + - **ISSUE** `#42137`_: (*kiemlicz*) cmd.run with multiple commands - random order of execution + | refs: `#42181`_ + - **ISSUE** `#42116`_: (*terminalmage*) CLI pillar override regression in 2017.7.0rc1 + | refs: `#42119`_ + - **ISSUE** `#42115`_: (*nomeelnoj*) Installing EPEL repo breaks salt-cloud + | refs: `#42163`_ + - **ISSUE** `#42114`_: (*clallen*) saltenv bug in pillar.get execution module function + | refs: `#42121`_ + - **ISSUE** `#41936`_: (*michaelkarrer81*) git.latest identity does not set the correct user for the private key file on the minion + | refs: `#41945`_ + - **ISSUE** `#41721`_: (*sazaro*) state.sysrc broken when setting the value to YES or NO + | refs: `#42269`_ + - **ISSUE** `#41116`_: (*hrumph*) FAQ has wrong instructions for upgrading Windows minion. + | refs: `#42264`_ + - **ISSUE** `#39365`_: (*dglloyd*) service.running fails if sysv script has no status command and enable: True + | refs: `#39366`_ + - **ISSUE** `#1`_: (*thatch45*) Enable regex on the salt cli + - **PR** `#42353`_: (*terminalmage*) is_windows is a function, not a propery/attribute + - **PR** `#42314`_: (*rallytime*) Add clarification to salt ssh docs about key auto-generation. + - **PR** `#42308`_: (*lubyou*) Force file removal on Windows. Fixes `#42295`_ + - **PR** `#42289`_: (*CorvinM*) Multiple empty_password fixes for state.user + - **PR** `#42282`_: (*rallytime*) Handle libcloud objects that throw RepresenterErrors with --out=yaml + - **PR** `#42275`_: (*terminalmage*) pkg.installed: pack name/version into pkgs argument + - **PR** `#42269`_: (*rallytime*) Add some clarity to "multiple quotes" section of yaml docs + - **PR** `#42264`_: (*rallytime*) Update minion restart section in FAQ doc for windows + - **PR** `#42262`_: (*rallytime*) Back-port `#42224`_ to 2016.11 + - **PR** `#42261`_: (*rallytime*) Some minor doc fixes for dnsutil module so they'll render correctly + - **PR** `#42253`_: (*gtmanfred*) Only use unassociated ips when unable to allocate + - **PR** `#42252`_: (*UtahDave*) simple docstring updates + - **PR** `#42235`_: (*astronouth7303*) Abolish references to `dig` in examples. + - **PR** `#42224`_: (*tdutrion*) Remove duplicate instruction in Openstack Rackspace config example + | refs: `#42262`_ + - **PR** `#42215`_: (*twangboy*) Add missing config to example + - **PR** `#42211`_: (*terminalmage*) Only pass a saltenv in orchestration if one was explicitly passed (2016.11) + - **PR** `#42181`_: (*garethgreenaway*) fixes to state.py for names parameter + - **PR** `#42176`_: (*rallytime*) Back-port `#42109`_ to 2016.11 + - **PR** `#42175`_: (*rallytime*) Back-port `#39366`_ to 2016.11 + - **PR** `#42173`_: (*rallytime*) Back-port `#37424`_ to 2016.11 + - **PR** `#42172`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11 + - **PR** `#42164`_: (*Ch3LL*) Fix kerberos create_keytab doc + - **PR** `#42163`_: (*vutny*) Fix `#42115`_: parse libcloud "rc" version correctly + - **PR** `#42155`_: (*phsteve*) Fix docs for puppet.plugin_sync + - **PR** `#42142`_: (*Ch3LL*) Update builds available for rc1 + - **PR** `#42141`_: (*rallytime*) Back-port `#42098`_ to 2016.11 + - **PR** `#42140`_: (*rallytime*) Back-port `#42097`_ to 2016.11 + - **PR** `#42123`_: (*vutny*) DOCS: describe importing custom util classes + - **PR** `#42121`_: (*terminalmage*) Fix pillar.get when saltenv is passed + - **PR** `#42119`_: (*terminalmage*) Fix regression in CLI pillar override for salt-call + - **PR** `#42109`_: (*arthurlogilab*) [doc] Update aws.rst - add Debian default username + | refs: `#42176`_ + - **PR** `#42098`_: (*twangboy*) Change repo_ng to repo-ng + | refs: `#42141`_ + - **PR** `#42097`_: (*gtmanfred*) require large timediff for ipv6 warning + | refs: `#42140`_ + - **PR** `#42095`_: (*terminalmage*) Add debug logging to dockerng.login + - **PR** `#42094`_: (*terminalmage*) Prevent command from showing in exception when output_loglevel=quiet + - **PR** `#41945`_: (*garethgreenaway*) Fixes to modules/git.py + - **PR** `#41543`_: (*cri-epita*) Fix user creation with empty password + | refs: `#42289`_ `#42289`_ + - **PR** `#39366`_: (*dglloyd*) Pass sig to service.status in after_toggle + | refs: `#42175`_ + - **PR** `#38965`_: (*toanju*) salt-cloud will use list_floating_ips for OpenStack + | refs: `#42253`_ + - **PR** `#37424`_: (*kojiromike*) Avoid Early Convert ret['comment'] to String + | refs: `#42173`_ + - **PR** `#34280`_: (*kevinanderson1*) salt-cloud will use list_floating_ips for Openstack + | refs: `#38965`_ + * 587138d Merge pull request `#42363`_ from rallytime/merge-2017.7 + * 7aa31ff Merge branch '2016.11' into '2017.7' + + * b256001 Merge pull request `#42353`_ from terminalmage/fix-git-test + + * 14cf6ce is_windows is a function, not a propery/attribute + + * 866a1fe Merge pull request `#42264`_ from rallytime/`fix-41116`_ + + * bd63888 Add mono-spacing to salt-minion reference for consistency + + * 30d62f4 Update minion restart section in FAQ doc for windows + + * 9a70708 Merge pull request `#42275`_ from terminalmage/issue42194 + + * 6638749 pkg.installed: pack name/version into pkgs argument + + * e588f23 Merge pull request `#42269`_ from rallytime/`fix-41721`_ + + * f2250d4 Add a note about using different styles of quotes. + + * 38d9b3d Add some clarity to "multiple quotes" section of yaml docs + + * 5aaa214 Merge pull request `#42282`_ from rallytime/`fix-42152`_ + + * f032223 Handle libcloud objects that throw RepresenterErrors with --out=yaml + + * fb5697a Merge pull request `#42308`_ from lubyou/42295-fix-file-absent-windows + + * 026ccf4 Force file removal on Windows. Fixes `#42295`_ + + * da2a8a5 Merge pull request `#42314`_ from rallytime/`fix-42267`_ + + * c406046 Add clarification to salt ssh docs about key auto-generation. + + * acadd54 Merge pull request `#41945`_ from garethgreenaway/41936_allow_identity_files_with_user + + * 44841e5 Moving the call to cp.get_file inside the with block to ensure the umask is preserved when we grab the file. + + * f9ba60e Merge pull request `#1`_ from terminalmage/pr-41945 + + * 1b60261 Restrict set_umask to mkstemp call only + + * 68549f3 Fixing umask to we can set files as executable. + + * 4949bf3 Updating to swap on the new salt.utils.files.set_umask context_manager + + * 8faa9f6 Updating PR with requested changes. + + * 494765e Updating the git module to allow an identity file to be used when passing the user parameter + + * f90e04a Merge pull request `#42289`_ from CorvinM/`bp-41543`_ + + * 357dc22 Fix user creation with empty password + + * a91a3f8 Merge pull request `#42123`_ from vutny/fix-master-utils-import + + * 6bb8b8f Add missing doc for ``utils_dirs`` Minion config option + + * f1bc58f Utils: add example of module import + + * e2aa511 Merge pull request `#42261`_ from rallytime/minor-doc-fix + + * 8c76bbb Some minor doc fixes for dnsutil module so they'll render correctly + + * 3e9dfbc Merge pull request `#42262`_ from rallytime/`bp-42224`_ + + * c31ded3 Remove duplicate instruction in Openstack Rackspace config example + + * 7780579 Merge pull request `#42181`_ from garethgreenaway/42137_backport_fix_from_2017_7 + + * a34970b Back porting the fix for 2017.7 that ensures the order of the names parameter. + + * 7253786 Merge pull request `#42253`_ from gtmanfred/2016.11 + + * 53e2576 Only use unassociated ips when unable to allocate + + * b2a4698 Merge pull request `#42252`_ from UtahDave/2016.11local + + * e6a9563 simple doc updates + + * 781fe13 Merge pull request `#42235`_ from astronouth7303/patch-1-2016.3 + + * 4cb51bd Make note of dig partial requirement. + + * 08e7d83 Abolish references to `dig` in examples. + + * 83cbd76 Merge pull request `#42215`_ from twangboy/win_iis_docs + + * c07e220 Add missing config to example + + * 274946a Merge pull request `#42211`_ from terminalmage/issue40928 + + * 22a18fa Only pass a saltenv in orchestration if one was explicitly passed (2016.11) + + * 89261cf Merge pull request `#42173`_ from rallytime/`bp-37424`_ + + * 01addb6 Avoid Early Convert ret['comment'] to String + + * 3b17fb7 Merge pull request `#42175`_ from rallytime/`bp-39366`_ + + * 53f7b98 Pass sig to service.status in after_toggle + + * ea16f47 Merge pull request `#42172`_ from rallytime/merge-2016.11 + + * b1fa332 Merge branch '2016.3' into '2016.11' + + * 8fa1fa5 Merge pull request `#42155`_ from phsteve/doc-fix-puppet + + * fb2cb78 Fix docs for puppet.plugin_sync so code-block renders properly and sync is spelled consistently + + * 6307b98 Merge pull request `#42176`_ from rallytime/`bp-42109`_ + + * 686926d Update aws.rst - add Debian default username + + * 28c4e4c Merge pull request `#42095`_ from terminalmage/docker-login-debugging + + * bd27870 Add debug logging to dockerng.login + + * 2b754bc Merge pull request `#42119`_ from terminalmage/issue42116 + + * 9a26894 Add integration test for 42116 + + * 1bb42bb Fix regression when CLI pillar override is used with salt-call + + * 8c0a83c Merge pull request `#42121`_ from terminalmage/issue42114 + + * d142912 Fix pillar.get when saltenv is passed + + * 687992c Merge pull request `#42094`_ from terminalmage/quiet-exception + + * 47d61f4 Prevent command from showing in exception when output_loglevel=quiet + + * dad2551 Merge pull request `#42163`_ from vutny/`fix-42115`_ + + * b27b1e3 Fix `#42115`_: parse libcloud "rc" version correctly + + * 2a8ae2b Merge pull request `#42164`_ from Ch3LL/fix_kerb_doc + + * 7c0fb24 Fix kerberos create_keytab doc + + * 678d4d4 Merge pull request `#42141`_ from rallytime/`bp-42098`_ + + * bd80243 Change repo_ng to repo-ng + + * c8afd7a Merge pull request `#42140`_ from rallytime/`bp-42097`_ + + * 9c4e132 Import datetime + + * 1435bf1 require large timediff for ipv6 warning + + * c239664 Merge pull request `#42142`_ from Ch3LL/change_builds + + * e1694af Update builds available for rc1 + +- **PR** `#42340`_: (*isbm*) Bugfix: Jobs scheduled to run at a future time stay pending for Salt … + @ *2017-07-18T18:13:36Z* + + - **ISSUE** `#1036125`_: (**) + * 55b7a5c Merge pull request `#42340`_ from isbm/isbm-jobs-scheduled-in-a-future-2017.7-bsc1036125 + * 774d204 Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc`#1036125`_) + +- **PR** `#42327`_: (*mirceaulinic*) Default skip_verify to False + @ *2017-07-18T18:04:36Z* + + * e72616c Merge pull request `#42327`_ from mirceaulinic/patch-10 + * c830573 Trailing whitespaces + + * c83e6fc Default skip_verify to False + +- **PR** `#42179`_: (*rallytime*) Fix some documentation issues found in jinja filters doc topic + @ *2017-07-18T18:01:57Z* + + - **ISSUE** `#42151`_: (*sjorge*) Doc errors in jinja doc for develop branch + | refs: `#42179`_ `#42179`_ + * ba799b2 Merge pull request `#42179`_ from rallytime/`fix-42151`_ + * 798d292 Add note about "to_bytes" jinja filter issues when using yaml_jinja renderer + + * 1bbff57 Fix some documentation issues found in jinja filters doc topic + +- **PR** `#42087`_: (*abulford*) Make result=true if Docker volume already exists + @ *2017-07-17T18:41:47Z* + + - **ISSUE** `#42076`_: (*abulford*) dockerng.volume_present test looks as though it would cause a change + | refs: `#42086`_ `#42086`_ `#42087`_ `#42087`_ + - **PR** `#42086`_: (*abulford*) Make result=true if Docker volume already exists + | refs: `#42087`_ + * 8dbb938 Merge pull request `#42087`_ from redmatter/fix-dockerng-volume-present-result-2017.7 + * 2e1dc95 Make result=true if Docker volume already exists + +- **PR** `#42186`_: (*rallytime*) Use long_range function for IPv6Network hosts() function + @ *2017-07-17T18:39:35Z* + + - **ISSUE** `#42166`_: (*sjorge*) [2017.7.0rc1] jinja filter network_hosts fails on large IPv6 networks + | refs: `#42186`_ + * c84d6db Merge pull request `#42186`_ from rallytime/`fix-42166`_ + * b8bcc0d Add note to various network_hosts docs about long_run for IPv6 networks + + * 1186274 Use long_range function for IPv6Network hosts() function + +- **PR** `#42210`_: (*terminalmage*) Only pass a saltenv in orchestration if one was explicitly passed (2017.7) + @ *2017-07-17T18:22:39Z* + + * e7b79e0 Merge pull request `#42210`_ from terminalmage/issue40928-2017.7 + * 771ade5 Only pass a saltenv in orchestration if one was explicitly passed (2017.7) + +- **PR** `#42236`_: (*mirceaulinic*) New option for napalm proxy/minion: provider + @ *2017-07-17T18:19:56Z* + + * 0e49021 Merge pull request `#42236`_ from cloudflare/napalm-provider + * 1ac69bd Document the provider option and rearrange the doc + + * 4bf4b14 New option for napalm proxy/minion: provider + +- **PR** `#42257`_: (*twangboy*) Fix `unit.pillar.test_git` for Windows + @ *2017-07-17T17:51:42Z* + + * 3ec5bb1 Merge pull request `#42257`_ from twangboy/win_unit_pillar_test_git + * 45be326 Add error-handling function to shutil.rmtree + +- **PR** `#42258`_: (*twangboy*) Fix `unit.states.test_environ` for Windows + @ *2017-07-17T17:50:38Z* + + * 3639562 Merge pull request `#42258`_ from twangboy/win_unit_states_tests_environ + * 55b278c Mock the reg.read_value function + +- **PR** `#42265`_: (*rallytime*) Gate boto_elb tests if proper version of moto isn't installed + @ *2017-07-17T17:47:52Z* + + * 894bdd2 Merge pull request `#42265`_ from rallytime/gate-moto-version + * 78cdee5 Gate boto_elb tests if proper version of moto isn't installed + +- **PR** `#42277`_: (*twangboy*) Fix `unit.states.test_winrepo` for Windows + @ *2017-07-17T17:37:07Z* + + * baf04f2 Merge pull request `#42277`_ from twangboy/win_unit_states_test_winrepo + * ed89cd0 Use os.sep for path seps + +- **PR** `#42309`_: (*terminalmage*) Change "TBD" in versionadded to "2017.7.0" + @ *2017-07-17T17:11:45Z* + + * be6b211 Merge pull request `#42309`_ from terminalmage/fix-versionadded + * 603f5b7 Change "TBD" in versionadded to "2017.7.0" + +- **PR** `#42206`_: (*rallytime*) [PY3] Fix test that is flaky in Python 3 + | refs: `#42783`_ + @ *2017-07-17T17:09:53Z* + + * acd29f9 Merge pull request `#42206`_ from rallytime/fix-flaky-test + * 2be4865 [PY3] Fix test that is flaky in Python 3 + +- **PR** `#42126`_: (*rallytime*) [2017.7] Merge forward from 2016.11 to 2017.7 + @ *2017-07-17T17:07:19Z* + + * 8f1cb28 Merge pull request `#42126`_ from rallytime/merge-2017.7 +* 8b35b36 Merge branch '2016.11' into '2017.7' + + +- **PR** `#42078`_: (*damon-atkins*) pkg.install and pkg.remove fix version number input. + @ *2017-07-05T06:04:57Z* + + * 4780d78 Merge pull request `#42078`_ from damon-atkins/fix_convert_flt_str_version_on_cmd_line + * 09d37dd Fix comment typo + + * 7167549 Handle version=None when converted to a string it becomes 'None' parm should default to empty string rather than None, it would fix better with existing code. + + * 4fb2bb1 Fix typo + + * cf55c33 pkg.install and pkg.remove on the command line take number version numbers, store them within a float. However version is a string, to support versions numbers like 1.3.4 + +- **PR** `#42105`_: (*Ch3LL*) Update releasecanddiate doc with new 2017.7.0rc1 Release + @ *2017-07-04T03:14:42Z* + + * 46d575a Merge pull request `#42105`_ from Ch3LL/update_rc + * d4e7b91 Update releasecanddiate doc with new 2017.7.0rc1 Release + +- **PR** `#42099`_: (*rallytime*) Remove references in docs to pip install salt-cloud + @ *2017-07-03T22:13:44Z* + + - **ISSUE** `#41885`_: (*astronouth7303*) Recommended pip installation outdated? + | refs: `#42099`_ + * d38548b Merge pull request `#42099`_ from rallytime/`fix-41885`_ + * c2822e0 Remove references in docs to pip install salt-cloud + +- **PR** `#42086`_: (*abulford*) Make result=true if Docker volume already exists + | refs: `#42087`_ + @ *2017-07-03T15:48:33Z* + + - **ISSUE** `#42076`_: (*abulford*) dockerng.volume_present test looks as though it would cause a change + | refs: `#42086`_ `#42086`_ `#42087`_ `#42087`_ + * 81d606a Merge pull request `#42086`_ from redmatter/fix-dockerng-volume-present-result + * 8d54968 Make result=true if Docker volume already exists + +- **PR** `#42021`_: (*gtmanfred*) Set concurrent to True when running states with sudo + @ *2017-06-30T21:02:15Z* + + - **ISSUE** `#25842`_: (*shikhartanwar*) Running salt-minion as non-root user to execute sudo commands always returns an error + | refs: `#42021`_ + * 7160697 Merge pull request `#42021`_ from gtmanfred/2016.11 + * 26beb18 Set concurrent to True when running states with sudo + +- **PR** `#42029`_: (*terminalmage*) Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips + @ *2017-06-30T20:58:56Z* + + * b784fbb Merge pull request `#42029`_ from terminalmage/host_to_ips + * 26f848e Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips + +- **PR** `#42055`_: (*dmurphy18*) Upgrade support for gnupg v2.1 and higher + @ *2017-06-30T20:54:02Z* + + * e067020 Merge pull request `#42055`_ from dmurphy18/handle_gnupgv21 + * e20cea6 Upgrade support for gnupg v2.1 and higher + +- **PR** `#42048`_: (*Ch3LL*) Add initial 2016.11.7 Release Notes + @ *2017-06-30T16:00:05Z* + + * 74ba2ab Merge pull request `#42048`_ from Ch3LL/add_11.7 + * 1de5e00 Add initial 2016.11.7 Release Notes + + +.. _`#1`: https://github.com/saltstack/salt/issues/1 +.. _`#1036125`: https://github.com/saltstack/salt/issues/1036125 +.. _`#12587`: https://github.com/saltstack/salt/issues/12587 +.. _`#15171`: https://github.com/saltstack/salt/issues/15171 +.. _`#2`: https://github.com/saltstack/salt/issues/2 +.. _`#23516`: https://github.com/saltstack/salt/issues/23516 +.. _`#25842`: https://github.com/saltstack/salt/issues/25842 +.. _`#26995`: https://github.com/saltstack/salt/issues/26995 +.. _`#32400`: https://github.com/saltstack/salt/issues/32400 +.. _`#33708`: https://github.com/saltstack/salt/issues/33708 +.. _`#33806`: https://github.com/saltstack/salt/pull/33806 +.. _`#34245`: https://github.com/saltstack/salt/issues/34245 +.. _`#34280`: https://github.com/saltstack/salt/pull/34280 +.. _`#37312`: https://github.com/saltstack/salt/issues/37312 +.. _`#37424`: https://github.com/saltstack/salt/pull/37424 +.. _`#38063`: https://github.com/saltstack/salt/pull/38063 +.. _`#38839`: https://github.com/saltstack/salt/issues/38839 +.. _`#38878`: https://github.com/saltstack/salt/issues/38878 +.. _`#38898`: https://github.com/saltstack/salt/pull/38898 +.. _`#38965`: https://github.com/saltstack/salt/pull/38965 +.. _`#39365`: https://github.com/saltstack/salt/issues/39365 +.. _`#39366`: https://github.com/saltstack/salt/pull/39366 +.. _`#39516`: https://github.com/saltstack/salt/pull/39516 +.. _`#396`: https://github.com/saltstack/salt/pull/396 +.. _`#39646`: https://github.com/saltstack/salt/pull/39646 +.. _`#39773`: https://github.com/saltstack/salt/pull/39773 +.. _`#40354`: https://github.com/saltstack/salt/issues/40354 +.. _`#40490`: https://github.com/saltstack/salt/issues/40490 +.. _`#41116`: https://github.com/saltstack/salt/issues/41116 +.. _`#41433`: https://github.com/saltstack/salt/issues/41433 +.. _`#41543`: https://github.com/saltstack/salt/pull/41543 +.. _`#41690`: https://github.com/saltstack/salt/pull/41690 +.. _`#41720`: https://github.com/saltstack/salt/issues/41720 +.. _`#41721`: https://github.com/saltstack/salt/issues/41721 +.. _`#41770`: https://github.com/saltstack/salt/issues/41770 +.. _`#41885`: https://github.com/saltstack/salt/issues/41885 +.. _`#41936`: https://github.com/saltstack/salt/issues/41936 +.. _`#41945`: https://github.com/saltstack/salt/pull/41945 +.. _`#41949`: https://github.com/saltstack/salt/issues/41949 +.. _`#41955`: https://github.com/saltstack/salt/issues/41955 +.. _`#41968`: https://github.com/saltstack/salt/pull/41968 +.. _`#41973`: https://github.com/saltstack/salt/pull/41973 +.. _`#41976`: https://github.com/saltstack/salt/issues/41976 +.. _`#41977`: https://github.com/saltstack/salt/pull/41977 +.. _`#41982`: https://github.com/saltstack/salt/issues/41982 +.. _`#41988`: https://github.com/saltstack/salt/pull/41988 +.. _`#41994`: https://github.com/saltstack/salt/pull/41994 +.. _`#42006`: https://github.com/saltstack/salt/pull/42006 +.. _`#42021`: https://github.com/saltstack/salt/pull/42021 +.. _`#42027`: https://github.com/saltstack/salt/pull/42027 +.. _`#42029`: https://github.com/saltstack/salt/pull/42029 +.. _`#42031`: https://github.com/saltstack/salt/pull/42031 +.. _`#42041`: https://github.com/saltstack/salt/issues/42041 +.. _`#42045`: https://github.com/saltstack/salt/pull/42045 +.. _`#42048`: https://github.com/saltstack/salt/pull/42048 +.. _`#42055`: https://github.com/saltstack/salt/pull/42055 +.. _`#42067`: https://github.com/saltstack/salt/pull/42067 +.. _`#42076`: https://github.com/saltstack/salt/issues/42076 +.. _`#42077`: https://github.com/saltstack/salt/pull/42077 +.. _`#42078`: https://github.com/saltstack/salt/pull/42078 +.. _`#42086`: https://github.com/saltstack/salt/pull/42086 +.. _`#42087`: https://github.com/saltstack/salt/pull/42087 +.. _`#42094`: https://github.com/saltstack/salt/pull/42094 +.. _`#42095`: https://github.com/saltstack/salt/pull/42095 +.. _`#42097`: https://github.com/saltstack/salt/pull/42097 +.. _`#42098`: https://github.com/saltstack/salt/pull/42098 +.. _`#42099`: https://github.com/saltstack/salt/pull/42099 +.. _`#42105`: https://github.com/saltstack/salt/pull/42105 +.. _`#42107`: https://github.com/saltstack/salt/pull/42107 +.. _`#42109`: https://github.com/saltstack/salt/pull/42109 +.. _`#42114`: https://github.com/saltstack/salt/issues/42114 +.. _`#42115`: https://github.com/saltstack/salt/issues/42115 +.. _`#42116`: https://github.com/saltstack/salt/issues/42116 +.. _`#42119`: https://github.com/saltstack/salt/pull/42119 +.. _`#42121`: https://github.com/saltstack/salt/pull/42121 +.. _`#42123`: https://github.com/saltstack/salt/pull/42123 +.. _`#42126`: https://github.com/saltstack/salt/pull/42126 +.. _`#42137`: https://github.com/saltstack/salt/issues/42137 +.. _`#42140`: https://github.com/saltstack/salt/pull/42140 +.. _`#42141`: https://github.com/saltstack/salt/pull/42141 +.. _`#42142`: https://github.com/saltstack/salt/pull/42142 +.. _`#42150`: https://github.com/saltstack/salt/pull/42150 +.. _`#42151`: https://github.com/saltstack/salt/issues/42151 +.. _`#42152`: https://github.com/saltstack/salt/issues/42152 +.. _`#42154`: https://github.com/saltstack/salt/pull/42154 +.. _`#42155`: https://github.com/saltstack/salt/pull/42155 +.. _`#42163`: https://github.com/saltstack/salt/pull/42163 +.. _`#42164`: https://github.com/saltstack/salt/pull/42164 +.. _`#42166`: https://github.com/saltstack/salt/issues/42166 +.. _`#42172`: https://github.com/saltstack/salt/pull/42172 +.. _`#42173`: https://github.com/saltstack/salt/pull/42173 +.. _`#42174`: https://github.com/saltstack/salt/pull/42174 +.. _`#42175`: https://github.com/saltstack/salt/pull/42175 +.. _`#42176`: https://github.com/saltstack/salt/pull/42176 +.. _`#42179`: https://github.com/saltstack/salt/pull/42179 +.. _`#42180`: https://github.com/saltstack/salt/pull/42180 +.. _`#42181`: https://github.com/saltstack/salt/pull/42181 +.. _`#42182`: https://github.com/saltstack/salt/pull/42182 +.. _`#42186`: https://github.com/saltstack/salt/pull/42186 +.. _`#42194`: https://github.com/saltstack/salt/issues/42194 +.. _`#42198`: https://github.com/saltstack/salt/issues/42198 +.. _`#42200`: https://github.com/saltstack/salt/pull/42200 +.. _`#42206`: https://github.com/saltstack/salt/pull/42206 +.. _`#42210`: https://github.com/saltstack/salt/pull/42210 +.. _`#42211`: https://github.com/saltstack/salt/pull/42211 +.. _`#42215`: https://github.com/saltstack/salt/pull/42215 +.. _`#42224`: https://github.com/saltstack/salt/pull/42224 +.. _`#42232`: https://github.com/saltstack/salt/issues/42232 +.. _`#42235`: https://github.com/saltstack/salt/pull/42235 +.. _`#42236`: https://github.com/saltstack/salt/pull/42236 +.. _`#42240`: https://github.com/saltstack/salt/issues/42240 +.. _`#42251`: https://github.com/saltstack/salt/pull/42251 +.. _`#42252`: https://github.com/saltstack/salt/pull/42252 +.. _`#42253`: https://github.com/saltstack/salt/pull/42253 +.. _`#42255`: https://github.com/saltstack/salt/pull/42255 +.. _`#42257`: https://github.com/saltstack/salt/pull/42257 +.. _`#42258`: https://github.com/saltstack/salt/pull/42258 +.. _`#42261`: https://github.com/saltstack/salt/pull/42261 +.. _`#42262`: https://github.com/saltstack/salt/pull/42262 +.. _`#42264`: https://github.com/saltstack/salt/pull/42264 +.. _`#42265`: https://github.com/saltstack/salt/pull/42265 +.. _`#42266`: https://github.com/saltstack/salt/pull/42266 +.. _`#42267`: https://github.com/saltstack/salt/issues/42267 +.. _`#42269`: https://github.com/saltstack/salt/pull/42269 +.. _`#42270`: https://github.com/saltstack/salt/issues/42270 +.. _`#42275`: https://github.com/saltstack/salt/pull/42275 +.. _`#42277`: https://github.com/saltstack/salt/pull/42277 +.. _`#42279`: https://github.com/saltstack/salt/issues/42279 +.. _`#42282`: https://github.com/saltstack/salt/pull/42282 +.. _`#42289`: https://github.com/saltstack/salt/pull/42289 +.. _`#42290`: https://github.com/saltstack/salt/pull/42290 +.. _`#42291`: https://github.com/saltstack/salt/pull/42291 +.. _`#42295`: https://github.com/saltstack/salt/issues/42295 +.. _`#42308`: https://github.com/saltstack/salt/pull/42308 +.. _`#42309`: https://github.com/saltstack/salt/pull/42309 +.. _`#42314`: https://github.com/saltstack/salt/pull/42314 +.. _`#42319`: https://github.com/saltstack/salt/pull/42319 +.. _`#42327`: https://github.com/saltstack/salt/pull/42327 +.. _`#42329`: https://github.com/saltstack/salt/issues/42329 +.. _`#42333`: https://github.com/saltstack/salt/issues/42333 +.. _`#42339`: https://github.com/saltstack/salt/pull/42339 +.. _`#42340`: https://github.com/saltstack/salt/pull/42340 +.. _`#42347`: https://github.com/saltstack/salt/pull/42347 +.. _`#42350`: https://github.com/saltstack/salt/pull/42350 +.. _`#42352`: https://github.com/saltstack/salt/pull/42352 +.. _`#42353`: https://github.com/saltstack/salt/pull/42353 +.. _`#42356`: https://github.com/saltstack/salt/pull/42356 +.. _`#42357`: https://github.com/saltstack/salt/issues/42357 +.. _`#42359`: https://github.com/saltstack/salt/pull/42359 +.. _`#42360`: https://github.com/saltstack/salt/pull/42360 +.. _`#42361`: https://github.com/saltstack/salt/pull/42361 +.. _`#42363`: https://github.com/saltstack/salt/pull/42363 +.. _`#42364`: https://github.com/saltstack/salt/pull/42364 +.. _`#42366`: https://github.com/saltstack/salt/pull/42366 +.. _`#42368`: https://github.com/saltstack/salt/pull/42368 +.. _`#42370`: https://github.com/saltstack/salt/pull/42370 +.. _`#42371`: https://github.com/saltstack/salt/issues/42371 +.. _`#42373`: https://github.com/saltstack/salt/pull/42373 +.. _`#42374`: https://github.com/saltstack/salt/issues/42374 +.. _`#42375`: https://github.com/saltstack/salt/issues/42375 +.. _`#42381`: https://github.com/saltstack/salt/issues/42381 +.. _`#42387`: https://github.com/saltstack/salt/pull/42387 +.. _`#42388`: https://github.com/saltstack/salt/pull/42388 +.. _`#42399`: https://github.com/saltstack/salt/pull/42399 +.. _`#42400`: https://github.com/saltstack/salt/issues/42400 +.. _`#42403`: https://github.com/saltstack/salt/issues/42403 +.. _`#42404`: https://github.com/saltstack/salt/issues/42404 +.. _`#42405`: https://github.com/saltstack/salt/issues/42405 +.. _`#42408`: https://github.com/saltstack/salt/pull/42408 +.. _`#42409`: https://github.com/saltstack/salt/pull/42409 +.. _`#42411`: https://github.com/saltstack/salt/pull/42411 +.. _`#42413`: https://github.com/saltstack/salt/issues/42413 +.. _`#42414`: https://github.com/saltstack/salt/pull/42414 +.. _`#42417`: https://github.com/saltstack/salt/issues/42417 +.. _`#42421`: https://github.com/saltstack/salt/issues/42421 +.. _`#42424`: https://github.com/saltstack/salt/pull/42424 +.. _`#42425`: https://github.com/saltstack/salt/pull/42425 +.. _`#42427`: https://github.com/saltstack/salt/issues/42427 +.. _`#42433`: https://github.com/saltstack/salt/pull/42433 +.. _`#42435`: https://github.com/saltstack/salt/pull/42435 +.. _`#42436`: https://github.com/saltstack/salt/pull/42436 +.. _`#42443`: https://github.com/saltstack/salt/pull/42443 +.. _`#42444`: https://github.com/saltstack/salt/pull/42444 +.. _`#42452`: https://github.com/saltstack/salt/pull/42452 +.. _`#42453`: https://github.com/saltstack/salt/pull/42453 +.. _`#42454`: https://github.com/saltstack/salt/pull/42454 +.. _`#42456`: https://github.com/saltstack/salt/issues/42456 +.. _`#42459`: https://github.com/saltstack/salt/issues/42459 +.. _`#42461`: https://github.com/saltstack/salt/pull/42461 +.. _`#42464`: https://github.com/saltstack/salt/pull/42464 +.. _`#42465`: https://github.com/saltstack/salt/pull/42465 +.. _`#42474`: https://github.com/saltstack/salt/pull/42474 +.. _`#42477`: https://github.com/saltstack/salt/issues/42477 +.. _`#42479`: https://github.com/saltstack/salt/pull/42479 +.. _`#42481`: https://github.com/saltstack/salt/pull/42481 +.. _`#42484`: https://github.com/saltstack/salt/pull/42484 +.. _`#42502`: https://github.com/saltstack/salt/pull/42502 +.. _`#42505`: https://github.com/saltstack/salt/issues/42505 +.. _`#42506`: https://github.com/saltstack/salt/pull/42506 +.. _`#42509`: https://github.com/saltstack/salt/pull/42509 +.. _`#42514`: https://github.com/saltstack/salt/issues/42514 +.. _`#42515`: https://github.com/saltstack/salt/pull/42515 +.. _`#42516`: https://github.com/saltstack/salt/pull/42516 +.. _`#42521`: https://github.com/saltstack/salt/issues/42521 +.. _`#42523`: https://github.com/saltstack/salt/pull/42523 +.. _`#42524`: https://github.com/saltstack/salt/pull/42524 +.. _`#42527`: https://github.com/saltstack/salt/pull/42527 +.. _`#42528`: https://github.com/saltstack/salt/pull/42528 +.. _`#42529`: https://github.com/saltstack/salt/pull/42529 +.. _`#42534`: https://github.com/saltstack/salt/pull/42534 +.. _`#42538`: https://github.com/saltstack/salt/issues/42538 +.. _`#42541`: https://github.com/saltstack/salt/pull/42541 +.. _`#42545`: https://github.com/saltstack/salt/issues/42545 +.. _`#42547`: https://github.com/saltstack/salt/pull/42547 +.. _`#42551`: https://github.com/saltstack/salt/pull/42551 +.. _`#42552`: https://github.com/saltstack/salt/pull/42552 +.. _`#42555`: https://github.com/saltstack/salt/pull/42555 +.. _`#42557`: https://github.com/saltstack/salt/pull/42557 +.. _`#42567`: https://github.com/saltstack/salt/pull/42567 +.. _`#42571`: https://github.com/saltstack/salt/pull/42571 +.. _`#42573`: https://github.com/saltstack/salt/pull/42573 +.. _`#42574`: https://github.com/saltstack/salt/pull/42574 +.. _`#42575`: https://github.com/saltstack/salt/pull/42575 +.. _`#42577`: https://github.com/saltstack/salt/pull/42577 +.. _`#42586`: https://github.com/saltstack/salt/pull/42586 +.. _`#42588`: https://github.com/saltstack/salt/issues/42588 +.. _`#42589`: https://github.com/saltstack/salt/pull/42589 +.. _`#42600`: https://github.com/saltstack/salt/issues/42600 +.. _`#42601`: https://github.com/saltstack/salt/pull/42601 +.. _`#42602`: https://github.com/saltstack/salt/pull/42602 +.. _`#42603`: https://github.com/saltstack/salt/pull/42603 +.. _`#42611`: https://github.com/saltstack/salt/issues/42611 +.. _`#42612`: https://github.com/saltstack/salt/pull/42612 +.. _`#42616`: https://github.com/saltstack/salt/pull/42616 +.. _`#42618`: https://github.com/saltstack/salt/pull/42618 +.. _`#42619`: https://github.com/saltstack/salt/pull/42619 +.. _`#42621`: https://github.com/saltstack/salt/pull/42621 +.. _`#42623`: https://github.com/saltstack/salt/pull/42623 +.. _`#42625`: https://github.com/saltstack/salt/pull/42625 +.. _`#42627`: https://github.com/saltstack/salt/issues/42627 +.. _`#42629`: https://github.com/saltstack/salt/pull/42629 +.. _`#42639`: https://github.com/saltstack/salt/issues/42639 +.. _`#42642`: https://github.com/saltstack/salt/issues/42642 +.. _`#42644`: https://github.com/saltstack/salt/issues/42644 +.. _`#42646`: https://github.com/saltstack/salt/issues/42646 +.. _`#42649`: https://github.com/saltstack/salt/issues/42649 +.. _`#42651`: https://github.com/saltstack/salt/pull/42651 +.. _`#42654`: https://github.com/saltstack/salt/pull/42654 +.. _`#42655`: https://github.com/saltstack/salt/pull/42655 +.. _`#42657`: https://github.com/saltstack/salt/pull/42657 +.. _`#42663`: https://github.com/saltstack/salt/pull/42663 +.. _`#42668`: https://github.com/saltstack/salt/issues/42668 +.. _`#42669`: https://github.com/saltstack/salt/pull/42669 +.. _`#42670`: https://github.com/saltstack/salt/pull/42670 +.. _`#42678`: https://github.com/saltstack/salt/pull/42678 +.. _`#42679`: https://github.com/saltstack/salt/pull/42679 +.. _`#42683`: https://github.com/saltstack/salt/issues/42683 +.. _`#42686`: https://github.com/saltstack/salt/issues/42686 +.. _`#42688`: https://github.com/saltstack/salt/issues/42688 +.. _`#42689`: https://github.com/saltstack/salt/pull/42689 +.. _`#42690`: https://github.com/saltstack/salt/issues/42690 +.. _`#42693`: https://github.com/saltstack/salt/pull/42693 +.. _`#42694`: https://github.com/saltstack/salt/pull/42694 +.. _`#42697`: https://github.com/saltstack/salt/issues/42697 +.. _`#42704`: https://github.com/saltstack/salt/pull/42704 +.. _`#42705`: https://github.com/saltstack/salt/issues/42705 +.. _`#42707`: https://github.com/saltstack/salt/issues/42707 +.. _`#42708`: https://github.com/saltstack/salt/pull/42708 +.. _`#42709`: https://github.com/saltstack/salt/pull/42709 +.. _`#42710`: https://github.com/saltstack/salt/pull/42710 +.. _`#42712`: https://github.com/saltstack/salt/pull/42712 +.. _`#42714`: https://github.com/saltstack/salt/pull/42714 +.. _`#42721`: https://github.com/saltstack/salt/pull/42721 +.. _`#42731`: https://github.com/saltstack/salt/issues/42731 +.. _`#42741`: https://github.com/saltstack/salt/issues/42741 +.. _`#42743`: https://github.com/saltstack/salt/pull/42743 +.. _`#42744`: https://github.com/saltstack/salt/pull/42744 +.. _`#42745`: https://github.com/saltstack/salt/pull/42745 +.. _`#42747`: https://github.com/saltstack/salt/issues/42747 +.. _`#42748`: https://github.com/saltstack/salt/pull/42748 +.. _`#42753`: https://github.com/saltstack/salt/issues/42753 +.. _`#42760`: https://github.com/saltstack/salt/pull/42760 +.. _`#42764`: https://github.com/saltstack/salt/pull/42764 +.. _`#42768`: https://github.com/saltstack/salt/pull/42768 +.. _`#42769`: https://github.com/saltstack/salt/pull/42769 +.. _`#42770`: https://github.com/saltstack/salt/pull/42770 +.. _`#42774`: https://github.com/saltstack/salt/issues/42774 +.. _`#42778`: https://github.com/saltstack/salt/pull/42778 +.. _`#42782`: https://github.com/saltstack/salt/pull/42782 +.. _`#42783`: https://github.com/saltstack/salt/pull/42783 +.. _`#42784`: https://github.com/saltstack/salt/pull/42784 +.. _`#42786`: https://github.com/saltstack/salt/pull/42786 +.. _`#42788`: https://github.com/saltstack/salt/pull/42788 +.. _`#42794`: https://github.com/saltstack/salt/pull/42794 +.. _`#42795`: https://github.com/saltstack/salt/pull/42795 +.. _`#42798`: https://github.com/saltstack/salt/pull/42798 +.. _`#42800`: https://github.com/saltstack/salt/pull/42800 +.. _`#42803`: https://github.com/saltstack/salt/issues/42803 +.. _`#42804`: https://github.com/saltstack/salt/pull/42804 +.. _`#42805`: https://github.com/saltstack/salt/pull/42805 +.. _`#42806`: https://github.com/saltstack/salt/pull/42806 +.. _`#42807`: https://github.com/saltstack/salt/pull/42807 +.. _`#42808`: https://github.com/saltstack/salt/pull/42808 +.. _`#42810`: https://github.com/saltstack/salt/pull/42810 +.. _`#42812`: https://github.com/saltstack/salt/pull/42812 +.. _`#42818`: https://github.com/saltstack/salt/issues/42818 +.. _`#42826`: https://github.com/saltstack/salt/pull/42826 +.. _`#42829`: https://github.com/saltstack/salt/pull/42829 +.. _`#42835`: https://github.com/saltstack/salt/pull/42835 +.. _`#42836`: https://github.com/saltstack/salt/pull/42836 +.. _`#42838`: https://github.com/saltstack/salt/pull/42838 +.. _`#42841`: https://github.com/saltstack/salt/pull/42841 +.. _`#42842`: https://github.com/saltstack/salt/issues/42842 +.. _`#42843`: https://github.com/saltstack/salt/issues/42843 +.. _`#42845`: https://github.com/saltstack/salt/pull/42845 +.. _`#42848`: https://github.com/saltstack/salt/pull/42848 +.. _`#42851`: https://github.com/saltstack/salt/pull/42851 +.. _`#42855`: https://github.com/saltstack/salt/pull/42855 +.. _`#42856`: https://github.com/saltstack/salt/pull/42856 +.. _`#42857`: https://github.com/saltstack/salt/pull/42857 +.. _`#42859`: https://github.com/saltstack/salt/pull/42859 +.. _`#42860`: https://github.com/saltstack/salt/pull/42860 +.. _`#42861`: https://github.com/saltstack/salt/pull/42861 +.. _`#42864`: https://github.com/saltstack/salt/pull/42864 +.. _`#42866`: https://github.com/saltstack/salt/pull/42866 +.. _`#42868`: https://github.com/saltstack/salt/pull/42868 +.. _`#42869`: https://github.com/saltstack/salt/issues/42869 +.. _`#42870`: https://github.com/saltstack/salt/issues/42870 +.. _`#42871`: https://github.com/saltstack/salt/pull/42871 +.. _`#42873`: https://github.com/saltstack/salt/issues/42873 +.. _`#42877`: https://github.com/saltstack/salt/pull/42877 +.. _`#42881`: https://github.com/saltstack/salt/pull/42881 +.. _`#42882`: https://github.com/saltstack/salt/pull/42882 +.. _`#42883`: https://github.com/saltstack/salt/pull/42883 +.. _`#42884`: https://github.com/saltstack/salt/pull/42884 +.. _`#42885`: https://github.com/saltstack/salt/pull/42885 +.. _`#42886`: https://github.com/saltstack/salt/pull/42886 +.. _`#42887`: https://github.com/saltstack/salt/pull/42887 +.. _`#42889`: https://github.com/saltstack/salt/pull/42889 +.. _`#42890`: https://github.com/saltstack/salt/pull/42890 +.. _`#42898`: https://github.com/saltstack/salt/pull/42898 +.. _`#42911`: https://github.com/saltstack/salt/pull/42911 +.. _`#42913`: https://github.com/saltstack/salt/pull/42913 +.. _`#42918`: https://github.com/saltstack/salt/pull/42918 +.. _`#42919`: https://github.com/saltstack/salt/pull/42919 +.. _`#42920`: https://github.com/saltstack/salt/pull/42920 +.. _`#42925`: https://github.com/saltstack/salt/pull/42925 +.. _`#42933`: https://github.com/saltstack/salt/pull/42933 +.. _`#42936`: https://github.com/saltstack/salt/issues/42936 +.. _`#42940`: https://github.com/saltstack/salt/pull/42940 +.. _`#42941`: https://github.com/saltstack/salt/issues/42941 +.. _`#42942`: https://github.com/saltstack/salt/pull/42942 +.. _`#42943`: https://github.com/saltstack/salt/issues/42943 +.. _`#42944`: https://github.com/saltstack/salt/pull/42944 +.. _`#42945`: https://github.com/saltstack/salt/pull/42945 +.. _`#42946`: https://github.com/saltstack/salt/pull/42946 +.. _`#42948`: https://github.com/saltstack/salt/pull/42948 +.. _`#42949`: https://github.com/saltstack/salt/pull/42949 +.. _`#42950`: https://github.com/saltstack/salt/pull/42950 +.. _`#42951`: https://github.com/saltstack/salt/pull/42951 +.. _`#42952`: https://github.com/saltstack/salt/pull/42952 +.. _`#42953`: https://github.com/saltstack/salt/pull/42953 +.. _`#42954`: https://github.com/saltstack/salt/pull/42954 +.. _`#42958`: https://github.com/saltstack/salt/pull/42958 +.. _`#42959`: https://github.com/saltstack/salt/pull/42959 +.. _`#42962`: https://github.com/saltstack/salt/pull/42962 +.. _`#42963`: https://github.com/saltstack/salt/pull/42963 +.. _`#42964`: https://github.com/saltstack/salt/pull/42964 +.. _`#42967`: https://github.com/saltstack/salt/pull/42967 +.. _`#42968`: https://github.com/saltstack/salt/pull/42968 +.. _`#42969`: https://github.com/saltstack/salt/pull/42969 +.. _`#42985`: https://github.com/saltstack/salt/pull/42985 +.. _`#42986`: https://github.com/saltstack/salt/pull/42986 +.. _`#42988`: https://github.com/saltstack/salt/pull/42988 +.. _`#42989`: https://github.com/saltstack/salt/issues/42989 +.. _`#42992`: https://github.com/saltstack/salt/issues/42992 +.. _`#42993`: https://github.com/saltstack/salt/pull/42993 +.. _`#42995`: https://github.com/saltstack/salt/pull/42995 +.. _`#42996`: https://github.com/saltstack/salt/pull/42996 +.. _`#42997`: https://github.com/saltstack/salt/pull/42997 +.. _`#42999`: https://github.com/saltstack/salt/pull/42999 +.. _`#43002`: https://github.com/saltstack/salt/pull/43002 +.. _`#43006`: https://github.com/saltstack/salt/pull/43006 +.. _`#43008`: https://github.com/saltstack/salt/issues/43008 +.. _`#43009`: https://github.com/saltstack/salt/pull/43009 +.. _`#43010`: https://github.com/saltstack/salt/pull/43010 +.. _`#43014`: https://github.com/saltstack/salt/pull/43014 +.. _`#43016`: https://github.com/saltstack/salt/pull/43016 +.. _`#43019`: https://github.com/saltstack/salt/pull/43019 +.. _`#43020`: https://github.com/saltstack/salt/pull/43020 +.. _`#43021`: https://github.com/saltstack/salt/pull/43021 +.. _`#43023`: https://github.com/saltstack/salt/pull/43023 +.. _`#43024`: https://github.com/saltstack/salt/pull/43024 +.. _`#43026`: https://github.com/saltstack/salt/pull/43026 +.. _`#43027`: https://github.com/saltstack/salt/pull/43027 +.. _`#43029`: https://github.com/saltstack/salt/pull/43029 +.. _`#43030`: https://github.com/saltstack/salt/pull/43030 +.. _`#43031`: https://github.com/saltstack/salt/pull/43031 +.. _`#43032`: https://github.com/saltstack/salt/pull/43032 +.. _`#43033`: https://github.com/saltstack/salt/pull/43033 +.. _`#43034`: https://github.com/saltstack/salt/pull/43034 +.. _`#43035`: https://github.com/saltstack/salt/pull/43035 +.. _`#43036`: https://github.com/saltstack/salt/issues/43036 +.. _`#43037`: https://github.com/saltstack/salt/pull/43037 +.. _`#43038`: https://github.com/saltstack/salt/pull/43038 +.. _`#43039`: https://github.com/saltstack/salt/pull/43039 +.. _`#43040`: https://github.com/saltstack/salt/issues/43040 +.. _`#43041`: https://github.com/saltstack/salt/pull/43041 +.. _`#43043`: https://github.com/saltstack/salt/issues/43043 +.. _`#43048`: https://github.com/saltstack/salt/pull/43048 +.. _`#43051`: https://github.com/saltstack/salt/pull/43051 +.. _`#43054`: https://github.com/saltstack/salt/pull/43054 +.. _`#43056`: https://github.com/saltstack/salt/pull/43056 +.. _`#43058`: https://github.com/saltstack/salt/pull/43058 +.. _`#43060`: https://github.com/saltstack/salt/pull/43060 +.. _`#43061`: https://github.com/saltstack/salt/pull/43061 +.. _`#43064`: https://github.com/saltstack/salt/pull/43064 +.. _`#43068`: https://github.com/saltstack/salt/pull/43068 +.. _`#43073`: https://github.com/saltstack/salt/pull/43073 +.. _`#43077`: https://github.com/saltstack/salt/issues/43077 +.. _`#43085`: https://github.com/saltstack/salt/issues/43085 +.. _`#43087`: https://github.com/saltstack/salt/pull/43087 +.. _`#43088`: https://github.com/saltstack/salt/pull/43088 +.. _`#43091`: https://github.com/saltstack/salt/pull/43091 +.. _`#43092`: https://github.com/saltstack/salt/pull/43092 +.. _`#43093`: https://github.com/saltstack/salt/pull/43093 +.. _`#43097`: https://github.com/saltstack/salt/pull/43097 +.. _`#43100`: https://github.com/saltstack/salt/pull/43100 +.. _`#43101`: https://github.com/saltstack/salt/issues/43101 +.. _`#43103`: https://github.com/saltstack/salt/pull/43103 +.. _`#43107`: https://github.com/saltstack/salt/pull/43107 +.. _`#43108`: https://github.com/saltstack/salt/pull/43108 +.. _`#43110`: https://github.com/saltstack/salt/issues/43110 +.. _`#43115`: https://github.com/saltstack/salt/pull/43115 +.. _`#43116`: https://github.com/saltstack/salt/pull/43116 +.. _`#43123`: https://github.com/saltstack/salt/pull/43123 +.. _`#43142`: https://github.com/saltstack/salt/pull/43142 +.. _`#43143`: https://github.com/saltstack/salt/issues/43143 +.. _`#43146`: https://github.com/saltstack/salt/pull/43146 +.. _`#43151`: https://github.com/saltstack/salt/pull/43151 +.. _`#43155`: https://github.com/saltstack/salt/pull/43155 +.. _`#43156`: https://github.com/saltstack/salt/pull/43156 +.. _`#43162`: https://github.com/saltstack/salt/issues/43162 +.. _`#43165`: https://github.com/saltstack/salt/pull/43165 +.. _`#43166`: https://github.com/saltstack/salt/pull/43166 +.. _`#43168`: https://github.com/saltstack/salt/pull/43168 +.. _`#43170`: https://github.com/saltstack/salt/pull/43170 +.. _`#43171`: https://github.com/saltstack/salt/pull/43171 +.. _`#43172`: https://github.com/saltstack/salt/pull/43172 +.. _`#43173`: https://github.com/saltstack/salt/pull/43173 +.. _`#43178`: https://github.com/saltstack/salt/pull/43178 +.. _`#43179`: https://github.com/saltstack/salt/pull/43179 +.. _`#43184`: https://github.com/saltstack/salt/pull/43184 +.. _`#43193`: https://github.com/saltstack/salt/pull/43193 +.. _`#43196`: https://github.com/saltstack/salt/pull/43196 +.. _`#43198`: https://github.com/saltstack/salt/issues/43198 +.. _`#43199`: https://github.com/saltstack/salt/pull/43199 +.. _`#43201`: https://github.com/saltstack/salt/pull/43201 +.. _`#43202`: https://github.com/saltstack/salt/pull/43202 +.. _`#43217`: https://github.com/saltstack/salt/pull/43217 +.. _`#43226`: https://github.com/saltstack/salt/pull/43226 +.. _`#43227`: https://github.com/saltstack/salt/pull/43227 +.. _`#43228`: https://github.com/saltstack/salt/pull/43228 +.. _`#43229`: https://github.com/saltstack/salt/pull/43229 +.. _`#43241`: https://github.com/saltstack/salt/issues/43241 +.. _`#43251`: https://github.com/saltstack/salt/pull/43251 +.. _`#43254`: https://github.com/saltstack/salt/pull/43254 +.. _`#43255`: https://github.com/saltstack/salt/pull/43255 +.. _`#43256`: https://github.com/saltstack/salt/pull/43256 +.. _`#43259`: https://github.com/saltstack/salt/issues/43259 +.. _`#43266`: https://github.com/saltstack/salt/pull/43266 +.. _`#43283`: https://github.com/saltstack/salt/pull/43283 +.. _`#43315`: https://github.com/saltstack/salt/pull/43315 +.. _`#43330`: https://github.com/saltstack/salt/pull/43330 +.. _`#43333`: https://github.com/saltstack/salt/pull/43333 +.. _`#43377`: https://github.com/saltstack/salt/pull/43377 +.. _`#43421`: https://github.com/saltstack/salt/pull/43421 +.. _`#43440`: https://github.com/saltstack/salt/pull/43440 +.. _`#43447`: https://github.com/saltstack/salt/issues/43447 +.. _`#43509`: https://github.com/saltstack/salt/pull/43509 +.. _`#43526`: https://github.com/saltstack/salt/pull/43526 +.. _`#43551`: https://github.com/saltstack/salt/pull/43551 +.. _`#43585`: https://github.com/saltstack/salt/pull/43585 +.. _`#43586`: https://github.com/saltstack/salt/pull/43586 +.. _`#43756`: https://github.com/saltstack/salt/pull/43756 +.. _`#43847`: https://github.com/saltstack/salt/pull/43847 +.. _`#43868`: https://github.com/saltstack/salt/pull/43868 +.. _`#475`: https://github.com/saltstack/salt/issues/475 +.. _`#480`: https://github.com/saltstack/salt/issues/480 +.. _`#495`: https://github.com/saltstack/salt/issues/495 +.. _`bp-37424`: https://github.com/saltstack/salt/pull/37424 +.. _`bp-39366`: https://github.com/saltstack/salt/pull/39366 +.. _`bp-41543`: https://github.com/saltstack/salt/pull/41543 +.. _`bp-41690`: https://github.com/saltstack/salt/pull/41690 +.. _`bp-42067`: https://github.com/saltstack/salt/pull/42067 +.. _`bp-42097`: https://github.com/saltstack/salt/pull/42097 +.. _`bp-42098`: https://github.com/saltstack/salt/pull/42098 +.. _`bp-42109`: https://github.com/saltstack/salt/pull/42109 +.. _`bp-42174`: https://github.com/saltstack/salt/pull/42174 +.. _`bp-42224`: https://github.com/saltstack/salt/pull/42224 +.. _`bp-42433`: https://github.com/saltstack/salt/pull/42433 +.. _`bp-42547`: https://github.com/saltstack/salt/pull/42547 +.. _`bp-42552`: https://github.com/saltstack/salt/pull/42552 +.. _`bp-42589`: https://github.com/saltstack/salt/pull/42589 +.. _`bp-42651`: https://github.com/saltstack/salt/pull/42651 +.. _`bp-42744`: https://github.com/saltstack/salt/pull/42744 +.. _`bp-42760`: https://github.com/saltstack/salt/pull/42760 +.. _`bp-42784`: https://github.com/saltstack/salt/pull/42784 +.. _`bp-42848`: https://github.com/saltstack/salt/pull/42848 +.. _`bp-42871`: https://github.com/saltstack/salt/pull/42871 +.. _`bp-42883`: https://github.com/saltstack/salt/pull/42883 +.. _`bp-42988`: https://github.com/saltstack/salt/pull/42988 +.. _`bp-43002`: https://github.com/saltstack/salt/pull/43002 +.. _`bp-43020`: https://github.com/saltstack/salt/pull/43020 +.. _`bp-43031`: https://github.com/saltstack/salt/pull/43031 +.. _`bp-43041`: https://github.com/saltstack/salt/pull/43041 +.. _`bp-43068`: https://github.com/saltstack/salt/pull/43068 +.. _`bp-43116`: https://github.com/saltstack/salt/pull/43116 +.. _`bp-43193`: https://github.com/saltstack/salt/pull/43193 +.. _`bp-43283`: https://github.com/saltstack/salt/pull/43283 +.. _`bp-43330`: https://github.com/saltstack/salt/pull/43330 +.. _`bp-43333`: https://github.com/saltstack/salt/pull/43333 +.. _`bp-43421`: https://github.com/saltstack/salt/pull/43421 +.. _`bp-43526`: https://github.com/saltstack/salt/pull/43526 +.. _`fix-38839`: https://github.com/saltstack/salt/issues/38839 +.. _`fix-41116`: https://github.com/saltstack/salt/issues/41116 +.. _`fix-41721`: https://github.com/saltstack/salt/issues/41721 +.. _`fix-41885`: https://github.com/saltstack/salt/issues/41885 +.. _`fix-42115`: https://github.com/saltstack/salt/issues/42115 +.. _`fix-42151`: https://github.com/saltstack/salt/issues/42151 +.. _`fix-42152`: https://github.com/saltstack/salt/issues/42152 +.. _`fix-42166`: https://github.com/saltstack/salt/issues/42166 +.. _`fix-42267`: https://github.com/saltstack/salt/issues/42267 +.. _`fix-42375`: https://github.com/saltstack/salt/issues/42375 +.. _`fix-42381`: https://github.com/saltstack/salt/issues/42381 +.. _`fix-42405`: https://github.com/saltstack/salt/issues/42405 +.. _`fix-42417`: https://github.com/saltstack/salt/issues/42417 +.. _`fix-42639`: https://github.com/saltstack/salt/issues/42639 +.. _`fix-42683`: https://github.com/saltstack/salt/issues/42683 +.. _`fix-42697`: https://github.com/saltstack/salt/issues/42697 +.. _`fix-42870`: https://github.com/saltstack/salt/issues/42870 From 00dbba571219f8aa8adbf0695ba6c43031983320 Mon Sep 17 00:00:00 2001 From: twangboy Date: Wed, 4 Oct 2017 17:31:37 -0600 Subject: [PATCH 08/18] Fix `unit.test_pillar` for Windows Use delete=True in NamedTemporaryFile command otherwise the handle to the file isn't released and the file can't be opened by the actual test. --- tests/unit/test_pillar.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/unit/test_pillar.py b/tests/unit/test_pillar.py index 2c385f8085..5076e70b44 100644 --- a/tests/unit/test_pillar.py +++ b/tests/unit/test_pillar.py @@ -192,7 +192,7 @@ class PillarTestCase(TestCase): def _setup_test_topfile_mocks(self, Matcher, get_file_client, nodegroup_order, glob_order): # Write a simple topfile and two pillar state files - self.top_file = tempfile.NamedTemporaryFile(dir=TMP) + self.top_file = tempfile.NamedTemporaryFile(dir=TMP, delete=False) s = ''' base: group: @@ -209,19 +209,19 @@ base: '''.format(nodegroup_order=nodegroup_order, glob_order=glob_order) self.top_file.write(salt.utils.to_bytes(s)) self.top_file.flush() - self.ssh_file = tempfile.NamedTemporaryFile(dir=TMP) + self.ssh_file = tempfile.NamedTemporaryFile(dir=TMP, delete=False) self.ssh_file.write(b''' ssh: foo ''') self.ssh_file.flush() - self.ssh_minion_file = tempfile.NamedTemporaryFile(dir=TMP) + self.ssh_minion_file = tempfile.NamedTemporaryFile(dir=TMP, delete=False) self.ssh_minion_file.write(b''' ssh: bar ''') self.ssh_minion_file.flush() - self.generic_file = tempfile.NamedTemporaryFile(dir=TMP) + self.generic_file = tempfile.NamedTemporaryFile(dir=TMP, delete=False) self.generic_file.write(b''' generic: key1: @@ -231,7 +231,7 @@ generic: sub_key1: [] ''') self.generic_file.flush() - self.generic_minion_file = tempfile.NamedTemporaryFile(dir=TMP) + self.generic_minion_file = tempfile.NamedTemporaryFile(dir=TMP, delete=False) self.generic_minion_file.write(b''' generic: key1: @@ -260,7 +260,7 @@ generic: client.get_state.side_effect = get_state def _setup_test_include_mocks(self, Matcher, get_file_client): - self.top_file = top_file = tempfile.NamedTemporaryFile(dir=TMP) + self.top_file = top_file = tempfile.NamedTemporaryFile(dir=TMP, delete=False) top_file.write(b''' base: '*': @@ -271,21 +271,21 @@ base: - test ''') top_file.flush() - self.init_sls = init_sls = tempfile.NamedTemporaryFile(dir=TMP) + self.init_sls = init_sls = tempfile.NamedTemporaryFile(dir=TMP, delete=False) init_sls.write(b''' include: - test.sub1 - test.sub2 ''') init_sls.flush() - self.sub1_sls = sub1_sls = tempfile.NamedTemporaryFile(dir=TMP) + self.sub1_sls = sub1_sls = tempfile.NamedTemporaryFile(dir=TMP, delete=False) sub1_sls.write(b''' p1: - value1_1 - value1_2 ''') sub1_sls.flush() - self.sub2_sls = sub2_sls = tempfile.NamedTemporaryFile(dir=TMP) + self.sub2_sls = sub2_sls = tempfile.NamedTemporaryFile(dir=TMP, delete=False) sub2_sls.write(b''' p1: - value1_3 From 44060dc9c1cc6c84f2e2b2ce11100e307fcf9d0d Mon Sep 17 00:00:00 2001 From: Erik Johnson Date: Fri, 25 Aug 2017 14:15:58 -0500 Subject: [PATCH 09/18] Do not allow IDs with null bytes in decoded payloads --- salt/crypt.py | 3 +++ salt/transport/tcp.py | 11 +++++++++++ salt/transport/zeromq.py | 11 +++++++++++ 3 files changed, 25 insertions(+) diff --git a/salt/crypt.py b/salt/crypt.py index f4f65940d5..ef4e7645d2 100644 --- a/salt/crypt.py +++ b/salt/crypt.py @@ -607,6 +607,9 @@ class AsyncAuth(object): raise tornado.gen.Return('retry') else: raise SaltClientError('Attempt to authenticate with the salt master failed with timeout error') + if not isinstance(payload, dict): + log.error('Sign-in attempt failed: %s', payload) + raise tornado.gen.Return(False) if 'load' in payload: if 'ret' in payload['load']: if not payload['load']['ret']: diff --git a/salt/transport/tcp.py b/salt/transport/tcp.py index a9001f03a5..f274240a1e 100644 --- a/salt/transport/tcp.py +++ b/salt/transport/tcp.py @@ -623,6 +623,17 @@ class TCPReqServerChannel(salt.transport.mixins.auth.AESReqServerMixin, salt.tra 'payload and load must be a dict', header=header)) raise tornado.gen.Return() + try: + id_ = payload['load'].get('id', '') + if '\0' in id_: + log.error('Payload contains an id with a null byte: %s', payload) + stream.send(self.serial.dumps('bad load: id contains a null byte')) + raise tornado.gen.Return() + except TypeError: + log.error('Payload contains non-string id: %s', payload) + stream.send(self.serial.dumps('bad load: id {0} is not a string'.format(id_))) + raise tornado.gen.Return() + # intercept the "_auth" commands, since the main daemon shouldn't know # anything about our key auth if payload['enc'] == 'clear' and payload.get('load', {}).get('cmd') == '_auth': diff --git a/salt/transport/zeromq.py b/salt/transport/zeromq.py index 1bb3abebe1..2be6c829f3 100644 --- a/salt/transport/zeromq.py +++ b/salt/transport/zeromq.py @@ -596,6 +596,17 @@ class ZeroMQReqServerChannel(salt.transport.mixins.auth.AESReqServerMixin, salt. stream.send(self.serial.dumps('payload and load must be a dict')) raise tornado.gen.Return() + try: + id_ = payload['load'].get('id', '') + if '\0' in id_: + log.error('Payload contains an id with a null byte: %s', payload) + stream.send(self.serial.dumps('bad load: id contains a null byte')) + raise tornado.gen.Return() + except TypeError: + log.error('Payload contains non-string id: %s', payload) + stream.send(self.serial.dumps('bad load: id {0} is not a string'.format(id_))) + raise tornado.gen.Return() + # intercept the "_auth" commands, since the main daemon shouldn't know # anything about our key auth if payload['enc'] == 'clear' and payload.get('load', {}).get('cmd') == '_auth': From f7824e41f3105c7a7e6571d8fb66c8671ff94b74 Mon Sep 17 00:00:00 2001 From: Erik Johnson Date: Wed, 23 Aug 2017 10:20:50 -0500 Subject: [PATCH 10/18] Don't allow path separators in minion ID --- salt/utils/verify.py | 15 ++++----------- tests/unit/utils/test_verify.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/salt/utils/verify.py b/salt/utils/verify.py index 6e69283f07..24b2a1d962 100644 --- a/salt/utils/verify.py +++ b/salt/utils/verify.py @@ -480,22 +480,15 @@ def clean_path(root, path, subdir=False): return '' -def clean_id(id_): - ''' - Returns if the passed id is clean. - ''' - if re.search(r'\.\.\{sep}'.format(sep=os.sep), id_): - return False - return True - - def valid_id(opts, id_): ''' Returns if the passed id is valid ''' try: - return bool(clean_path(opts['pki_dir'], id_)) and clean_id(id_) - except (AttributeError, KeyError, TypeError) as e: + if any(x in id_ for x in ('/', '\\', '\0')): + return False + return bool(clean_path(opts['pki_dir'], id_)) + except (AttributeError, KeyError, TypeError): return False diff --git a/tests/unit/utils/test_verify.py b/tests/unit/utils/test_verify.py index 795298877d..fa091f6cb3 100644 --- a/tests/unit/utils/test_verify.py +++ b/tests/unit/utils/test_verify.py @@ -58,6 +58,16 @@ class TestVerify(TestCase): opts = {'pki_dir': '/tmp/whatever'} self.assertFalse(valid_id(opts, None)) + def test_valid_id_pathsep(self): + ''' + Path separators in id should make it invalid + ''' + opts = {'pki_dir': '/tmp/whatever'} + # We have to test both path separators because os.path.normpath will + # convert forward slashes to backslashes on Windows. + for pathsep in ('/', '\\'): + self.assertFalse(valid_id(opts, pathsep.join(('..', 'foobar')))) + def test_zmq_verify(self): self.assertTrue(zmq_version()) From 18fb0be96a146589ccbd642caa9244480c51140b Mon Sep 17 00:00:00 2001 From: Matthew Summers Date: Mon, 9 Oct 2017 20:38:52 -0500 Subject: [PATCH 11/18] addresses issue #43307, disk.format_ to disk.format This change fixes breakage. It appears the disk.format_ func is aliased to disk.format in modules/disk.py --- salt/states/blockdev.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/states/blockdev.py b/salt/states/blockdev.py index 4b0dc5ca81..e6ecfeab3f 100644 --- a/salt/states/blockdev.py +++ b/salt/states/blockdev.py @@ -159,7 +159,7 @@ def formatted(name, fs_type='ext4', force=False, **kwargs): ret['result'] = None return ret - __salt__['disk.format_'](name, fs_type, force=force, **kwargs) + __salt__['disk.format'](name, fs_type, force=force, **kwargs) # Repeat fstype check up to 10 times with 3s sleeping between each # to avoid detection failing although mkfs has succeeded From 255aa94c6499646cfc0938822c7ba6dea006205c Mon Sep 17 00:00:00 2001 From: Nasenbaer Date: Mon, 17 Oct 2016 14:40:47 +0200 Subject: [PATCH 12/18] Activate jid_queue also for SingleMinions to workaround 0mq reconnection issues --- salt/minion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/minion.py b/salt/minion.py index 419d842be8..2cafd9ded6 100644 --- a/salt/minion.py +++ b/salt/minion.py @@ -935,7 +935,7 @@ class Minion(MinionBase): # Flag meaning minion has finished initialization including first connect to the master. # True means the Minion is fully functional and ready to handle events. self.ready = False - self.jid_queue = jid_queue + self.jid_queue = jid_queue or [] if io_loop is None: if HAS_ZMQ: From b6b12fe49556f8685d44499f5c3eb004f1040207 Mon Sep 17 00:00:00 2001 From: Sergey Kizunov Date: Thu, 12 Oct 2017 16:08:21 -0500 Subject: [PATCH 13/18] opkg: Fix usage with pkgrepo.managed Currently, when using `pkgrepo.managed`, the following error is reported: ``` TypeError: get_repo() got an unexpected keyword argument 'ppa_auth' ``` Fix this by adding `**kwargs` to `get_repo` so that it will absorb unused kwargs instead of erroring out when given an unknown kwarg. Did the same thing for all other public APIs in this file. Signed-off-by: Sergey Kizunov --- salt/modules/opkg.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/salt/modules/opkg.py b/salt/modules/opkg.py index 33449dabf5..137380ea79 100644 --- a/salt/modules/opkg.py +++ b/salt/modules/opkg.py @@ -129,7 +129,7 @@ def version(*names, **kwargs): return __salt__['pkg_resource.version'](*names, **kwargs) -def refresh_db(): +def refresh_db(**kwargs): # pylint: disable=unused-argument ''' Updates the opkg database to latest packages based upon repositories @@ -456,7 +456,7 @@ def purge(name=None, pkgs=None, **kwargs): # pylint: disable=unused-argument return remove(name=name, pkgs=pkgs) -def upgrade(refresh=True): +def upgrade(refresh=True, **kwargs): # pylint: disable=unused-argument ''' Upgrades all packages via ``opkg upgrade`` @@ -739,7 +739,7 @@ def list_pkgs(versions_as_list=False, **kwargs): return ret -def list_upgrades(refresh=True): +def list_upgrades(refresh=True, **kwargs): # pylint: disable=unused-argument ''' List all available package upgrades. @@ -908,7 +908,7 @@ def info_installed(*names, **kwargs): return ret -def upgrade_available(name): +def upgrade_available(name, **kwargs): # pylint: disable=unused-argument ''' Check whether or not an upgrade is available for a given package @@ -921,7 +921,7 @@ def upgrade_available(name): return latest_version(name) != '' -def version_cmp(pkg1, pkg2, ignore_epoch=False): +def version_cmp(pkg1, pkg2, ignore_epoch=False, **kwargs): # pylint: disable=unused-argument ''' Do a cmp-style comparison on two packages. Return -1 if pkg1 < pkg2, 0 if pkg1 == pkg2, and 1 if pkg1 > pkg2. Return None if there was a problem @@ -969,7 +969,7 @@ def version_cmp(pkg1, pkg2, ignore_epoch=False): return None -def list_repos(): +def list_repos(**kwargs): # pylint: disable=unused-argument ''' Lists all repos on /etc/opkg/*.conf @@ -1006,7 +1006,7 @@ def list_repos(): return repos -def get_repo(alias): +def get_repo(alias, **kwargs): # pylint: disable=unused-argument ''' Display a repo from the /etc/opkg/*.conf @@ -1077,7 +1077,7 @@ def _mod_repo_in_file(alias, repostr, filepath): fhandle.writelines(output) -def del_repo(alias): +def del_repo(alias, **kwargs): # pylint: disable=unused-argument ''' Delete a repo from /etc/opkg/*.conf @@ -1191,7 +1191,7 @@ def mod_repo(alias, **kwargs): refresh_db() -def file_list(*packages): +def file_list(*packages, **kwargs): # pylint: disable=unused-argument ''' List the files that belong to a package. Not specifying any packages will return a list of _every_ file on the system's package database (not @@ -1212,7 +1212,7 @@ def file_list(*packages): return {'errors': output['errors'], 'files': files} -def file_dict(*packages): +def file_dict(*packages, **kwargs): # pylint: disable=unused-argument ''' List the files that belong to a package, grouped by package. Not specifying any packages will return a list of _every_ file on the system's @@ -1254,7 +1254,7 @@ def file_dict(*packages): return {'errors': errors, 'packages': ret} -def owner(*paths): +def owner(*paths, **kwargs): # pylint: disable=unused-argument ''' Return the name of the package that owns the file. Multiple file paths can be passed. Like :mod:`pkg.version Date: Mon, 16 Oct 2017 09:47:40 -0500 Subject: [PATCH 14/18] fixed test addressing issue #43307, disk.format_ to disk.format --- tests/unit/states/test_blockdev.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/states/test_blockdev.py b/tests/unit/states/test_blockdev.py index e5899f1c70..9b559dddfe 100644 --- a/tests/unit/states/test_blockdev.py +++ b/tests/unit/states/test_blockdev.py @@ -100,7 +100,7 @@ class BlockdevTestCase(TestCase, LoaderModuleMockMixin): # Test state return when block device format fails with patch.dict(blockdev.__salt__, {'cmd.run': MagicMock(return_value=mock_ext4), - 'disk.format_': MagicMock(return_value=True)}): + 'disk.format': MagicMock(return_value=True)}): comt = ('Failed to format {0}'.format(name)) ret.update({'comment': comt, 'result': False}) with patch.object(salt.utils, 'which', From a4e2d8059d9f957b854dadfafe5d8cf5eba52391 Mon Sep 17 00:00:00 2001 From: twangboy Date: Wed, 4 Oct 2017 15:10:58 -0600 Subject: [PATCH 15/18] Fix `unit.templates.test_jinja` for Windows Fix problem with files that end with new line on Windows Fix some problems with regex Fix some unicode conversion issues --- salt/utils/templates.py | 9 +++++++-- tests/unit/templates/test_jinja.py | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/salt/utils/templates.py b/salt/utils/templates.py index b4bf049dc1..e6da2c119e 100644 --- a/salt/utils/templates.py +++ b/salt/utils/templates.py @@ -168,8 +168,13 @@ def wrap_tmpl_func(render_str): if six.PY2: output = output.encode(SLS_ENCODING) if salt.utils.is_windows(): + newline = False + if output.endswith(('\n', os.linesep)): + newline = True # Write out with Windows newlines output = os.linesep.join(output.splitlines()) + if newline: + output += os.linesep except SaltRenderError as exc: log.error("Rendering exception occurred: {0}".format(exc)) @@ -293,7 +298,7 @@ def render_jinja_tmpl(tmplstr, context, tmplpath=None): # http://jinja.pocoo.org/docs/api/#unicode tmplstr = tmplstr.decode(SLS_ENCODING) - if tmplstr.endswith('\n'): + if tmplstr.endswith(os.linesep): newline = True if not saltenv: @@ -462,7 +467,7 @@ def render_jinja_tmpl(tmplstr, context, tmplpath=None): # Workaround a bug in Jinja that removes the final newline # (https://github.com/mitsuhiko/jinja2/issues/75) if newline: - output += '\n' + output += os.linesep return output diff --git a/tests/unit/templates/test_jinja.py b/tests/unit/templates/test_jinja.py index 7a96608825..4ad4b618f8 100644 --- a/tests/unit/templates/test_jinja.py +++ b/tests/unit/templates/test_jinja.py @@ -177,7 +177,7 @@ class TestGetTemplate(TestCase): out = render_jinja_tmpl( fp_.read(), dict(opts=self.local_opts, saltenv='test', salt=self.local_salt)) - self.assertEqual(out, 'world\n') + self.assertEqual(out, 'world' + os.linesep) def test_fallback_noloader(self): ''' @@ -189,7 +189,7 @@ class TestGetTemplate(TestCase): out = render_jinja_tmpl( fp_.read(), dict(opts=self.local_opts, saltenv='test', salt=self.local_salt)) - self.assertEqual(out, 'Hey world !a b !\n') + self.assertEqual(out, 'Hey world !a b !' + os.linesep) def test_saltenv(self): ''' @@ -208,7 +208,7 @@ class TestGetTemplate(TestCase): 'file_roots': self.local_opts['file_roots'], 'pillar_roots': self.local_opts['pillar_roots']}, a='Hi', b='Salt', saltenv='test', salt=self.local_salt)) - self.assertEqual(out, 'Hey world !Hi Salt !\n') + self.assertEqual(out, 'Hey world !Hi Salt !' + os.linesep) self.assertEqual(fc.requests[0]['path'], 'salt://macro') def test_macro_additional_log_for_generalexc(self): @@ -217,7 +217,7 @@ class TestGetTemplate(TestCase): more output from trace. ''' expected = r'''Jinja error:.*division.* -.*/macrogeneral\(2\): +.*macrogeneral\(2\): --- \{% macro mymacro\(\) -%\} \{\{ 1/0 \}\} <====================== @@ -241,7 +241,7 @@ class TestGetTemplate(TestCase): more output from trace. ''' expected = r'''Jinja variable 'b' is undefined -.*/macroundefined\(2\): +.*macroundefined\(2\): --- \{% macro mymacro\(\) -%\} \{\{b.greetee\}\} <-- error is here <====================== @@ -264,7 +264,7 @@ class TestGetTemplate(TestCase): If we failed in a macro, get more output from trace. ''' expected = r'''Jinja syntax error: expected token .*end.*got '-'.* -.*/macroerror\(2\): +.*macroerror\(2\): --- # macro \{% macro mymacro\(greeting, greetee='world'\) -\} <-- error is here <====================== @@ -294,7 +294,7 @@ class TestGetTemplate(TestCase): 'file_roots': self.local_opts['file_roots'], 'pillar_roots': self.local_opts['pillar_roots']}, a='Hi', b='Sàlt', saltenv='test', salt=self.local_salt)) - self.assertEqual(out, u'Hey world !Hi Sàlt !\n') + self.assertEqual(out, salt.utils.to_unicode('Hey world !Hi Sàlt !' + os.linesep)) self.assertEqual(fc.requests[0]['path'], 'salt://macro') filename = os.path.join(TEMPLATES_DIR, 'files', 'test', 'non_ascii') @@ -305,7 +305,7 @@ class TestGetTemplate(TestCase): 'file_roots': self.local_opts['file_roots'], 'pillar_roots': self.local_opts['pillar_roots']}, a='Hi', b='Sàlt', saltenv='test', salt=self.local_salt)) - self.assertEqual(u'Assunção\n', out) + self.assertEqual(u'Assunção' + os.linesep, out) self.assertEqual(fc.requests[0]['path'], 'salt://macro') @skipIf(HAS_TIMELIB is False, 'The `timelib` library is not installed.') @@ -340,8 +340,8 @@ class TestGetTemplate(TestCase): with salt.utils.fopen(out['data']) as fp: result = fp.read() if six.PY2: - result = result.decode('utf-8') - self.assertEqual(u'Assunção\n', result) + result = salt.utils.to_unicode(result) + self.assertEqual(salt.utils.to_unicode('Assunção' + os.linesep), result) def test_get_context_has_enough_context(self): template = '1\n2\n3\n4\n5\n6\n7\n8\n9\na\nb\nc\nd\ne\nf' From 8d1c1e21f060b9c1a0d859321449c5d1842db5a7 Mon Sep 17 00:00:00 2001 From: Mike Place Date: Mon, 16 Oct 2017 16:43:10 -0600 Subject: [PATCH 16/18] Fix typos in paralell states docs --- doc/ref/states/parallel.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/ref/states/parallel.rst b/doc/ref/states/parallel.rst index 8a69eba2df..9edf1750e4 100644 --- a/doc/ref/states/parallel.rst +++ b/doc/ref/states/parallel.rst @@ -6,7 +6,7 @@ Introduced in Salt version ``2017.7.0`` it is now possible to run select states in parallel. This is accomplished very easily by adding the ``parallel: True`` option to your state declaration: -.. code_block:: yaml +.. code-block:: yaml nginx: service.running: @@ -24,7 +24,7 @@ state to finish. Given this example: -.. code_block:: yaml +.. code-block:: yaml sleep 10: cmd.run: @@ -74,16 +74,16 @@ also complete. Things to be Careful of ======================= -Parallel States does not prevent you from creating parallel conflicts on your +Parallel States do not prevent you from creating parallel conflicts on your system. This means that if you start multiple package installs using Salt then the package manager will block or fail. If you attempt to manage the same file with multiple states in parallel then the result can produce an unexpected file. Make sure that the states you choose to run in parallel do not conflict, or -else, like in and parallel programming environment, the outcome may not be +else, like in any parallel programming environment, the outcome may not be what you expect. Doing things like just making all states run in parallel -will almost certinly result in unexpected behavior. +will almost certainly result in unexpected behavior. With that said, running states in parallel should be safe the vast majority of the time and the most likely culprit for unexpected behavior is running From 9557504b758406bd1ac7182e92dc50866c65ad02 Mon Sep 17 00:00:00 2001 From: Tim Freund Date: Mon, 16 Oct 2017 19:26:43 -0400 Subject: [PATCH 17/18] Insert missing verb in gitfs walkthrough --- doc/topics/tutorials/gitfs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/topics/tutorials/gitfs.rst b/doc/topics/tutorials/gitfs.rst index 86dfae879d..02a7f0ecad 100644 --- a/doc/topics/tutorials/gitfs.rst +++ b/doc/topics/tutorials/gitfs.rst @@ -27,7 +27,7 @@ Installing Dependencies ======================= Both pygit2_ and GitPython_ are supported Python interfaces to git. If -compatible versions of both are installed, pygit2_ will preferred. In these +compatible versions of both are installed, pygit2_ will be preferred. In these cases, GitPython_ can be forced using the :conf_master:`gitfs_provider` parameter in the master config file. From d712031a435ea4376bcf4168c13dda53547314f4 Mon Sep 17 00:00:00 2001 From: rallytime Date: Wed, 18 Oct 2017 09:44:55 -0400 Subject: [PATCH 18/18] Update to_unicode util references to new stringutils path --- tests/unit/templates/test_jinja.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/unit/templates/test_jinja.py b/tests/unit/templates/test_jinja.py index 08e7e2e5f1..e5ca422f92 100644 --- a/tests/unit/templates/test_jinja.py +++ b/tests/unit/templates/test_jinja.py @@ -33,6 +33,7 @@ from salt.utils.jinja import ( ) from salt.utils.templates import JINJA, render_jinja_tmpl from salt.utils.odict import OrderedDict +import salt.utils.stringutils # Import 3rd party libs import yaml @@ -296,7 +297,7 @@ class TestGetTemplate(TestCase): 'file_roots': self.local_opts['file_roots'], 'pillar_roots': self.local_opts['pillar_roots']}, a='Hi', b='Sàlt', saltenv='test', salt=self.local_salt)) - self.assertEqual(out, salt.utils.to_unicode('Hey world !Hi Sàlt !' + os.linesep)) + self.assertEqual(out, salt.utils.stringutils.to_unicode('Hey world !Hi Sàlt !' + os.linesep)) self.assertEqual(fc.requests[0]['path'], 'salt://macro') filename = os.path.join(TEMPLATES_DIR, 'files', 'test', 'non_ascii') @@ -370,8 +371,8 @@ class TestGetTemplate(TestCase): with salt.utils.files.fopen(out['data']) as fp: result = fp.read() if six.PY2: - result = salt.utils.to_unicode(result) - self.assertEqual(salt.utils.to_unicode('Assunção' + os.linesep), result) + result = salt.utils.stringutils.to_unicode(result) + self.assertEqual(salt.utils.stringutils.to_unicode('Assunção' + os.linesep), result) def test_get_context_has_enough_context(self): template = '1\n2\n3\n4\n5\n6\n7\n8\n9\na\nb\nc\nd\ne\nf'