===========================
Salt 2018.3.4 Release Notes
===========================

Version 2018.3.4 is a bugfix release for :ref:`2018.3.0 <release-2018-3-0>`.

State Changes
=============

- The :py:func:`host.present <salt.states.host.present>` state can now remove
  the specified hostname from IPs not specified in the state. This can be done
  by setting the newly-added ``clean`` argument to ``True``.

Statistics
==========

- Total Merges: **531**
- Total Issue References: **111**
- Total PR References: **412**

- Contributors: **76** (`5uper5hoot`_, `Ch3LL`_, `ClaudiuPID`_, `Giandom`_, `KaiSforza`_, `MTecknology`_, `ManicoW`_, `OrangeDog`_, `ShantonRU`_, `The-Loeki`_, `Yxnt`_, `aarnaud`_, `amendlik`_, `angeloudy`_, `bartlaarhoven`_, `bbh-kmd`_, `bbinet`_, `bdrung`_, `bergmannf`_, `bluesliverx`_, `bornwitbugs`_, `brejoc`_, `cachedout`_, `casselt`_, `cro`_, `cstarke`_, `dgmorrisjr`_, `dmurphy18`_, `dubb-b`_, `dwoz`_, `frogunder`_, `garethgreenaway`_, `gtmanfred`_, `isbm`_, `jacobweinstock`_, `jgleissner`_, `jodok`_, `jpsv`_, `jyurdal`_, `kiemlicz`_, `kunal-bajpai`_, `lexvella`_, `lomeroe`_, `m03`_, `madrisan`_, `mat813`_, `mattp-`_, `max-arnold`_, `mchugh19`_, `meaksh`_, `michaelgibson`_, `nhavens`_, `pirogoeth`_, `rallytime`_, `rkrieger`_, `rmarcinik`_, `rongzeng54`_, `rwaweber`_, `s0undt3ch`_, `sathieu`_, `sheagcraig`_, `silenius`_, `sunyq`_, `t0fik`_, `terminalmage`_, `terrible-broom`_, `thebluesnevrdie`_, `thetaurean`_, `tlemarchand`_, `tonybaloney`_, `twangboy`_, `waynew`_, `weswhet`_, `whytewolf`_, `yosnoop`_, `zwo-bot`_)


Changelog for v2018.3.3..v2018.3.4
==================================

*Generated at: 2019-02-06 20:56:17 UTC*

* **PR** `#51525`_: (`twangboy`_) Backport 51095 to 2018.3.4
  @ *2019-02-06 20:20:37 UTC*

  * a37fb7d Merge pull request `#51525`_ from twangboy/backport_51095_2018.3.4

  * b6acc92 Backport 51095

* **PR** `#51520`_: (`frogunder`_) Update man pages for 2018.3.4
  @ *2019-02-06 18:42:13 UTC*

  * 602ddc8 Merge pull request `#51520`_ from frogunder/man_pages

  * 0cbe3f8 Update man pages for 2018.3.4

* **ISSUE** `#51428`_: (`yosnoop`_) salt.utils.dns.lookup fails with dig method on EL7 (refs: `#51429`_)

* **PR** `#51429`_: (`yosnoop`_) The +nocl is supported much wider than +noclass
  @ *2019-02-06 17:48:48 UTC*

  * 1f981c6 Merge pull request `#51429`_ from yosnoop/replace-noclass-with-nocl-for-dig

  * 5231e73 Merge branch '2018.3.4' into replace-noclass-with-nocl-for-dig

  * 14e6fb7 In case the test machine can't resolve

  * 95e8a2f The +nocl is supported much wider than +noclass

  * a00d708 Test dig options for salt.utils.dns.lookup

* **ISSUE** `#49226`_: (`defanator`_) salt-cloud grains inheritance from provider to profile (2018 vs 2016) (refs: `#51366`_)

* **PR** `#51441`_: (`Ch3LL`_) Backport `#51366`_ into 2018.3.4
  @ *2019-02-06 17:42:19 UTC*

  * **PR** `#51366`_: (`dwoz`_) Cloud provider and profile configs are merged [2018.3] (refs: `#51441`_)

  * 209ef32 Merge pull request `#51441`_ from Ch3LL/bp-51366

  * 5bc466e Fix python 3 path for shell test cases

  * 5351e5c Add testing path to run_script commands

  * 2d8a364 Fix linter issues

  * 9b8718a Cloud provider and profile configs are merged

* **PR** `#51458`_: (`twangboy`_) Add Py2 Warning for Py2 Installer
  @ *2019-02-06 17:33:02 UTC*

  * 90a8682 Merge pull request `#51458`_ from twangboy/add_py2_warning

  * 05522c0 Merge branch '2018.3.4' into add_py2_warning

* **PR** `#51460`_: (`twangboy`_) Update installer mac 2018.3.4
  @ *2019-02-06 17:31:18 UTC*

  * b492021 Merge pull request `#51460`_ from twangboy/update_installer_mac_2018.3.4

  * 3c92688 Merge branch '2018.3.4' into update_installer_mac_2018.3.4

* **PR** `#51471`_: (`twangboy`_) Fix the failing dns test on Windows
  @ *2019-02-03 22:03:34 UTC*

  * 892d98c Merge pull request `#51471`_ from twangboy/fix_test_win_dns_client

  * c9f6b01 Merge branch '2018.3.4' into fix_test_win_dns_client

* **PR** `#51462`_: (`ShantonRU`_) Fix insecure SQL queries in MySQL module
  @ *2019-02-01 21:19:20 UTC*

  * a05305d Merge pull request `#51462`_ from ShantonRU/fix-insecure-sql-queries-in-mysql-module-1

  * d3ef2cb Merge branch '2018.3.4' into fix-insecure-sql-queries-in-mysql-module-1

  * f47dda6 Fix improper use of socket authentication in mysql.user_chpass

  * ed62a2f Fix insecure SQL queries in mysql.user_chpass

    * 33922c9 Fix the failing dns test on Windows

* **PR** `#51445`_: (`terminalmage`_) Remove custom grains module from 2018.3 branch
  @ *2019-02-01 16:48:13 UTC*

  * 48936c2 Merge pull request `#51445`_ from terminalmage/fix-custom-grains-traceback

  * 191235d Remove custom grains module from 2018.3 branch

  * 72fd1a2 Roll back icon change

  * 7dd1704 Add welcome_py2.rtf

  * c93e9e3 Add Py2 Warning to installer package

  * b658900 Add Py2 Warning for Py2 Installer

* **PR** `#51438`_: (`twangboy`_) Add missing raise statement
  @ *2019-01-30 20:04:05 UTC*

  * a880e42 Merge pull request `#51438`_ from twangboy/fix_raise_2018.3.4

  * 5830fad Add missing raise statement

* **PR** `#51432`_: (`Ch3LL`_) Backport `#51324`_ into 2018.3.4
  @ *2019-01-30 17:51:50 UTC*

  * **PR** `#51324`_: (`garethgreenaway`_)  [2018.3] Fixes to x509 module and test (refs: `#51432`_)

  * 28b898c Merge pull request `#51432`_ from Ch3LL/bp-51324

  * bd41ff0 Fixing various bits in x509 module and unit test to ensure tests are passing on python2 & python3

* **PR** `#51377`_: (`twangboy`_) Fix issue when directory doesn't exist in LGPO module (2018.3.4)
  @ *2019-01-29 17:33:25 UTC*

  * 01717d2 Merge pull request `#51377`_ from twangboy/fix_auditpol_2018.3.4

  * 19e5181 Fix issue when directory doesn't exist

* **PR** `#51338`_: (`Ch3LL`_) Backport `#51207`_ into 2018.3.4
  @ *2019-01-27 23:44:59 UTC*

  * **PR** `#51207`_: (`twangboy`_) Backport 50771 to 2018.3 (refs: `#51338`_)

  * **PR** `#50771`_: (`terminalmage`_) Fix failing opensuse tests (refs: `#51207`_)

  * 43a9d2f Merge pull request `#51338`_ from Ch3LL/bp-51207

  * 345ae67 Backport PR# 50771 to 2018.3 branch

* **ISSUE** `#51158`_: (`AndreiPashkin`_) saltmod.state doesn't respect "roster" argument (refs: `#51170`_)

* **PR** `#51337`_: (`Ch3LL`_) Backport `#51170`_ into 2018.3.4
  @ *2019-01-27 23:44:24 UTC*

  * **PR** `#51170`_: (`dwoz`_) Honor roster system for ssh orchestrations (refs: `#51337`_)

  * 3dcd11d Merge pull request `#51337`_ from Ch3LL/bp-51170

  * 4e85505 Merge branch '2018.3.4' into bp-51170

* **ISSUE** `#50221`_: (`tkaehn`_) file.managed: contents_pillar and pillar.file_tree with keep_newline is broken in 2018.3.3 (refs: `#51252`_)

* **PR** `#51340`_: (`Ch3LL`_) Backport `#51252`_ into 2018.3.4
  @ *2019-01-27 23:42:49 UTC*

  * **PR** `#51252`_: (`dwoz`_) Peserve newlines from pillar data for file.managed [2018.3] (refs: `#51340`_)

  * 7656aa5 Merge pull request `#51340`_ from Ch3LL/bp-51252

  * e74a6c6 Fix py3 managed.file test failure

  * 6f2c7cf Remoe un-needed log statement

  * 824950c Fix 50221 regression test on Windows

  * 1840af9 peserve newlines from pillar data for file.managed

* **PR** `#51290`_: (`s0undt3ch`_) [2018.3.4] Fix minion start
  @ *2019-01-25 15:14:47 UTC*

  * e90ca1d Merge pull request `#51290`_ from s0undt3ch/hotfix/fix-network

  * da3aace Merge branch '2018.3.4' into hotfix/fix-network

  * 04f16b8 Fix tests. We no longer get `ipaddress` instances back.

  * c3fa82a Fix minion start issue

    * c893dc4 Fix saltmod roster test

    * b61854f Roster defines the roster system not a file

    * 484bab4 Fix linter

    * 5e2db2f Honor roster file for ssh orchestrations

* **PR** `#51317`_: (`terminalmage`_) Fix regression in dynamic pillarenv
  @ *2019-01-25 09:29:44 UTC*

  * c8db7e3 Merge pull request `#51317`_ from terminalmage/fix-pr-50417

  * 4be2891 Merge branch '2018.3.4' into fix-pr-50417

* **PR** `#51311`_: (`twangboy`_) Fix failing test `unit.states.test_file.TestFileState.test_managed` on Windows
  @ *2019-01-24 21:09:35 UTC*

  * e246fdb Merge pull request `#51311`_ from twangboy/fix_test_file.test_managed

  * f4177e0 Remove mode parameter on Windows

  * 4c4ded3 Fix regression in dynamic pillarenv

* **ISSUE** `#51195`_: (`littleski`_) fstab improperly escaped when spaces are used in options (refs: `#51226`_)

* **ISSUE** `#27160`_: (`martinadolfi`_) salt.states.mount persistence error using spaces in route (refs: `#39593`_)

* **PR** `#51292`_: (`Ch3LL`_) Backport `#51226`_ into 2018.3.4
  @ *2019-01-24 11:11:34 UTC*

  * **PR** `#51226`_: (`garethgreenaway`_) [2018.3] Handle spaces in fstab opts, similar fix to `#39593`_ (refs: `#51292`_)

  * **PR** `#39593`_: (`zwo-bot`_) Fix issue `#27160`_ - escape whitespaces in fstab entry in module mount when persist=True (refs: `#51226`_)

  * 40b20126 Merge pull request `#51292`_ from Ch3LL/bp-51226

  * aba114e Merge branch '2018.3.4' into bp-51226

* **PR** `#51295`_: (`Ch3LL`_) Backport `#51279`_ into 2018.3.4
  @ *2019-01-24 11:10:19 UTC*

  * **PR** `#51279`_: (`twangboy`_) Backport __context__ support from develop (refs: `#51295`_)

  * fc0bec5 Merge pull request `#51295`_ from Ch3LL/bp-51279

  * 5c4a7a4 Merge branch '2018.3.4' into bp-51279

* **PR** `#51293`_: (`Ch3LL`_) Backport `#51233`_ into 2018.3.4
  @ *2019-01-24 09:17:49 UTC*

  * **PR** `#51233`_: (`Ch3LL`_) Backport `#51105`_ to 2018.3 (refs: `#51293`_)

  * **PR** `#51105`_: (`garethgreenaway`_) [develop] Report permission changes in test mode (refs: `#51233`_)

  * dacd1ea Merge pull request `#51293`_ from Ch3LL/bp-51233-2

  * a155fd7 Accounting for when permissions are not returned from file.check_perms, eg. windows systems.

  * 53ba068 When test=True and there are permissions changes, report it.

  * d2eba77 Remove network.py patch

  * d431c71 Add __context__ support

    * de6c13d Handle spaces in fstab opts, similar fix to `#39593`_

* **ISSUE** `#51248`_: (`johnnybubonic`_) "[WARNING ] The file_roots parameter is not properly formatted, using defaults" (refs: `#51278`_)

* **PR** `#51278`_: (`dwoz`_) Warn about proper validation option
  @ *2019-01-22 22:13:13 UTC*

  * 1abffb2 Merge pull request `#51278`_ from dwoz/issue51248

  * c614198 Use pillar roots validation method

  * 0d2b0c6 Fix linter warnings

  * 5b98895 Fix wart in pillar_roots validation

* **PR** `#51230`_: (`Ch3LL`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2019-01-18 19:50:10 UTC*

  * e53e9b1 Merge pull request `#51230`_ from Ch3LL/merge-2018.3

  * 0ef7675 Merge branch '2017.7' into '2018.3'

  * 4a12c5f Merge pull request `#50852`_ from mirceaulinic/fix-capirca

    * fa91267 Merge branch '2017.7' into fix-capirca

    * 71913ff Merge branch '2017.7' into fix-capirca

    * 6fc3484 Lint?

    * 3d56750 Extra newline for lint

    * 5176cd8 Improve the Capirca and related modules for ACL config generation

  * 3f4759b Merge pull request `#50923`_ from astronouth7303/patch-2

    * 4f631a6 Document {% include %}

  * 210e817 Merge pull request `#51111`_ from s0undt3ch/2017.7

    * 08e0ae7 Update to salt-bootstrap v2019.01.08

* **ISSUE** `#51211`_: (`sathieu`_) file_roots envs with slash leads to "No such file or directory: '/var/cache/salt/master/file_lists/roots/.foo/bar.w' (refs: `#51212`_)

* **ISSUE** `#48132`_: (`BenjaminSchiborr`_) Dynamic File Roots (refs: `#51212`_)

* **PR** `#51212`_: (`sathieu`_) Allow slashes in file_roots envs.
  @ *2019-01-17 17:29:18 UTC*

  * 26008ef Merge pull request `#51212`_ from sathieu/file_roots_slash

  * b769f18 Allow slash in file_roots envs

  * f9437e2 Test for file_roots envs with slash leads to "No such file or directory"

* **PR** `#51209`_: (`garethgreenaway`_) [2018.3] Back-port PR `#51124`_ to 2018.3
  @ *2019-01-17 13:28:32 UTC*

  * **PR** `#51124`_: (`Ch3LL`_) Handle encoding when opening file for both py2/py3 (refs: `#51209`_)

  * 5916282 Merge pull request `#51209`_ from garethgreenaway/bp-51124

  * 82acce4 Handle encoding when opening file for both py2/py3

* **PR** `#51184`_: (`twangboy`_) Fix win_lgpo_auditpol salt util on Windows
  @ *2019-01-16 18:08:01 UTC*

  * 094bd33 Merge pull request `#51184`_ from twangboy/fix_auditpol

  * 2e68d35 directly call cmd.run_all

* **PR** `#51191`_: (`Ch3LL`_) Backport `#50918`_ into 2018.3
  @ *2019-01-16 18:02:19 UTC*

  * **PR** `#50918`_: (`twangboy`_) Fix `test_debian_ip` on Windows (refs: `#51191`_)

  * ac71922 Merge pull request `#51191`_ from Ch3LL/bp-50918

  * 7300d84 Skip debian tests on Windows

  * 4622433 Fix `test_debian_ip` on Windows

* **ISSUE** `#49883`_: (`kiemlicz`_) salt-cloud azurearm is not working (refs: `#51144`_)

* **PR** `#51144`_: (`jgleissner`_) 2018.3 azurearm py3
  @ *2019-01-15 16:46:35 UTC*

  * e7f53a3 Merge pull request `#51144`_ from jgleissner/2018.3-azurearm-py3

  * 3178f1a msazure.py: remove unused imports

  * 99a4b9d azurearm: fix list_locations

  * aebe34b azurearm: fix show_instance function

  * d80669f msazure: fix object_to_dict for python 3

* **PR** `#51171`_: (`twangboy`_) Add random sleep time to avoid overloading Windows
  @ *2019-01-15 16:45:33 UTC*

  * 1206f92 Merge pull request `#51171`_ from twangboy/fix_crypt

  * 6caa93b Add random sleep time to avoid overloading Windows

* **PR** `#51174`_: (`jpsv`_) Update OpsGenie to use their V2 API (2018.3)
  @ *2019-01-15 16:44:54 UTC*

  * a96deed Merge pull request `#51174`_ from jpsv/2018.3

  * 055823e Update opsgenie.py

  * 501c8df Merge branch '2018.3' into 2018.3

  * 220aa8a Update opsgenie.py

  * 5dc21cc Update to from V1 API to V2

  * f93ce7c Update to V2 API

* **ISSUE** `#42280`_: (`michaelgibson`_) make ldap eauth 2 factor compatible (refs: `#42426`_, `#45347`_)

* **PR** `#51010`_: (`amendlik`_) Allow unauthenticated bind for listing LDAP groups
  @ *2019-01-15 16:43:42 UTC*

  * **PR** `#45811`_: (`gtmanfred`_) Fix ldap eauth (refs: `#51010`_)

  * **PR** `#45347`_: (`amendlik`_) LDAP group membership (refs: `#51010`_)

  * **PR** `#42426`_: (`michaelgibson`_) adding 2-factor auth capability to ldap eauth module - `#42280`_ (refs: `#45347`_)

  * 563d487 Merge pull request `#51010`_ from amendlik/ldap-groups

  * cd336ed Merge branch '2018.3' into ldap-groups

  * 94f8ee4 Update unit tests for auth.ldap

  * 08e36d0 Allow unauthenticated bind for listing LDAP groups

* **PR** `#51112`_: (`s0undt3ch`_)  [2018.3] Update to salt-bootstrap v2019.01.08
  @ *2019-01-15 16:42:09 UTC*

  * 6dc3752 Merge pull request `#51112`_ from s0undt3ch/2018.3

  * 4f1d846 Update to salt-bootstrap v2019.01.08

* **PR** `#51097`_: (`terminalmage`_) Fix improper exception raises (2018.3)
  @ *2019-01-15 16:38:25 UTC*

  * b19c990 Merge pull request `#51097`_ from terminalmage/fix-keyerror-raise

  * a3c0b49 Fix poorly-written test

  * c0ff7b1 Fix more incorrect exception raises

  * f11dbcc Fix improper KeyError raise

* **PR** `#51169`_: (`twangboy`_) More descriptive error when missing GitPython or PyGit2
  @ *2019-01-15 16:37:44 UTC*

  * 8920a86 Merge pull request `#51169`_ from twangboy/fix_git_state

  * f2d1180 More descriptive error when missing GitPython or PyGit2

* **ISSUE** `#51160`_: (`amendlik`_) Minion crashes with long hostname under Python 3 (refs: `#51173`_, `#51161`_)

* **PR** `#51173`_: (`dwoz`_) Avoid exceptions by passing bytes to idna
  @ *2019-01-15 16:32:31 UTC*

  * **PR** `#51161`_: (`amendlik`_) Ignore exceptions when generating the minion ID (refs: `#51173`_)

  * 58eede6 Merge pull request `#51173`_ from dwoz/issue51160

  * 11cc7b3 Remove un-needed test

  * 0f87812 Merge develop, Revert exception handling

  * 7365a1a Pass bytes to idna

* **PR** `#51147`_: (`Ch3LL`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2019-01-15 02:05:51 UTC*

  * 06854cf Merge pull request `#51147`_ from Ch3LL/merge-2018.3

  * d39d8b7 Merge branch '2018.3' into merge-2018.3

* **ISSUE** `#51160`_: (`amendlik`_) Minion crashes with long hostname under Python 3 (refs: `#51173`_, `#51161`_)

* **PR** `#51161`_: (`amendlik`_) Ignore exceptions when generating the minion ID (refs: `#51173`_)
  @ *2019-01-14 22:47:54 UTC*

  * b79c09e Merge pull request `#51161`_ from amendlik/long-hostname

  * 6fcc4ad Merge branch '2018.3' into long-hostname

* **ISSUE** `#51067`_: (`rkrieger`_) KeyError u'manufacturer' causes salt-minion crash on start with OpenBSD arm64 system (refs: `#51159`_)

* **ISSUE** `#3`_: (`thatch45`_) libvirt module (refs: `#51159`_)

* **PR** `#51159`_: (`rkrieger`_) Prevent crash by testing for 'manufacturer' in osdata on OpenBSD
  @ *2019-01-14 18:08:22 UTC*

  * 1424734 Merge pull request `#51159`_ from rkrieger/fix-issue-51067

  * 1440ccf Prevent crash by testing for 'manufacturer' in osdata on OpenBSD

  * 1a4e307 Ignore exceptions when generating the minion ID

* **PR** `#51146`_: (`terminalmage`_) Fix invalid assignment in vsphere module
  @ *2019-01-12 21:44:33 UTC*

  * 5e37326 Merge pull request `#51146`_ from terminalmage/fix-vsphere-tuple-issue

  * 5d60022 Fix invalid assignment in vsphere module

* **PR** `#51154`_: (`twangboy`_) Add support for Advanced Audit policies
  @ *2019-01-12 21:43:27 UTC*

  * fad8621 Merge pull request `#51154`_ from twangboy/auditpol

  * 9064376 Add support for Advanced Audit policies

* **PR** `#51151`_: (`Ch3LL`_) Backport `#51061`_ to 2018.3
  @ *2019-01-12 03:18:44 UTC*

  * **PR** `#51061`_: (`garethgreenaway`_) [fluorine] fix to salt.utils.vt.Terminal (refs: `#51151`_)

  * f7a100c Merge pull request `#51151`_ from Ch3LL/bp_51061

  * ffdae27 When writing output to stdout we want to ensure that the data is a string not bytes.  Under py2 the salt.utils.data.encode function results in a string but under py3 the result is a bytestring.  Swapping out salt.utils.data.encode for salt.utils.stringutils.to_str.

* **PR** `#51150`_: (`Ch3LL`_) Back-port `#49508`_ to 2018.3
  @ *2019-01-12 03:18:19 UTC*

  * **PR** `#49508`_: (`bergmannf`_) Fix X509 remote signing on python3 (refs: `#51150`_)

  * 3a50a57 Merge pull request `#51150`_ from Ch3LL/bp-49508

  * 7ae53ad Do not silently ignore errors.

  * deb0134 Convert to string before sending via 'publish'.

  * 651c551 Use to_str salt.utils when writing to a file.

* **ISSUE** `#50433`_: (`zerthimon`_) Wildcard grant fails in mysql_grants.present in mysql 8.x (refs: `#51152`_)

* **PR** `#51152`_: (`garethgreenaway`_) [2018.3] Fixes to mysql module to handle ALL PRIVILEGES grant
  @ *2019-01-12 03:17:15 UTC*

  * 8bb589d Merge pull request `#51152`_ from garethgreenaway/50433_handle_grants_better

  * f7caa4d Fixing lint

  * e8c8c0f Adding some tests to ensure "ALL PRIVILEGES" is handled correctly in 8.0 and 5.6

  * b4bfd9f Add additional grants.  Adding logic to handle when ALL or ALL PRIVILEGES is passed for the grant, including some logic to handle the fact that the grants are split when show grants is run for a particular user.

    * 74edfd9 Fix pylint

    * 81a3d47 Merge branch '2017.7' into '2018.3'

    * 8a76a19 Merge pull request `#50858`_ from jasonarewhy/bugfix-2017.7/ubuntu-networking-searchdomain

      * 3395a3d Merge branch '2017.7' into bugfix-2017.7/ubuntu-networking-searchdomain

      * 69d25aa update debian_ip test

      * a6b896c get searchdomain in Ubuntu 12+

* **ISSUE** `#50849`_: (`5uper5hoot`_) MySQL version needs to be decoded (refs: `#51133`_)

* **PR** `#51133`_: (`5uper5hoot`_) Fixes mysql server version comparison.
  @ *2019-01-10 16:45:38 UTC*

  * dda1ebb Merge pull request `#51133`_ from 5uper5hoot/issue-`#50849`_

  * ec14e13 Fixes mysql server version comparison.

* **PR** `#50878`_: (`max-arnold`_) Fix profile outputter docs
  @ *2019-01-08 18:32:40 UTC*

  * 9d4321d Merge pull request `#50878`_ from max-arnold/output-docs

  * d7403da Fix profile outputter docs

* **PR** `#51076`_: (`OrangeDog`_) Typos in index_template_present documentation
  @ *2019-01-08 18:25:20 UTC*

  * ce87504 Merge pull request `#51076`_ from OrangeDog/patch-1

  * 568e4fb Revert add -> check

  * 4d7ebe7 Typos in index_template_present documentation

* **PR** `#51081`_: (`garethgreenaway`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2019-01-07 20:34:16 UTC*

  * d08abf4 Merge pull request `#51081`_ from garethgreenaway/merge-2018.3

  * 027804a Merge branch '2018.3' into merge-2018.3

* **ISSUE** `#50966`_: (`klafkoff`_) 2018.3.3 missing a patch to salt/modules/nxos.py (refs: `#51080`_)

* **PR** `#51080`_: (`garethgreenaway`_) [2018.3] Fix to nxos module
  @ *2019-01-07 18:07:25 UTC*

  * 335088b Merge pull request `#51080`_ from garethgreenaway/50966_nxos_ensure_kwargs_list

  * 230a66b Merge branch '2018.3' into 50966_nxos_ensure_kwargs_list

  * 629dc25 Ensure kwargs is a list before we attempt to loop through.  Similar fix to https://github.com/rallytime/salt/commit/430c462f34eb4eedf2384e06fbee8dc19b8026f6 in the proxy module.

    * a20791b Merge branch '2018.3' into merge-2018.3

* **PR** `#51079`_: (`terminalmage`_) Fix shadow.set_date/shadow.set_expire on F28
  @ *2019-01-07 16:28:36 UTC*

  * c47b646 Merge pull request `#51079`_ from terminalmage/salt-jenkins-1238

  * ccd5c15 Fix shadow.set_date/shadow.set_expire on F28

* **ISSUE** `#47043`_: (`xBytez`_) lsattr slowing down archive.extracted (refs: `#51044`_)

* **PR** `#51044`_: (`terminalmage`_) archive.extracted: Don't run lsattr when enforcing user/group ownership
  @ *2019-01-03 19:26:03 UTC*

  * aeeb047 Merge pull request `#51044`_ from terminalmage/issue47043

  * 787b79a archive.extracted: Don't run lsattr when enforcing user/group ownership

* **ISSUE** `#50964`_: (`gtmanfred`_) Add a long description to setup.py for the new pypi.org (refs: `#51031`_)

* **PR** `#51034`_: (`garethgreenaway`_) Back-port PR `#51031`_ to 2018.3
  @ *2019-01-03 15:42:22 UTC*

  * **PR** `#51031`_: (`waynew`_) Set long_description (refs: `#51034`_)

  * 04fdae5 Merge pull request `#51034`_ from garethgreenaway/bp-51031

  * cd310c2 Set long_description

* **ISSUE** `#50634`_: (`marek-obuchowicz`_) Debian pkg.managed gpg/tty issue (refs: `#50972`_)

* **PR** `#50972`_: (`pirogoeth`_) Use gpg's --batch in apt-key adv during repo key add
  @ *2019-01-03 02:34:13 UTC*

  * 4685e0e Merge pull request `#50972`_ from pirogoeth/sjohn/2018.3-apt-key-batch

  * cd3d755 Merge branch '2018.3' into sjohn/2018.3-apt-key-batch

* **PR** `#51028`_: (`whytewolf`_) AIX lsattr fix for file module.
  @ *2019-01-03 01:52:33 UTC*

  * 44bc862 Merge pull request `#51028`_ from whytewolf/aix_lsattr_fix

  * 1b733c6 Set lsattr functions to return None if `salt.utils.platform.is_aix` returns true.

  * 7410008 Merge branch '2018.3' into sjohn/2018.3-apt-key-batch

* **PR** `#51018`_: (`garethgreenaway`_) [fluorine] Merge forward from 2017.7 to 2018.3
  @ *2019-01-01 23:11:02 UTC*

  * b4774a8 Merge pull request `#51018`_ from garethgreenaway/merge-2018.3

    * 773bf31 Use gpg's --batch in apt-key adv during repo key add

      * 9386aab Merge branch '2017.7' into merge-2018.3

      * 998feca Merge pull request `#51030`_ from terminalmage/issue38502

        * 6dbd81f Add unit test to ensure we don't diff bare repos

  * 12f7583 Merge branch '2017.7' into merge-2018.3

  * 4529150 Merge pull request `#50977`_ from rallytime/config-docs

    * 43c39e7 Add documentation to master config docs for job_cache_store_endtime

    * 887cd07 Add some salt-api options to the master config docs

    * 0d49746 Fix some formatting in master config docs

  * 409594b Merge pull request `#50991`_ from twangboy/requests_2017.7

    * 32b9d2a Update requests for osx

    * 413dc72 Merge branch '2017.7' of https://github.com/saltstack/salt into requests_2017.7

  * e053074 Merge pull request `#50983`_ from garethgreenaway/bp-50885

    * 09a8e6e fix a del in cloud vmware that crash when the key isn't there

    * 4196690 Update requests to 2.21.0

    * 23f78b0 Upgrade requests to 2.20.1

* **PR** `#50990`_: (`twangboy`_) Requests 2018.3
  @ *2018-12-31 20:19:01 UTC*

  * c53723a Merge pull request `#50990`_ from twangboy/requests_2018.3

  * e8b9233 Update requests on osx

  * b22856f Update requests to 2.21.0

  * 242389b Merge branch '2018.3' of https://github.com/saltstack/salt into requests_2018.3

  * 0d4b799 Upgrade requests to 2.20.1

* **PR** `#51004`_: (`twangboy`_) Add tests for the win_wusa state and module
  @ *2018-12-31 20:03:30 UTC*

  * cecd108 Merge pull request `#51004`_ from twangboy/win_wusa

  * 0e92528 Merge branch '2018.3' into win_wusa

  * c0d2495 Fix lint, add test docs

  * 1750270 Add state tests for win_wusa

  * 6285b64 Update win_wusa and add tests

* **PR** `#51014`_: (`madrisan`_) ssh module: missing space in error message
  @ *2018-12-31 19:59:19 UTC*

  * 3e0515b Merge pull request `#51014`_ from madrisan/patch-1

  * ab980fb ssh module: missing space in error message

* **PR** `#50883`_: (`terminalmage`_) Backport `#49622`_ to 2018.3 branch
  @ *2018-12-31 19:58:11 UTC*

  * **PR** `#49622`_: (`angeloudy`_) fix command line options (refs: `#50883`_)

  * 582d6b4 Merge pull request `#50883`_ from terminalmage/bp-49622

  * c93dbfa Update archive.py

  * 925a9c9 Update archive.py

  * ed2bed3 fix command line options

* **PR** `#50945`_: (`garethgreenaway`_)  [2018.3] Merge forward from 2017.7 to 2018.8
  @ *2018-12-30 00:05:47 UTC*

  * fd9711b Merge pull request `#50945`_ from garethgreenaway/merge-2017.7

  * 43b3fa4 Merge branch '2018.3' into merge-2017.7

* **ISSUE** `#50854`_: (`Ch3LL`_) [fluorine] windows stops when cannot connect to master (refs: `#50855`_)

* **PR** `#51006`_: (`dwoz`_) Let minions try to connect to master indefinitly
  @ *2018-12-28 21:10:39 UTC*

  * **PR** `#50855`_: (`dwoz`_) Let minions try to connect to master indefinitly (refs: `#51006`_)

  * b8615e1 Merge pull request `#51006`_ from dwoz/backport_50855

  * 5563631 Let minions try to connect to master indefinitly

* **ISSUE** `#50989`_: (`mpx8701`_) SLS error (An exception occurred in this state: Traceback) (refs: `#51005`_)

* **PR** `#51005`_: (`garethgreenaway`_) [2018.3] Fixes to junos state module
  @ *2018-12-28 20:51:31 UTC*

  * cfed697 Merge pull request `#51005`_ from garethgreenaway/50989_fixing_junos_state_arguments

  * d4ac180 Fixing the arguments accepted by cli function in the junos state module which are passed along to the cli function in junos module, so they align.

  * 3cfca8e Merge branch '2018.3' into merge-2017.7

* **PR** `#50982`_: (`twangboy`_) Fix issue with LGPO when returning empty dict (2018.3)
  @ *2018-12-26 19:58:12 UTC*

  * daa591b Merge pull request `#50982`_ from twangboy/fix_lgpo_2018.3

  * d942934 Get rid of requests import (CaseInsensitiveDict)

    * 6170fa5 Merge branch '2018.3' into merge-2017.7

* **ISSUE** `#46886`_: (`bbh-kmd`_) Unable to get salt-minion to call salt-call with alternate configuration (refs: `#50959`_)

* **PR** `#50984`_: (`garethgreenaway`_) Back-port PR `#50959`_ to 2018.3
  @ *2018-12-26 19:29:54 UTC*

  * **PR** `#50959`_: (`bbh-kmd`_) `#46886`_: Use correct path to config_dir when running salt from alternate placement. (refs: `#50984`_)

  * 110bc66 Merge pull request `#50984`_ from garethgreenaway/bp-50959

  * 20fa5c9 Update sudo.py

* **PR** `#50958`_: (`bdrung`_) Fix twilio version checking
  @ *2018-12-25 10:46:15 UTC*

  * 8fc89a0 Merge pull request `#50958`_ from bdrung/fix-twilio

  * df8d7b9 Fix twilio version checking

    * d89c9b5 Merge branch '2018.3' into merge-2017.7

* **ISSUE** `#50947`_: (`cachedout`_) Log full of IPv6 warnings (refs: `#50962`_)

* **PR** `#50962`_: (`terminalmage`_) Remove redundant overrides for ip_address/ip_interface
  @ *2018-12-21 22:04:34 UTC*

  * bb87822 Merge pull request `#50962`_ from terminalmage/ipv6-warnings

  * 773b983 Merge branch '2018.3' into ipv6-warnings

  * f3b1254 Remove redundant overrides for ip_address/ip_interface

    * cea01e7 Updating valigdate_tgt to ensure tests pass.

    * cdc7825 yet another lint fix.

    * f44a87e One last lint fix.

    * 45f363b Fixing various lint errors.

    * 6a65bf9 Merge branch '2017.7' into merge-2017.7

    * 747dd69 Merge pull request `#50876`_ from terminalmage/issue50153

      * 676a12a Fix compound matching in eauth

    * 07fca64 Merge pull request `#50909`_ from damon-atkins/jenkins_pylint

      * da1fc32 change params.CHANGE_BRANCH to env.CHANGE_BRANCH

    * e7f0ab6 Merge pull request `#50873`_ from Ch3LL/bp-50740

      * 5fd9ed9 Merge branch '2017.7' into bp-50740

    * 2f77b2d Merge pull request `#50869`_ from garethgreenaway/50848_mysql_exception_test

      * 3767d4f Merge branch '2017.7' into 50848_mysql_exception_test

      * af3e145 Cleanup.

      * b85c5bf Adding a test to ensure exception handling is correct.

        * 4242e64 Merge branch '2017.7' into bp-50740

    * a5caab7 Merge pull request `#50872`_ from Ch3LL/bp-50864

      * fc9c64b fix typo in file.managed documentation

      * fd73f86 Catch UnicodeDecodeErrors in id verification

* **PR** `#50937`_: (`Ch3LL`_) Fix external_pillars documentation
  @ *2018-12-20 19:15:20 UTC*

  * 49f2a35 Merge pull request `#50937`_ from Ch3LL/pillar_doc

  * 1f01489 Fix external_pillars documentation

* **ISSUE** `#50919`_: (`dpkirchner`_) state.apply test documentation unclear (refs: `#50940`_)

* **PR** `#50940`_: (`terminalmage`_) Fix confusing state module documentation
  @ *2018-12-20 18:29:26 UTC*

  * 4213527 Merge pull request `#50940`_ from terminalmage/issue50919

  * 3318927 Fix confusing state module documentation

* **PR** `#50929`_: (`twangboy`_) Fix `unit.utils.test_lgpo_netsh` on Windows for Py3 (2018.3)
  @ *2018-12-20 17:50:37 UTC*

  * 421e4f4 Merge pull request `#50929`_ from twangboy/fix_test_lgpo_netsh_2018.3

  * 01f9beb Fix failing lgpo netsh tests

* **PR** `#50917`_: (`dwoz`_) Cherry pick test fixes from fluorine
  @ *2018-12-19 17:56:19 UTC*

  * b08b7e1 Merge pull request `#50917`_ from dwoz/test_fixes

  * 16d10fb Fix linter warnings

  * b22f827 Increase and standardize ShellCase timeouts

  * a5c8c18 Do not pass unicode in environment

* **PR** `#50913`_: (`bdrung`_) Fix documentation build
  @ *2018-12-19 16:03:55 UTC*

  * 59df6b4 Merge pull request `#50913`_ from bdrung/fix-doc-build

  * ecdb452 doc: Indroduce MOCK_MODULES_MAPPING

  * cf64824 doc: Move mock_decorator_with_params up

  * 08ef669 doc: Address pylint issues in conf.py

  * 67a3e37 doc: Mark preamble variable as raw string

  * b1e6080 doc: Fix reference to salt executors

  * e48b324 doc: Replace \xa0 (non-breaking space) by spaces

  * b973e7a doc: Fix iterating over the Mock object in Python 3

  * bb29948 doc: Do not mock non-existing __mro_entries__ attribute

  * e6cf3c4 Do not mock json when building the documentation

  * 4acaf45 Fix sphynx error about tornado.version_info

* **ISSUE** `#50892`_: (`cruscio`_) archive.extracted source_hash is case sensitive (refs: `#50906`_)

* **PR** `#50906`_: (`garethgreenaway`_) [2018.3] Ensure source_hash returned from get_source_sum is lowercase.
  @ *2018-12-19 04:22:23 UTC*

  * f4e6b88 Merge pull request `#50906`_ from garethgreenaway/50892_archive_extracted_source_hash_case_sensitive

  * bcf8f06 fixing lint

  * 543ec7b Ensure source_hash returned from get_source_sum is lowercase.

* **PR** `#50867`_: (`Ch3LL`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-12-14 21:32:23 UTC*

  * b95b44f Merge pull request `#50867`_ from Ch3LL/merge-2018.3

  * 512293f Remove dunder_dictionaries.rst. Was added to modules/developing.rst

  * 89b4e09 Merge branch '2017.7' into '2018.3'

  * 858cfac Merge pull request `#50863`_ from 5uper5hoot/fix-issue-50848

    * c90d201 Unpack exception args in python3 compatible way.

  * e28b2ba Merge pull request `#50752`_ from kstreee/fix-memory-leak

    * 98cc63a Fixes a memory leak un-cleared stream connections.

  * 1f57602 Merge pull request `#50837`_ from Ch3LL/pyren_doc

    * a873019 Clarify py render docs when data context is available

  * fdff675 Merge pull request `#50844`_ from twangboy/fix_grains

    * 473f4d7 Fix some unrelated lint

    * fd1a072 Fix grains for future windows releases

  * 32dfaba Merge pull request `#50816`_ from dubb-b/2017.7

    * dc7ff48 Pinning bootstrap to the tagged version of salt.

  * b1e5f3f Merge pull request `#50709`_ from mattLLVW/service_unmask

    * b199255 Merge branch '2017.7' into service_unmask

    * 38addd1 salt style guideline

    * 823c4ad Implement unmask in states.services

    * 91a6bf5 Functional unmask, must add tests

  * e4e9563 Merge pull request `#50633`_ from astronouth7303/loader-docs

    * 03e3168 whitelist_modules is linked via enable_whitelist_modules for some reason? idk

    * 5ca1f8e Typos

    * 7cb1a87 Add a quick index of loader-related settings

    * 318ca48 Make a note to not import modules

    * 6294658 Merge remote-tracking branch 'origin/2017.7' into loader-docs

    * 678958e Editing

    * 9d59629 Merge branch '2017.7' into loader-docs

    * 374d0e9 Finish the last sections

    * 98da110 Migrate Dynamic Module Distribution to Modular Systems.

    * 1bdd49d Add more links and write some system summaries

    * bd3796a Update TOC

    * 3a9ab1b Merge dunders into developing, expand to cover all dunders.

    * d06739a Add short writeups for a bunch of systems.

    * 705e7e4 Add a bunch of cross linking

    * 40f9b16 Add missing module type sections

    * 172d8c2 Refactor headings

    * 53154a0 Oops, missed that

    * 0dcd341 Possible horrific use of toctrees? maybe

    * bed3509 Refactor, add a TOC

    * f647c1d Fill in some missing modules

    * 9d4b596 Merge branch '2017.7' into loader-docs

    * 26468df Add missing blank line

    * 205fea9 Some more revising

    * d4a8f7e Remove some code from some links

    * 65e4199 I feel like it should be up there

    * d44f5ce Rephrase footnote

    * 125e46e Add section on how modules get loaded, including giant table of names

    * 5bfc6c6 Update reference to modules/index

    * 4b096c1 Move all the module-development documentation into a single folder

  * dcdb9b2 Merge pull request `#50750`_ from bewing/pepa12

    * 9931a41 Fix last key detection in pepa key_value_to_tree

  * cb85d5d Merge pull request `#50733`_ from marmarek/patch-3

    * 1011421 Report salt-call exit code from ssh_py_shim.py

  * b086ff3 Merge pull request `#50756`_ from GwiYeong/local-client-fix

    * c488092 fix local client missing minion return

* **ISSUE** `#50850`_: (`akrus`_) key_cache: sched prints error messages in logs (refs: `#50859`_)

* **PR** `#50859`_: (`garethgreenaway`_) [2018.3] Fixes for key_cache and python3
  @ *2018-12-13 23:57:07 UTC*

  * 216fa14 Merge pull request `#50859`_ from garethgreenaway/50850_python_key_cache_file_binary

  * ebc9a01 When reading and writing the key cache file, when using Python3, ensuring the file is read & written in binary mode.

* **PR** `#50828`_: (`twangboy`_) Fix issues with lgpo state and util
  @ *2018-12-13 16:37:33 UTC*

  * 6b45aad Merge pull request `#50828`_ from twangboy/fix_lgpo

  * 05baa95 Merge branch '2018.3' into fix_lgpo

* **PR** `#50843`_: (`bdrung`_) Fix RemoveCapacityFromDiskgroupTestCase require pyvmomi
  @ *2018-12-12 20:36:32 UTC*

  * 6ea059d Merge pull request `#50843`_ from bdrung/fix-tests

  * 0d00ae4 Fix RemoveCapacityFromDiskgroupTestCase require pyvmomi

* **ISSUE** `#50829`_: (`ghost`_) process.absent UnicodeDecodeError (refs: `#50839`_)

* **PR** `#50839`_: (`terminalmage`_) Fix UnicodeDecodeError in ps module
  @ *2018-12-12 19:59:12 UTC*

  * 14d7d1d Merge pull request `#50839`_ from terminalmage/issue50829

  * 3a3d9b7 Ensure that unicode types returned from compatibility funcs

  * 1a00abc Add unit test for _get_proc_cmdline

  * 9eaa2ed Remove extraneous comments

* **ISSUE** `saltstack/salt#49393`_: (`Poil`_) file.directory recurse not always changing perms (refs: `#50653`_)

* **PR** `#50653`_: (`lexvella`_) Check file_mode in file.directory and _check_directory
  @ *2018-12-12 16:30:52 UTC*

  * 264a042 Merge pull request `#50653`_ from lexvella/2018.3

  * 4ea9386 Merge branch '2018.3' into 2018.3

  * 42e4ab3 Merge branch '2018.3' into 2018.3

  * 79f6b42 Check file_mode in file.directory and _check_directory

        * 1233e2b Fix some lint

        * 56c0e55 Fix issues with lgpo state and util

* **ISSUE** `#45026`_: (`angeloudy`_) bytes error in mysql module (refs: `#50823`_)

* **PR** `#50823`_: (`terminalmage`_) salt.modules.mysql: Decode fetch results before making string comparisons
  @ *2018-12-11 21:04:41 UTC*

  * a8ad17a Merge pull request `#50823`_ from terminalmage/issue45026

  * ec8e116 Decode fetch results before making string comparisons

* **PR** `#50817`_: (`dubb-b`_) Adding git 'v' to the bootstrap options
  @ *2018-12-11 17:28:10 UTC*

  * e31e731 Merge pull request `#50817`_ from dubb-b/2018.3

  * 48fc01f Adding git 'v' to the bootstrap options

* **PR** `#50780`_: (`twangboy`_) Add netsh mechanism in the LGPO module
  @ *2018-12-10 22:09:20 UTC*

  * 9b6b39c Merge pull request `#50780`_ from twangboy/lgpo_netsh

  * 5eea728 Fix some lint

  * f077783 Add some tests

  * 2dde12a Fix one more lint item

  * c55b7b4 Fix some lint

  * 1247598 Add more policies

  * b2b9795 Fix overly long lines

  * f18d1aa Add additional policies that use netsh

  * cb50648 Add versionadded tags

  * 00cbf26 Add the netsh mechanism to the lgpo module

* **PR** `#50783`_: (`sathieu`_) gitfs/git_pillar: Fix UnicodeDecodeError while cleaning stale refs
  @ *2018-12-10 20:34:53 UTC*

  * 0351296 Merge pull request `#50783`_ from sathieu/gitfs_stalerefs_unicode

  * ef160a6 gitfs/git_pillar: Fix UnicodeDecodeError while cleaning stale refs

* **ISSUE** `#45867`_: (`Nick2253`_) Icinga2 Module uses incorrect paths (refs: `#50615`_)

* **PR** `#50765`_: (`ClaudiuPID`_) Fix icinga2 cert path
  @ *2018-12-10 18:10:24 UTC*

  * **PR** `#50615`_: (`ClaudiuPID`_) Fixes icinga2 certs path for newer versions 2.8+ (refs: `#50765`_)

  * deadf9c Merge pull request `#50765`_ from ClaudiuPID/fix-icinga2-cert-path

  * ce1842e Merge branch '2018.3' into fix-icinga2-cert-path

  * 31878d5 Pylint fixes

  * 47bfba1 Migrated to cmd.run_all and tested on working srv

  * a1dddce Fixes icinga2 certs path for newer versions 2.8+

* **PR** `#50692`_: (`terminalmage`_) Update a couple test modules to use with_tempdir/with_tempfile decorators
  @ *2018-12-10 17:24:02 UTC*

  * 9f8289b Merge pull request `#50692`_ from terminalmage/update-tests

  * 36a4a1a Merge branch '2018.3' into update-tests

  * be14517 Make x509 tests use tempfiles instead of hard-coding them

  * a394cd7 Update file integration tests to use decorator for tempdirs

* **ISSUE** `#32245`_: (`tkwilliams`_) git_pillar should permit automatic mapping of environment to branch a-la gitfs  (refs: `#50768`_)

* **PR** `#50768`_: (`sathieu`_) git_pillar: Add support for all_saltenvs parameter
  @ *2018-12-10 16:39:37 UTC*

  * 3a71567 Merge pull request `#50768`_ from sathieu/git_pillar_all_saltenvs

  * e971412 git_pillar: Add support for all_saltenvs parameter

* **ISSUE** `#48801`_: (`dstoliker`_) salt.states.user.present - mindays, warndays, and inactdays won't return to salt's default values (refs: `#50796`_)

* **PR** `#50796`_: (`dwoz`_) Fix `#48801`_ min, max, inact, and warn changes
  @ *2018-12-10 16:30:14 UTC*

  * 12a8447 Merge pull request `#50796`_ from dwoz/issue48801

  * 6b95223 fix linter errors

  * 87a04df Fix `#48801`_ min, max, inact, and warn changes

* **ISSUE** `#46388`_: (`dynek`_) IPv4 & v6 network configuration on Debian (refs: `#49355`_)

* **ISSUE** `#40262`_: (`pjediny`_) Salt enforces configuration from /etc/network/interfaces.d/* to /etc/network/interface (refs: `#49355`_)

* **ISSUE** `#38672`_: (`valentin2105`_) IPv6 Network states is incomplete (refs: `#49355`_)

* **PR** `#50804`_: (`Ch3LL`_) Back-port `#49355`_ to 2018.3
  @ *2018-12-10 16:21:31 UTC*

  * **PR** `#49355`_: (`MTecknology`_) Improve management of interfaces in debian-based distributions (refs: `#50804`_)

  * **PR** `#46980`_: (`MTecknology`_) Fix broken rendering debian_eth.jinja. (refs: `#49355`_)

  * b266e8b Merge pull request `#50804`_ from Ch3LL/bp-49355

  * d34eade Use a temp file instead of /etc/network/interfaces for unit tests.

  * 622c354 Support reading multiple addresses from interface files.

  * 15c34fe Support unicode in space-delimited list; fixes unit tests in py2.

  * 0b59561 Added documentation about debian interfaces.d/\*. (Fixes: `#40262`_)

  * 1b096fb Removed python lint.

  * 6e41225 Finished adding support for multiple IP addresses.

  * 4c7df5f Cleaned up documentation/examples in states.network:

  * 601f434 Added support for -ipaddrs and -ipv6ipaddrs to modules.debian_ip().

  * 638f899 Added support for loopback devices to modules.debian_ip(). (Fixes: `#38672`_)

  * cf61c8d Added a bunch of unit tests for modules.debian_ip.build_interface().

  * b905cf6 Added support for dns_{nameservers,search} being a list or string.

* **PR** `#50767`_: (`dwoz`_) Make sure ldap passwords are honored
  @ *2018-12-05 22:59:17 UTC*

  * dc9414c Merge pull request `#50767`_ from dwoz/ldap_no_pass

  * 67aa591 Fix linter errors

  * be3945a Remove crufty import

  * 91f50a4 Add more ldap auth tests for ZD-2993

  * 055a8d5 Make sure ldap passwords are honored

* **ISSUE** `#50364`_: (`sathieu`_) git_pillar mountpoint ignores the root parameter (refs: `#50626`_)

* **PR** `#50626`_: (`sathieu`_) git_pillar: Allow root and mountpoint parameters together
  @ *2018-12-05 17:46:59 UTC*

  * 60aa0d5 Merge pull request `#50626`_ from sathieu/git_pillar_mountpoint_and_root

  * 5423c27 git_pillar: Allow root and mountpoint parameters together

* **PR** `#50745`_: (`bbinet`_) Fix grafana dashboard updating when nothing has changed
  @ *2018-12-04 19:26:32 UTC*

  * c02387e Merge pull request `#50745`_ from bbinet/fix-grafana-dashboard-update

  * 7019d47 Fix grafana dashboard updating when nothing has changed

* **PR** `#50737`_: (`garethgreenaway`_) [develop] Merge forward from 2017.7 to 2018.8 
  @ *2018-12-04 16:02:13 UTC*

  * ae81498 Merge pull request `#50737`_ from garethgreenaway/merge-2017.7

  * fde8db5 Merge branch '2017.7' into merge-2017.7

  * 246c055 Merge pull request `#50718`_ from dwoz/run_run_timeout

    * ecd8486 Honor run_run timeout for shell tests

  * 979b3aa Merge pull request `#50702`_ from damon-atkins/jenkins_pylint

    * 5936066 ensure archiveArtifacts are always collected. Use CHANGE_BRANCH to detect merge-forward

  * 22acaaa Merge pull request `#50632`_ from astronouth7303/loader-exception-handler

    * 0f72815 Merge branch '2017.7' into loader-exception-handler

  * d9e7be1 Merge pull request `#50670`_ from damon-atkins/jenkins_pylint

    * b6d1605 ci/lint corrected filenames and test condition on full lint Also fix CODEOWNER team name

      * 194801a Merge branch 'loader-exception-handler' of github.com:astronouth7303/salt into loader-exception-handler

        * dadeb0d Merge branch '2017.7' into loader-exception-handler

      * 8697744 Use single quotes per style guide

      * 07868f1 Improve logging output

      * fb05bd5 Eat an exception from an entry point instead of letting it kill the system.

* **PR** `#50685`_: (`Ch3LL`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-11-30 18:46:07 UTC*

  * edaa9fe Merge pull request `#50685`_ from Ch3LL/merge_2018.3

  * d46aff0 Merge branch 2017.7 into 2018.3

    * 6dc3afc Merge pull request `#50672`_ from garethgreenaway/49691_file_replace_search_only_return_false

      * 7e7df06 lint

      * 6b73c76 When using file.replace, with the search_only option, if the pattern does not exist in the file then we should return False.

    * 1236b51 Merge pull request `#50659`_ from garethgreenaway/49954_gem_installed_less_than_greater_than_support

      * 0ec8bcf When using the gem installed state, when passing a version that includes greater than or less than symbols, ensure that the installed versions meets that requirement.

    * 6317f3a Merge pull request `#50583`_ from damon-atkins/jenkins_pylint

      * 2d1f51c Fix lint only changes, full lint on merge forwards - lint only changes previous diff picked up out of data files, when the branch was out of date. - full limit on merge forward to pick up changes in the lint checks between versions. - update CODEOWNERS for .ci/*

    * 15bf09a Merge pull request `#50605`_ from Oloremo/fix-supervisord-dead-state-idempotency

      * ba3f281 Merge branch '2017.7' into fix-supervisord-dead-state-idempotency

      * cf9ab84 Merge branch '2017.7' into fix-supervisord-dead-state-idempotency

      * af386a2 Fixed the supervisord.dead state idempotency

* **ISSUE** `#50016`_: (`abednarik`_) State augeas.change do not update config file (refs: `#50690`_)

* **PR** `#50690`_: (`garethgreenaway`_)  [2018.3] fixes to augeas_cfg module
  @ *2018-11-30 18:44:42 UTC*

  * 7cb2405 Merge pull request `#50690`_ from garethgreenaway/50016_ensure_path_is_str

  * cec7cb4 Older versions of python-augeas need the path passed to aug.match to be a string.

* **ISSUE** `#49392`_: (`Poil`_) hosts not replacing existing entry (refs: `#50657`_)

* **PR** `#50657`_: (`terminalmage`_) Rewrite host.present state to allow for removal of entries not matching IP
  @ *2018-11-29 17:58:40 UTC*

  * a5c7639 Merge pull request `#50657`_ from terminalmage/issue49392

  * 2ddb587 Add release notes for new "clean" option

  * e4946f9 Rename "remove" argument to "clean"

  * 7fd3bce Add remove parameter to host.present state

  * 2671a30 Add unit tests for host.present state

  * 30f1b85 Remove non-matching IPs from hosts file

  * ec297a0 Performance improvements in hosts module

  * d1c2038 Add generic ip address validation function

  * 9f54720 Add ignore ability to process_read_exception

* **ISSUE** `#48759`_: (`MyIgel`_) acme.cert: Fail to update certificate after adding aliases / missing --expand (refs: `#50683`_)

* **PR** `#50683`_: (`garethgreenaway`_) [2018.3] Fixes to acme module when adding aliases to existing certificate
  @ *2018-11-29 17:46:54 UTC*

  * b604785 Merge pull request `#50683`_ from garethgreenaway/48759_adding_aliases_include_expand

  * 3940a0f When adding alises to an existing Certbot certificate, if we see a message about expanding in the stderr returned from cmd.run_all we should rerun the cmd with --expand included.

* **ISSUE** `#50406`_: (`glkappe`_) salt-ssh can't use Mongo returner (refs: `#50664`_)

* **PR** `#50664`_: (`garethgreenaway`_)  [2018.3] Fix to logic for configuring returners
  @ *2018-11-28 05:24:30 UTC*

  * 15f9ae4 Merge pull request `#50664`_ from garethgreenaway/50406_salt_ssh_returner_configuration

  * 3525411 When pulling values out of the available configuration for returners we should always default to using keys for those returners, eg. mongo.user for the username.  Otherwise in certain situations, eg. when using salt-ssh we will end up with the wrong value for the user.

* **PR** `#50652`_: (`twangboy`_) Fix `unit.utils.test_mac_utils` on Windows
  @ *2018-11-27 20:45:41 UTC*

  * afbcf03 Merge pull request `#50652`_ from twangboy/fix_test_mac_utils

  * c4cb729 Fix path issues with the tests

* **PR** `#50640`_: (`garethgreenaway`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-11-26 22:33:22 UTC*

  * 61a824f Merge pull request `#50640`_ from garethgreenaway/merge-2017

  * 409c98f Merge branch '2018.3' into merge-2017

* **ISSUE** `#50403`_: (`prometheanfire`_) tornado 5.1.1 is not co-installable with salt on python2.7 (refs: `#50639`_)

* **PR** `#50639`_: (`dwoz`_) Handle pipenv like version restrictions
  @ *2018-11-26 19:42:11 UTC*

  * 20a2de3 Merge pull request `#50639`_ from dwoz/pipfix

  * 9c6f653 Handle pipenv like version restrictions

    * fced78b lint

    * 45a1aa3 Merge branch '2017.7' into merge-2017

    * b2cf134 Merge pull request `#50463`_ from dwoz/zmqpubserv

      * a289e3c Merge branch '2017.7' into zmqpubserv

    * 6679242 Merge pull request `#50590`_ from garethgreenaway/bp-50333

      * 1f5aa4b pkg.installed currently fails when sources is used along with hold: True.  This was due to a change in `#48426`_ that swapped out sending the pkgs variable for the desired variable instead.  This caused problems with pkg.hold because desired and sources are always populated, and pkg.hold can only include one or the other.  This change just includes desired in the call to pkg.hold since desired has the same value for sources.

        * 39e811b Add issue url to tests

        * c4d7a43 Add debug log when connecting

        * 4f81432 Set subscribe via sockopt for better compatibility

        * 6882209 More reliable pub server publishing

* **ISSUE** `#49957`_: (`whytewolf`_) salt-master scheduled items ignore maxrunning. (refs: `#50130`_)

* **PR** `#50130`_: (`garethgreenaway`_) [2018.3] Fixes to schedule maxrunning on master
  @ *2018-11-26 18:35:35 UTC*

  * 5b7ab35 Merge pull request `#50130`_ from garethgreenaway/49957_master_schedule_ignoring_maxrunning

  * 2f6dac9 Updating test_maxrunning_master to Mock get_running_jobs.

  * abda0a4 Reverting changes to doc/conf.py.

  * 6d072fc Some additional cleanup.

  * 4bd0406 Adding integration.scheduler.test_maxrunning to ignore list.

  * 45e160d Adding integration.scheduler.test_maxrunning to filename_map.yml

  * 2201a46 Fixing lint

  * 6c0ee32 removing unused cache_jobs function from utils/master.py

  * c2ed1d4 Adding some logging when the cache files are unable to be removed.

  * 44940d6 Ensure minion tests using minion options.

  * 722be43 Fixing lint

  * 65b4421 Adding some master specific functions to uitls/masters.py to determine if a Salt process is running.  Updating utils/schedule.py to use the appropriate running function either from utils/master.py or utils/minion.py depending on where the scheduled job is running.  Adding tests to test maxrunning in scheduled jobs for both the minion and master.

  * 0d65304 Swapping manual mocking to autodoc_mock_imports

* **ISSUE** `#50542`_: (`doug-stratoscale`_) mysql.user_exists doesn't work with Mysql 8.0.13 (refs: `#50551`_)

* **PR** `#50551`_: (`garethgreenaway`_) [2018.3] Fixes to verify_login in mysql module
  @ *2018-11-26 17:44:25 UTC*

  * 26759c2 Merge pull request `#50551`_ from garethgreenaway/50542_mysql_ensure_verify_login_uses_connection_host

  * 96742aed4 Merge branch '2018.3' into 50542_mysql_ensure_verify_login_uses_connection_host

  * eb510a6 Merge branch '2018.3' into 50542_mysql_ensure_verify_login_uses_connection_host

  * 6d2309d Merge branch '2018.3' into 50542_mysql_ensure_verify_login_uses_connection_host

  * db89b27 Merge branch '2018.3' into 50542_mysql_ensure_verify_login_uses_connection_host

  * 0284323 Ensure that verify_login is using the host from the connection_args and not the host associated with the user.  Adding a test to ensure user_exists when the passed host is the MySQL wildcard %.

* **PR** `#50619`_: (`s0undt3ch`_) Don't squash tracebacks and Unicode fixes
  @ *2018-11-26 17:04:31 UTC*

  * 14c4fd5 Merge pull request `#50619`_ from s0undt3ch/2018.3

  * a4771d2 UNICODE!

  * 72205a5 DO! NOT! SQUASH! TRACEBACKS!

* **ISSUE** `#50562`_: (`soostdijck`_) scheduled highstate ignores blackout (refs: `#50586`_)

* **PR** `#50586`_: (`garethgreenaway`_) [2018.3] minion_blackout for scheduled jobs
  @ *2018-11-23 11:15:38 UTC*

  * 59809a1 Merge pull request `#50586`_ from garethgreenaway/50562_minion_blackout_scheduler

  * 48673b7 Adding some defaults for minion_blackout code when pillar & grains are not available in opts.  Removing some debugging code.

  * 9f422b2 Moving the minion_blackout code to the start of the try...except.  Adding a test to ensure we get a log.exception when minion_blackout is True.

  * 2bf8fa5 Adding support for minion_blackout for jobs that are run from the Salt scheduler.

* **PR** `#50576`_: (`garethgreenaway`_) Back-port PR `#50549`_ to 2018.3
  @ *2018-11-21 14:39:55 UTC*

  * **PR** `#50549`_: (`cachedout`_) Add security credits to release notes (refs: `#50576`_)

  * 5c28179 Merge pull request `#50576`_ from garethgreenaway/bp-50549

  * 807068d Typo fix

  * 2ef8307 Typo fix

  * 7c8957a Typo fix

  * c1ca603 Merge branch '2018.3' into bp-50549

  * b163380 Add security credits to release notes

* **PR** `#50599`_: (`terminalmage`_) Merge Sphinx fixes from 2017.7 to 2018.3
  @ *2018-11-21 13:31:18 UTC*

  * c9531d8 Merge pull request `#50599`_ from terminalmage/merge-2018.3

  * ba82b07 Merge remote-tracking branch 'upstream/2017.7' into merge-2018.3

  * 1b8a8ac Merge pull request `#50592`_ from terminalmage/docs-2017.7

    * db15776 Remove overline from section title

    * 8127dd5 Disable unused shorturls plugin

* **ISSUE** `#50254`_: (`jmcook1`_) file.line adding line every time (refs: `#50366`_)

* **PR** `#50366`_: (`t0fik`_) 2018.3 fix issue50254
  @ *2018-11-20 20:31:30 UTC*

  * 60b4622 Merge pull request `#50366`_ from jdsieci/2018.3-fix-issue50254

  * a9b9fa2 Fixed pylint warnigs

  * 342786b Issue `#50254`_ fixed

  * 1ab59e7 Added integration tests

  * 110f74f Added unit tests reproducing issue

* **ISSUE** `#50558`_: (`angeloudy`_) 'test=True' does not work with artifactory.download (refs: `#50580`_)

* **ISSUE** `#50155`_: (`mikemartino`_) artifactory.downloaded state is not respecting test=True (refs: `#50580`_)

* **PR** `#50580`_: (`garethgreenaway`_) [2018.3] Adding test=True to artifactory.download.
  @ *2018-11-20 16:37:14 UTC*

  * 735c9f4 Merge pull request `#50580`_ from garethgreenaway/50155_artificatory_download_state_test_true

  * 7dd57d0 Lint.

  * 3661ee0 Adding test=True to artifactory.download.

* **ISSUE** `#46292`_: (`asymetrixs`_) win_wua should have possibility to specify source file (refs: `#50397`_)

* **PR** `#50577`_: (`garethgreenaway`_) Back-port PR `#50397`_ to 2018.3
  @ *2018-11-19 21:28:42 UTC*

  * **PR** `#50397`_: (`tlemarchand`_) Add Win WUSA management, to install Windows Update files (.msu). (refs: `#50577`_)

  * 015834d Merge pull request `#50577`_ from garethgreenaway/bp-50397

  * dd2d872 Documentation

  * af6d21f Import unicode_literals from future and add versionadded tag

  * 09dc09d Disable powershell modules list Add list_kbs function

  * 05852d0 pchanges to changes named parameters

  * 16525e4 Add Win WUSA management, to install Windows Update files (.msu).

* **PR** `#50570`_: (`garethgreenaway`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-11-19 20:04:05 UTC*

  * 12e0d80 Merge pull request `#50570`_ from garethgreenaway/merge-2018.3

  * 4c85119 merge-forward 2017.7 to 2018.3

  * 02238a7 Merge pull request `#50520`_ from dwoz/issue_50459

    * 1aa2e34 Simplifie and portable homedir lookup

    * f14f747 Fix windows home dir lookup

    * d3620c3 Always set .gitconfig dir to user's home

  * edd9738 Merge pull request `#50532`_ from dubb-b/2017.7

    * 009e52d Adding tag to ec2 cloud tests

  * b0446f5 Merge pull request `#50500`_ from terminalmage/2017.7-docs

    * 870a364 Set docs jenkins job to treat warnings as errors

    * e03bdcd Update docs references for states with func_alias

    * 8a2c08f Disable custom sphinx automodule

* **ISSUE** `#50266`_: (`4815162342lost`_) grains.virtual show incorrect info (refs: `#50519`_)

* **PR** `#50519`_: (`garethgreenaway`_) [2018.3] Fix to virtual core grain
  @ *2018-11-16 23:42:18 UTC*

  * 6fba83c Merge pull request `#50519`_ from garethgreenaway/50266_core_virtual_grain_fixes

  * dcae2f0 Merge branch '2018.3' into 50266_core_virtual_grain_fixes

* **PR** `#50427`_: (`sathieu`_) Backports git_pillar tests improvements to 2018.3
  @ *2018-11-16 16:37:29 UTC*

  * **PR** `#50425`_: (`sathieu`_) git_pillar: Add tests for mountpoint parameter (refs: `#50427`_)

  * **PR** `#50407`_: (`sathieu`_) git_pillar: Add tests for root parameter (refs: `#50427`_)

  * **PR** `#50378`_: (`sathieu`_) Don't fail on git_pillar tests when destructive tests are not enable (refs: `#50427`_)

  * 84edd62 Merge pull request `#50427`_ from sathieu/bp-git_pillar_tests

  * 12ea1cc git_pillar: Add tests for mountpoint parameter

  * fce467e git_pillar: Add tests for root parameter

  * ba150a5 Don't fail on git_pillar tests when destructive tests are not enable

* **PR** `#50530`_: (`terminalmage`_) Enable proxy/ssh daemons when filename mapping causes those tests to be run
  @ *2018-11-15 23:03:06 UTC*

  * 4651481 Merge pull request `#50530`_ from terminalmage/salt-jenkins-1209

  * fbee11d Enable proxy/ssh daemons when filename mapping causes those tests to be run

  * 4f30611 lint

  * 4f9eb95 Fixing a typo in the _virtual function, should be checking for existing grains in osdata not grains.  Updating the detection to look for /sys/bus/xen/drivers/xenconsole instead of specifically looking for any files under /sys/bus/xen/drivers.  Some systems that are not running as Xen PV hosts include files under that location, particular Oracle Linux.

* **ISSUE** `#50224`_: (`mruepp`_) Augeas changes state with setm not working (refs: `#50526`_)

* **PR** `#50526`_: (`terminalmage`_) Work around augeas' lack of unicode support
  @ *2018-11-15 17:33:26 UTC*

  * 6c07ba4 Merge pull request `#50526`_ from terminalmage/issue50224

  * ee246ed Work around augeas' lack of unicode support

* **PR** `#50503`_: (`terminalmage`_) Set jenkins docs job to treat any warnings as errors (2018.3 branch)
  @ *2018-11-14 19:30:24 UTC*

  * d83da51d Merge pull request `#50503`_ from terminalmage/2018.3-docs

  * a4fc108 Fix docs configuration for renamed logstash engine

  * 5b06464 Set docs jenkins job to treat warnings as errors

  * 9b6c669 Update docs references for states with func_alias

  * 62b5d40 Disable custom sphinx automodule

* **ISSUE** `#48343`_: (`bornwitbugs`_) CPU Beacon TypeError (refs: `#50514`_)

* **PR** `#50514`_: (`bornwitbugs`_) Load beacon fix
  @ *2018-11-14 19:20:33 UTC*

  * fa2f4a5 Merge pull request `#50514`_ from bornwitbugs/load_beacon_fix

  * e59ced6 Merge branch '2018.3' of github.com:saltstack/salt into load_beacon_fix

* **PR** `#50509`_: (`Ch3LL`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-11-14 17:52:06 UTC*

  * a50377b Merge pull request `#50509`_ from Ch3LL/merge-2018.3

  * 178dab3 Merge branch 2017.7 into 2018.3

  * c00fd43 Merge pull request `#50493`_ from rallytime/bp-50362

    * 60559cf Remove flaky test

    * a696a8f Fix test_matcher on Windows

  * 3cac1d0 Merge pull request `#50494`_ from terminalmage/2017.7-docs

    * d561b26 Late import to fix docs build errors

  * 0829944 Merge pull request `#50479`_ from Ch3LL/digital_ocean_location

    * 917781d Lint: Add blank line

    * 3583519 Update digital ocean location for cloud tests

  * accf681 Merge pull request `#50480`_ from terminalmage/docs

    * c34690e Don't import obsolete Directive class from Sphinx

  * 2e9b3d2 Merge pull request `#50478`_ from rallytime/update-bootstrap-docs

    * 66b078c Update the bootstrap script documentation to point to bootstrap repo

* **PR** `#50502`_: (`twangboy`_) Add definition for RestrictRemoteSAM
  @ *2018-11-14 14:30:38 UTC*

  * 55b4914 Merge pull request `#50502`_ from twangboy/lgpo_2018.3

  * fe92a3a Add definition for RestrictRemoteSAM

* **ISSUE** `#48734`_: (`oddfellow`_) salt-run jobs.list_jobs has Target: unknown-target (refs: `#50328`_)

* **ISSUE** `#43453`_: (`kunal-bajpai`_) Runner job `load` is never saved to job cache (refs: `#43454`_)

* **PR** `#50328`_: (`rallytime`_) Fix issue with salt-run jobs.list_jobs where Target: unknown-target 
  @ *2018-11-13 19:49:58 UTC*

  * **PR** `#43454`_: (`kunal-bajpai`_) Fix save_load which is never called for returner jobs (refs: `#50328`_)

  * c1dde7e Merge pull request `#50328`_ from rallytime/fix-48734

  * 2c51cf9 Make target test job more specific to reduce test flakiness

  * caace3f Rewrite job cache target test to be more robust

  * b29fcfa New test must be py3 compatible...oops. :)

  * c684c29 Fix issue `#48734`_

  * 6859e0e Add regression test for issue `#48734`_

* **PR** `#50499`_: (`dwoz`_) Fix 2018.3 build
  @ *2018-11-13 18:46:54 UTC*

  * 351faeb Merge pull request `#50499`_ from dwoz/build_fix

  * 5754b4a Fix 2018.3 build

* **PR** `#50496`_: (`terminalmage`_) Fix 2018.3 docs build warnings
  @ *2018-11-13 17:21:09 UTC*

  * 6f4b23f Merge pull request `#50496`_ from terminalmage/2018.3-docs

  * cb25641 Fix header underline length to avoid another sphinx warning

  * 9272f7b Fix more sphinx build errors

  * 18a8104 Late import to fix docs build errors

  * d457132 Fix sphinx build warnings in 2018.3 branch

* **ISSUE** `#50227`_: (`sheagcraig`_) mac_utils `_available_services` will fail with malformed launchd plists present (refs: `#50228`_)

* **PR** `#50492`_: (`rallytime`_) Back-port `#50228`_ and `#50443`_ to 2018.3
  @ *2018-11-13 16:59:15 UTC*

  * **PR** `#50443`_: (`weswhet`_) fix when checking for service Label on macOS (refs: `#50492`_)

  * **PR** `#50228`_: (`sheagcraig`_) Fix 50227 malformed plists (refs: `#50492`_, `#50443`_)

  * 6b272c1 Merge pull request `#50492`_ from rallytime/bp-50228-and-50443

  * 7879a2d Fix logging format

  * f578392 Lint Fix: add mock_open import

  * e5b999b add try/except when checking for service Label

  * 3c36bdd Fix linting errors.

  * fab57de Write tests to handle invalid launchd plist XML.

  * bb429b0 Condense service result assertions, add a binary plist test.

  * a809fef Factor out another helper function, implement broken symlink test.

  * 216f7ef Update testing for mac_utils services.

  * 89d8267 Fix trailing-slash bug in User LaunchAgent appending.

  * 0e23b6e Handle bad plists by ignoring them, with py2 and py3 specific approaches

  * fa44149 Avoid `AttributeError` when checking for exception types.

  * fd62b33 Add secondary exception handler for malformed plists.

  * ae6f49b Make test correctly generate a double exception.

* **PR** `#50486`_: (`twangboy`_) Back port lgpo from Fluorine
  @ *2018-11-13 09:40:17 UTC*

  * da980d9 Merge pull request `#50486`_ from twangboy/lgpo_2018.3

  * bbbc07b Back port lgpo from Fluorine

* **ISSUE** `#50218`_: (`ata-sql`_) git.latest with unless command fails after upgrade to 2018.3.3 (refs: `#50456`_)

* **PR** `#50456`_: (`terminalmage`_) Two bugfixes
  @ *2018-11-13 06:06:52 UTC*

  * 7dd3438 Merge pull request `#50456`_ from terminalmage/issue50218

  * 6143408 Add unit test for TimedProc regression

  * e234abd Add support for list of commands in git states' onlyif/unless

  * cbf05c8 TimedProc: Don't assume args is a string

  * 87de250 Exit gracefully when mod_run_check raises exception

* **PR** `#50455`_: (`dubb-b`_) Adding the released version as the bootstrap minion.
  @ *2018-11-12 22:52:53 UTC*

  * d8514e6 Merge pull request `#50455`_ from dubb-b/2018.3

  * fb61482 adding git

  * 181b8a4 removing stable

  * fc93ad6 Adding the released version as the bootstrap minion.

* **PR** `#50483`_: (`rallytime`_) Back-port `#50272`_ to 2018.3
  @ *2018-11-12 22:45:05 UTC*

  * **PR** `#50272`_: (`jyurdal`_) Fix out of order docker Env comparison (refs: `#50483`_)

  * cfb3351 Merge pull request `#50483`_ from rallytime/bp-50272

  * 0f02da7 Remove unnecessary u prefix from string literals

  * fc26ae8 Add unit test for comparing containers with the same env vars

  * cf7cb4b extra blank line after function definition(pylint)

  * 1de9ce3 Compare sorted docker environment

* **PR** `#50481`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-11-12 22:44:15 UTC*

  * 360ae6a Merge pull request `#50481`_ from rallytime/merge-2018.3

  * 1517bb3 Update old utils paths to use new paths

  * d8e7c47 Merge branch '2017.7' into '2018.3'

  * e5f97cd Merge pull request `#50467`_ from dwoz/test_kitchen_up

    * 8c5e93e Use patched version of test-kitchen until next release

  * b16ff9c Merge pull request `#50469`_ from dwoz/minion_timeout_test

    * 57f702d Fix linter warning

    * 686153a Fix up integration.minion.test_timeout

  * 45b438e Merge pull request `#50470`_ from dwoz/set_time_flaky

    * 794ba17 Reset date and time after changing

  * c85561e Merge pull request `#50442`_ from rallytime/replace-docbanner

    * 193325d Update docbanner hyperlink

  * 7200568 Merge pull request `#50439`_ from rallytime/bootstrap-contributing-docs

    * d2158aa Add bootstrap section to contributing docs

  * cca7a36 Merge pull request `#50441`_ from rallytime/replace-docbanner

    * 2af92bd Update SaltConf doc banner

  * 1e72d20 Merge pull request `#50414`_ from flassman/backmerge-for-typeerror-windows-python3

    * 20fff15 use exc.winerror not exc[0] to avoid python3 TypeError

  * 93095cb Merge pull request `#50415`_ from flassman/pass-cwd-to-runas_system

    * 0113137 cwd needs to be passed from runas() to runas_system()

* **ISSUE** `#50461`_: (`absolutejam`_) elementaryOS 'pkg' __virtual__ returned false (refs: `#50468`_)

* **PR** `#50468`_: (`garethgreenaway`_)  [2018.3] Adding elementary override to grains/core.py
  @ *2018-11-12 16:41:57 UTC*

  * 3aaad17 Merge pull request `#50468`_ from garethgreenaway/50461_fix_elementary_os_family_grain

  * 77e8dcc On later versions of elementary, the os_family is being populated as elementary.  In order for the aptpkg module to function, we need to override is to be Debian.

* **ISSUE** `#50311`_: (`marek-obuchowicz`_) pkg.installed state fails even though it suceeded (refs: `#50590`_, `#50333`_)

* **ISSUE** `#46689`_: (`mxork`_) pkg.installed: hold: True not applied to a package which is already installed. (refs: `#48426`_)

* **PR** `#50333`_: (`garethgreenaway`_) [2018.3] Fix to pkg.installed for sources and hold: True (refs: `#50590`_)
  @ *2018-11-08 18:02:33 UTC*

  * **PR** `#48426`_: (`garethgreenaway`_) [2017.7] fixes to states/pkg.py (refs: `#50333`_)

  * d9179fb Merge pull request `#50333`_ from garethgreenaway/50311_pkg_installed_fails_sources_hold

  * 7bc9b3d Merge branch '2018.3' into 50311_pkg_installed_fails_sources_hold

  * 6e96728 pkg.installed currently fails when sources is used along with hold: True.  This was due to a change in `#48426`_ that swapped out sending the pkgs variable for the desired variable instead.  This caused problems with pkg.hold because desired and sources are always populated, and pkg.hold can only include one or the other.  This change just includes desired in the call to pkg.hold since desired has the same value for sources.

* **PR** `#50434`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-11-08 17:40:39 UTC*

  * 193c80a Merge pull request `#50434`_ from rallytime/merge-2018.3

  * 83dfbb2 Merge branch '2017.7' into '2018.3'

    * ef4509e Merge pull request `#50370`_ from dwoz/pubd_msg_logs

      * 58ced12 log jid to payload size

      * 3c537b5 Log message flow to publish daemon

* **PR** `#50417`_: (`meaksh`_) Get the right target when using "__env__" on git ext_pillar to avoid merging problems
  @ *2018-11-08 17:07:03 UTC*

  * 73ce80f Merge pull request `#50417`_ from meaksh/2018.3-fix-git_pillar-__env__-solving-for-merging

  * 71af32d Remove unicode references

  * b7af5e5 Test git ext_pillar across multiple repos using __env__

  * 59894e2 Resolve target branch when using __env__

* **ISSUE** `#50292`_: (`dstoliker`_) sysctl in test=True mode results in [ERROR   ] Could not open sysctl file (refs: `#50423`_)

* **PR** `#50423`_: (`garethgreenaway`_) [2018.3] Fixes to sysctl modules and state
  @ *2018-11-08 14:13:00 UTC*

  * e9464c9 Merge pull request `#50423`_ from garethgreenaway/50292_no_error_log_test_true

  * 95a7f12 Adding file check and empty list return to freebsd_sysctl.py

  * 469c090 Adding a check to see if the config file exists, if not then return an empty list so we get the would be changes.  Adding a test for this functionality.

* **ISSUE** `#50420`_: (`weswhet`_) mac_system virtual function fails to load on 2018.3.3 (refs: `#50421`_)

* **PR** `#50421`_: (`weswhet`_) fixing an issue on mac_system where the virtual function wouldnt load
  @ *2018-11-07 21:57:44 UTC*

  * fccf875 Merge pull request `#50421`_ from weswhet/fix-mac_system-loader

  * 042445d fixing an issue on mac_system where the virtual function wouldnt load

* **PR** `#50409`_: (`casselt`_) Fix test mode for mount state if device_name_regex is used.
  @ *2018-11-07 16:04:45 UTC*

  * d2fc910 Merge pull request `#50409`_ from casselt/mount-device_name_regex-test-mode-fix

  * 56d5a32 Fix test mode for mount state if device_name_regex is used.

* **PR** `#50383`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-11-06 15:51:53 UTC*

  * c2fda9d Merge pull request `#50383`_ from rallytime/merge-2018.3

  * e993692 Merge branch '2017.7' into '2018.3'

    * cd7c95f Merge pull request `#50128`_ from mgomersbach/fix-py3-reload-compat

      * e453e82 Satisfy pylint, use naming instead of W or E classification

      * d20581c Merge branch 'fix-py3-reload-compat' of github.com:mgomersbach/salt into fix-py3-reload-compat

        * 48c6a4f Merge branch '2017.7' into fix-py3-reload-compat

      * 5cd9741 Satisfy pylint

      * a2838db Satisfy pylint checks

      * 05c598c Fix import error by utilizing six and strict version spec

      * 95174e6 Merge branch '2017.7' into fix-py3-reload-compat

      * ab8b5b4 Update workaround to root of file

      * 37ab1f8 Update workaround to root of file

      * 253ab11 Workaround for py2 builtin, =<3.3 imp and >=3.4 libimport quirks, solves `#50127`_

    * aa6b149 Merge pull request `#50354`_ from rallytime/version_num_docs

      * 0621f7d Add a few more feature release codenames to the version_numbers doc

    * 6472100 Merge pull request `#50359`_ from dwoz/clitest

      * 18b5d43 Increase cli batch test timeout for increased reliablity

    * 99c8f35 Merge pull request `#50345`_ from dwoz/pub_d_logging

      * fd58523 Fix linter warnings

      * 5e1db3c Fix ZMQ PubServer daemon logging works on winndows

      * 8899832 Configure logging for ZMQ PubServer daemon

    * 44f7af4 Merge pull request `#50350`_ from dubb-b/2017.7

      * 346a831 Updating the AMI's and sizes for the test run.

    * b947a18 Merge pull request `#50274`_ from rallytime/bp-41472

      * 0a1e607 When the minion key is denied by the master then exit status 77 (permission denied)

    * 4725acd Merge pull request `#50195`_ from damon-atkins/jenkins_pylint

      * eb13407 capture some extra info

    * ab8e845 Merge pull request `#50329`_ from twangboy/fix_cloud_winrm

      * cf5fb04 Check WinRM port before initiating connection

    * e535b38 Merge pull request `#50252`_ from dwoz/backport_fs_fix

      * 59ac284 Do not allow age to be a negative number

* **ISSUE** `#49523`_: (`MTecknology`_) [salt-cloud] Non-ascii chars cause an exception in salt-cloud (refs: `#50146`_, `#50236`_)

  * **PR** `saltstack/salt#50174`_: (`rallytime`_) Back-port `#50146`_ to 2018.3 (refs: `#50231`_)

* **PR** `#50236`_: (`rallytime`_) Fix salt-cloud UnicodeEncodeError when writing to stdout
  @ *2018-11-05 22:04:18 UTC*

  * **PR** `#50235`_: (`rallytime`_) Don't encode the return values in utils/vt.py (refs: `#50236`_)

  * **PR** `#50231`_: (`rallytime`_) Revert "Back-port `#50146`_ to 2018.3" (refs: `#50236`_)

  * **PR** `#50230`_: (`rallytime`_) Add various ssh tests to the filemap for salt/utils/vt.py changes (refs: `#50291`_, `#50235`_)

  * **PR** `#50174`_: (`rallytime`_) Back-port `#50146`_ to 2018.3 (refs: `#50236`_)

  * **PR** `#50146`_: (`MTecknology`_) Improve handling of non-ascii characters in terminal output. (Fixes: `#49523`_) (refs: `#50235`_, #`saltstack/salt`#50174`_`_, `#50174`_, `#50231`_, `#50236`_)

  * 46c7dc2d Merge pull request `#50236`_ from rallytime/fix-cloud-vt

  * c1984c9 Fix salt-cloud UnicodeEncodeError when writing to stdout

* **ISSUE** `#50062`_: (`whytewolf`_) max_event_size does not always trim large events.  (refs: `#50382`_)

* **PR** `#50382`_: (`garethgreenaway`_) [2018.3] Fix to utils/dicttrim.py to honor max_event_size with nested dictionaries
  @ *2018-11-05 20:04:06 UTC*

  * ed4fa87 Merge pull request `#50382`_ from garethgreenaway/50062_max_event_size_does_not_always_trim_large_events

  * 039f3d1 Increase limit for trimming.

  * 7f77bfe Adding test for utils/dicttrim.py

  * 9b55ac7 Adding _trim_dict_in_dict to utils/dictrim.py to be called from trim_dict when data contains a nested dictionary.  This will ensure that values will still be trimmed correctly.

* **PR** `#50387`_: (`rallytime`_) Back-port `#50339`_ to 2018.3
  @ *2018-11-05 20:03:15 UTC*

  * **PR** `#50339`_: (`bartlaarhoven`_) The driver requires dependency, not the other way around. (refs: `#50387`_)

  * 493d653 Merge pull request `#50387`_ from rallytime/bp-50339

  * a3f264d Lint: Add extra blank line

  * bd18412 The driver requires dependency, not the other way around.

* **ISSUE** `#41342`_: (`githubcdr`_) beacons.state does not save as list (refs: `#50347`_)

* **PR** `#50347`_: (`garethgreenaway`_) [2018.3] Fixes to beacon state module
  @ *2018-11-05 14:19:41 UTC*

  * 3022b7d Merge pull request `#50347`_ from garethgreenaway/41342_beacon_state_module_fixes

  * 8885d1f Merge branch '2018.3' into 41342_beacon_state_module_fixes

  * c2354a9 Fixing beacon state test.  Adding a reset function to beacon module to clear out beacon configuration.  Useful for tests runs to ensure bits are left over between runs.

  * 2390f47 Adding SaltReturnAssertsMixin back in

  * 677d090 Remove zookeeper reference.

  * f3dee43 Updating the beacon state module to ensure that the format of the beacon data that is being sent along to the beacon execution module is in the right format.

* **ISSUE** `#41583`_: (`seanjnkns`_) mount.swap for swap file test=True results wrong (refs: `#50358`_)

* **PR** `#50358`_: (`garethgreenaway`_) [2018.3] fixes to function mount.swap in mount state
  @ *2018-11-05 14:16:50 UTC*

  * 929525a Merge pull request `#50358`_ from garethgreenaway/41583_mount_swap_test_true_wrong_results

  * b8ded8b Updating the swap function in the mount.swap function also check the device name when checking the fstab data.  Updating tests to reflect new behavior.

                    * d07c84d reordering ret dictionary in load test to ascending order

                    * f704128 fixing type in load beacon module and adding option validators to config check function along with mock default values in test, fixes `#48343`_

                    * 4114a4f fixing type in load beacon module and adding option validators to config check function along with mock default values in test

* **ISSUE** `#49225`_: (`onnodb`_) [win_lgpo] lgpo_set always reports failure; Registry.pol corruption (refs: `#50006`_)

* **ISSUE** `#48782`_: (`mike2523`_) [win_lgpo] Causes corrupt Registry.pol file (refs: `#50006`_)

* **PR** `#50006`_: (`lomeroe`_) Correct more issues in lgpo
  @ *2018-11-02 16:32:29 UTC*

  * 3ffa392 Merge pull request `#50006`_ from lomeroe/issue48782_2018.3

  * dc58252 update to use a single line if statement when dealing with prepended text

  * 0e011ad add runTest method to class for PY2

  * 377ec09 add a test for `#47784`_

  * 0a14505 change backslashes in comment string to fix lint error

  * 02181d3 add fix/test for `#50079`_

  * 05f2951 more lint fixes

  * 94b3335 lint fixes in test

  * 2a79626 update test to actually work

  * 42840ec add missing comma in function call

  * c283f50 Log a warning message instead of an exception when a SID cannot be converted to a username (for user rights assignments)

  * 271bd70 capture and print exception information

  * bc94b8e update method for creating size field of \*\*delvals items for py3 compatibility
  
  * d9fe28a fix clobbering of admx_search_results which was keeping some policies from being properly detected

* **PR** `#50340`_: (`garethgreenaway`_) [2018.3] Backporting `#48087`_ to 2018.3
  @ *2018-11-01 18:15:37 UTC*

  * **PR** `#48087`_: (`mat813`_) Fix patching sysctl.conf on FreeBSD. (refs: `#50340`_)

  * 12de4b9 Merge pull request `#50340`_ from garethgreenaway/backport_48087_to_2018_3

  * 56c87ff Backporting `#48087`_ to 2018.3

* **PR** `#50275`_: (`rallytime`_) Back-port `#49752`_ to 2018.3
  @ *2018-11-01 16:50:17 UTC*

  * **PR** `#49752`_: (`jodok`_) add support for clonenum parameter (refs: `#50275`_)

  * 5e46434 Merge pull request `#50275`_ from rallytime/bp-49752

  * e463d99 Merge branch '2018.3' into bp-49752

  * 1e10c6e add support for clonenum parameter

* **ISSUE** `#47425`_: (`raddessi`_) states/netyang.managed ignores models when passed as a kwarg (refs: `#50301`_)

* **PR** `#50316`_: (`rallytime`_) Back-port `#50301`_ to 2018.3
  @ *2018-11-01 16:32:04 UTC*

  * **PR** `#50301`_: (`tonybaloney`_) Fixes issues raised in `#47425`_ for states.netyang (refs: `#50316`_)

  * 51e333a Merge pull request `#50316`_ from rallytime/bp-50301

  * 367b689 Merge pull request `#32`_ from tonybaloney/bp50301

    * 529687a update test assertions

  * ba526ad remove unused import

  * 220e57f create 2 simple unit tests for the netyang state module and fix issue in `#47425`_

  * 20bf306 reproduce bug in 47425

* **PR** `#50290`_: (`twangboy`_) Fix `test_state` for Windows
  @ *2018-10-31 19:28:34 UTC*

  * af1075b Merge pull request `#50290`_ from twangboy/fix_test_state

  * 69c02fc Fix some lint and some typos

  * d184013 Fix typo

  * 92b5ea0 Create salt util that copies file security info

* **ISSUE** `#50050`_: (`terminalmage`_) Backport runtests.py's --from-filenames functionality to 2018.3 branch (refs: `#50308`_, `#50291`_)

* **PR** `#50291`_: (`rallytime`_) Back-port `#50230`_ to 2018.3
  @ *2018-10-31 19:22:25 UTC*

  * **PR** `#50230`_: (`rallytime`_) Add various ssh tests to the filemap for salt/utils/vt.py changes (refs: `#50291`_, `#50235`_)

  * 045d81c Merge pull request `#50291`_ from rallytime/bp-50230

  * 1aae681 Merge branch '2018.3' into bp-50230

  * 1ef712a Add various ssh tests to the filemap for salt/utils/vt.py changes

* **PR** `#50315`_: (`rallytime`_) [2018.3] Merge forward from 2018.3.3 to 2018.3
  @ *2018-10-31 14:16:34 UTC*

  * 00437aa Merge pull request `#50315`_ from rallytime/merge-2018.3

  * 422465e Merge branch '2018.3.3' into '2018.3'

  * 4d9e2a0 Merge pull request `#50088`_ from vulnbe/fix-incorrect-id-handling-2018-3-3

  * 619f2f2 Fix incorrect id handling in file state

* **PR** `#50309`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-30 16:07:25 UTC*

  * 84ee7a3 Merge pull request `#50309`_ from rallytime/merge-2018.3

  * 381a59d Merge branch '2017.7' into '2018.3'

  * 11fa33e Merge pull request `#50295`_ from dubb-b/remove-cloud-change

    * 80982ad Removing an un needed change and maybe fixing the lint error

  * e00c507 Merge pull request `#50287`_ from whytewolf/boto_vpc

    * 5a39644 minor correction to boto_vpc.route_table_present example, subnet_names was on wrong indent level

  * 37ae06c Merge pull request `#50280`_ from gtmanfred/2017.7

    * 5808074 fix InstallRequirement.from_line for pip 18.1

* **ISSUE** `#50050`_: (`terminalmage`_) Backport runtests.py's --from-filenames functionality to 2018.3 branch (refs: `#50308`_, `#50291`_)

* **PR** `#50308`_: (`rallytime`_) Fix matcher grain file
  @ *2018-10-30 15:27:47 UTC*

  * **PR** `#50182`_: (`terminalmage`_) Backport runtests.py modifications from develop to 2018.3 (refs: `#50308`_)

  * b805bab Merge pull request `#50308`_ from rallytime/test-fixes

  * f238522 Fix matcher grain file

* **PR** `#50270`_: (`terrible-broom`_) apt: speedup installing packages with '>=' or '<=' and reduced memory…
  @ *2018-10-30 13:24:36 UTC*

  * 57fe6cd Merge pull request `#50270`_ from terrible-broom/feature/apt-cache-show-instead-of-dump

  * 6c1b05a Lint: add extra blank line

  * a4df706 fix review notes

  * d059edd apt: speedup installing packages with '>=' or '<=' and reduced memory consumption

* **PR** `#50293`_: (`gtmanfred`_) update jenkins version for 2018.3
  @ *2018-10-29 23:39:34 UTC*

  * 6a65402 Merge pull request `#50293`_ from saltstack/jenkins

  * fe6fbc4 update jenkins version for 2018.3

  * **PR** `saltstack/salt-jenkins#1182`_: (`gtmanfred`_) clean up salt.utils for using 2018.3.3 (refs: `#50289`_)

* **PR** `#50289`_: (`gtmanfred`_) ignore empty line in localectl status output
  @ *2018-10-29 21:39:07 UTC*

  * 935f181 Merge pull request `#50289`_ from gtmanfred/2018.3

  * fb43061 fix test

  * 5eb0e37 add extra space to localemod test

  * e8dc8ba if line in output of localectl is empty, ignore it

* **PR** `#50276`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-29 19:05:15 UTC*

  * 10ba8b4 Merge pull request `#50276`_ from rallytime/merge-2018.3

  * f05abb0 Merge branch '2017.7' into '2018.3'

    * 6ae8a33 Merge pull request `#50281`_ from dubb-b/add_subnet

      * 4fdcf7c Lint: Add extra blank line

      * cebfd8a Fixing lint error

      * 0da6301 Merge branch '2017.7' of https://github.com/saltstack/salt into add_subnet

      * 2df6115 Adding subnetID so it knows the right VPC to build the node in.

  * a0cfbdc Merge branch '2017.7' into '2018.3'

    * b94a43b Merge pull request `#50184`_ from ethanculler/fix-minion-return-exception-with-return

      * 283d41c Merge branch '2017.7' into fix-minion-return-exception-with-return

      * a4e54d7 Added handling for minion return exceptions containing the word "return"

    * 6b009b4 Merge pull request `#50258`_ from dubb-b/fix_cloud_ec2

      * 6a1e9f0 Adding securitygroupname as the config instead of securitygroup

    * 3e1aac9 Merge pull request `#50251`_ from gtmanfred/2017.7

      * 061e599 bump salt version to 2017.7.8

    * fe9bc81 Merge pull request `#50233`_ from Ch3LL/bp-50232

      * f83460d change order of search engine ids

      * bf3f217 Update search engine IDs for releases

* **PR** `#50282`_: (`twangboy`_) Fix `unit.beacons.test_diskusage` on Windows
  @ *2018-10-29 18:37:13 UTC*

  * 0f1dc08 Merge pull request `#50282`_ from twangboy/fix_test_diskusage

  * fd369dd Mock is_windows = False

* **PR** `#50182`_: (`terminalmage`_) Backport runtests.py modifications from develop to 2018.3 (refs: `#50308`_)
  @ *2018-10-29 16:25:07 UTC*

  * f7c2f04 Merge pull request `#50182`_ from terminalmage/issue50050

  * 113d76e Revert "Move jinja templating tests alongside salt/utils/jinja.py's tests"

  * 3057ca4 Lint fix: add extra blank line in core.py

  * 8968f9d Revert "Rename test_map_conf test file to respect naming convention"

  * 85a9395 Remove saltclass pillar unit test for list expansion

  * 3d95673 Use get_config_dir() instead of self.config_dir

  * e8b3a62 Add init file back in for unit/client pkg

  * d527dd2 Rename states/test_libvirt.py into states/test_virt.py

  * ab4a670 Remove pgjsonb returner unit tests

  * 68ab3ee Remove "test_custom" from grains section of filename_map

  * 6814698 Remove test_error from scheduler tests

  * c55dcf0 Add init file back in for integration/cloud/clouds pkg

  * f485b4a enable testing only filemaps

  * dfa05b9 Remove test files for beacons that don't exist in 2018.3

  * 85612cf runtests.py: Fix IndexError in --from-filenames

  * 25097f9 Make sure from-filenames intersect with names-file

  * ed864ce runtests.py: Accept modified file list from a text file

  * 059754c Add some doc tests to the filemap that should run on every PR

  * b1ee2e5 Set a default value for the filename map path

  * 5ea1024 Add documentation explaining naming convention for test files

  * 8f790c0 Fix conflicting dict key in filename map

  * f2e5512 Evan Moar Lint

  * 65fef9a Moar Lint

  * 39c2455 Lint

  * dd20f12 Make sure we always run the module names test

  * 2ac939e Add test to check test module names and make sure they match the naming convention

  * 785d298 Add integration.netapi.rest_tornado.test_app to filename map

  * 662ca0d Rename files to match naming convention

  * 186d333 Add back changes lost in cherry-pick

  * a236531 Add back test accidentally deleted when cherry-picking

  * eaa4da3 Rename providers to clouds to respect naming convention

  * 85b96de Rename some files to avoid them being identified as test modules

  * bfb6015 Rename/consolidate salt.utils unit tests to conform to naming convention

  * 84749dd Consolitdate and move salt-ssh unit tests to proper location

  * 71825a5 Consolidate and move loader tests to test/unit/test_loader.py

  * 8326a09 Rename test_map_conf test file to respect naming convention

  * 6d9c2eb Move jinja templating tests alongside salt/utils/jinja.py's tests

  * 1ef43a3 Add additional paths to the filename map

  * 75e6731 Use the new helper to get the test mods

  * c3dc8ec Add function to get all of the test modules

  * c5593bc Rename custom_grains.py so it's not identified as a test module

  * 330c211 Consolidate saltclass pillar unit tests into single module

  * a642619 Rename test pgjsonb returner test file to match naming convention

  * 6433c48 Don't import old module name

  * a97e032 Move helper outside of for loop

  * 3f1b6fd Add more unit test mapping

  * ac3406d Fill out the filename map a bit

  * 07d6f2a Enhancements to --from-filenames, --filename-map options

  * b851a41 Don't run unit or integration tests unnecessarily

  * 569276b Add an initial filename_map

  * 44199b1 Add --from-filenames and --filename-map options to parser

* **PR** `#50267`_: (`m03`_) Fix missing aptly config paths
  @ *2018-10-29 13:27:23 UTC*

  * 1e8b092 Merge pull request `#50267`_ from m03/fix-aptly-config-paths-20183

  * 319bb31 Fix missing aptly config paths

* **PR** `#50232`_: (`Ch3LL`_) Update search engine IDs for releases (refs: `#50233`_)
  @ *2018-10-25 20:15:08 UTC*

  * ab0b022 Merge pull request `#50232`_ from Ch3LL/search_latest

  * 3452d9b change order of search engine ids

  * c9546df Update search engine IDs for releases

* **ISSUE** `#49523`_: (`MTecknology`_) [salt-cloud] Non-ascii chars cause an exception in salt-cloud (refs: `#50146`_, `#50236`_)

  * **PR** `saltstack/salt#50174`_: (`rallytime`_) Back-port `#50146`_ to 2018.3 (refs: `#50231`_)

* **PR** `#50231`_: (`rallytime`_) Revert "Back-port `#50146`_ to 2018.3" (refs: `#50236`_)
  @ *2018-10-25 20:12:15 UTC*

  * **PR** `#50146`_: (`MTecknology`_) Improve handling of non-ascii characters in terminal output. (Fixes: `#49523`_) (refs: `#50235`_, #`saltstack/salt`#50174`_`_, `#50174`_, `#50231`_, `#50236`_)

  * 1c8cdf9 Merge pull request `#50231`_ from saltstack/revert-50174-bp-50146

  * c76ac1b Revert "Back-port `#50146`_ to 2018.3"

* **ISSUE** `#50132`_: (`ManicoW`_) XCP-ng packages and services management (refs: `#50140`_)

* **PR** `#50172`_: (`rallytime`_) Back-port `#50140`_ to 2018.3
  @ *2018-10-25 14:00:32 UTC*

  * **PR** `#50140`_: (`ManicoW`_) Adding XCP-ng support (refs: `#50172`_)

  * 8dd4f43 Merge pull request `#50172`_ from rallytime/bp-50140

  * 02e0ea0 lint fix

  * 819c46c fix lint errors and code factorization

  * 8aa3598 Fix lint error

  * 9092c4e Adding support for XCP-ng

  * c516bc5 Adding XCP-ng to os family map

* **PR** `#50063`_: (`twangboy`_) Use long when setting REG_QWORD
  @ *2018-10-25 13:45:03 UTC*

  * 9ad43f2 Merge pull request `#50063`_ from twangboy/fix_50039

  * 5fdba7d Disable lint error

  * 84b8dd6 Add tests

  * 4644bb6 Use long when setting REG_QWORD

* **ISSUE** `#49965`_: (`nkrishnakishor`_) Beacon: Usage in windows (refs: `#50188`_)

* **PR** `#50188`_: (`garethgreenaway`_) [2018.3] fixes to diskusage beacon
  @ *2018-10-25 13:41:19 UTC*

  * 01b083e Merge pull request `#50188`_ from garethgreenaway/49965_beacon_diskusage_windows

  * 1f0ab27 Merge branch '2018.3' into 49965_beacon_diskusage_windows

  * 42b3203 Fixing lint

  * f65fa57 Fixing a bug in the diskusage beacon that prevented it from working on Windows.  Adding a couple tests to test functionality on Windows.

* **PR** `#50214`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-25 13:38:40 UTC*

  * 9ea51c0 Merge pull request `#50214`_ from rallytime/merge-2018.3

  * 897145c Merge branch '2017.7' into '2018.3'

    * 017d394 Merge pull request `#50202`_ from Ch3LL/_2017.7.8

      * d520f9a Add tests with filname in token data

      * d45f6c7 Add empty token salt-api integration tests

      * 652dbf6 Ensure that tokens are hex to avoid hanging/errors in cherrypy

    * f28a4fa Merge pull request `#50211`_ from channias/fix-spm-modules-install

      * 9b203d5 Fix broken install of additionnal modules in SPM packages

    * 6b4e07b Merge pull request `#50212`_ from dwoz/test_no_fail

      * 7f613ac Do not fail if process already ended

    * 85e22d2 Merge pull request `#50207`_ from Ch3LL/2update_version_doc_2017.7

      * 198d25c Add 2017.7.8 previous release

      * d4e26ac Update release versions for the 2017.7 branch

    * d035695 Merge pull request `#50205`_ from Ch3LL/rn_2017.7.8

      * 71ee68b [2017.7.8] remove in progress and add security details

    * ce341f2 Merge pull request `#50180`_ from max-arnold/2017.7

      * 881a521 Revert curly braces example for nested dictionaries

    * 622bb51 Merge pull request `#50026`_ from damon-atkins/jenkins_pylint

      * aebce88 Merge branch '2017.7' into jenkins_pylint

      * 5f708fa use awk to create the other files, so git does not need to search again

      * 6b96a24 Adjust jenkins linting process, only run stage if required, use git diff to find files, instead of find, report on status, changed and deleted files, lint only changed files.

    * aa66d1b Merge pull request `#50158`_ from vutny/doc/2017.7/fix-http-tutorial

      * fe2d70d [DOC] Fix JSON payload example in HTTP tutorial

* **ISSUE** `#50162`_: (`rbthomp`_) Scheduled job runs in endless loop when using when: and  splay: together.  (refs: `#50216`_)

* **PR** `#50216`_: (`garethgreenaway`_) [2018.3] Fixes to scheduler, list of whens plus splay
  @ *2018-10-25 13:31:26 UTC*

  * 51b3fa4 Merge pull request `#50216`_ from garethgreenaway/50162_when_plus_splay_endless_loop

  * 685509f Fixing an issue when a combination of the when parameter as a list plus using the splay parameter would cause the schedule to continuously run jobs in an endless loop, regardless of if their scheduled time had been receached.  Also fixing a related issue where scheduled jobs that rely on _next_fire_time were not being run as the corrected splayed time but rather running at the original scheduled time.  Adding new tests.

* **PR** `#50190`_: (`dwoz`_) Fix test_managed_file_with_grains_data on Windows
  @ *2018-10-24 22:43:35 UTC*

  * 43303fb Merge pull request `#50190`_ from dwoz/grains_template_test

  * b77db48 Fix test_managed_file_with_grains_data on Windows

* **PR** `#50187`_: (`garethgreenaway`_) [2018.3] Adding fixes to scheduler tests to 2018.3
  @ *2018-10-24 19:45:32 UTC*

  * **PR** `#49871`_: (`garethgreenaway`_) [fluorine] Updating scheduler tests for OS X (refs: `#50187`_)

  * 462314b Merge pull request `#50187`_ from garethgreenaway/port_49871_to_2018_3

  * 25e7cb6 Merge branch '2018.3' into port_49871_to_2018_3

  * d232dfb Update test_eval.py

  * d8d8559 Fixing lint

  * 76e6232 Removing unnecessary debugging lines

  * d2d0622 Back porting `#49871`_ to 2018.3.  Adding some additional changes to ensure they are passing on OS X.

* **PR** `#50201`_: (`Ch3LL`_) [2018.3] Ensure that tokens are hex to avoid hanging/errors in cherrypy
  @ *2018-10-24 19:44:23 UTC*

  * 8ad9a1b Merge pull request `#50201`_ from Ch3LL/_2018.3.3

* **PR** `#50208`_: (`Ch3LL`_)  Update release versions for the 2018.3 branch
  @ *2018-10-24 15:52:19 UTC*

  * 88673ad Merge pull request `#50208`_ from Ch3LL/2update_version_doc_2018.3

  * cdbf493 Add 2017.7.8 previous release

  * 6f775e7 Update release versions for the 2018.3 branch

* **PR** `#50206`_: (`Ch3LL`_) [2018.3.3] remove in progress and add security details
  @ *2018-10-24 15:50:50 UTC*

  * db8ef1e Merge pull request `#50206`_ from Ch3LL/rn_2018.3.3

  * 896caa1 Add 2016.11.10 release notes to 2018.3 branch

  * 1e34158 [2018.3.3] remove in progress and add security details

* **PR** `#50200`_: (`rallytime`_) Back-port `#50181`_ to 2018.3
  @ *2018-10-24 15:49:59 UTC*

  * **PR** `#50181`_: (`cro`_) Testinfra has a python packaging issue that is making version 1.17.0 fail to install some places (refs: `#50200`_)

  * 3d3db70 Merge pull request `#50200`_ from rallytime/bp-50181

  * f3e5399 Ignore testinfra 1.17.0

* **ISSUE** `#49523`_: (`MTecknology`_) [salt-cloud] Non-ascii chars cause an exception in salt-cloud (refs: `#50146`_, `#50236`_)

* **PR** `#50174`_: (`rallytime`_) Back-port `#50146`_ to 2018.3 (refs: `#50236`_)
  @ *2018-10-23 18:16:45 UTC*

  * **PR** `#50146`_: (`MTecknology`_) Improve handling of non-ascii characters in terminal output. (Fixes: `#49523`_) (refs: `#50235`_, #`saltstack/salt`#50174`_`_, `#50174`_, `#50231`_, `#50236`_)

  * 5f904dd Merge pull request `#50174`_ from rallytime/bp-50146

  * 601a5b8 Improve handling of non-ascii characters in terminal output. (Fixes: `#49523`_)

* **ISSUE** `#50142`_: (`m03`_) stringutils.to_none AttributeError: 'module' object has no attribute 'tex_type' (refs: `#50143`_)

* **PR** `#50173`_: (`rallytime`_) Back-port `#50143`_ to 2018.3
  @ *2018-10-23 17:13:55 UTC*

  * **PR** `#50143`_: (`m03`_) Fix `#50142`_, stringutils.to_none (refs: `#50173`_)

  * **PR** `#45429`_: (`terminalmage`_) [PY3] Add unicode_literals to salt.utils modules (R-S) (refs: `#50143`_)

  * 1cd0339 Merge pull request `#50173`_ from rallytime/bp-50143

  * f5d6080 Add test_to_none

  * c0ce36b Fix `#50142`_, stringutils.to_none

* **PR** `#50171`_: (`terminalmage`_) Fix invalid RST link in docker_network docs
  @ *2018-10-23 13:40:36 UTC*

  * 9331f1e Merge pull request `#50171`_ from terminalmage/docs

  * 7ea1d6c Fix invalid RST link in docker_network docs

* **PR** `#50161`_: (`rmarcinik`_) Add a missing result for task.info
  @ *2018-10-23 13:31:43 UTC*

  * 16eece3 Merge pull request `#50161`_ from rmarcinik/patch-1

  * 9848f06 Add a missing result for task.info

* **PR** `#50136`_: (`terminalmage`_) Add some debug logging before and after states gather pillar data
  @ *2018-10-22 14:40:38 UTC*

  * 28bc5e3 Merge pull request `#50136`_ from terminalmage/debug-logging

  * 8592a0b Add some debug logging before and after states gather pillar data

* **ISSUE** `#50129`_: (`kmatsoukas`_) Call to network.get_route fails when interface name contains a dash (refs: `#50147`_)

* **PR** `#50147`_: (`garethgreenaway`_) [2018.3] Fix to modules/network.py
  @ *2018-10-22 14:31:03 UTC*

  * 593c7ff Merge pull request `#50147`_ from garethgreenaway/50129_network_get_route_fails_dash_in_name

  * 8fa87e3 Update test_network.py

  * 3117969 Fixing scenario where the interface for the default route has a dash in it, regular expression used in get_route currently doesn't not account for this..  Adding some additional tests for network.get_route.

* **PR** `#50156`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-22 14:24:39 UTC*

  * 5c7a7d9 Merge pull request `#50156`_ from rallytime/merge-2018.3

  * 87e20fd Merge branch '2017.7' into '2018.3'

  * 1a90c4f Merge pull request `#50144`_ from dwoz/winrm_fs_release

    * 0951d85 Use newest winrm-fs release

  * e096560 Merge pull request `#50113`_ from rallytime/bp-49989

    * 27c7ac9 Increase centos7-py2 kitchen pr timeout to 8 hours

* **PR** `#50148`_: (`MTecknology`_) Proxmox fixups
  @ *2018-10-22 11:55:10 UTC*

  * ce375f4 Merge pull request `#50148`_ from MTecknology/proxmox-fixups

  * 4959947 Race condition still exists at one second timeout.

  * 3a62f74 Add support for setting root ssh pubkey to proxmox containers.

* **PR** `#50085`_: (`dwoz`_) Fix `test_win_pkg` yet again
  @ *2018-10-19 18:16:16 UTC*

  * 0ece06e Merge pull request `#50085`_ from dwoz/win_pkg_redux

  * f22630e Merge branch '2018.3' into win_pkg_redux

  * 0b033a6 Do not allow age to be a negative number

  * a24d8b8 Debug file list cache

  * 9f5722a The test is not a flush problem

  * 071f8a0 Add cache file name to list cache log

  * 128c2c5 Flush and sync file contents

  * 7d361d8 Add debug log when file list is returned from cache

* **PR** `#49980`_: (`twangboy`_) Add support for AddPrinterDrivers
  @ *2018-10-19 13:19:41 UTC*

  * 0069247 Merge pull request `#49980`_ from twangboy/lgpo_add_printer_drivers

  * 76c9301 Add support for AddPrinterDrivers

* **PR** `#50114`_: (`rallytime`_) Back-port `#50061`_ to 2018.3
  @ *2018-10-19 11:46:03 UTC*

  * **PR** `#50061`_: (`rongzeng54`_) pkg.install bugfix (refs: `#50114`_)

  * de23c83 Merge pull request `#50114`_ from rallytime/bp-50061

  * 1f09104 Add unit test for pkg.install with epoch

  * af253c6 pkg.install bugfix

* **ISSUE** `#50074`_: (`bigpick`_) Arista EOS Salt Minion - Debug Log Flooded with Repeated Message (refs: `#50115`_)

* **PR** `#50115`_: (`garethgreenaway`_) [2018.3] Apply scheduler fixes and tests from `#49104`_ to 2018.3
  @ *2018-10-19 11:45:31 UTC*

  * **PR** `#49104`_: (`garethgreenaway`_) [fluorine] Fixes to scheduler for jobs with seconds, minutes, etc. (refs: `#50115`_)

  * 9188bec Merge pull request `#50115`_ from garethgreenaway/apply_49104_to_2018_3

  * adb1e79 Apply scheduler fixes and tests from `#49104`_ to 2018.3

* **PR** `#50119`_: (`terminalmage`_) Squelch spurious errors logged in unit tests
  @ *2018-10-19 11:42:31 UTC*

  * e892042 Merge pull request `#50119`_ from terminalmage/boto-tests

  * 91812ff Squelch spurious errors logged in unit tests

* **PR** `#50120`_: (`terminalmage`_) Fix bad merge conflict resolution
  @ *2018-10-19 11:38:35 UTC*

  * 35449b4 Merge pull request `#50120`_ from terminalmage/salt-jenkins-1137

  * 1ddfd26 Fix bad merge conflict resolution

* **PR** `#50013`_: (`Giandom`_) Passed kwargs to db_exists in db_remove method
  @ *2018-10-18 11:28:30 UTC*

  * 5123488 Merge pull request `#50013`_ from Giandom/2018.3

  * 9c91df3 Merge branch '2018.3' into 2018.3

  * 06bb245 Merge branch '2018.3' into 2018.3

  * 04a99e0 Passed kwargs to db_remove

* **PR** `#50092`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-17 19:57:07 UTC*

  * aa94f60 Merge pull request `#50092`_ from rallytime/merge-2018.3

  * 8609064 Update old utils paths to use new paths

  * a984ad8 Merge branch '2017.7' into '2018.3'

    * 7ec3840 Merge pull request `#49794`_ from twangboy/fix_groupadd_test

      * 3d3b67d Gate for Windows

      * decfa52 Check value of result instead of entire dict

    * e562838 Merge pull request `#50028`_ from basseed/fix-windows-virtual-grain

      * 8129ac6 removed whitespaces

      * 82fa866 Fix `#50015`_, Windows grain defaults to physical as unix grain

* **ISSUE** `#50073`_: (`jorotenev`_) boto_cloudfront update distribution fails (refs: `#50082`_)

* **PR** `#50082`_: (`garethgreenaway`_) [2018.3] Fixing a typo in the boto_cloudfront
  @ *2018-10-17 19:35:00 UTC*

  * d1f2c5d Merge pull request `#50082`_ from garethgreenaway/50073_fixing_typo_boto_cloudfront

  * b5b90a1 Fixing a typo in the boto_cloudfront.

* **PR** `#50090`_: (`garethgreenaway`_) [2018.3] Fix to utils/vault.py
  @ *2018-10-17 13:57:30 UTC*

  * 05bd2a0 Merge pull request `#50090`_ from garethgreenaway/fix_vault_sdb_runner_test

  * 444a4e5 Merge branch '2018.3' into fix_vault_sdb_runner_test

* **ISSUE** `#49275`_: (`dgengtek`_) execution module cp.cache_file fails with error 'invalid arguments to setopt' (refs: `#50080`_)

* **PR** `#50080`_: (`terminalmage`_) Ensure all string kwargs passed to Tornado's httpclient are str types
  @ *2018-10-16 21:01:41 UTC*

  * 7092879 Merge pull request `#50080`_ from terminalmage/issue49275

  * 4a6c327 Ensure all string kwargs passed to Tornado's httpclient are str types

* **ISSUE** `#44979`_: (`hunkeelin`_) Firewalld state cause horrid performance during saltrun.  (refs: `#49811`_)

* **PR** `#49811`_: (`nhavens`_) Optimize firewalld state
  @ *2018-10-16 11:26:46 UTC*

  * 45b6da3 Merge pull request `#49811`_ from nhavens/optimize-firewalld-state

  * 7d6e628 Merge branch '2018.3' into optimize-firewalld-state

  * a718b0c Merge branch '2018.3' into optimize-firewalld-state

  * f7299b9 Merge branch '2018.3' into optimize-firewalld-state

  * f289618 Merge branch '2018.3' into optimize-firewalld-state

  * 41af513 Merge branch '2018.3' into optimize-firewalld-state

  * 7cebab4 Merge branch '2018.3' into optimize-firewalld-state

  * c38bb7d Merge branch '2018.3' into optimize-firewalld-state

  * abed058 Merge branch '2018.3' into optimize-firewalld-state

  * 0ec1f82 Merge branch '2018.3' into optimize-firewalld-state

  * db6b23b Merge branch '2018.3' into optimize-firewalld-state

  * 4ca7e12 Merge branch '2018.3' into optimize-firewalld-state

  * 4f7c914 fix invalid icmp type handling in firewalld state

  * 2d2e2eb resolve lint error in firewalld state

  * 081424d resolve indentation issues in updates to firewalld state

  * c92c4fe optimize firewalld.present rich rule handling

  * 25d1daf optimize firewalld.present source handling

  * 5f62c14 optimize firewalld.present interface handling

  * 69f2c6c optimize firewalld.present service handling

  * 71ec8e7 optimize firewalld.present port forward handling

  * f18e09e optimize firewalld.present open port handling

  * 35193dc clean up firewalld.present masquerade code (DRY)

  * 8c88784 optimize firewalld.present icmp block handling

* **PR** `#50055`_: (`rallytime`_) Back-port `#50024`_ to 2018.3
  @ *2018-10-16 09:14:06 UTC*

  * **PR** `#50024`_: (`rwaweber`_) docs: Correct napalm topic spelling mistake and smooth out sentence (refs: `#50055`_)

  * b94e0a0 Merge pull request `#50055`_ from rallytime/bp-50024

  * 1ea72a0 docs: Correct spelling mistake and smooth out sentence

* **PR** `#50056`_: (`rallytime`_) Back-port `#50029`_ to 2018.3
  @ *2018-10-16 09:12:59 UTC*

  * **PR** `#50029`_: (`thebluesnevrdie`_) Expose docs for Ansible modules (refs: `#50056`_)

  * 14f3fac Merge pull request `#50056`_ from rallytime/bp-50029

  * 2e46a78 Expose docs for Ansible modules

* **PR** `#50064`_: (`rallytime`_) Back-port `#50022`_ to 2018.3
  @ *2018-10-16 09:09:47 UTC*

  * **PR** `#50022`_: (`bluesliverx`_) Make test check_pillar more lenient (refs: `#50064`_)

  * f3fe4b6 Merge pull request `#50064`_ from rallytime/bp-50022

  * 40da3ce Make test check_pillar more lenient

* **ISSUE** `#49988`_: (`whytewolf`_) currently http error logging of urls contains full URL including passwords.  (refs: `#50066`_)

* **PR** `#50066`_: (`garethgreenaway`_) [2018.3] Redact any passwords from source paths
  @ *2018-10-16 09:08:25 UTC*

  * c2a46ce Merge pull request `#50066`_ from garethgreenaway/49988_redact_passwords_in_source

  * 27ef1e0 Redact any passwords that are in http/https based source paths.

* **PR** `#50068`_: (`garethgreenaway`_) [2018.3] Updating salt.utils.mac_utils 
  @ *2018-10-16 09:07:10 UTC*

  * ab2cb51 Merge pull request `#50068`_ from garethgreenaway/1140_mac_system_tests_2018_3_failing

  * eedeacb Updating another reference to salt.utils.mac_utils to use __utils__

                            * 6ef5ce4 Due to a previous PR the test_sdb_runner in sdb.test_vault was failing because of a exception that was being swallowed in the test run_run function.  The cause was that when vault related functions were being run, if they were being run on the master then they were being forced to run through the _get_token_and_url_from_master() function, which is pull the id element out of the grains dictionary.  When the call was taking place from a runner, the exception was popping up since there is no id when called from a runner.  This fix checks to see if the id exists in the dictionary first, if it is there then _get_token_and_url_from_master() is called, otherwise _use_local_config is called.

* **PR** `#49987`_: (`terminalmage`_) Make Pillar no longer munge file_roots
  @ *2018-10-15 21:58:08 UTC*

  * 4c4bb5a Merge pull request `#49987`_ from terminalmage/pillar_roots

  * f59506d Update tests to reflect behavior changes

  * 58f5fde Make Pillar no longer munge file_roots

* **PR** `#50065`_: (`rallytime`_) Back-port `#50044`_ to 2018.3
  @ *2018-10-15 21:32:37 UTC*

  * **PR** `#50044`_: (`mchugh19`_) add saltclass info from release notes to docs (refs: `#50065`_)

  * 1e377ac Merge pull request `#50065`_ from rallytime/bp-50044

  * 1eaaab7 Doc title formatting must match doc name length

  * 6ac26b6 add saltclass docs from release notes

* **PR** `#50038`_: (`s0undt3ch`_) Don't squash the traceback
  @ *2018-10-15 20:36:55 UTC*

  * 8a6b435 Merge pull request `#50038`_ from s0undt3ch/2018.3

  * 852257a Don't squash the traceback

* **PR** `#50054`_: (`rallytime`_) Back-port `#50004`_ to 2018.3
  @ *2018-10-15 20:36:03 UTC*

  * **PR** `#50004`_: (`kiemlicz`_) https://github.com/saltstack/salt/issues/49883 (refs: `#50054`_)

  * dbfd7ee Merge pull request `#50054`_ from rallytime/bp-50004

  * 88e3202 https://github.com/saltstack/salt/issues/49883

* **PR** `#50057`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-15 20:35:46 UTC*

  * a9e9974 Merge pull request `#50057`_ from rallytime/merge-2018.3

  * 1b5b018 Merge branch '2017.7' into '2018.3'

    * 9eb17ea Merge pull request `#50047`_ from rallytime/bp-49605

      * e3a0f7b Add gce fix to 2017.7.9 release notes

      * e6d86fc document GCE instance credentials configuration

      * c3a0d1b allow empty service_account_private_key in GCE driver

    * 6cdd390 Merge pull request `#50017`_ from gtmanfred/iptables

      * e552e4f Use parse_known_args when checking iptables rules

    * a6a66b9 Merge pull request `#50012`_ from dwoz/norm_log

      * f96b29d Use normal log formatting and add jid

    * 15f86b2 Merge pull request `#50001`_ from kyentei/doc-fix-gpg

      * 3d6ee3e Fix gpg state Documentation

    * 7a235d7 Merge pull request `#50000`_ from kyentei/doc-fix-lvm

      * c2f3d87 Fix LVM state documentation

    * 4edd094 Merge pull request `#49999`_ from kyentei/doc-fix-proxy

      * a180ed7 Fix proxy documentation

    * 58d2302 Merge pull request `#49998`_ from kyentei/doc-fix-process

      * edd4f40 Fix documentation on process.py

    * 411635b Merge pull request `#49997`_ from kyentei/doc-fix-mysql

      * 01059cc Fix documentation for mysql processlist

* **PR** `#50060`_: (`rallytime`_) [2018.3] Fix some pylint issues that have popped up recently
  @ *2018-10-15 20:35:22 UTC*

  * f1bcb1f Merge pull request `#50060`_ from rallytime/fix-lint

  * a8f4f39 Merge branch '2018.3' into fix-lint

* **ISSUE** `#49927`_: (`thetaurean`_) File Tree external pillar fails to render templates in python 3 (refs: `#49943`_)

* **PR** `#50052`_: (`rallytime`_) Back-port `#49943`_ to 2018.3
  @ *2018-10-15 20:06:20 UTC*

  * **PR** `#49943`_: (`thetaurean`_) Coerce string  when calling compile_template_str (refs: `#50052`_)

  * b26b21c Merge pull request `#50052`_ from rallytime/bp-49943

  * d336dec Handle non-ASCII chars during template data decode

  * 435afb7 Adjusted import to expose stringutils namespace

  * 958c630 Coerce string  when calling compile_template_str

  * e73f13d [2018.3] Fix some pylint issues that have popped up recently

* **PR** `#49809`_: (`Ch3LL`_) Add additional asserts to help investigate test_win_pkg failure
  @ *2018-10-13 18:00:09 UTC*

  * fef7669 Merge pull request `#49809`_ from Ch3LL/win_pkg_flaky

  * f795b60 Merge pull request `#7`_ from dwoz/win_pkg_flaky

    * beaab2a Fix win_pkg test

  * 75809b4 Merge pull request `#6`_ from dwoz/win_pkg_flaky

    * e5ea3f1 Try running fsync to avoid fs caching race condition

  * fd5e842 Merge pull request `#5`_ from dwoz/win_pkg_flaky

    * c386826 Log results of cache_dir for now

  * 2cd4058 Merge pull request `#4`_ from dwoz/win_pkg_flaky

    * 1005b91 Debug win_pkg

  * 9dce5cc Fix the assertion message order

  * 18e9a28 Add additional asserts to help investigate test_win_pkg failure

* **PR** `#49983`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-11 13:27:34 UTC*

  * 8949873 Merge pull request `#49983`_ from rallytime/merge-2018.3

  * f8e73e8 Merge branch '2017.7' into '2018.3'

    * a8a3811 Merge pull request `#49972`_ from rallytime/release-notes-2017.7.9

      * 6c00003 Add 2017.7.9 release notes file

    * 8de58d6 Merge pull request `#49974`_ from rallytime/bp-49940

      * a70358a Update mod_watch() description for all states.

      * bf3d064 Another attempt to clean up service.mod_watch description.

      * 165b799 Clean up documentation/language in service state. (Fixes `#40819`_)

    * d68e5d3 Merge pull request `#49978`_ from whytewolf/inotify_doc_change

      * b4d9523 using an exclude list that does not list every operating system leaves open the possability that it would work on those not listed

    * 89cbbb6 Merge pull request `#49934`_ from rallytime/fix-49925

      * 216fd64 Remove event_publisher_pub_hwm and salt_event_pub_hwm from documentation

* **PR** `#49979`_: (`cachedout`_) Update license date and include NOTICE
  @ *2018-10-11 12:57:21 UTC*

  * c7d2482 Merge pull request `#49979`_ from cachedout/license_update

  * b4f148e Break out support and contributing docs into separate files

  * 1dd0e34 Update license date and include NOTICE

* **PR** `#49973`_: (`rallytime`_) Add 2018.3.4 release notes file
  @ *2018-10-10 17:46:04 UTC*

  * ef61fc6 Merge pull request `#49973`_ from rallytime/release-notes-2018.3.4

  * 32e7d90 Add 2018.3.4 release notes file

* **PR** `#49975`_: (`rallytime`_) Back-port `#49958`_ to 2018.3
  @ *2018-10-10 17:44:56 UTC*

  * **PR** `#49958`_: (`garethgreenaway`_) [fluorine] Fixes to mac_system.py (refs: `#49975`_)

  * 7d8f10c Merge pull request `#49975`_ from rallytime/bp-49958

  * a229a50 Swap the call for mac_utils.available_services to use __utils__ so mac_utils.available_services has access to __context__

* **PR** `#49946`_: (`isbm`_) osversion/osversion_info/osmajorrelease grains fixes
  @ *2018-10-10 14:01:05 UTC*

  * c912d3a Merge pull request `#49946`_ from isbm/isbm-osversion_info-fixes

  * a17ba35 Fix proper part name in the string-bound CPE

  * 9d49607 Expand unit test to verify part name

  * a6b7d01 Remove linebreak

  * 5376886 Keep CPE_NAME only for opensuse series

  * 8af3904 Add part parsing

  * e202b41 Prevent possible crash if CPE_NAME is wrongly written in the distro

  * 712083d Add unit test for broken CPE_NAME

  * 1306ddb Add unit test for v2.3 of CPE format

  * 04b61d3 Add unit test for WFN format of CPE_NAME

  * 035690f Override VERSION_ID from os-release, if CPE_NAME is given

  * 08e235b Remove unnecessary linebreak

  * 853e163 Add CPE_NAME parsing

* **ISSUE** `#48204`_: (`zerthimon`_) State mysql_user.present Exception with mysql 8.0.11 (refs: `#49918`_)

* **PR** `#49918`_: (`garethgreenaway`_) [2018.3] Fixes to MySQL module
  @ *2018-10-10 14:00:11 UTC*

  * 18fb5df Merge pull request `#49918`_ from garethgreenaway/48204_mysql_user_password_exception_part_deux

  * 92c0680 Merge branch '2018.3' into 48204_mysql_user_password_exception_part_deux

  * 71e53a3 Cleanup of debugging.

  * dd96c13 Fixing lint.

  * ac7da89 Tweaking a couple tests to account for new scenarios with later versions.

  * 4320c43 Removing __mysql_hash_password, no longer needed.

  * 0475acf Removing unnecessary empty line.

  * 9265195 Updating the mysql update to handle changes in version 8.0.11 where PASSWORD was removed.  Updating unit tests.

* **PR** `#49961`_: (`dmurphy18`_) Fix aix grains test for prtconf present
  @ *2018-10-10 13:38:02 UTC*

  * 1c2e5be Merge pull request `#49961`_ from dmurphy18/fix_aix_grains

  * f38d543 Correct test for AIX grains prtconf

* **ISSUE** `#49205`_: (`ereslibre`_) Compound targeting includes unexpected targets in the result (refs: `#49897`_, `#49907`_)

* **PR** `#49907`_: (`brejoc`_) 2018.3 fix for list compound targeting
  @ *2018-10-10 13:33:40 UTC*

  * **PR** `#49897`_: (`brejoc`_) 2017.7 fix for list compound targeting (refs: `#49907`_)

  * **PR** `#49435`_: (`brejoc`_) No longer passes missing in list compound engine (refs: `#49897`_, `#49907`_)

  * e427306 Merge pull request `#49907`_ from brejoc/2018.3-fix-for-list-compound-targeting

  * 1bcadb9 Merge branch '2018.3' into 2018.3-fix-for-list-compound-targeting

  * 649c46c Adds check for engine before adding the additional engine argument

  * 7d0b20c Minor fix for def test_batch_run_grains_targeting

  * 0d64716 Ignore missing minions only when excluding them with 'not'

  * 6a5f3cd No longer passes missing in list compound engine

* **ISSUE** `#48599`_: (`angeloudy`_) module ldap3 'TypeError: ('expected a byte string in the list'' (refs: `#48666`_)

* **PR** `#49947`_: (`rallytime`_) Back-port `#48666`_ to 2018.3
  @ *2018-10-09 17:48:20 UTC*

  * **PR** `#48666`_: (`angeloudy`_) values need to be bytes when writing back to ldap (refs: `#49947`_)

  * 143c723 Merge pull request `#49947`_ from rallytime/bp-48666

  * 5166917 Update ldap3.py

  * 05e55bd values need to be bytes when writing to ldap

  * 0d749e6 values need to be bytes when writing back to ldap

* **PR** `#49948`_: (`rallytime`_) Skip pillar refresh test
  @ *2018-10-09 15:20:52 UTC*

  * dbf994e Merge pull request `#49948`_ from rallytime/skip-flaky-test

  * df11c39 Skip pillar refresh test

* **PR** `#49938`_: (`s0undt3ch`_) Handle missing `pkg_resources` package
  @ *2018-10-09 13:41:09 UTC*

  * 614d172 Merge pull request `#49938`_ from s0undt3ch/2018.3

  * b1c2928 Handle missing `pkg_resources` package

* **PR** `#49942`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-09 13:38:04 UTC*

  * bce12c3 Merge pull request `#49942`_ from rallytime/merge-2018.3

  * 91534ee Merge branch '2017.7' into '2018.3'

    * 327796e Merge pull request `#49911`_ from dubb-b/slack-pr

      * 57e630c Adding failure messages for PR.

    * cf1df79 Merge pull request `#49900`_ from dwoz/presence_wart

      * 7bd34f6 Connect before processing presence

    * 8c4707d Merge pull request `#49899`_ from twangboy/fix_49892

      * a66765f Remove arrInstalled artifact

* **PR** `#49930`_: (`isbm`_) Get os_family for RPM distros from the RPM macros
  @ *2018-10-09 13:31:52 UTC*

  * a30c053 Merge pull request `#49930`_ from isbm/isbm-osarch-bugfix

  * f8a75f1 Fix imports

  * 70d3de0 Strip and stringify the return for the osarch

  * a248371 Get os_family for RPM distros from the RPM macros.

* **PR** `#49868`_: (`dwoz`_) windows shell tests
  @ *2018-10-08 17:32:20 UTC*

  * 99c5dba Merge pull request `#49868`_ from dwoz/shelltests

  * 9997f45 Merge branch '2018.3' into shelltests

* **PR** `#49875`_: (`dwoz`_) Add spm tests to Windows suite
  @ *2018-10-05 18:13:07 UTC*

  * eee82d3 Merge pull request `#49875`_ from dwoz/win_spm_tests

  * e76a751 Use os.path.split for more consistancy

  * bc54d15 Fix wart in spm on windows

  * df5e271 Add spm tests for windows

* **PR** `#49872`_: (`twangboy`_) Fix issues with windows file permissions when using reset=True
  @ *2018-10-05 13:52:07 UTC*

  * c0e2404 Merge pull request `#49872`_ from twangboy/fix_49861

  * 01bd847 Gate the win_function a little better

  * bcdb366 Skip on non-windows systems

  * 02f6335 Fix some lint

  * 8ecbe0e Add tests for check_perms

  * d6e7512 Fix issues with file permissions

* **ISSUE** `#49582`_: (`UtahDave`_) lgpo doesn't seem to allow for unsetting a gpo setting (refs: `#49902`_)

* **ISSUE** `#48661`_: (`mike2523`_) win_lgpo: User Rights Assignment policies (refs: `#49902`_)

* **PR** `#49902`_: (`lomeroe`_) lgpo better comments on user right assignments
  @ *2018-10-05 13:41:16 UTC*

  * d3a909f Merge pull request `#49902`_ from lomeroe/issue48661_2018.3

  * 760d8f4 Merge branch '2018.3' into issue48661_2018.3

  * f72ca81 add comments on user right assignment policies when they are already set and note if cumulative_rights_assignment is True that the particular user is already granted the right

      * 75dd5ab Merge branch '2018.3' into shelltests

* **PR** `#49896`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-04 21:00:24 UTC*

  * 4eb43af Merge pull request `#49896`_ from rallytime/merge-2018.3

  * 41c8b31 Merge branch '2017.7' into '2018.3'

  * b959033 Merge pull request `#49739`_ from twangboy/fix_49660

    * f3400ad Merge branch '2017.7' into fix_49660

    * 0a4f5fc Merge branch '2017.7' into fix_49660

    * 1f9bbc8 Populate changes dictionary

  * 71669bd Merge pull request `#49885`_ from dwoz/gemfile

    * 791e3ff Use dwoz/winrm-fs for chunked downloads

    * f3999e1 Move vagrant to its own group

  * 0662e37 Merge pull request `#49870`_ from KaiSforza/ci_actually_fail

    * 9ef9206 Actually catch the exception when we fail

            * 19072f0 Use os.path.split for more consistancy

            * 6c22459 Merge remote-tracking branch 'origin/shelltests' into shelltests

              * 43b292f Merge branch '2018.3' into shelltests

              * 876c040 Fix wart in test_cp module

              * 9e6ff11 Add syndic tests to whitelist.txt for Windows

              * 9cab293 Fix wart in spm on windows

              * 58e9d1b Add spm tests to whitelist.txt for Windows

              * 7393610 Add more shell integration tests to whitelist

              * ce85d60 Add shell.test_key to whitelist and fix wart

              * 6fbadd7 Skip tests not valid on windows

              * 9debf29 Add shell cp tests and fix them

            * 8bfa634 Fix warts in integration.shell.test_matcher

            * 45d2142 Fix wart in test_cp module

            * 0e4fbc5 Add syndic tests to whitelist.txt for Windows

            * f72ad01 Fix wart in spm on windows

            * 4141cc8 Add spm tests to whitelist.txt for Windows

            * 02ad722 Add more shell integration tests to whitelist

            * 48275c0 Add shell.test_key to whitelist and fix wart

            * e5edff4 Skip tests not valid on windows

            * a389729 Add shell cp tests and fix them

* **ISSUE** `#49744`_: (`MTecknology`_) Group state cannot force empty group membership (refs: `#49745`_)

* **PR** `#49745`_: (`MTecknology`_) Remove all users from group when members list is empty.
  @ *2018-10-03 13:48:40 UTC*

  * 85478cd Merge pull request `#49745`_ from MTecknology/fix-49744

  * 61afb5d Merge branch '2018.3' into fix-49744

  * 269bde2 Merge branch '2018.3' into fix-49744

  * 0b5d916 Modify if structure, as requested.

  * f57ce67 Remove all users from group when members list is empty. (Fixes `#49744`_)

* **PR** `#49867`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-10-03 13:23:35 UTC*

  * 05cd56b Merge pull request `#49867`_ from rallytime/merge-2018.3

  * b53c3e6 Update old utils paths to use new utils paths

  * a65c60d Merge branch '2017.7' into '2018.3'

    * 7fa2043 Merge pull request `#49858`_ from Paulo-Nunes/fix-requisite-doc

      * fb6f818 Edit requisite documentation

    * 0587fbc Merge pull request `#49828`_ from dwoz/testslogencoding

      * 2b323df Merge branch '2017.7' into testslogencoding

      * 7ce1b64 Use utf-8 encoding for salt-runtests.log

    * 15ccffd Merge pull request `#49848`_ from terminalmage/fix-version-rst-2017.7

      * af2dddb Fix badly formatted versionadded directive

    * 297031b Merge pull request `#49777`_ from terminalmage/issue49738

      * 8a9945e Update test docstring to reflect switch to using SHA1

      * 7ddfd72 Switch from base64 encoding to sha1 digest for unique cache filename

      * 0e26dc6 Explicitly import salt.utils.hashutils

      * dca90d7 Skip parallel states test on Windows until we can get it to work

      * 5a11067 Add additional info to the assert to aid in troubleshooting

      * cb19086 Remove/replace unnecessary setUp/tearDown

      * b3e9678 Fix parallel states with long ID dec or name

    * 98c9372 Merge pull request `#49763`_ from twangboy/fix_49730

      * 99bc8f1 Merge branch '2017.7' into fix_49730

      * 7a9278b Fix broken tests, add new tests

      * 2cd1509 Merge branch '2017.7' into fix_49730

      * defba1c Merge branch '2017.7' into fix_49730

      * af1ed1c Add/fix tests

      * 5005a4d Only clear dns entries if you pass []

      * 048561e Add ability to clear DNS entries on static DNS

* **PR** `#49876`_: (`KaiSforza`_) Actually catch the exception when we fail
  @ *2018-10-03 12:26:58 UTC*

  * 42b540b Merge pull request `#49876`_ from KaiSforza/ci_actually_fail_2018

  * c88a81d Actually catch the exception when we fail

* **PR** `#49852`_: (`terminalmage`_) Rename logstash engine filename to make it work with the loader
  @ *2018-10-02 17:42:10 UTC*

  * 1c8def9 Merge pull request `#49852`_ from terminalmage/issue49627

  * 559cf1b Rename logstash engine filename to make it work with the loader

* **PR** `#49850`_: (`rallytime`_) Back-port `#49798`_ to 2018.3
  @ *2018-10-02 17:40:29 UTC*

  * **PR** `#49798`_: (`mattp-`_) saltnado: teach runner about full_return (refs: `#49850`_)

  * 675df25 Merge pull request `#49850`_ from rallytime/bp-49798

  * 4b6dcd7 saltnado: teach runner about full_return

* **ISSUE** `#49204`_: (`mchugh19`_) file.directory state fails if directory contains an invalid symlink (refs: `#49209`_, `#49827`_)

* **PR** `#49846`_: (`rallytime`_) Back-port `#49650`_ and `#49827`_ to 2018.3
  @ *2018-10-01 20:05:24 UTC*

  * **PR** `#49827`_: (`dgmorrisjr`_) fixing mis-spelling of lattrs in file.py, referncing `#49204`_  (refs: `#49846`_)

  * **PR** `#49650`_: (`Yxnt`_) fix aliyun cloud typeerror (refs: `#49846`_)

  * 93d064a Merge pull request `#49846`_ from rallytime/bp-49650

  * fb7fed7 referncing `#49204`_, fixing mis-spelling of lattrs on line 4514 per request from @gtmanfred

  * ec9fa92 use stringutils instead of hard code

  * a307ae0 fix aliyun cloud typeerror

* **ISSUE** `#49520`_: (`doesitblend`_) Multi-master DNS Issue - minion connect fail (refs: `#49764`_)

* **PR** `#49764`_: (`garethgreenaway`_) [2018.3] Adding retry_dns_count to minion
  @ *2018-10-01 14:20:03 UTC*

  * ec97806 Merge pull request `#49764`_ from garethgreenaway/49520_multimaster_dns_issue_fix

  * 30ccc5e Merge branch '2018.3' into 49520_multimaster_dns_issue_fix

  * 741928b Fixes per request from @rallytime.

  * 04c5983 Moving the check for an empty self.minions into a io_loop.call_later call.

  * 44ee2ec Updating default for retry_dns_count

  * 75f64a6 Removing unneccesary code.

  * e66dc18 Updating the resolve_dns function in minion.py to include a new minion configuration option which will control how many attempts will be made when the master hostname is unable to be resolved before giving up.

* **PR** `#49847`_: (`terminalmage`_) Fix badly formatted versionadded directive (2018.3 branch)
  @ *2018-10-01 14:04:27 UTC*

  * abdab68 Merge pull request `#49847`_ from terminalmage/fix-version-rst-2018.3

  * a127548 Fix badly formatted versionadded directive

* **ISSUE** `#49043`_: (`awerner`_) Unicode broken with file.blockreplace on Python2 (refs: `#49782`_)

* **PR** `#49782`_: (`dwoz`_) Fix issue 49043
  @ *2018-10-01 13:43:02 UTC*

  * aca87ab Merge pull request `#49782`_ from dwoz/issue-49043

  * b7d904f Merge branch '2018.3' into issue-49043

  * ed35633 Revert diff newline change

  * 2a901e9 Fix issue 49043

* **ISSUE** `#49671`_: (`mchugh19`_) Vault execution module broken in pillar lookups (refs: `#49820`_)

* **PR** `#49820`_: (`garethgreenaway`_) [2018.3] Fixing vault when being used from Pillar
  @ *2018-10-01 13:40:25 UTC*

  * 1a41d1b Merge pull request `#49820`_ from garethgreenaway/49671_fixing_vault_pillar

  * a57872f Merge branch '2018.3' into 49671_fixing_vault_pillar

  * 5f13219 Merge branch '2018.3' into 49671_fixing_vault_pillar

  * b0ba2ec Fixing the scenario when vault values are used in Pillar, but due to a previous change the minion was not being granted token based access.

* **PR** `#49842`_: (`rallytime`_) [2018.3] Merge forward from 2018.3.3 to 2018.3
  @ *2018-10-01 13:21:42 UTC*

  * bf9c175 Merge pull request `#49842`_ from rallytime/merge-2018.3

  * 81b0aa7 Add "in progress" notation back to the 2018.3.3 release notes

  * 0e76103 Merge branch '2018.3.3' into '2018.3'

* **PR** `#49839`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-30 16:32:53 UTC*

  * e6382cb Merge pull request `#49839`_ from rallytime/merge-2018.3

  * 179e4b1 Merge branch '2017.7' into '2018.3'

  * fd46d35 Merge pull request `#49823`_ from dubb-b/timeout_addition

    * b25ac9f Adding some changes for the status

    * f6d9679 Updating syntax to be better and with new lines

    * 855ffe6 Adding timeout to all pipelines so that the build aborts

* **PR** `#49815`_: (`isbm`_) Bugfix/rework: IPv6 scope errors (bp)
  @ *2018-09-28 19:44:59 UTC*

  * fccc08c Merge pull request `#49815`_ from isbm/isbm-ipv6-scope-errors-2018.3

  * c14f26f Reverse skipping tests: if no ipaddress

  * bb37ba0 Add IPv6 scoped test

  * facb34a Add additional check

  * 615b09a Lintfix: W0611

  * 3ce265e Remove unnecessary manipulation with IPv6 scope outside of the IPv6Address object instance

  * c314e1c Revert method remapping with pylint updates

  * 0a86112 Lintfix refactor: remove duplicate returns as not needed

  * 5932a0d Lintfix

  * f52ea0b Add Py3.4 old implementation's fix

  * 1c02a31 Fix wrong type swap

  * 54233ca Do not use introspection for method swap

  * 12038ea Simplify checking clause

  * 7f2208b Fix py2 case where the same class cannot initialise itself on Python2 via super.

  * cefb16b Add extra detection for hexadecimal packed bytes on Python2. This cannot be detected with type comparison, because bytes == str and at the same time bytes != str if compatibility is not around

  * 379ead4 Lintfix: mute not called constructors

  * 66ec29c Add scope on str

  * f5644bf Add logging to the ip_interface

  * 8bb5438 Add real exception message

  * 693e4d4 Move docstrings to their native places

  * 77f1c44 Remove duplicated code

  * 40d0e6b Use ternary operator instead

  * d05999e Remove multiple returns

  * 3fde850 Remove unnecessary operator

  * deb0b4e Remove duplicated code

  * 8e62633 Remove unnecessary variable for import detection

  * 7a6ea3b Remove multiple returns and add check for address syntax

  * b40e1e1 Add debugging to the ip_address method (py2 and py3)

  * cab5f62 Add logging

  * eeab9f2 Isolate Py2 and Py3 mode

  * 49b32b7 Check version via object

  * 1ae94f1 Override standard IPv6Address class

  * 5e970ea Fix unicode imports in compat

  * bbeec4d Fix ipaddress import

  * 561c99e Remove unused import

  * 0498e94 Fix ipaddress imports

  * b4f1a72 Add missing docstrings

* **PR** `#49784`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-28 17:29:30 UTC*

  * 804d52c Merge pull request `#49784`_ from rallytime/merge-2018.3

  * c6b9d18 Merge branch '2018.3' into merge-2018.3

  * 26461f9 Add helper import comments

  * 22f055c Merge branch '2017.7' into '2018.3'

    * d2a193b Merge pull request `#49792`_ from KaiSforza/fixscriptedpipes

      * 5b16996 Fix the new pipelines

  * dd27d80 Merge branch '2017.7' into '2018.3'

    * 8a71a43 Merge pull request `#49774`_ from KaiSforza/declarativeToScripted

      * cae88f2 Move all pipelines to be fully scripted

    * 8fe8aac Merge pull request `#49736`_ from mattLLVW/fix-file-touch

      * 1da9f34 Fix test opts in append, prepend states/file.py

* **PR** `#49790`_: (`weswhet`_) fixing an issue where sentry logger would fail to get tags from grain…
  @ *2018-09-28 13:39:04 UTC*

  * d191b08 Merge pull request `#49790`_ from weswhet/fixing-sentry-logger-2018.3

  * 201697d fixing an issue where sentry logger would fail to get tags from grains and some other lint fixes for this file

* **ISSUE** `#49626`_: (`PabloLemos`_) target grains ip_interface no return received (refs: `#49791`_)

* **PR** `#49791`_: (`terminalmage`_) Fix 3 bugs in subdict matching
  @ *2018-09-28 13:38:34 UTC*

  * 4d9fc7c Merge pull request `#49791`_ from terminalmage/issue49626

  * 6795472 Add clarifying comment

  * ac0f800 Fix 3 bugs in subdict matching

* **PR** `#49806`_: (`isbm`_) Bugfix: zypper ZYPPER_EXIT_NO_REPOS exit code
  @ *2018-09-28 13:20:36 UTC*

  * 52b0472 Merge pull request `#49806`_ from isbm/isbm-zypper-errcode-6-bp

  * 756ef77 Update error list for zypper

  * 5b02548 Add error logging

* **ISSUE** `saltstack/salt-jenkins#1121`_: (`rallytime`_) [2018.3] 4 related tests failing on 2018.3 Python 3 (refs: `#49795`_)

* **PR** `#49795`_: (`gtmanfred`_) fix test_managed_file_with_grains_data
  @ *2018-09-26 22:48:36 UTC*

  * fee6701 Merge pull request `#49795`_ from gtmanfred/tests

  * cf5c179 fix test_managed_file_with_grains_data

* **PR** `#49786`_: (`rallytime`_) Back-port `#49759`_ to 2018.3
  @ *2018-09-26 18:22:01 UTC*

  * **PR** `#49759`_: (`mattp-`_) runners.state.orch: generate jid if missing (refs: `#49786`_)

  * 04e5869 Merge pull request `#49786`_ from rallytime/bp-49759

  * df3791c state.orch: generate jid if missing

* **PR** `#49770`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-25 19:03:25 UTC*

  * 4138683 Merge pull request `#49770`_ from rallytime/merge-2018.3

  * d9ed59b Merge branch '2017.7' into '2018.3'

  * f664515 Merge pull request `#49760`_ from Ch3LL/raid_docs

    * 0eb90c1 Add mdadm as dependency in mdadm state docs

  * d5a75bf Merge pull request `#49749`_ from erwindon/docufix

    * baee678 fixed link in documentation

  * 5ef2def Merge pull request `#49703`_ from twangboy/fix_49675_2017.7

    * 9127222 Merge branch '2017.7' into fix_49675_2017.7

    * 4f54422 Fix reboot needed detection

  * b5726d2 Merge pull request `#49718`_ from vutny/doc/2017.7/add-missing-mock-kwarg

    * 3e19176 [DOC] Add missing `mock` argument for `state.apply`

* **PR** `#49757`_: (`bbinet`_) Fix influxdb_user state when test=True
  @ *2018-09-24 19:14:22 UTC*

  * db6f68a Merge pull request `#49757`_ from bbinet/fix-influxdb_user-test

  * 0d9ef4b Fix influxdb_user state when test=True

* **PR** `#49679`_: (`dwoz`_) Add more tests to whitelist
  @ *2018-09-22 17:46:50 UTC*

  * ec2386e Merge pull request `#49679`_ from dwoz/whitelist

  * 0a3d95f Fix linter issues

  * 4c457c9 Close handles only if they exist

  * a44b37a Merge remote-tracking branch 'saltstack/2018.3' into whitelist

* **PR** `#49722`_: (`meaksh`_) Fixes some issues on the Zypper module
  @ *2018-09-21 13:38:03 UTC*

  * 6a3e127 Merge pull request `#49722`_ from meaksh/2018.3-fix-zypper-issue-on-python3

  * bb9cb6e Fix wrong queryformat for zypper list_provides

  * d40c034 Fix index error when running on Python 3

* **PR** `#49720`_: (`cstarke`_) Seperate prlctl and prlsrvctl checks into each requiring function
  @ *2018-09-21 13:32:46 UTC*

  * e7bbb83 Merge pull request `#49720`_ from cstarke/2018.3

  * b0be6aa Add documentation for prlctl and prlsrvctl binary requirement

  * 4f8476b Fix tests; add test for CommandExecutionError

  * 3c96dd2 Fix tests for parallels module

  * 9034c4e Add import for CommandExecutionError

  * 752b6f8 Seperate prlctl and prlsrvctl checks into each requiring function

* **PR** `#49615`_: (`terminalmage`_) ping_interval: use service.restart instead of signaling
  @ *2018-09-21 13:26:41 UTC*

  * f745e43 Merge pull request `#49615`_ from terminalmage/ping-interval

  * b49b018 Move service name logic to a separate function

  * 2fddba3 ping_interval: use service.restart instead of signaling

* **PR** `#49731`_: (`terminalmage`_) Add warning about using jinja filters to dump dicts in Jinja
  @ *2018-09-21 13:16:04 UTC*

  * 0a530d2 Merge pull request `#49731`_ from terminalmage/jinja-filter-warning

  * 8393560 Add warning about using jinja filters to dump dicts in Jinja

* **PR** `#49696`_: (`jgleissner`_) loosen azure sdk dependencies in azurearm cloud driver
  @ *2018-09-20 19:17:15 UTC*

  * 91acb82 Merge pull request `#49696`_ from jgleissner/2018.3-azurearm-deps

  * 467e017 remove unused import from azurearm driver

  * bad28b6 loosen azure sdk dependencies in azurearm cloud driver

* **PR** `#49684`_: (`twangboy`_) Detect when system needs reboot after domain join
  @ *2018-09-20 16:17:50 UTC*

  * d434e36 Merge pull request `#49684`_ from twangboy/fix_49675

  * 3600467 Fix some try/except blocks, mark a lazy test

  * 871c11a Fix other functions in the same manner

  * 1b5bc66 Merge branch '2018.3' into fix_49675

  * 95e6f54 Detect when system needs reboot after domain join

        * 9048970 Add some debug info to assert

        * 536fce6 Increase function timeout

        * ed4de63 Fix file serialize test

        * 5ac3738 Merge remote-tracking branch 'saltstack/2018.3' into whitelist

* **PR** `#49710`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-19 18:05:50 UTC*

  * 936cae5 Merge pull request `#49710`_ from rallytime/merge-2018.3

  * d19c67f Merge branch '2017.7' into '2018.3'

  * 6bd85b5 Merge pull request `#49706`_ from garethgreenaway/1120_remove_mock_os_path_join

    * f4ccc75 Removing mocking of os.path.join from two tests, one of which was failing when used with coverage argument.  No reason we should be mocking os.path.join.

  * c38dc61 Merge pull request `#49692`_ from rallytime/bp-49688

    * fde7575 Order the runtests suites

          * 1f60753 Do not use close_fds on Windows OS

          * 4a54c7c Fix file serialize test

          * 0ec1e1e Increase timeout on flaky test

          * 6ae924b Skip test that is not applicable on windows

          * 5980200 Increase timeout on flaky test

          * 1757edd Increase ModuleTest.run_function timeout

          * 7c7353c Add more tests to whitelist

* **PR** `#49708`_: (`rallytime`_) Back-port `#49555`_ to 2018.3
  @ *2018-09-19 13:12:12 UTC*

  * **PR** `#49555`_: (`bergmannf`_) Change StringIO and BytesIO imports (refs: `#49708`_)

  * b082f79 Merge pull request `#49708`_ from rallytime/bp-49555

  * ed25416 Change StringIO import in python2 to import the class.

* **PR** `#49707`_: (`rallytime`_) Back-port `#49702`_ to 2018.3
  @ *2018-09-19 13:09:10 UTC*

  * **PR** `#49702`_: (`rallytime`_) Mark orchestration test as expensive (refs: `#49707`_)

  * 0e97d9e Merge pull request `#49707`_ from rallytime/bp-49702

  * 7ff24e5 Mark orchestration test as expensive

* **PR** `#49693`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-18 20:05:28 UTC*

  * 0c4005d Merge pull request `#49693`_ from rallytime/merge-2018.3

  * b39dacf Merge branch '2017.7' into '2018.3'

  * 37cbd27 Merge pull request `#49685`_ from rallytime/pillar-headings

    * 02b2d54 Split intro docs for cmd_yamlex pillar into shorter lines.

    * c4cbe5b Fix heading line-lengths

  * 9bad295 Merge pull request `#49689`_ from terminalmage/2017.7-docs

    * 7e5bab7 Fix docs build errors (2017.7 branch)

* **PR** `#49674`_: (`rallytime`_) [2018.3] Merge forward from 2018.3.3 to 2018.3
  @ *2018-09-18 13:37:00 UTC*

  * a12176d Merge pull request `#49674`_ from rallytime/merge-2018.3

  * 7bcb809 Merge pull request `#31`_ from dwoz/merge-2018.3

    * cb35ebb Account for filename changes

  * f3b122f Merge branch '2018.3.3' into '2018.3'

* **PR** `#49593`_: (`dwoz`_) Add more tests to whitelist for Windows
  @ *2018-09-17 14:57:44 UTC*

  * e636dac Merge pull request `#49593`_ from dwoz/add_whitelist

  * 2e1bf13 Merge branch '2018.3' into add_whitelist

  * 2340a58 Fix runner returns test on Windows

  * f908cde Merge branch '2018.3' into add_whitelist

  * be5fccf Fix linter - blank lines

  * e51b0f8 Fix binary file manage test

  * 9e3b44d Fix linter issues

  * ca1b05e Fix multiple issues in x509 module and state

  * e603e7a Fix encoding issues in file and x509 states

  * 7f93c7f Fix map file loading on windows

  * 2959da0 Add some runners test files to whitelist

  * bee2902 Make windows file remove return like others

  * 5770b05 Fix hitelist file order

  * 10ec8be Fix linter issues

  * ccbcb55 Add more tests to whitelist for Windows

* **PR** `#49639`_: (`isbm`_) Retire MD5 checksum for pkg mgmt plugins
  @ *2018-09-17 14:51:54 UTC*

  * 7823839 Merge pull request `#49639`_ from isbm/isbm-yumnotify-md5

  * 11a94ca Remove an empty line

  * adb8324 Use SHA256 algorithm for zyppnotify plugin

  * 27001cf Use SHA256 algorithm for yumnotify plugin

* **PR** `#49652`_: (`rallytime`_) [2018.3] Merge forwrad from 2018.3.3 to 2018.3
  @ *2018-09-14 21:20:39 UTC*

  * aecbe12 Merge pull request `#49652`_ from rallytime/merge-2018.3

  * a8a3820 Merge branch '2018.3.3' into '2018.3'

* **PR** `#49646`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-14 13:30:22 UTC*

  * 530e281 Merge pull request `#49646`_ from rallytime/merge-2018.3

  * 186f57e Merge branch '2017.7' into '2018.3'

  * 3c8ec8a Merge pull request `#49644`_ from rallytime/mark-flaky-test

    * be8a187 Mark grains test as flaky

  * 8ac66f1 Merge pull request `#49643`_ from rallytime/bp-49642

    * accef8c Skip some unreliable tests

  * 7a75d5e Merge pull request `#49597`_ from rallytime/bp-47232

    * c477b70 Fixed usage of ipaddress

  * 2f6cdd9 Merge pull request `#49614`_ from rallytime/bp-49546

    * 0f3881a Skip flaky test on Python 3

* **PR** `#49642`_: (`rallytime`_) Skip some unreliable tests (refs: `#49643`_)
  @ *2018-09-13 18:24:43 UTC*

  * bb1dcdf Merge pull request `#49642`_ from rallytime/flaky-tests

  * 8e74d1c Skip some unreliable tests

* **PR** `#49629`_: (`rallytime`_) [2018.3] Merge forward from 2018.3.3 to 2018.3
  @ *2018-09-13 14:00:08 UTC*

  * e319ecc Merge pull request `#49629`_ from rallytime/merge-2018.3

  * b628ad7 Merge branch '2018.3.3' into '2018.3'

* **PR** `#49632`_: (`garethgreenaway`_) [2018.3] Fixing integration.states.test_file.FileTest.test_directory_max_depth
  @ *2018-09-13 13:51:56 UTC*

  * 93d43fa Merge pull request `#49632`_ from garethgreenaway/fixing_failing_test_python_3_7

  * 588f744 Fixing failing test under python 3.7 causaed by changes to how os.makedirs sets initial permissions.

* **PR** `#49580`_: (`garethgreenaway`_) [2018.3] Fixing tests for Python 3.7
  @ *2018-09-12 16:33:35 UTC*

  * 7042fc0 Merge pull request `#49580`_ from garethgreenaway/fixing_failing_test_python_3_7

  * b6afdae Fixing lint.

  * d2fb68c Fixes various tests that were failing under python 3.7.

* **PR** `#49606`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-12 14:26:33 UTC*

  * ab19082 Merge pull request `#49606`_ from rallytime/merge-2018.3

  * c168268 Update old utils paths to use new paths

  * 19598d8 Merge branch '2017.7' into '2018.3'

    * aa560c5 Merge pull request `#49595`_ from rallytime/merge-2017.7

      * 09247a3 Merge branch '2017.7.8' into '2017.7'

        * 4d865b4 Merge pull request `#49560`_ from rallytime/pkgng-fix

          * f3e1534 [2017.7.8] Use correct path for is_true function

        * 92369f0 Merge pull request `#49541`_ from twangboy/fix_osx_build_2

          * 750d3fa Remove trusted host switches

        * 397296f Merge pull request `#49539`_ from twangboy/fix_osx_build_2

          * 6b42e73 Fix issues with build script on OSX

    * e8171de Merge pull request `#49596`_ from terminalmage/kill-bare-excepts-with-fire

      * 729dc08 Kill bare excepts with fire

    * 63b6643 Merge pull request `#49578`_ from twangboy/fix_49566

      * 6a5a69c Merge branch '2017.7' into fix_49566

    * f9a01b7 Merge pull request `#49584`_ from terminalmage/squelch-varstack-error

      * c79a823 Squelch error logging when varstack is not installed

    * d4d2b36 Merge pull request `#49579`_ from dwoz/flaky_test

      * dbe40df Increase timeout for flaky git test

    * 5cbe60b Merge pull request `#49570`_ from rallytime/doc-fixes

      * de80bda Fix docstring + import order, move pylint disable to own line

      * 393bc0f Fix doc build errors in saltnado documentation

        * 6105ebb Use setup.py clean --all

* **PR** `#49620`_: (`dwoz`_) Adding passing windows nacl runner tests to whitelist
  @ *2018-09-12 14:19:11 UTC*

  * 0ce91d6 Merge pull request `#49620`_ from dwoz/nacltest

  * 51500ac Adding passing windows nacl runner tests to whitelist

* **PR** `#49532`_: (`meaksh`_) Fix wrong 'recurse' behavior on for linux_acl.present/absent states
  @ *2018-09-12 14:16:15 UTC*

  * c1f97c4 Merge pull request `#49532`_ from meaksh/2018.3-fix-linux_acl-recursive-problems

  * cf27069 Fix some pylint issues

  * a0ed59d Fix recursive cases on linux_acl.absent state

  * 4a01849 Add unit tests to cover recursive cases of linux_acl states

  * f739b6f Fix typo on variable name

  * dc6d1d7 Fix wrong recurse behavior on for linux_acl.present state

* **ISSUE** `#49027`_: (`lachlanmunro`_) x509.certificate_managed certificate is mangled on process under py3 m2crypto (refs: `#49561`_)

* **ISSUE** `#49008`_: (`lachlanmunro`_) x509.certificate_managed state fails under py3 m2crypto with "int too large" (refs: `#49561`_)

* **PR** `#49561`_: (`dwoz`_) x509 module and state bug fixes
  @ *2018-09-11 14:01:43 UTC*

  * 283e7d7 Merge pull request `#49561`_ from dwoz/m2crypto_test

  * 5e591ea Merge branch '2018.3' into m2crypto_test

* **PR** `#49592`_: (`dwoz`_) Fix binary file manage test
  @ *2018-09-10 23:03:18 UTC*

  * 4478a44 Merge pull request `#49592`_ from dwoz/bin_file_fix

  * 8556c3d Fix binary file manage test

* **PR** `#49571`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-10 12:58:15 UTC*

  * 9004422 Merge pull request `#49571`_ from rallytime/merge-2018.3

  * a00aba9 Merge branch '2017.7' into '2018.3'

    * 5d267a2 Merge pull request `#49547`_ from rallytime/bp-49518

      * 4bb09f7 Skip service module integration tests on CentOS 7

    * 4948071 Merge pull request `#49549`_ from rallytime/codeowners-duplicate

      * 4b257d2 Remove duplicate comment in CODEOWNERS file

      * faafe74 Merge branch '2018.3' into m2crypto_test

* **PR** `#49577`_: (`dwoz`_) Multiple unittest fixes for 2018.3 Python 3 Windows
  @ *2018-09-08 05:53:38 UTC*

  * 4669a9a Merge pull request `#49577`_ from dwoz/unit_test_fixes

  * aa07b3f Multiple unittest fixes for 2018.3 Python 3 Windows

* **PR** `#49533`_: (`silenius`_) [cherry-pick] Optimize postgres groups management
  @ *2018-09-07 18:58:57 UTC*

  * 8b971e5 Merge pull request `#49533`_ from silenius/2018.3.3

  * 7eb8d6c Postgress module unit test fix.

  * b56aedc Optimize postgres groups management

* **PR** `#49543`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-07 18:19:32 UTC*

  * 1a41b47 Merge pull request `#49543`_ from rallytime/merge-2018.3

  * cf508a4 Merge branch '2017.7' into '2018.3'

    * 75a3b52 Merge pull request `#49527`_ from terminalmage/remove-special-envs-handling

      * 1478a76 Remove special handling for file_envs fileserver func

    * 13f1d26 Merge pull request `#49512`_ from rallytime/merge-2017.7

      * de7ef3d Add "in progess" notation back to 2017.7.8 release notes

      * edad2dc Merge branch '2017.7.8' into '2017.7'

        * d24c96f Merge pull request `#49505`_ from Ch3LL/rn_7.8_2

          * d40b644 Update 2017.7.8 ChangeLog with new fixes

        * 0d7b173 Merge pull request `#49498`_ from rallytime/pin-cherrypy-2017.7.8

          * 81a6155 Pin CherryPy version to < 18.0.0 in requirements files for PY2

        * 52ab2c0 Merge pull request `#49466`_ from rallytime/bp-49461

          * 5842800 Revert "Allow for not being prompted to supply a password to deploy keys to a…"

        * 1bbe7df Merge pull request `#49284`_ from twangboy/fix_installer_osx

          * a112eaa Fix path to libsodium tarball

        * e0e8779 Merge pull request `#49272`_ from twangboy/fix_installer_more

          * a8f054b Add 64bit binaries for KB2999226 to the x86 installer

        * 0eb6ddf Merge pull request `#49218`_ from twangboy/fix_installer

          * e8a1d2f Add more descriptive error when KB not found

          * 71737ea Suppress all ui on vcredist installation

          * 7dae9bb Fix Windows and OSX installers

        * e484f26 Merge pull request `#49116`_ from twangboy/fix_installer

          * 1227095 Add nonfatal switch to VCRedist

        * 0b9f2f8 Merge pull request `#49113`_ from Ch3LL/rn_7.8

        * f6b70bb Add changelog to 2017.7.8 release notes

    * 208cfe6 Merge pull request `#49515`_ from rallytime/update-codeowners

      * 1faab8b Add some files to the CODEOWNERS files for team-core to own

    * 34e5174 Merge pull request `#49327`_ from twangboy/fix_win_service

      * 74e944b Mark test_service_status_running as flaky

      * c69560c Merge branch '2017.7' into fix_win_service

      * 53e2e05 Merge branch '2017.7' into fix_win_service

      * cf3d287 Merge branch '2017.7' into fix_win_service

      * 1641851 Fix the name of the _cmd_quote test

      * 97567af Skip tests on Linux systems

      * 0ca9cd1 Fix some lint

      * 3800966 Add tests

      * b0d646d Add more details to the functioning of _cmd_quote

      * a9856e2 Fix issues with win_service

* **ISSUE** `#49452`_: (`gtmanfred`_) [python3.7] remove usage of collections.abc stuff from the collections shim (refs: `#49487`_)

* **PR** `#49487`_: (`garethgreenaway`_) [2018.3] Swapping out collections imports
  @ *2018-09-07 15:36:04 UTC*

  * baafd6e Merge pull request `#49487`_ from garethgreenaway/49452_collections_abc

  * 2fb3ef7 Merge branch '2018.3' into 49452_collections_abc

  * ebfd7f9 Merge branch '2018.3' into 49452_collections_abc

  * b27e86b Swapping out the version check for a try...except on the import from collections.abc with a fallback to importing from collections.

  * d118a9f Updating various imports that have been moved from collections to collections.abc, and will be deprecated in collections beginning in 3.8.

                * abc9c1a Fix linter issues

                * 8e42384 Fix multiple issues in x509 module and state

                * 2a52158 Fix encoding issues in file and x509 states

                * 49a6da7 Fix map file loading on windows

* **PR** `#49528`_: (`dwoz`_) Fix merge wart
  @ *2018-09-06 23:12:39 UTC*

  * 06935e9 Merge pull request `#49528`_ from dwoz/mergetests

  * 6a4f823 Fix merge wart

* **PR** `#49548`_: (`garethgreenaway`_) [2018.3] Disabling State boto tests for Python 3.7+
  @ *2018-09-06 21:50:10 UTC*

  * 3298e70 Merge pull request `#49548`_ from garethgreenaway/1075_disable_boto_tests_part_deux

  * 0f5191e Disable various boto tests when run under python 3.7 because of //github.com/spulec/moto/issues/1706. which was causing the test suite to hang on unit tests.  This PR is disabling the tests in the test_boto_vpc state tests.

* **PR** `#49521`_: (`terminalmage`_) Fix _get_hash in splay executor
  @ *2018-09-06 14:06:54 UTC*

  * c346825 Merge pull request `#49521`_ from terminalmage/fix-splay-executor

  * bbb8fe8 Fix _get_hash in splay executor

* **PR** `#49526`_: (`terminalmage`_) Prevent lookup error when trying to lookup fileserver function from LazyDict
  @ *2018-09-06 14:01:30 UTC*

  * 3f7c89c Merge pull request `#49526`_ from terminalmage/fix-backends-error-logging

  * 1f0288e Prevent lookup error when trying to lookup fileserver function from LazyDict

* **PR** `#49524`_: (`garethgreenaway`_) [2018.3] Disable boto tests under 3.7
  @ *2018-09-06 13:35:18 UTC*

  * bf939f9 Merge pull request `#49524`_ from garethgreenaway/1075_disable_boto_tests

  * 5ec5578 Disable various boto tests when run under python 3.7 because of //github.com/spulec/moto/issues/1706. which was causing the test suite to hang on unit tests.

* **PR** `#49511`_: (`rallytime`_) [2018.3] Merge forward from 2018.3.3 to 2018.3
  @ *2018-09-05 19:52:25 UTC*

  * f73f2e5 Merge pull request `#49511`_ from rallytime/merge-2018.3

  * 3ffc6c2 Merge branch '2018.3.3' into '2018.3'

* **PR** `#49500`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-09-04 19:02:31 UTC*

  * 81a49a8 Merge pull request `#49500`_ from rallytime/merge-2018.3

  * 2317b5e Merge branch '2017.7' into '2018.3'

    * 1cdaea2 Merge pull request `#49475`_ from dwoz/flaky_tests

      * f214929 Fix a flaky test and mark another as flaky

    * 4ac4305 Merge pull request `#49457`_ from rallytime/labels-docs

      * d1e51db Remove references to unused milestones in docs

    * 41dcc3f Merge pull request `#49461`_ from saltstack/revert-47100-ssh

      * 0d7180a Revert "Allow for not being prompted to supply a password to deploy keys to a…"

* **PR** `#49497`_: (`rallytime`_) Back-port `#49473`_ to 2018.3
  @ *2018-09-04 18:44:25 UTC*

  * **PR** `#49473`_: (`rallytime`_) Use correct and explicit paths for salt utils libs (refs: `#49497`_)

  * 16ca360 Merge pull request `#49497`_ from rallytime/bp-49473

  * 1aa3935 Lint: Add range import from six

  * d06f6a5 Use correct and explicit paths for salt utils libs

* **PR** `#49474`_: (`dwoz`_) Work around git-python resource leaks
  @ *2018-09-02 19:42:32 UTC*

  * 93df5c4 Merge pull request `#49474`_ from dwoz/gitfs_unit

  * 56068e9 Merge branch '2018.3' into gitfs_unit

  * e697ddc Work around git-python resource leaks

* **PR** `#49471`_: (`Ch3LL`_) Remove string conversion on frame object in sigusr1 handler
  @ *2018-09-02 18:05:13 UTC*

  * 43ead5d Merge pull request `#49471`_ from Ch3LL/debug_sigusr1

  * 1631b2f Remove string conversion on frame object in sigusr1 handler

* **PR** `#49454`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-08-31 21:36:34 UTC*

  * 764b816 Merge pull request `#49454`_ from rallytime/merge-2018.3

  * a97a7b0 Fix lint and test failures caused by bad merge

  * f7226f4 Merge branch '2017.7' into '2018.3'

    * 7a166bc Merge pull request `#49376`_ from twangboy/fix_48608

      * bf32e0c Merge branch 'fix_48608' of https://github.com/twangboy/salt into fix_48608

        * 9766f0d Merge branch '2017.7' into fix_48608

      * fb97b00 Fix broken path to libsodium tarball

      * 535d83e Fix test for list_users

      * 40d3f2e Use dscl to get list of users

      * e426459 Use a set to avoid duplicates

    * 03d9750 Merge pull request `#49434`_ from dwoz/cleanup_exception_handling

      * 9daa992 Fix group remove test logic

      * d74fab7 Clean up exception handling on py3

    * 7099164 Merge pull request `#49389`_ from gtmanfred/2017.7

      * 6c01662 remove cmd key from load

      * bdf3df3 add cli example

      * 251f321 pass load on

      * be7c041 add test

      * 0ace5c1 make file envs compatible with transport format

    * 24faa5e Merge pull request `#49408`_ from terminalmage/issue49269

      * d02ec34 Allow our custom yaml dumper to NamespacedDictWrapper objects

    * 5746fc8 Merge pull request `#49402`_ from rallytime/bp-49321

      * 7dec9fc Add flaky decorator to serializer test

    * 5c723b0 Merge pull request `#49375`_ from terminalmage/revert-49185

      * aaea274 Merge branch '2017.7' into revert-49185

      * 7372e9d Add minion documentation for enable_gpu_grains

      * ea1b53c Fix incorrect master docs for enable_gpu_grains

      * 638210a Add validation type and default minion value for enable_gpu_grains

      * 49ed156 Add enable_gpu_grains to the minion config stub

      * d1b7fb4 Revert "Update documentation to correctly state enable_gpu_grains default"

    * 11d87e4 Merge pull request `#49387`_ from twangboy/fix_win_repo

      * 2bf7eda Import GLOBAL_ONLY

    * 651631d Merge pull request `#49390`_ from dwoz/archive_module

      * b332beb Fix archive tests for py3

    * c591d2b Merge pull request `#49385`_ from dwoz/sonofa

      * f9d7dbd The autoruns module has not been renamed

    * 5d2c9b6 Merge pull request `#49371`_ from rallytime/bp-49064

      * bc52f7c Stop running lint on all files when no changes

    * f1c904e Merge pull request `#49380`_ from twangboy/doc_48758

      * 6cefbdf Add docs from a comment on issue 48758

    * b22a43d Merge pull request `#49324`_ from dwoz/windows_pr_builds

      * 7abd9cd Merge branch '2017.7' into windows_pr_builds

    * b2e4121 Merge pull request `#49379`_ from dwoz/whitelistagain

      * 56ea4ee Account for more tests that are not in 2017.7

    * 7fa9120 Merge pull request `#49366`_ from rallytime/bp-49232

      * 74b05ef fix HTTP method for acl_info

      * b9fa7db Merge branch '2017.7' into windows_pr_builds

      * 77f5fd3 Merge branch '2017.7' into windows_pr_builds

      * 7cdba27 Add ci scripts for windows PR builds

* **PR** `#49025`_: (`twangboy`_) Fix several issues with LGPO
  @ *2018-08-31 18:25:34 UTC*

  * 4ea22e5 Merge pull request `#49025`_ from twangboy/fix_48661

  * c27fd18 Merge branch '2018.3' into fix_48661

  * 222c503 Fix several issues with LGPO

* **ISSUE** `#49281`_: (`aarnaud`_) etcd_cache : Not working for mine (refs: `#49283`_)

* **PR** `#49283`_: (`aarnaud`_) Fix `#49281`_ etcd_cache with mine cache
  @ *2018-08-31 18:24:23 UTC*

  * dd9ec94 Merge pull request `#49283`_ from aarnaud/fix-etcd-cache

  * 13e1a17 Merge branch '2018.3' into fix-etcd-cache

  * 6c0fb9c Fix `#49281`_ etcd_cache with mine cache

* **PR** `#49459`_: (`dwoz`_) Batch test fix cherry-pick
  @ *2018-08-30 23:02:12 UTC*

  * 64227f9 Merge pull request `#49459`_ from dwoz/batch_fix

  * fc39dcf Simplify cli test fixes

* **PR** `#49453`_: (`dwoz`_) Fix up py3 git config tests
  @ *2018-08-30 22:00:19 UTC*

  * 75285a3 Merge pull request `#49453`_ from dwoz/conffix

  * ac3c379 Fix up py3 git config tests

* **PR** `#49411`_: (`terminalmage`_) Allow our custom yaml dumper to NamespacedDictWrapper objects (2018.3 branch)
  @ *2018-08-30 13:05:37 UTC*

  * a962efc Merge pull request `#49411`_ from terminalmage/issue49269-2018.3

  * a4cb35b Remove support for overriding the class name

  * 82a8b73 Allow our custom yaml dumper to NamespacedDictWrapper objects

* **PR** `#49407`_: (`rallytime`_) Mark pkg module tests and flaky
  @ *2018-08-30 13:01:31 UTC*

  * 8022a3b Merge pull request `#49407`_ from rallytime/pkg-flaky

  * 1609e11 Mark pkg module tests and flaky

* **PR** `#49406`_: (`rallytime`_) [2018.3] Merge forward from 2018.3.3 to 2018.3
  @ *2018-08-30 13:00:34 UTC*

  * 7f8c38a Merge pull request `#49406`_ from rallytime/merge-2018.3

  * 4939ee3 Merge branch '2018.3.3' into '2018.3'

* **PR** `#49401`_: (`rallytime`_) Mark output file permissions test as flaky
  @ *2018-08-29 18:13:12 UTC*

  * 68d630f Merge pull request `#49401`_ from rallytime/flaky-output-test

  * e13216b Mark output file permissions test as flaky

* **PR** `#49400`_: (`rallytime`_) Mark pillar refresh test as flaky
  @ *2018-08-29 18:12:51 UTC*

  * 23610ed Merge pull request `#49400`_ from rallytime/flaky-pillar-test

  * fb62af6 Mark pillar refresh test as flaky

* **ISSUE** `#49150`_: (`sunyq`_) hosts.rm_host changes /etc/hosts file with odd characters (refs: `#49394`_)

* **PR** `#49394`_: (`sunyq`_) fix issue`#49150`_ hosts.rm_host changes /etc/hosts with odd characters
  @ *2018-08-29 13:33:49 UTC*

  * 502e91c Merge pull request `#49394`_ from sunyq/2018.3

  * 76ba5b6 fix issue`#49150`_ hosts.rm_host changes /etc/hosts with odd characters

* **PR** `#49386`_: (`dwoz`_) Cherry-pick whitelist fix.
  @ *2018-08-29 01:11:05 UTC*

  * 2cf2e62 Merge pull request `#49386`_ from dwoz/whitelistfix

  * 2b08cf1 Account for more tests that are not in 2017.7

* **PR** `#49372`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-08-28 19:03:53 UTC*

  * ec04282 Merge pull request `#49372`_ from rallytime/merge-2018.3

  * ab6cc1c Update old utils paths to use new paths

  * ac406c4 Merge branch '2017.7' into '2018.3'

  * dfa3861 Merge pull request `#49354`_ from dwoz/fix_whitelist

    * aeb0fa3 custom_grains tests do not exist

  * 14b8094 Merge pull request `#49346`_ from Ch3LL/bp-49345

    * ce2733e upgrade including linux kernels

  * d8f2945 Merge pull request `#49344`_ from cachedout/test_matcher_flaky

    * a34ef2e Matcher test marked flaky

  * f08e720 Merge pull request `#49353`_ from dwoz/boto_fix

    * 376019f Do not raise exception if passed bytes

  * 4690ad0 Merge pull request `#49339`_ from dwoz/more_tests

    * d50324b Merge branch '2017.7' into more_tests

  * e371ad9 Merge pull request `#49341`_ from terminalmage/issue48717

    * 1971d09 Update dynamic git_pillar docs to enclose env name in quotes

  * 00b58ee Merge pull request `#49337`_ from dwoz/win_service_test_fix

    * 1c1727e Fix broken service stop test

  * 81428ed Merge pull request `#49291`_ from dwoz/dedent

    * 1991198 Fix review nits

    * 6abc2da Re-factor dedent to fix warts

    * 75b2e3d Use salt.utils.to_* functions

    * fa78a7b Add dedent that sets line endings

      * cd6706e Fix merge wart

      * b9c344b Fix module.archive tests for win py3

      * ac60fb8 Comment strange code

      * 5fefd6f Simplify cli test fixes

      * 1765d53 Fix archive tests on Windows platform

      * 06f271f Add archive module tests to whitelist.txt

      * 9cb8fe2 Add more tests to whitelist for windows

      * b8af238 Fix indent wart

      * bc971e4 add doc tests

      * 8899a5e Add more client tests to whitelist

      * 14cd7b48 Add cli tests to whitelist

      * 3e55d10 Platform module doesn't exist in 2017.7

      * 2733c02 Use double quotes on windows commands

      * 0394ece The set command does not work like inline env vars

  * 1fd5cf1 Merge pull request `#49320`_ from rallytime/fix-48694

    * 0964b5e Update documentation for `#48694`_ and add deprecation warning

  * c323096 Merge pull request `#49314`_ from rallytime/bp-49277

    * 6d691b2 Prepend current directory when path is just filename

  * c7bae5e Merge pull request `#49290`_ from rallytime/bp-44504

    * 6224f7b calling range is going up to the upper limit but not including it

  * 7a44e59 Merge pull request `#49289`_ from rallytime/bp-49170

    * 4c29c17 forcing mine update in the proxy minion as well

    * b1d581a force mine update on minion start

  * 221ea22 Merge pull request `#49278`_ from rallytime/bp-49253

    * b331b5c skip ID 7 for vmware hard drives

* **PR** `#49356`_: (`dwoz`_) Fix tests that use timed_subprocess for py3
  @ *2018-08-28 13:30:08 UTC*

  * 1faf6a7 Merge pull request `#49356`_ from dwoz/cmdmod

  * 6ffeaae Fix tests that use timed_subprocess for py3

* **ISSUE** `#48299`_: (`dosercz`_) git.latest reports deleted tags in remote repo as new_tags in changes (refs: `#49305`_)

* **PR** `#49336`_: (`terminalmage`_) Fix half-baked comment
  @ *2018-08-27 00:07:55 UTC*

  * **PR** `#49305`_: (`terminalmage`_) Allow git.latest to remove local tags which have been removed remotely (refs: `#49336`_)

  * 2d8055e Merge pull request `#49336`_ from terminalmage/issue48299

  * 175e161 Fix half-baked comment

* **PR** `#49331`_: (`dwoz`_) Use salt.utils to ensure string type
  @ *2018-08-26 01:42:08 UTC*

  * a2e7033 Merge pull request `#49331`_ from dwoz/strfix

  * 7513474 Use salt.utils to ensure string type

* **PR** `#49312`_: (`Ch3LL`_) Fix keyerror in manage.bootstrap
  @ *2018-08-25 19:55:44 UTC*

  * d70eda8 Merge pull request `#49312`_ from Ch3LL/ssh_list_hosts

  * da71c97 Fix keyerror in manage.bootstrap

* **PR** `#49316`_: (`rallytime`_) [2018.3] Merge forward from 2018.3.3 to 2018.3
  @ *2018-08-25 19:53:04 UTC*

  * 6b2eba7 Merge pull request `#49316`_ from rallytime/merge-2018.3

  * 39c442c Merge branch '2018.3.3' into '2018.3'

* **ISSUE** `#48880`_: (`damntoken`_) Can't run cmd.run with UTF-8 chars as arguments / parameters. With custom module. (refs: `#49322`_)

* **PR** `#49322`_: (`dwoz`_) Encode shell commands explicitly.
  @ *2018-08-25 04:43:26 UTC*

  * 5766e98 Merge pull request `#49322`_ from dwoz/state_module_test_fix

  * 1f7d50d Encode shell commands explicitly.

* **PR** `#49299`_: (`dwoz`_) Work around cmd.run unicode issues in test for now
  @ *2018-08-25 04:43:03 UTC*

  * b47da0a Merge pull request `#49299`_ from dwoz/test_fix

  * f4bd644 Fix string formatting wart in file state tests

  * e84e608 Fix wart in file state test

  * 71d4465 Work around cmd.run unicode issues in test for now

* **ISSUE** `#48299`_: (`dosercz`_) git.latest reports deleted tags in remote repo as new_tags in changes (refs: `#49305`_)

* **PR** `#49305`_: (`terminalmage`_) Allow git.latest to remove local tags which have been removed remotely (refs: `#49336`_)
  @ *2018-08-24 17:29:03 UTC*

  * b65890c Merge pull request `#49305`_ from terminalmage/issue48299

  * 4a093d9 lint

  * ed7b994 Gate tag manipulation behind a sync_tags argument

  * 29de855 Add test for a removed tag

  * eb9a459 Properly handle tags deleted from remote repository

  * 916c15a Add git.tag function

* **ISSUE** `#49009`_: (`msciciel`_) file_ignore_regex / file_ignore_glob not working properly (refs: `#49308`_)

* **PR** `#49308`_: (`terminalmage`_) Don't include ignored paths in mtime map
  @ *2018-08-24 17:28:41 UTC*

  * 459354a Merge pull request `#49308`_ from terminalmage/issue49009

  * 2badd7f Don't include ignored paths in mtime map

* **PR** `#49282`_: (`rallytime`_) [2018.3] Merge forward from 2017.7 to 2018.3
  @ *2018-08-24 16:45:50 UTC*

  * 914bb09 Merge pull request `#49282`_ from rallytime/merge-2018.3

  * 21a51c9 Add 'minion_data_cache: True' to mocked opts for minions unit tests

  * 196ce3f Call the `with_tempfile` decorator correctly for 2018.3

  * 37f24fd Fix unit test for file state

  * 6f9a158 Update old utils paths with new paths

  * c3ecefc Merge branch '2017.7' into '2018.3'

    * 879c3ad Merge pull request `#49262`_ from bloomberg/short-circuit

      * a3594db extend #488588 to cover SyncAuth class

    * 1900aff Merge pull request `#49144`_ from twangboy/fix_48163

      * ff5ec86 Work with seconds

      * 7264008 Fix some lint (remove whitespace)`

      * 4f9973d Improve timeout in delete

      * a6ecb75 Remove testing debug stuff

      * 7dd7953 Fix start/stop functions

      * fade0a6 Merge pull request `#10`_ from damon-atkins/patch-1

        * 57c4b9f 2017_win_service_damon

      * d44eaee Add timeout support to the state

      * d579b3e Add timeout parameter

    * 395bae6 Merge pull request `#49259`_ from gtmanfred/flaky-2017.7

      * 93a576e flaky tests are flaky yo

      * f518bd3 mark orchestration state tests as flaky

    * 62cc0df Merge pull request `#49231`_ from minusf/mount-check-name

      * eb5cab3 fix some underhanging indent while here...

      * ec2a091 check for mandatory parameters to avoid false positives

    * d55d484 Merge pull request `#49242`_ from dwoz/blockreplace_better_fix

      * 72c3727 Use six to make sure content is unicode

      * 1bf0b18 Better blockfix replace

      * dd4fcd3 Revert "Multiple block replace test fixes"

      * d335842 Use os.linesep.join instead of textwrap.dedent

    * 85f6d36 Merge pull request `#49236`_ from terminalmage/issue32737

      * 233bbae Allow compound matching in eauth config expressions

    * 5ba7f60 Merge pull request `#49187`_ from erwindon/py27fixnumberformat

      * 12261a5 trailing whitespace removal

      * 2149e22 Fix for `#45620`_: "Salt CLI is rounding floats to 2 decimal places" (actually: Salt CLI is using only 12 digits for precision)

    * f8c55b8 Merge pull request `#49184`_ from ralish/external_nodes_docs

      * 4fe38dc Merge branch '2017.7' into external_nodes_docs

      * 2e29b29 Remove obsolete documentation on external_nodes setting

    * 65205a4 Merge pull request `#49185`_ from ralish/enable_gpus_grains_doc

      * 2fe675c Update documentation to correctly state enable_gpu_grains default

    * 5aa282e Merge pull request `#48032`_ from zer0def/parted-naming

      * 563ad25 Merge branch '2017.7' into parted-naming

      * 07f8631 Fixed partition names with spaces effectively containing only the first word.

    * 0157eac Merge pull request `#49164`_ from terminalmage/issue49154

      * c2aba7a Merge branch '2017.7' into issue49154

      * b4544d7 Add keep_source integration tests

      * 82638c6 Fix bug in keep_source for non-templated salt:// file sources

    * b510441 Merge pull request `#49179`_ from dwoz/test_unit_states_file

      * 913ea5e Fix directory unit test

      * 3363238 Account for normalized dirs in unit tests

    * 7486fd5 Merge pull request `#49162`_ from erwindon/wheel_error_error

      * ca5df04 Merge branch '2017.7' into wheel_error_error

      * 4335c5c Must have 2 lines between imports and code

      * ec1f013 Improved solution as per @dwoz's suggestion

      * 20f134e Fixed unknown 'exceptions' under Python3 (`#49152`_)

    * 7043286 Merge pull request `#49143`_ from Ch3LL/bp-49142

      * d2e73cc Remove -Z script_arg for cloud tests

    * 8ab55f5 Merge pull request `#49167`_ from dwoz/filefix

      * b5ba073 Simplify dict keys lookup

      * 6844251 Fix remaining file state integration tests (py3)

    * 90bd560 Merge pull request `#49163`_ from dwoz/tmp_dir

      * 3384864 add Exception type

      * 9da79dd0 Allow test suite to finish if tmp dir removal fails

    * aa01a67 Merge pull request `#49136`_ from Ch3LL/bootstrap_2017.7

      * de40dfb [2017.7] Update bootstrap script to latest release (2018.08.15)

    * 29fccbf Merge pull request `#49118`_ from dwoz/test_file_fixes

      * c6b781e Multiple fixes for integration.states.test_file

    * 133e400 Merge pull request `#49103`_ from dwoz/cmd_test_fix

    * 566a4ea Install the launcher so we can execute py files

* **ISSUE** `saltstack/salt-jenkins#1075`_: (`Ch3LL`_) [2018.3.3] arch python3 tests do not finish (refs: `#49303`_)

* **PR** `#49303`_: (`gtmanfred`_) use os._exit instead of sys.exit when daemonizing
  @ *2018-08-24 14:15:54 UTC*

  * 4c81c2e Merge pull request `#49303`_ from gtmanfred/forking

  * e06ce49 use os._exit instead of sys.exit when daemonizing

* **PR** `#49276`_: (`terminalmage`_) Fix paths to moved functions
  @ *2018-08-23 16:38:55 UTC*

  * 158c1ca Merge pull request `#49276`_ from terminalmage/fix-moved-funcs

  * 322a988 Fix paths to moved functions

* **PR** `#49270`_: (`dwoz`_) Add async helper to test_sock_path_len
  @ *2018-08-23 16:17:54 UTC*

  * ef39f85 Merge pull request `#49270`_ from dwoz/test_event_fix

  * 51bf79a Add async helper to test_sock_path_len

* **PR** `#49199`_: (`jacobweinstock`_) Fix typeerror unicode
  @ *2018-08-23 14:38:17 UTC*

  * 5da743a Merge pull request `#49199`_ from jacobweinstock/fix-typeerror-unicode

  * 25608ef Merge branch '2018.3' into fix-typeerror-unicode

  * 11ad11c add unicode_literals back to handle logging and other things.

  * 6944baf add salt.utils.stringutils.to_bytes. add comment on unicode_literals.

* **ISSUE** `#49174`_: (`rbthomp`_) Beacon diskusage reporting incorrect diskusage value.  (refs: `#49264`_)

* **PR** `#49264`_: (`gtmanfred`_) fix diskusage beacon
  @ *2018-08-23 14:36:07 UTC*

  * e28f8f1 Merge pull request `#49264`_ from gtmanfred/diskusage

  * 15857c2c fix diskusage

* **PR** `#49253`_: (`gtmanfred`_) skip ID 7 for vmware hard drives (refs: `#49278`_)
  @ *2018-08-23 14:35:31 UTC*

  * f6b2b93 Merge pull request `#49253`_ from gtmanfred/vmware

  * 6e776ca skip ID 7 for vmware hard drives

* **ISSUE** `#49159`_: (`wenxin-wang`_) incorrect default value of minion's 'ipv6' option  (refs: `#49263`_)

* **PR** `#49263`_: (`terminalmage`_) Revert default value for ipv6 to None
  @ *2018-08-23 13:02:13 UTC*

  * 2a2bd48 Merge pull request `#49263`_ from terminalmage/issue49159

  * bf5d907 Revert default value for ipv6 to None

* **PR** `#49244`_: (`dwoz`_) Test fixes: unit.fileserver.test_gitfs
  @ *2018-08-22 20:19:42 UTC*

  * ec32428 Merge pull request `#49244`_ from dwoz/gitfs_fixes

  * b533fa1 Simplify by using to_unicode helper

  * 5a0cda5 Older GitPython version do not have a close method

  * 7452715 Fix up fileserver.test_gitfs tests on windows

  * 800aa25 Remove unicode filenames on windows python 2

* **PR** `#49265`_: (`terminalmage`_) Fix failing unit file module unit tests
  @ *2018-08-22 19:35:07 UTC*

  * 2d7f846 Merge pull request `#49265`_ from terminalmage/fix-failing-file-tests

  * 6b51f71 Fix failing unit file module unit tests

* **PR** `#49240`_: (`dwoz`_) file state test fixes
  @ *2018-08-22 18:16:42 UTC*

  * 4634752 Merge pull request `#49240`_ from dwoz/state_tests

  * 1679a19 Work around listdir encoding issues on py2 windows

  * 07ed841 file state test fixes

* **PR** `#49260`_: (`gtmanfred`_) [2018.3] flaky tests
  @ *2018-08-22 16:40:39 UTC*

  * 55ded9f Merge pull request `#49260`_ from gtmanfred/flaky-2018.3

  * 41973ff flaky tests are flaky yo

  * c927f1b mark orchestration state tests as flaky

* **PR** `#49245`_: (`dwoz`_) Skip grep unit tests on windows
  @ *2018-08-22 15:18:08 UTC*

  * 6d023ca Merge pull request `#49245`_ from dwoz/skip_grep_windows

  * e305891 Skip grep unit tests on windows

* **PR** `#49243`_: (`dwoz`_) Revert newline translation change
  @ *2018-08-22 15:12:26 UTC*

  * 75beede Merge pull request `#49243`_ from dwoz/fileserver_tests

  * 86e3c46 Revert newline translation change

* **PR** `#48545`_: (`bbinet`_) Fix unreachable ssh-id-wrapper template when root_dir is relative
  @ *2018-08-21 15:12:01 UTC*

  * 60605f0 Merge pull request `#48545`_ from bbinet/fix-unreacheable-ssh-id-wrapper

  * 284dcf7 Fix unreachable ssh-id-wrapper template when root_dir is relative

* **ISSUE** `#49204`_: (`mchugh19`_) file.directory state fails if directory contains an invalid symlink (refs: `#49209`_, `#49827`_)

* **PR** `#49209`_: (`gtmanfred`_) don't blow up check_perms if lsattr file doesn't exist
  @ *2018-08-20 19:02:42 UTC*

  * a4c51a9 Merge pull request `#49209`_ from gtmanfred/lsattr

  * ab918ca don't blow up check_perms if lsattr file doesn't exist

* **ISSUE** `#49060`_: (`The-Loeki`_) On Py3, redis job cache throws TypeError bytes / str   (refs: `#49190`_)

* **PR** `#49190`_: (`The-Loeki`_) decode_reponses=True on all Redis API interfaces
  @ *2018-08-20 18:57:26 UTC*

  * d29af00 Merge pull request `#49190`_ from The-Loeki/redis-fix

  * d126318 Merge branch '2018.3' into redis-fix

  * 7ff72eb redis cache no utf8 of course

  * bdaef39 decode_reponses=True on all Redis API interfaces

* **PR** `#49197`_: (`dwoz`_) File state line ending fixes
  @ *2018-08-20 18:45:04 UTC*

  * 644ba3d Merge pull request `#49197`_ from dwoz/test_fix

  * a7cfe35 File state line ending fixes

* **PR** `#49192`_: (`dwoz`_) Test fixes flaky test and unicode environment key/value
  @ *2018-08-19 10:48:03 UTC*

  * aaa9e37 Merge pull request `#49192`_ from dwoz/git_test_fix_ng

  * 8ea89e9 Test fixes

* **PR** `#49191`_: (`The-Loeki`_) Make salt.utils.vault._get_connection publicly available
  @ *2018-08-19 10:39:35 UTC*

  * 63cc737 Merge pull request `#49191`_ from The-Loeki/vault_publ_conn

  * cab4192 publicize salt.utils.get_vault_connection()

* **PR** `#49189`_: (`dwoz`_) Merge pull request `#49171`_ from Ch3LL/bp-49103
  @ *2018-08-18 20:51:59 UTC*

  * **PR** `#49171`_: (`Ch3LL`_) [2018.3.3] cherry pick `#49103`_  (refs: `#49189`_)

  * **PR** `#49103`_: (`dwoz`_) Install the launcher so we can execute py files (refs: `#49189`_, `#49171`_)

  * 1d843d4 Merge pull request `#49189`_ from dwoz/cmd_test_fix

  * 8fd0c38 Merge pull request `#49171`_ from Ch3LL/bp-49103

* **PR** `#49188`_: (`cachedout`_) Fix bug in test_pkg
  @ *2018-08-18 17:36:22 UTC*

  * 5f905d7 Merge pull request `#49188`_ from cachedout/fix_test_pkg

  * 2cd6519 Fix bug in test_pkg

* **PR** `#49056`_: (`Ch3LL`_) Add orch runner with mine.get integration tests
  @ *2018-08-18 12:54:48 UTC*

  * 6fb8d4a Merge pull request `#49056`_ from Ch3LL/test_mine

  * 3a8fed5 Handle race condition when running mine.update in orch mine test

  * b4e421c Add orch runner with mine.get integration tests

* **PR** `#49126`_: (`The-Loeki`_) TLS cert_info fixes
  @ *2018-08-18 12:19:33 UTC*

  * **PR** `#49123`_: (`The-Loeki`_) Fix return of tls.cert_info extensions (refs: `#49126`_)

  * 0d0e11d Merge pull request `#49126`_ from The-Loeki/tls-impr

  * 22240c0 Merge branch '2018.3' into tls-impr

  * 3ce2c3e tls.cert_info: strip newlines/spaces from extensions

  * d522d01 tls alt_names fix

  * d435dbc Fix bytes-return of tls.cert_info extensions

  * 9c7d3ea TLS cert_info: Accept IP Addresses as valid alt_names

  * 7d6ecaf tls.check_info: Allow PEM as string input

* **PR** `#49186`_: (`dwoz`_) Fix typo in `#49180`_
  @ *2018-08-18 12:07:00 UTC*

  * **PR** `#49180`_: (`dwoz`_) Cherry-pick test fixes (refs: `#49186`_)

  * 7dd70eb Merge pull request `#49186`_ from dwoz/test_fixes

  * 95efc51 Fix typo

* **PR** `#49180`_: (`dwoz`_) Cherry-pick test fixes (refs: `#49186`_)
  @ *2018-08-18 04:08:17 UTC*

  * 6d57ac1 Merge pull request `#49180`_ from dwoz/test_fixes

  * 3c49544 Account for file renames

  * acc144d Fix directory unit test

  * a7ee07a Fix is_windows checks

  * 74b197f Account for normalized dirs in unit tests

  * a18d937 Merge pull request `#49167`_ from dwoz/filefix

* **PR** `#49091`_: (`terminalmage`_) Rename/re-organize test files in 2018.3 branch
  @ *2018-08-17 12:26:44 UTC*

  * **PR** `#47337`_: (`terminalmage`_) Modify runtests.py to run a subset of tests based on filenames (refs: `#49091`_)

  * 8bda1e5 Merge pull request `#49091`_ from terminalmage/rename-test-files

  * 3d8523b Fix import for moved module

  * 613f061 Lint

  * 81f272f Rename outputter tests to match naming convention

  * fba0336 Rename venafi test module to bring it closer to the naming convention

  * 9c14500 Rename exec module integration test files to respect naming convention

  * 91fa09e Rename providers to clouds to respect naming convention

  * d56dcdd Rename "providers" dir to "clouds" to respect naming convention

  * f1b7d54 Rename virtualenv state test module to respect naming convention

  * c1f94db Split ssh state tests into separate modules to respect naming convention

  * 9c8ba4a Split mysql database tests into two modules to respect naming convention

  * d51748e Rename some files to avoid them being identified as test modules

  * 1fccbf7 Rename acl unit test module to confirm to naming convention

  * 160223d Consolidate/move fileclient/fileserver tests to conform to naming convention

  * 1aacf77 Rename/consolidate salt.utils unit tests to conform to naming convention

  * 5a0990b Rename pillar unit test modules to reflect naming convention

  * 516594b Consolidate netapi tests and move them to reflect naming convention

  * 8f5fef5 Consolitdate and move salt-ssh unit tests to proper location

  * 9801ce3 Consolidate and move loader tests to test/unit/test_loader.py

  * f72bbc5 Rename beacon unit test modules to conform with naming convention

  * fa76cb6 Move inspectlib tests to conform with naming convention

  * 81e3823 Move shared kernelpkg test cases to tests/support/

  * e0d95b6 Consolidate misplaced tests into tests/unit/test_config.py

  * 3a1ec12 Rename slack engine test file to respect naming convention

  * c9c9d20 Rename test_map_conf test file to respect naming convention

  * 5c936c0 Rename the aptpkg state module to respect naming convention

  * ac50eb8 Remove redundant "test" from filename

  * b03a563 Move jinja templating tests alongside salt/utils/jinja.py's tests

  * b49d8df Fix bad copypasta in docstring

  * 069102b Rename sentry returner test to match naming convention

  * 2398083 Use tests.support.paths instead of deprecated integration module

  * ffb842d Move salt.utils.context tests to their proper location

  * d69069b Move context cache tests to their proper location

* **PR** `#49062`_: (`weswhet`_) fix memoize on available macOS services
  @ *2018-08-15 15:34:25 UTC*

  * c8510a6 Merge pull request `#49062`_ from weswhet/fix-mac-available-services

  * f1b40c4 decorator link fix, updating context names, as well as updating macutils tests for latest changes

  * 1e4497d fixing an issue with memoize on macOS services, switching to useing __context__ instead

* **ISSUE** `#49100`_: (`pruiz`_) salt.utils.yamldumper.dump/safe_dump incorrectly return 'str' instead of unicode on python2.7 (centos) (refs: `#49125`_)

* **PR** `#49125`_: (`terminalmage`_) Ensure that we don't feed jinja2.Markup() a str type
  @ *2018-08-15 04:02:30 UTC*

  * 21435be Merge pull request `#49125`_ from terminalmage/issue49100

  * ec258e2 Add integration tests for yaml and json filters

  * f5f16cf Ensure that we don't feed jinja2.Markup() a str type

.. _`#10`: https://github.com/saltstack/salt/issues/10
.. _`#27160`: https://github.com/saltstack/salt/issues/27160
.. _`#31`: https://github.com/saltstack/salt/issues/31
.. _`#32245`: https://github.com/saltstack/salt/issues/32245
.. _`#32`: https://github.com/saltstack/salt/issues/32
.. _`#38672`: https://github.com/saltstack/salt/issues/38672
.. _`#39593`: https://github.com/saltstack/salt/pull/39593
.. _`#3`: https://github.com/saltstack/salt/issues/3
.. _`#40262`: https://github.com/saltstack/salt/issues/40262
.. _`#40819`: https://github.com/saltstack/salt/issues/40819
.. _`#41342`: https://github.com/saltstack/salt/issues/41342
.. _`#41583`: https://github.com/saltstack/salt/issues/41583
.. _`#42280`: https://github.com/saltstack/salt/issues/42280
.. _`#42426`: https://github.com/saltstack/salt/pull/42426
.. _`#43453`: https://github.com/saltstack/salt/issues/43453
.. _`#43454`: https://github.com/saltstack/salt/pull/43454
.. _`#44979`: https://github.com/saltstack/salt/issues/44979
.. _`#45026`: https://github.com/saltstack/salt/issues/45026
.. _`#45347`: https://github.com/saltstack/salt/pull/45347
.. _`#45429`: https://github.com/saltstack/salt/pull/45429
.. _`#45620`: https://github.com/saltstack/salt/issues/45620
.. _`#45811`: https://github.com/saltstack/salt/pull/45811
.. _`#45867`: https://github.com/saltstack/salt/issues/45867
.. _`#46292`: https://github.com/saltstack/salt/issues/46292
.. _`#46388`: https://github.com/saltstack/salt/issues/46388
.. _`#46689`: https://github.com/saltstack/salt/issues/46689
.. _`#46886`: https://github.com/saltstack/salt/issues/46886
.. _`#46980`: https://github.com/saltstack/salt/pull/46980
.. _`#47043`: https://github.com/saltstack/salt/issues/47043
.. _`#47337`: https://github.com/saltstack/salt/pull/47337
.. _`#47425`: https://github.com/saltstack/salt/issues/47425
.. _`#47784`: https://github.com/saltstack/salt/issues/47784
.. _`#48032`: https://github.com/saltstack/salt/pull/48032
.. _`#48087`: https://github.com/saltstack/salt/pull/48087
.. _`#48132`: https://github.com/saltstack/salt/issues/48132
.. _`#48204`: https://github.com/saltstack/salt/issues/48204
.. _`#48299`: https://github.com/saltstack/salt/issues/48299
.. _`#48343`: https://github.com/saltstack/salt/issues/48343
.. _`#48426`: https://github.com/saltstack/salt/pull/48426
.. _`#48545`: https://github.com/saltstack/salt/pull/48545
.. _`#48599`: https://github.com/saltstack/salt/issues/48599
.. _`#48661`: https://github.com/saltstack/salt/issues/48661
.. _`#48666`: https://github.com/saltstack/salt/pull/48666
.. _`#48694`: https://github.com/saltstack/salt/issues/48694
.. _`#48734`: https://github.com/saltstack/salt/issues/48734
.. _`#48759`: https://github.com/saltstack/salt/issues/48759
.. _`#48782`: https://github.com/saltstack/salt/issues/48782
.. _`#48801`: https://github.com/saltstack/salt/issues/48801
.. _`#48880`: https://github.com/saltstack/salt/issues/48880
.. _`#49008`: https://github.com/saltstack/salt/issues/49008
.. _`#49009`: https://github.com/saltstack/salt/issues/49009
.. _`#49025`: https://github.com/saltstack/salt/pull/49025
.. _`#49027`: https://github.com/saltstack/salt/issues/49027
.. _`#49043`: https://github.com/saltstack/salt/issues/49043
.. _`#49056`: https://github.com/saltstack/salt/pull/49056
.. _`#49060`: https://github.com/saltstack/salt/issues/49060
.. _`#49062`: https://github.com/saltstack/salt/pull/49062
.. _`#49091`: https://github.com/saltstack/salt/pull/49091
.. _`#49100`: https://github.com/saltstack/salt/issues/49100
.. _`#49103`: https://github.com/saltstack/salt/pull/49103
.. _`#49104`: https://github.com/saltstack/salt/pull/49104
.. _`#49113`: https://github.com/saltstack/salt/pull/49113
.. _`#49116`: https://github.com/saltstack/salt/pull/49116
.. _`#49118`: https://github.com/saltstack/salt/pull/49118
.. _`#49123`: https://github.com/saltstack/salt/pull/49123
.. _`#49125`: https://github.com/saltstack/salt/pull/49125
.. _`#49126`: https://github.com/saltstack/salt/pull/49126
.. _`#49136`: https://github.com/saltstack/salt/pull/49136
.. _`#49143`: https://github.com/saltstack/salt/pull/49143
.. _`#49144`: https://github.com/saltstack/salt/pull/49144
.. _`#49150`: https://github.com/saltstack/salt/issues/49150
.. _`#49152`: https://github.com/saltstack/salt/issues/49152
.. _`#49159`: https://github.com/saltstack/salt/issues/49159
.. _`#49162`: https://github.com/saltstack/salt/pull/49162
.. _`#49163`: https://github.com/saltstack/salt/pull/49163
.. _`#49164`: https://github.com/saltstack/salt/pull/49164
.. _`#49167`: https://github.com/saltstack/salt/pull/49167
.. _`#49171`: https://github.com/saltstack/salt/pull/49171
.. _`#49174`: https://github.com/saltstack/salt/issues/49174
.. _`#49179`: https://github.com/saltstack/salt/pull/49179
.. _`#49180`: https://github.com/saltstack/salt/pull/49180
.. _`#49184`: https://github.com/saltstack/salt/pull/49184
.. _`#49185`: https://github.com/saltstack/salt/pull/49185
.. _`#49186`: https://github.com/saltstack/salt/pull/49186
.. _`#49187`: https://github.com/saltstack/salt/pull/49187
.. _`#49188`: https://github.com/saltstack/salt/pull/49188
.. _`#49189`: https://github.com/saltstack/salt/pull/49189
.. _`#49190`: https://github.com/saltstack/salt/pull/49190
.. _`#49191`: https://github.com/saltstack/salt/pull/49191
.. _`#49192`: https://github.com/saltstack/salt/pull/49192
.. _`#49197`: https://github.com/saltstack/salt/pull/49197
.. _`#49199`: https://github.com/saltstack/salt/pull/49199
.. _`#49204`: https://github.com/saltstack/salt/issues/49204
.. _`#49205`: https://github.com/saltstack/salt/issues/49205
.. _`#49209`: https://github.com/saltstack/salt/pull/49209
.. _`#49218`: https://github.com/saltstack/salt/pull/49218
.. _`#49225`: https://github.com/saltstack/salt/issues/49225
.. _`#49226`: https://github.com/saltstack/salt/issues/49226
.. _`#49231`: https://github.com/saltstack/salt/pull/49231
.. _`#49236`: https://github.com/saltstack/salt/pull/49236
.. _`#49240`: https://github.com/saltstack/salt/pull/49240
.. _`#49242`: https://github.com/saltstack/salt/pull/49242
.. _`#49243`: https://github.com/saltstack/salt/pull/49243
.. _`#49244`: https://github.com/saltstack/salt/pull/49244
.. _`#49245`: https://github.com/saltstack/salt/pull/49245
.. _`#49253`: https://github.com/saltstack/salt/pull/49253
.. _`#49259`: https://github.com/saltstack/salt/pull/49259
.. _`#49260`: https://github.com/saltstack/salt/pull/49260
.. _`#49262`: https://github.com/saltstack/salt/pull/49262
.. _`#49263`: https://github.com/saltstack/salt/pull/49263
.. _`#49264`: https://github.com/saltstack/salt/pull/49264
.. _`#49265`: https://github.com/saltstack/salt/pull/49265
.. _`#49270`: https://github.com/saltstack/salt/pull/49270
.. _`#49272`: https://github.com/saltstack/salt/pull/49272
.. _`#49275`: https://github.com/saltstack/salt/issues/49275
.. _`#49276`: https://github.com/saltstack/salt/pull/49276
.. _`#49278`: https://github.com/saltstack/salt/pull/49278
.. _`#49281`: https://github.com/saltstack/salt/issues/49281
.. _`#49282`: https://github.com/saltstack/salt/pull/49282
.. _`#49283`: https://github.com/saltstack/salt/pull/49283
.. _`#49284`: https://github.com/saltstack/salt/pull/49284
.. _`#49289`: https://github.com/saltstack/salt/pull/49289
.. _`#49290`: https://github.com/saltstack/salt/pull/49290
.. _`#49291`: https://github.com/saltstack/salt/pull/49291
.. _`#49299`: https://github.com/saltstack/salt/pull/49299
.. _`#49303`: https://github.com/saltstack/salt/pull/49303
.. _`#49305`: https://github.com/saltstack/salt/pull/49305
.. _`#49308`: https://github.com/saltstack/salt/pull/49308
.. _`#49312`: https://github.com/saltstack/salt/pull/49312
.. _`#49314`: https://github.com/saltstack/salt/pull/49314
.. _`#49316`: https://github.com/saltstack/salt/pull/49316
.. _`#49320`: https://github.com/saltstack/salt/pull/49320
.. _`#49322`: https://github.com/saltstack/salt/pull/49322
.. _`#49324`: https://github.com/saltstack/salt/pull/49324
.. _`#49327`: https://github.com/saltstack/salt/pull/49327
.. _`#49331`: https://github.com/saltstack/salt/pull/49331
.. _`#49336`: https://github.com/saltstack/salt/pull/49336
.. _`#49337`: https://github.com/saltstack/salt/pull/49337
.. _`#49339`: https://github.com/saltstack/salt/pull/49339
.. _`#49341`: https://github.com/saltstack/salt/pull/49341
.. _`#49344`: https://github.com/saltstack/salt/pull/49344
.. _`#49346`: https://github.com/saltstack/salt/pull/49346
.. _`#49353`: https://github.com/saltstack/salt/pull/49353
.. _`#49354`: https://github.com/saltstack/salt/pull/49354
.. _`#49355`: https://github.com/saltstack/salt/pull/49355
.. _`#49356`: https://github.com/saltstack/salt/pull/49356
.. _`#49366`: https://github.com/saltstack/salt/pull/49366
.. _`#49371`: https://github.com/saltstack/salt/pull/49371
.. _`#49372`: https://github.com/saltstack/salt/pull/49372
.. _`#49375`: https://github.com/saltstack/salt/pull/49375
.. _`#49376`: https://github.com/saltstack/salt/pull/49376
.. _`#49379`: https://github.com/saltstack/salt/pull/49379
.. _`#49380`: https://github.com/saltstack/salt/pull/49380
.. _`#49385`: https://github.com/saltstack/salt/pull/49385
.. _`#49386`: https://github.com/saltstack/salt/pull/49386
.. _`#49387`: https://github.com/saltstack/salt/pull/49387
.. _`#49389`: https://github.com/saltstack/salt/pull/49389
.. _`#49390`: https://github.com/saltstack/salt/pull/49390
.. _`#49392`: https://github.com/saltstack/salt/issues/49392
.. _`#49394`: https://github.com/saltstack/salt/pull/49394
.. _`#49400`: https://github.com/saltstack/salt/pull/49400
.. _`#49401`: https://github.com/saltstack/salt/pull/49401
.. _`#49402`: https://github.com/saltstack/salt/pull/49402
.. _`#49406`: https://github.com/saltstack/salt/pull/49406
.. _`#49407`: https://github.com/saltstack/salt/pull/49407
.. _`#49408`: https://github.com/saltstack/salt/pull/49408
.. _`#49411`: https://github.com/saltstack/salt/pull/49411
.. _`#49434`: https://github.com/saltstack/salt/pull/49434
.. _`#49435`: https://github.com/saltstack/salt/pull/49435
.. _`#49452`: https://github.com/saltstack/salt/issues/49452
.. _`#49453`: https://github.com/saltstack/salt/pull/49453
.. _`#49454`: https://github.com/saltstack/salt/pull/49454
.. _`#49457`: https://github.com/saltstack/salt/pull/49457
.. _`#49459`: https://github.com/saltstack/salt/pull/49459
.. _`#49461`: https://github.com/saltstack/salt/pull/49461
.. _`#49466`: https://github.com/saltstack/salt/pull/49466
.. _`#49471`: https://github.com/saltstack/salt/pull/49471
.. _`#49473`: https://github.com/saltstack/salt/pull/49473
.. _`#49474`: https://github.com/saltstack/salt/pull/49474
.. _`#49475`: https://github.com/saltstack/salt/pull/49475
.. _`#49487`: https://github.com/saltstack/salt/pull/49487
.. _`#49497`: https://github.com/saltstack/salt/pull/49497
.. _`#49498`: https://github.com/saltstack/salt/pull/49498
.. _`#49500`: https://github.com/saltstack/salt/pull/49500
.. _`#49505`: https://github.com/saltstack/salt/pull/49505
.. _`#49508`: https://github.com/saltstack/salt/pull/49508
.. _`#49511`: https://github.com/saltstack/salt/pull/49511
.. _`#49512`: https://github.com/saltstack/salt/pull/49512
.. _`#49515`: https://github.com/saltstack/salt/pull/49515
.. _`#49520`: https://github.com/saltstack/salt/issues/49520
.. _`#49521`: https://github.com/saltstack/salt/pull/49521
.. _`#49523`: https://github.com/saltstack/salt/issues/49523
.. _`#49524`: https://github.com/saltstack/salt/pull/49524
.. _`#49526`: https://github.com/saltstack/salt/pull/49526
.. _`#49527`: https://github.com/saltstack/salt/pull/49527
.. _`#49528`: https://github.com/saltstack/salt/pull/49528
.. _`#49532`: https://github.com/saltstack/salt/pull/49532
.. _`#49533`: https://github.com/saltstack/salt/pull/49533
.. _`#49539`: https://github.com/saltstack/salt/pull/49539
.. _`#49541`: https://github.com/saltstack/salt/pull/49541
.. _`#49543`: https://github.com/saltstack/salt/pull/49543
.. _`#49547`: https://github.com/saltstack/salt/pull/49547
.. _`#49548`: https://github.com/saltstack/salt/pull/49548
.. _`#49549`: https://github.com/saltstack/salt/pull/49549
.. _`#49555`: https://github.com/saltstack/salt/pull/49555
.. _`#49560`: https://github.com/saltstack/salt/pull/49560
.. _`#49561`: https://github.com/saltstack/salt/pull/49561
.. _`#49570`: https://github.com/saltstack/salt/pull/49570
.. _`#49571`: https://github.com/saltstack/salt/pull/49571
.. _`#49577`: https://github.com/saltstack/salt/pull/49577
.. _`#49578`: https://github.com/saltstack/salt/pull/49578
.. _`#49579`: https://github.com/saltstack/salt/pull/49579
.. _`#49580`: https://github.com/saltstack/salt/pull/49580
.. _`#49582`: https://github.com/saltstack/salt/issues/49582
.. _`#49584`: https://github.com/saltstack/salt/pull/49584
.. _`#49592`: https://github.com/saltstack/salt/pull/49592
.. _`#49593`: https://github.com/saltstack/salt/pull/49593
.. _`#49595`: https://github.com/saltstack/salt/pull/49595
.. _`#49596`: https://github.com/saltstack/salt/pull/49596
.. _`#49597`: https://github.com/saltstack/salt/pull/49597
.. _`#49606`: https://github.com/saltstack/salt/pull/49606
.. _`#49614`: https://github.com/saltstack/salt/pull/49614
.. _`#49615`: https://github.com/saltstack/salt/pull/49615
.. _`#49620`: https://github.com/saltstack/salt/pull/49620
.. _`#49622`: https://github.com/saltstack/salt/pull/49622
.. _`#49626`: https://github.com/saltstack/salt/issues/49626
.. _`#49629`: https://github.com/saltstack/salt/pull/49629
.. _`#49632`: https://github.com/saltstack/salt/pull/49632
.. _`#49639`: https://github.com/saltstack/salt/pull/49639
.. _`#49642`: https://github.com/saltstack/salt/pull/49642
.. _`#49643`: https://github.com/saltstack/salt/pull/49643
.. _`#49644`: https://github.com/saltstack/salt/pull/49644
.. _`#49646`: https://github.com/saltstack/salt/pull/49646
.. _`#49650`: https://github.com/saltstack/salt/pull/49650
.. _`#49652`: https://github.com/saltstack/salt/pull/49652
.. _`#49671`: https://github.com/saltstack/salt/issues/49671
.. _`#49674`: https://github.com/saltstack/salt/pull/49674
.. _`#49679`: https://github.com/saltstack/salt/pull/49679
.. _`#49684`: https://github.com/saltstack/salt/pull/49684
.. _`#49685`: https://github.com/saltstack/salt/pull/49685
.. _`#49689`: https://github.com/saltstack/salt/pull/49689
.. _`#49692`: https://github.com/saltstack/salt/pull/49692
.. _`#49693`: https://github.com/saltstack/salt/pull/49693
.. _`#49696`: https://github.com/saltstack/salt/pull/49696
.. _`#49702`: https://github.com/saltstack/salt/pull/49702
.. _`#49703`: https://github.com/saltstack/salt/pull/49703
.. _`#49706`: https://github.com/saltstack/salt/pull/49706
.. _`#49707`: https://github.com/saltstack/salt/pull/49707
.. _`#49708`: https://github.com/saltstack/salt/pull/49708
.. _`#49710`: https://github.com/saltstack/salt/pull/49710
.. _`#49718`: https://github.com/saltstack/salt/pull/49718
.. _`#49720`: https://github.com/saltstack/salt/pull/49720
.. _`#49722`: https://github.com/saltstack/salt/pull/49722
.. _`#49731`: https://github.com/saltstack/salt/pull/49731
.. _`#49736`: https://github.com/saltstack/salt/pull/49736
.. _`#49739`: https://github.com/saltstack/salt/pull/49739
.. _`#49744`: https://github.com/saltstack/salt/issues/49744
.. _`#49745`: https://github.com/saltstack/salt/pull/49745
.. _`#49749`: https://github.com/saltstack/salt/pull/49749
.. _`#49752`: https://github.com/saltstack/salt/pull/49752
.. _`#49757`: https://github.com/saltstack/salt/pull/49757
.. _`#49759`: https://github.com/saltstack/salt/pull/49759
.. _`#49760`: https://github.com/saltstack/salt/pull/49760
.. _`#49763`: https://github.com/saltstack/salt/pull/49763
.. _`#49764`: https://github.com/saltstack/salt/pull/49764
.. _`#49770`: https://github.com/saltstack/salt/pull/49770
.. _`#49774`: https://github.com/saltstack/salt/pull/49774
.. _`#49777`: https://github.com/saltstack/salt/pull/49777
.. _`#49782`: https://github.com/saltstack/salt/pull/49782
.. _`#49784`: https://github.com/saltstack/salt/pull/49784
.. _`#49786`: https://github.com/saltstack/salt/pull/49786
.. _`#49790`: https://github.com/saltstack/salt/pull/49790
.. _`#49791`: https://github.com/saltstack/salt/pull/49791
.. _`#49792`: https://github.com/saltstack/salt/pull/49792
.. _`#49794`: https://github.com/saltstack/salt/pull/49794
.. _`#49795`: https://github.com/saltstack/salt/pull/49795
.. _`#49798`: https://github.com/saltstack/salt/pull/49798
.. _`#49806`: https://github.com/saltstack/salt/pull/49806
.. _`#49809`: https://github.com/saltstack/salt/pull/49809
.. _`#49811`: https://github.com/saltstack/salt/pull/49811
.. _`#49815`: https://github.com/saltstack/salt/pull/49815
.. _`#49820`: https://github.com/saltstack/salt/pull/49820
.. _`#49823`: https://github.com/saltstack/salt/pull/49823
.. _`#49827`: https://github.com/saltstack/salt/pull/49827
.. _`#49828`: https://github.com/saltstack/salt/pull/49828
.. _`#49839`: https://github.com/saltstack/salt/pull/49839
.. _`#49842`: https://github.com/saltstack/salt/pull/49842
.. _`#49846`: https://github.com/saltstack/salt/pull/49846
.. _`#49847`: https://github.com/saltstack/salt/pull/49847
.. _`#49848`: https://github.com/saltstack/salt/pull/49848
.. _`#49850`: https://github.com/saltstack/salt/pull/49850
.. _`#49852`: https://github.com/saltstack/salt/pull/49852
.. _`#49858`: https://github.com/saltstack/salt/pull/49858
.. _`#49867`: https://github.com/saltstack/salt/pull/49867
.. _`#49868`: https://github.com/saltstack/salt/pull/49868
.. _`#49870`: https://github.com/saltstack/salt/pull/49870
.. _`#49871`: https://github.com/saltstack/salt/pull/49871
.. _`#49872`: https://github.com/saltstack/salt/pull/49872
.. _`#49875`: https://github.com/saltstack/salt/pull/49875
.. _`#49876`: https://github.com/saltstack/salt/pull/49876
.. _`#49883`: https://github.com/saltstack/salt/issues/49883
.. _`#49885`: https://github.com/saltstack/salt/pull/49885
.. _`#49896`: https://github.com/saltstack/salt/pull/49896
.. _`#49897`: https://github.com/saltstack/salt/pull/49897
.. _`#49899`: https://github.com/saltstack/salt/pull/49899
.. _`#49900`: https://github.com/saltstack/salt/pull/49900
.. _`#49902`: https://github.com/saltstack/salt/pull/49902
.. _`#49907`: https://github.com/saltstack/salt/pull/49907
.. _`#49911`: https://github.com/saltstack/salt/pull/49911
.. _`#49918`: https://github.com/saltstack/salt/pull/49918
.. _`#49927`: https://github.com/saltstack/salt/issues/49927
.. _`#49930`: https://github.com/saltstack/salt/pull/49930
.. _`#49934`: https://github.com/saltstack/salt/pull/49934
.. _`#49938`: https://github.com/saltstack/salt/pull/49938
.. _`#49942`: https://github.com/saltstack/salt/pull/49942
.. _`#49943`: https://github.com/saltstack/salt/pull/49943
.. _`#49946`: https://github.com/saltstack/salt/pull/49946
.. _`#49947`: https://github.com/saltstack/salt/pull/49947
.. _`#49948`: https://github.com/saltstack/salt/pull/49948
.. _`#49957`: https://github.com/saltstack/salt/issues/49957
.. _`#49958`: https://github.com/saltstack/salt/pull/49958
.. _`#49961`: https://github.com/saltstack/salt/pull/49961
.. _`#49965`: https://github.com/saltstack/salt/issues/49965
.. _`#49972`: https://github.com/saltstack/salt/pull/49972
.. _`#49973`: https://github.com/saltstack/salt/pull/49973
.. _`#49974`: https://github.com/saltstack/salt/pull/49974
.. _`#49975`: https://github.com/saltstack/salt/pull/49975
.. _`#49978`: https://github.com/saltstack/salt/pull/49978
.. _`#49979`: https://github.com/saltstack/salt/pull/49979
.. _`#49980`: https://github.com/saltstack/salt/pull/49980
.. _`#49983`: https://github.com/saltstack/salt/pull/49983
.. _`#49987`: https://github.com/saltstack/salt/pull/49987
.. _`#49988`: https://github.com/saltstack/salt/issues/49988
.. _`#49997`: https://github.com/saltstack/salt/pull/49997
.. _`#49998`: https://github.com/saltstack/salt/pull/49998
.. _`#49999`: https://github.com/saltstack/salt/pull/49999
.. _`#4`: https://github.com/saltstack/salt/issues/4
.. _`#50000`: https://github.com/saltstack/salt/pull/50000
.. _`#50001`: https://github.com/saltstack/salt/pull/50001
.. _`#50004`: https://github.com/saltstack/salt/pull/50004
.. _`#50006`: https://github.com/saltstack/salt/pull/50006
.. _`#50012`: https://github.com/saltstack/salt/pull/50012
.. _`#50013`: https://github.com/saltstack/salt/pull/50013
.. _`#50015`: https://github.com/saltstack/salt/issues/50015
.. _`#50016`: https://github.com/saltstack/salt/issues/50016
.. _`#50017`: https://github.com/saltstack/salt/pull/50017
.. _`#50022`: https://github.com/saltstack/salt/pull/50022
.. _`#50024`: https://github.com/saltstack/salt/pull/50024
.. _`#50026`: https://github.com/saltstack/salt/pull/50026
.. _`#50028`: https://github.com/saltstack/salt/pull/50028
.. _`#50029`: https://github.com/saltstack/salt/pull/50029
.. _`#50038`: https://github.com/saltstack/salt/pull/50038
.. _`#50044`: https://github.com/saltstack/salt/pull/50044
.. _`#50047`: https://github.com/saltstack/salt/pull/50047
.. _`#50050`: https://github.com/saltstack/salt/issues/50050
.. _`#50052`: https://github.com/saltstack/salt/pull/50052
.. _`#50054`: https://github.com/saltstack/salt/pull/50054
.. _`#50055`: https://github.com/saltstack/salt/pull/50055
.. _`#50056`: https://github.com/saltstack/salt/pull/50056
.. _`#50057`: https://github.com/saltstack/salt/pull/50057
.. _`#50060`: https://github.com/saltstack/salt/pull/50060
.. _`#50061`: https://github.com/saltstack/salt/pull/50061
.. _`#50062`: https://github.com/saltstack/salt/issues/50062
.. _`#50063`: https://github.com/saltstack/salt/pull/50063
.. _`#50064`: https://github.com/saltstack/salt/pull/50064
.. _`#50065`: https://github.com/saltstack/salt/pull/50065
.. _`#50066`: https://github.com/saltstack/salt/pull/50066
.. _`#50068`: https://github.com/saltstack/salt/pull/50068
.. _`#50073`: https://github.com/saltstack/salt/issues/50073
.. _`#50074`: https://github.com/saltstack/salt/issues/50074
.. _`#50079`: https://github.com/saltstack/salt/issues/50079
.. _`#50080`: https://github.com/saltstack/salt/pull/50080
.. _`#50082`: https://github.com/saltstack/salt/pull/50082
.. _`#50085`: https://github.com/saltstack/salt/pull/50085
.. _`#50088`: https://github.com/saltstack/salt/pull/50088
.. _`#50090`: https://github.com/saltstack/salt/pull/50090
.. _`#50092`: https://github.com/saltstack/salt/pull/50092
.. _`#50113`: https://github.com/saltstack/salt/pull/50113
.. _`#50114`: https://github.com/saltstack/salt/pull/50114
.. _`#50115`: https://github.com/saltstack/salt/pull/50115
.. _`#50119`: https://github.com/saltstack/salt/pull/50119
.. _`#50120`: https://github.com/saltstack/salt/pull/50120
.. _`#50127`: https://github.com/saltstack/salt/issues/50127
.. _`#50128`: https://github.com/saltstack/salt/pull/50128
.. _`#50129`: https://github.com/saltstack/salt/issues/50129
.. _`#50130`: https://github.com/saltstack/salt/pull/50130
.. _`#50132`: https://github.com/saltstack/salt/issues/50132
.. _`#50136`: https://github.com/saltstack/salt/pull/50136
.. _`#50140`: https://github.com/saltstack/salt/pull/50140
.. _`#50142`: https://github.com/saltstack/salt/issues/50142
.. _`#50143`: https://github.com/saltstack/salt/pull/50143
.. _`#50144`: https://github.com/saltstack/salt/pull/50144
.. _`#50146`: https://github.com/saltstack/salt/pull/50146
.. _`#50147`: https://github.com/saltstack/salt/pull/50147
.. _`#50148`: https://github.com/saltstack/salt/pull/50148
.. _`#50155`: https://github.com/saltstack/salt/issues/50155
.. _`#50156`: https://github.com/saltstack/salt/pull/50156
.. _`#50158`: https://github.com/saltstack/salt/pull/50158
.. _`#50161`: https://github.com/saltstack/salt/pull/50161
.. _`#50162`: https://github.com/saltstack/salt/issues/50162
.. _`#50171`: https://github.com/saltstack/salt/pull/50171
.. _`#50172`: https://github.com/saltstack/salt/pull/50172
.. _`#50173`: https://github.com/saltstack/salt/pull/50173
.. _`#50174`: https://github.com/saltstack/salt/pull/50174
.. _`#50180`: https://github.com/saltstack/salt/pull/50180
.. _`#50181`: https://github.com/saltstack/salt/pull/50181
.. _`#50182`: https://github.com/saltstack/salt/pull/50182
.. _`#50184`: https://github.com/saltstack/salt/pull/50184
.. _`#50187`: https://github.com/saltstack/salt/pull/50187
.. _`#50188`: https://github.com/saltstack/salt/pull/50188
.. _`#50190`: https://github.com/saltstack/salt/pull/50190
.. _`#50195`: https://github.com/saltstack/salt/pull/50195
.. _`#50200`: https://github.com/saltstack/salt/pull/50200
.. _`#50201`: https://github.com/saltstack/salt/pull/50201
.. _`#50202`: https://github.com/saltstack/salt/pull/50202
.. _`#50205`: https://github.com/saltstack/salt/pull/50205
.. _`#50206`: https://github.com/saltstack/salt/pull/50206
.. _`#50207`: https://github.com/saltstack/salt/pull/50207
.. _`#50208`: https://github.com/saltstack/salt/pull/50208
.. _`#50211`: https://github.com/saltstack/salt/pull/50211
.. _`#50212`: https://github.com/saltstack/salt/pull/50212
.. _`#50214`: https://github.com/saltstack/salt/pull/50214
.. _`#50216`: https://github.com/saltstack/salt/pull/50216
.. _`#50218`: https://github.com/saltstack/salt/issues/50218
.. _`#50221`: https://github.com/saltstack/salt/issues/50221
.. _`#50224`: https://github.com/saltstack/salt/issues/50224
.. _`#50227`: https://github.com/saltstack/salt/issues/50227
.. _`#50228`: https://github.com/saltstack/salt/pull/50228
.. _`#50230`: https://github.com/saltstack/salt/pull/50230
.. _`#50231`: https://github.com/saltstack/salt/pull/50231
.. _`#50232`: https://github.com/saltstack/salt/pull/50232
.. _`#50233`: https://github.com/saltstack/salt/pull/50233
.. _`#50235`: https://github.com/saltstack/salt/pull/50235
.. _`#50236`: https://github.com/saltstack/salt/pull/50236
.. _`#50251`: https://github.com/saltstack/salt/pull/50251
.. _`#50252`: https://github.com/saltstack/salt/pull/50252
.. _`#50254`: https://github.com/saltstack/salt/issues/50254
.. _`#50258`: https://github.com/saltstack/salt/pull/50258
.. _`#50266`: https://github.com/saltstack/salt/issues/50266
.. _`#50267`: https://github.com/saltstack/salt/pull/50267
.. _`#50270`: https://github.com/saltstack/salt/pull/50270
.. _`#50272`: https://github.com/saltstack/salt/pull/50272
.. _`#50274`: https://github.com/saltstack/salt/pull/50274
.. _`#50275`: https://github.com/saltstack/salt/pull/50275
.. _`#50276`: https://github.com/saltstack/salt/pull/50276
.. _`#50280`: https://github.com/saltstack/salt/pull/50280
.. _`#50281`: https://github.com/saltstack/salt/pull/50281
.. _`#50282`: https://github.com/saltstack/salt/pull/50282
.. _`#50287`: https://github.com/saltstack/salt/pull/50287
.. _`#50289`: https://github.com/saltstack/salt/pull/50289
.. _`#50290`: https://github.com/saltstack/salt/pull/50290
.. _`#50291`: https://github.com/saltstack/salt/pull/50291
.. _`#50292`: https://github.com/saltstack/salt/issues/50292
.. _`#50293`: https://github.com/saltstack/salt/pull/50293
.. _`#50295`: https://github.com/saltstack/salt/pull/50295
.. _`#50301`: https://github.com/saltstack/salt/pull/50301
.. _`#50308`: https://github.com/saltstack/salt/pull/50308
.. _`#50309`: https://github.com/saltstack/salt/pull/50309
.. _`#50311`: https://github.com/saltstack/salt/issues/50311
.. _`#50315`: https://github.com/saltstack/salt/pull/50315
.. _`#50316`: https://github.com/saltstack/salt/pull/50316
.. _`#50328`: https://github.com/saltstack/salt/pull/50328
.. _`#50329`: https://github.com/saltstack/salt/pull/50329
.. _`#50333`: https://github.com/saltstack/salt/pull/50333
.. _`#50339`: https://github.com/saltstack/salt/pull/50339
.. _`#50340`: https://github.com/saltstack/salt/pull/50340
.. _`#50345`: https://github.com/saltstack/salt/pull/50345
.. _`#50347`: https://github.com/saltstack/salt/pull/50347
.. _`#50350`: https://github.com/saltstack/salt/pull/50350
.. _`#50354`: https://github.com/saltstack/salt/pull/50354
.. _`#50358`: https://github.com/saltstack/salt/pull/50358
.. _`#50359`: https://github.com/saltstack/salt/pull/50359
.. _`#50364`: https://github.com/saltstack/salt/issues/50364
.. _`#50366`: https://github.com/saltstack/salt/pull/50366
.. _`#50370`: https://github.com/saltstack/salt/pull/50370
.. _`#50378`: https://github.com/saltstack/salt/pull/50378
.. _`#50382`: https://github.com/saltstack/salt/pull/50382
.. _`#50383`: https://github.com/saltstack/salt/pull/50383
.. _`#50387`: https://github.com/saltstack/salt/pull/50387
.. _`#50397`: https://github.com/saltstack/salt/pull/50397
.. _`#50403`: https://github.com/saltstack/salt/issues/50403
.. _`#50406`: https://github.com/saltstack/salt/issues/50406
.. _`#50407`: https://github.com/saltstack/salt/pull/50407
.. _`#50409`: https://github.com/saltstack/salt/pull/50409
.. _`#50414`: https://github.com/saltstack/salt/pull/50414
.. _`#50415`: https://github.com/saltstack/salt/pull/50415
.. _`#50417`: https://github.com/saltstack/salt/pull/50417
.. _`#50420`: https://github.com/saltstack/salt/issues/50420
.. _`#50421`: https://github.com/saltstack/salt/pull/50421
.. _`#50423`: https://github.com/saltstack/salt/pull/50423
.. _`#50425`: https://github.com/saltstack/salt/pull/50425
.. _`#50427`: https://github.com/saltstack/salt/pull/50427
.. _`#50433`: https://github.com/saltstack/salt/issues/50433
.. _`#50434`: https://github.com/saltstack/salt/pull/50434
.. _`#50439`: https://github.com/saltstack/salt/pull/50439
.. _`#50441`: https://github.com/saltstack/salt/pull/50441
.. _`#50442`: https://github.com/saltstack/salt/pull/50442
.. _`#50443`: https://github.com/saltstack/salt/pull/50443
.. _`#50455`: https://github.com/saltstack/salt/pull/50455
.. _`#50456`: https://github.com/saltstack/salt/pull/50456
.. _`#50461`: https://github.com/saltstack/salt/issues/50461
.. _`#50463`: https://github.com/saltstack/salt/pull/50463
.. _`#50467`: https://github.com/saltstack/salt/pull/50467
.. _`#50468`: https://github.com/saltstack/salt/pull/50468
.. _`#50469`: https://github.com/saltstack/salt/pull/50469
.. _`#50470`: https://github.com/saltstack/salt/pull/50470
.. _`#50478`: https://github.com/saltstack/salt/pull/50478
.. _`#50479`: https://github.com/saltstack/salt/pull/50479
.. _`#50480`: https://github.com/saltstack/salt/pull/50480
.. _`#50481`: https://github.com/saltstack/salt/pull/50481
.. _`#50483`: https://github.com/saltstack/salt/pull/50483
.. _`#50486`: https://github.com/saltstack/salt/pull/50486
.. _`#50492`: https://github.com/saltstack/salt/pull/50492
.. _`#50493`: https://github.com/saltstack/salt/pull/50493
.. _`#50494`: https://github.com/saltstack/salt/pull/50494
.. _`#50496`: https://github.com/saltstack/salt/pull/50496
.. _`#50499`: https://github.com/saltstack/salt/pull/50499
.. _`#50500`: https://github.com/saltstack/salt/pull/50500
.. _`#50502`: https://github.com/saltstack/salt/pull/50502
.. _`#50503`: https://github.com/saltstack/salt/pull/50503
.. _`#50509`: https://github.com/saltstack/salt/pull/50509
.. _`#50514`: https://github.com/saltstack/salt/pull/50514
.. _`#50519`: https://github.com/saltstack/salt/pull/50519
.. _`#50520`: https://github.com/saltstack/salt/pull/50520
.. _`#50526`: https://github.com/saltstack/salt/pull/50526
.. _`#50530`: https://github.com/saltstack/salt/pull/50530
.. _`#50532`: https://github.com/saltstack/salt/pull/50532
.. _`#50542`: https://github.com/saltstack/salt/issues/50542
.. _`#50549`: https://github.com/saltstack/salt/pull/50549
.. _`#50551`: https://github.com/saltstack/salt/pull/50551
.. _`#50558`: https://github.com/saltstack/salt/issues/50558
.. _`#50562`: https://github.com/saltstack/salt/issues/50562
.. _`#50570`: https://github.com/saltstack/salt/pull/50570
.. _`#50576`: https://github.com/saltstack/salt/pull/50576
.. _`#50577`: https://github.com/saltstack/salt/pull/50577
.. _`#50580`: https://github.com/saltstack/salt/pull/50580
.. _`#50583`: https://github.com/saltstack/salt/pull/50583
.. _`#50586`: https://github.com/saltstack/salt/pull/50586
.. _`#50590`: https://github.com/saltstack/salt/pull/50590
.. _`#50592`: https://github.com/saltstack/salt/pull/50592
.. _`#50599`: https://github.com/saltstack/salt/pull/50599
.. _`#50605`: https://github.com/saltstack/salt/pull/50605
.. _`#50615`: https://github.com/saltstack/salt/pull/50615
.. _`#50619`: https://github.com/saltstack/salt/pull/50619
.. _`#50626`: https://github.com/saltstack/salt/pull/50626
.. _`#50632`: https://github.com/saltstack/salt/pull/50632
.. _`#50633`: https://github.com/saltstack/salt/pull/50633
.. _`#50634`: https://github.com/saltstack/salt/issues/50634
.. _`#50639`: https://github.com/saltstack/salt/pull/50639
.. _`#50640`: https://github.com/saltstack/salt/pull/50640
.. _`#50652`: https://github.com/saltstack/salt/pull/50652
.. _`#50653`: https://github.com/saltstack/salt/pull/50653
.. _`#50657`: https://github.com/saltstack/salt/pull/50657
.. _`#50659`: https://github.com/saltstack/salt/pull/50659
.. _`#50664`: https://github.com/saltstack/salt/pull/50664
.. _`#50670`: https://github.com/saltstack/salt/pull/50670
.. _`#50672`: https://github.com/saltstack/salt/pull/50672
.. _`#50683`: https://github.com/saltstack/salt/pull/50683
.. _`#50685`: https://github.com/saltstack/salt/pull/50685
.. _`#50690`: https://github.com/saltstack/salt/pull/50690
.. _`#50692`: https://github.com/saltstack/salt/pull/50692
.. _`#50702`: https://github.com/saltstack/salt/pull/50702
.. _`#50709`: https://github.com/saltstack/salt/pull/50709
.. _`#50718`: https://github.com/saltstack/salt/pull/50718
.. _`#50733`: https://github.com/saltstack/salt/pull/50733
.. _`#50737`: https://github.com/saltstack/salt/pull/50737
.. _`#50745`: https://github.com/saltstack/salt/pull/50745
.. _`#50750`: https://github.com/saltstack/salt/pull/50750
.. _`#50752`: https://github.com/saltstack/salt/pull/50752
.. _`#50756`: https://github.com/saltstack/salt/pull/50756
.. _`#50765`: https://github.com/saltstack/salt/pull/50765
.. _`#50767`: https://github.com/saltstack/salt/pull/50767
.. _`#50768`: https://github.com/saltstack/salt/pull/50768
.. _`#50771`: https://github.com/saltstack/salt/pull/50771
.. _`#50780`: https://github.com/saltstack/salt/pull/50780
.. _`#50783`: https://github.com/saltstack/salt/pull/50783
.. _`#50796`: https://github.com/saltstack/salt/pull/50796
.. _`#50804`: https://github.com/saltstack/salt/pull/50804
.. _`#50816`: https://github.com/saltstack/salt/pull/50816
.. _`#50817`: https://github.com/saltstack/salt/pull/50817
.. _`#50823`: https://github.com/saltstack/salt/pull/50823
.. _`#50828`: https://github.com/saltstack/salt/pull/50828
.. _`#50829`: https://github.com/saltstack/salt/issues/50829
.. _`#50837`: https://github.com/saltstack/salt/pull/50837
.. _`#50839`: https://github.com/saltstack/salt/pull/50839
.. _`#50843`: https://github.com/saltstack/salt/pull/50843
.. _`#50844`: https://github.com/saltstack/salt/pull/50844
.. _`#50849`: https://github.com/saltstack/salt/issues/50849
.. _`#50850`: https://github.com/saltstack/salt/issues/50850
.. _`#50852`: https://github.com/saltstack/salt/pull/50852
.. _`#50854`: https://github.com/saltstack/salt/issues/50854
.. _`#50855`: https://github.com/saltstack/salt/pull/50855
.. _`#50858`: https://github.com/saltstack/salt/pull/50858
.. _`#50859`: https://github.com/saltstack/salt/pull/50859
.. _`#50863`: https://github.com/saltstack/salt/pull/50863
.. _`#50867`: https://github.com/saltstack/salt/pull/50867
.. _`#50869`: https://github.com/saltstack/salt/pull/50869
.. _`#50872`: https://github.com/saltstack/salt/pull/50872
.. _`#50873`: https://github.com/saltstack/salt/pull/50873
.. _`#50876`: https://github.com/saltstack/salt/pull/50876
.. _`#50878`: https://github.com/saltstack/salt/pull/50878
.. _`#50883`: https://github.com/saltstack/salt/pull/50883
.. _`#50892`: https://github.com/saltstack/salt/issues/50892
.. _`#50906`: https://github.com/saltstack/salt/pull/50906
.. _`#50909`: https://github.com/saltstack/salt/pull/50909
.. _`#50913`: https://github.com/saltstack/salt/pull/50913
.. _`#50917`: https://github.com/saltstack/salt/pull/50917
.. _`#50918`: https://github.com/saltstack/salt/pull/50918
.. _`#50919`: https://github.com/saltstack/salt/issues/50919
.. _`#50923`: https://github.com/saltstack/salt/pull/50923
.. _`#50929`: https://github.com/saltstack/salt/pull/50929
.. _`#50937`: https://github.com/saltstack/salt/pull/50937
.. _`#50940`: https://github.com/saltstack/salt/pull/50940
.. _`#50945`: https://github.com/saltstack/salt/pull/50945
.. _`#50947`: https://github.com/saltstack/salt/issues/50947
.. _`#50958`: https://github.com/saltstack/salt/pull/50958
.. _`#50959`: https://github.com/saltstack/salt/pull/50959
.. _`#50962`: https://github.com/saltstack/salt/pull/50962
.. _`#50964`: https://github.com/saltstack/salt/issues/50964
.. _`#50966`: https://github.com/saltstack/salt/issues/50966
.. _`#50972`: https://github.com/saltstack/salt/pull/50972
.. _`#50977`: https://github.com/saltstack/salt/pull/50977
.. _`#50982`: https://github.com/saltstack/salt/pull/50982
.. _`#50983`: https://github.com/saltstack/salt/pull/50983
.. _`#50984`: https://github.com/saltstack/salt/pull/50984
.. _`#50989`: https://github.com/saltstack/salt/issues/50989
.. _`#50990`: https://github.com/saltstack/salt/pull/50990
.. _`#50991`: https://github.com/saltstack/salt/pull/50991
.. _`#51004`: https://github.com/saltstack/salt/pull/51004
.. _`#51005`: https://github.com/saltstack/salt/pull/51005
.. _`#51006`: https://github.com/saltstack/salt/pull/51006
.. _`#51010`: https://github.com/saltstack/salt/pull/51010
.. _`#51014`: https://github.com/saltstack/salt/pull/51014
.. _`#51018`: https://github.com/saltstack/salt/pull/51018
.. _`#51028`: https://github.com/saltstack/salt/pull/51028
.. _`#51030`: https://github.com/saltstack/salt/pull/51030
.. _`#51031`: https://github.com/saltstack/salt/pull/51031
.. _`#51034`: https://github.com/saltstack/salt/pull/51034
.. _`#51044`: https://github.com/saltstack/salt/pull/51044
.. _`#51061`: https://github.com/saltstack/salt/pull/51061
.. _`#51067`: https://github.com/saltstack/salt/issues/51067
.. _`#51076`: https://github.com/saltstack/salt/pull/51076
.. _`#51079`: https://github.com/saltstack/salt/pull/51079
.. _`#51080`: https://github.com/saltstack/salt/pull/51080
.. _`#51081`: https://github.com/saltstack/salt/pull/51081
.. _`#51097`: https://github.com/saltstack/salt/pull/51097
.. _`#51105`: https://github.com/saltstack/salt/pull/51105
.. _`#51111`: https://github.com/saltstack/salt/pull/51111
.. _`#51112`: https://github.com/saltstack/salt/pull/51112
.. _`#51124`: https://github.com/saltstack/salt/pull/51124
.. _`#51133`: https://github.com/saltstack/salt/pull/51133
.. _`#51144`: https://github.com/saltstack/salt/pull/51144
.. _`#51146`: https://github.com/saltstack/salt/pull/51146
.. _`#51147`: https://github.com/saltstack/salt/pull/51147
.. _`#51150`: https://github.com/saltstack/salt/pull/51150
.. _`#51151`: https://github.com/saltstack/salt/pull/51151
.. _`#51152`: https://github.com/saltstack/salt/pull/51152
.. _`#51154`: https://github.com/saltstack/salt/pull/51154
.. _`#51158`: https://github.com/saltstack/salt/issues/51158
.. _`#51159`: https://github.com/saltstack/salt/pull/51159
.. _`#51160`: https://github.com/saltstack/salt/issues/51160
.. _`#51161`: https://github.com/saltstack/salt/pull/51161
.. _`#51169`: https://github.com/saltstack/salt/pull/51169
.. _`#51170`: https://github.com/saltstack/salt/pull/51170
.. _`#51171`: https://github.com/saltstack/salt/pull/51171
.. _`#51173`: https://github.com/saltstack/salt/pull/51173
.. _`#51174`: https://github.com/saltstack/salt/pull/51174
.. _`#51184`: https://github.com/saltstack/salt/pull/51184
.. _`#51191`: https://github.com/saltstack/salt/pull/51191
.. _`#51195`: https://github.com/saltstack/salt/issues/51195
.. _`#51207`: https://github.com/saltstack/salt/pull/51207
.. _`#51209`: https://github.com/saltstack/salt/pull/51209
.. _`#51211`: https://github.com/saltstack/salt/issues/51211
.. _`#51212`: https://github.com/saltstack/salt/pull/51212
.. _`#51226`: https://github.com/saltstack/salt/pull/51226
.. _`#51230`: https://github.com/saltstack/salt/pull/51230
.. _`#51233`: https://github.com/saltstack/salt/pull/51233
.. _`#51248`: https://github.com/saltstack/salt/issues/51248
.. _`#51252`: https://github.com/saltstack/salt/pull/51252
.. _`#51278`: https://github.com/saltstack/salt/pull/51278
.. _`#51279`: https://github.com/saltstack/salt/pull/51279
.. _`#51290`: https://github.com/saltstack/salt/pull/51290
.. _`#51292`: https://github.com/saltstack/salt/pull/51292
.. _`#51293`: https://github.com/saltstack/salt/pull/51293
.. _`#51295`: https://github.com/saltstack/salt/pull/51295
.. _`#51311`: https://github.com/saltstack/salt/pull/51311
.. _`#51317`: https://github.com/saltstack/salt/pull/51317
.. _`#51324`: https://github.com/saltstack/salt/pull/51324
.. _`#51337`: https://github.com/saltstack/salt/pull/51337
.. _`#51338`: https://github.com/saltstack/salt/pull/51338
.. _`#51340`: https://github.com/saltstack/salt/pull/51340
.. _`#51366`: https://github.com/saltstack/salt/pull/51366
.. _`#51377`: https://github.com/saltstack/salt/pull/51377
.. _`#51428`: https://github.com/saltstack/salt/issues/51428
.. _`#51429`: https://github.com/saltstack/salt/pull/51429
.. _`#51432`: https://github.com/saltstack/salt/pull/51432
.. _`#51438`: https://github.com/saltstack/salt/pull/51438
.. _`#51441`: https://github.com/saltstack/salt/pull/51441
.. _`#51445`: https://github.com/saltstack/salt/pull/51445
.. _`#51458`: https://github.com/saltstack/salt/pull/51458
.. _`#51460`: https://github.com/saltstack/salt/pull/51460
.. _`#51462`: https://github.com/saltstack/salt/pull/51462
.. _`#51471`: https://github.com/saltstack/salt/pull/51471
.. _`#51520`: https://github.com/saltstack/salt/pull/51520
.. _`#51525`: https://github.com/saltstack/salt/pull/51525
.. _`#5`: https://github.com/saltstack/salt/issues/5
.. _`#6`: https://github.com/saltstack/salt/issues/6
.. _`#7`: https://github.com/saltstack/salt/issues/7
.. _`4815162342lost`: https://github.com/4815162342lost
.. _`5uper5hoot`: https://github.com/5uper5hoot
.. _`AndreiPashkin`: https://github.com/AndreiPashkin
.. _`BenjaminSchiborr`: https://github.com/BenjaminSchiborr
.. _`Ch3LL`: https://github.com/Ch3LL
.. _`ClaudiuPID`: https://github.com/ClaudiuPID
.. _`Giandom`: https://github.com/Giandom
.. _`KaiSforza`: https://github.com/KaiSforza
.. _`MTecknology`: https://github.com/MTecknology
.. _`ManicoW`: https://github.com/ManicoW
.. _`MyIgel`: https://github.com/MyIgel
.. _`Nick2253`: https://github.com/Nick2253
.. _`OrangeDog`: https://github.com/OrangeDog
.. _`PabloLemos`: https://github.com/PabloLemos
.. _`Poil`: https://github.com/Poil
.. _`ShantonRU`: https://github.com/ShantonRU
.. _`The-Loeki`: https://github.com/The-Loeki
.. _`UtahDave`: https://github.com/UtahDave
.. _`Yxnt`: https://github.com/Yxnt
.. _`aarnaud`: https://github.com/aarnaud
.. _`abednarik`: https://github.com/abednarik
.. _`absolutejam`: https://github.com/absolutejam
.. _`akrus`: https://github.com/akrus
.. _`amendlik`: https://github.com/amendlik
.. _`angeloudy`: https://github.com/angeloudy
.. _`asymetrixs`: https://github.com/asymetrixs
.. _`ata-sql`: https://github.com/ata-sql
.. _`awerner`: https://github.com/awerner
.. _`bartlaarhoven`: https://github.com/bartlaarhoven
.. _`bbh-kmd`: https://github.com/bbh-kmd
.. _`bbinet`: https://github.com/bbinet
.. _`bdrung`: https://github.com/bdrung
.. _`bergmannf`: https://github.com/bergmannf
.. _`bigpick`: https://github.com/bigpick
.. _`bluesliverx`: https://github.com/bluesliverx
.. _`bornwitbugs`: https://github.com/bornwitbugs
.. _`brejoc`: https://github.com/brejoc
.. _`cachedout`: https://github.com/cachedout
.. _`casselt`: https://github.com/casselt
.. _`cro`: https://github.com/cro
.. _`cruscio`: https://github.com/cruscio
.. _`cstarke`: https://github.com/cstarke
.. _`damntoken`: https://github.com/damntoken
.. _`defanator`: https://github.com/defanator
.. _`dgengtek`: https://github.com/dgengtek
.. _`dgmorrisjr`: https://github.com/dgmorrisjr
.. _`dmurphy18`: https://github.com/dmurphy18
.. _`doesitblend`: https://github.com/doesitblend
.. _`dosercz`: https://github.com/dosercz
.. _`doug-stratoscale`: https://github.com/doug-stratoscale
.. _`dpkirchner`: https://github.com/dpkirchner
.. _`dstoliker`: https://github.com/dstoliker
.. _`dubb-b`: https://github.com/dubb-b
.. _`dwoz`: https://github.com/dwoz
.. _`dynek`: https://github.com/dynek
.. _`ereslibre`: https://github.com/ereslibre
.. _`frogunder`: https://github.com/frogunder
.. _`garethgreenaway`: https://github.com/garethgreenaway
.. _`ghost`: https://github.com/ghost
.. _`githubcdr`: https://github.com/githubcdr
.. _`glkappe`: https://github.com/glkappe
.. _`gtmanfred`: https://github.com/gtmanfred
.. _`hunkeelin`: https://github.com/hunkeelin
.. _`isbm`: https://github.com/isbm
.. _`jacobweinstock`: https://github.com/jacobweinstock
.. _`jgleissner`: https://github.com/jgleissner
.. _`jmcook1`: https://github.com/jmcook1
.. _`jodok`: https://github.com/jodok
.. _`johnnybubonic`: https://github.com/johnnybubonic
.. _`jorotenev`: https://github.com/jorotenev
.. _`jpsv`: https://github.com/jpsv
.. _`jyurdal`: https://github.com/jyurdal
.. _`kiemlicz`: https://github.com/kiemlicz
.. _`klafkoff`: https://github.com/klafkoff
.. _`kmatsoukas`: https://github.com/kmatsoukas
.. _`kunal-bajpai`: https://github.com/kunal-bajpai
.. _`lachlanmunro`: https://github.com/lachlanmunro
.. _`lexvella`: https://github.com/lexvella
.. _`littleski`: https://github.com/littleski
.. _`lomeroe`: https://github.com/lomeroe
.. _`m03`: https://github.com/m03
.. _`madrisan`: https://github.com/madrisan
.. _`marek-obuchowicz`: https://github.com/marek-obuchowicz
.. _`martinadolfi`: https://github.com/martinadolfi
.. _`mat813`: https://github.com/mat813
.. _`mattp-`: https://github.com/mattp-
.. _`max-arnold`: https://github.com/max-arnold
.. _`mchugh19`: https://github.com/mchugh19
.. _`meaksh`: https://github.com/meaksh
.. _`michaelgibson`: https://github.com/michaelgibson
.. _`mike2523`: https://github.com/mike2523
.. _`mikemartino`: https://github.com/mikemartino
.. _`mpx8701`: https://github.com/mpx8701
.. _`mruepp`: https://github.com/mruepp
.. _`msciciel`: https://github.com/msciciel
.. _`mxork`: https://github.com/mxork
.. _`nhavens`: https://github.com/nhavens
.. _`nkrishnakishor`: https://github.com/nkrishnakishor
.. _`oddfellow`: https://github.com/oddfellow
.. _`onnodb`: https://github.com/onnodb
.. _`pirogoeth`: https://github.com/pirogoeth
.. _`pjediny`: https://github.com/pjediny
.. _`prometheanfire`: https://github.com/prometheanfire
.. _`pruiz`: https://github.com/pruiz
.. _`raddessi`: https://github.com/raddessi
.. _`rallytime`: https://github.com/rallytime
.. _`rbthomp`: https://github.com/rbthomp
.. _`rkrieger`: https://github.com/rkrieger
.. _`rmarcinik`: https://github.com/rmarcinik
.. _`rongzeng54`: https://github.com/rongzeng54
.. _`rwaweber`: https://github.com/rwaweber
.. _`s0undt3ch`: https://github.com/s0undt3ch
.. _`saltstack/salt#49393`: https://github.com/saltstack/salt/issues/49393
.. _`saltstack/salt#50174`: https://github.com/saltstack/salt/pull/50174
.. _`saltstack/salt-jenkins#1075`: https://github.com/saltstack/salt-jenkins/issues/1075
.. _`saltstack/salt-jenkins#1121`: https://github.com/saltstack/salt-jenkins/issues/1121
.. _`saltstack/salt-jenkins#1182`: https://github.com/saltstack/salt-jenkins/pull/1182
.. _`sathieu`: https://github.com/sathieu
.. _`seanjnkns`: https://github.com/seanjnkns
.. _`sheagcraig`: https://github.com/sheagcraig
.. _`silenius`: https://github.com/silenius
.. _`soostdijck`: https://github.com/soostdijck
.. _`sunyq`: https://github.com/sunyq
.. _`t0fik`: https://github.com/t0fik
.. _`terminalmage`: https://github.com/terminalmage
.. _`terrible-broom`: https://github.com/terrible-broom
.. _`thatch45`: https://github.com/thatch45
.. _`thebluesnevrdie`: https://github.com/thebluesnevrdie
.. _`thetaurean`: https://github.com/thetaurean
.. _`tkaehn`: https://github.com/tkaehn
.. _`tkwilliams`: https://github.com/tkwilliams
.. _`tlemarchand`: https://github.com/tlemarchand
.. _`tonybaloney`: https://github.com/tonybaloney
.. _`twangboy`: https://github.com/twangboy
.. _`valentin2105`: https://github.com/valentin2105
.. _`waynew`: https://github.com/waynew
.. _`wenxin-wang`: https://github.com/wenxin-wang
.. _`weswhet`: https://github.com/weswhet
.. _`whytewolf`: https://github.com/whytewolf
.. _`xBytez`: https://github.com/xBytez
.. _`yosnoop`: https://github.com/yosnoop
.. _`zerthimon`: https://github.com/zerthimon
.. _`zwo-bot`: https://github.com/zwo-bot
