=========================== Salt 2015.8.8 Release Notes =========================== .. important:: 2015.8.8.2 was released shortly after 2015.8.8 to fix several known issues. If you installed 2015.8.8 before 03/30/2016, you likely have installed 2015.8.8 and can optionally upgrade (find out which version you have installed using ``salt --version``. The latest version is ``2015.8.8.2``). Salt 2015.8.8.2 =============== Salt 2015.8.8.2 includes fixes for the following known issues in 2015.8.8: - :issue:`32044`: Key master with value [...] has an invalid type of list Error - :issue:`32004`: Failed to import module win_dacl Error - :issue:`32114`: Wrong validation type for file_ignore_glob key - :issue:`31969`: Fix file.managed for windows .. important:: :issue:`32183` prevents Salt Cloud from installing the Salt minion on new systems. To workaround this issue, call ``salt-cloud -u`` to update the bootstrap script to the latest version. Salt 2015.8.8 ============= Security Fix ------------ CVE-2016-3176: Insecure configuration of PAM external authentication service This issue affects all Salt versions prior to 2015.8.8/2015.5.10 when PAM :ref:`external authentication ` is enabled. This issue involves passing an alternative PAM authentication service with a command that is sent to :ref:`LocalClient `, enabling the attacker to bypass the configured authentication service. Thank you to Dylan Frese for bringing this issue to our attention. This update defines the PAM eAuth ``service`` that users authenticate against in the Salt Master configuration. Read Before Upgrading Debian 7 (Wheezy) from 2015.8.7 to 2015.8.8 ----------------------------------------------------------------- Before you upgrade from 2015.8.7 on Debian 7, you must run the following commands to remove previous packages: .. code-block:: bash sudo apt-get remove python-pycrypto sudo apt-get remove python-apache-libcloud Note that ``python-pycrypto`` will likely remove ``python-apache-libcloud``, so the second command might not be necessary. These have been replaced by ``python-crypto`` and ``python-libcloud`` with ~bpo70+1 moniker. Read Before Upgrading Debian 8 (Jessie) from Salt Versions Earlier than 2015.8.4 -------------------------------------------------------------------------------- Salt ``systemd`` service files are missing the following statement in these versions: .. code-block:: ini [Service] KillMode=process This statement must be added to successfully upgrade on these earlier versions of Salt. Changes for v2015.8.7..v2015.8.8 -------------------------------- Extended changelog courtesy of Todd Stansell (https://github.com/tjstansell/salt-changelogs): *Generated at: 2016-03-17T21:03:44Z* Total Merges: **312** Changes: - **PR** `#31947`_: (*cro*) Move proxymodule assignment earlier in proxy minion init - **PR** `#31948`_: (*rallytime*) Revert "not not" deletion and add comment as to why that is there - **PR** `#31952`_: (*rallytime*) Fix lint for 2015.8 branch - **PR** `#31933`_: (*rallytime*) Fix linking syntax in testing docs - **PR** `#31930`_: (*cro*) Backport changes from 2016.3 - **PR** `#31924`_: (*jfindlay*) update 2015.8.8 release notes - **PR** `#31922`_: (*cachedout*) For 2015.8 head - **PR** `#31904`_: (*rallytime*) [2015.8] Merge forward from 2015.5 to 2015.8 - **PR** `#31906`_: (*sbreidba*) Win_dacl module: fix FULLCONTROL / FILE_ALL_ACCESS definition - **PR** `#31745`_: (*isbm*) Fix the always-false behavior on checking state - **PR** `#31911`_: (*rallytime*) Merge `#31903`_ with pylint fix - **PR** `#31883`_: (*paiou*) Fix scaleway cloud provider and manage x86 servers - **PR** `#31903`_: (*terminalmage*) Use remote_ref instead of local_ref to see if checkout is necessary - **PR** `#31845`_: (*sakateka*) Now a check_file_meta deletes temporary files when test=True - **PR** `#31901`_: (*rallytime*) Back-port `#31846`_ to 2015.8 - **PR** `#31905`_: (*terminalmage*) Update versionadded directive - **PR** `#31902`_: (*rallytime*) Update versionadded tag for new funcs - **PR** `#31888`_: (*terminalmage*) Fix salt.utils.decorators.Depends - **PR** `#31857`_: (*sjorge*) gen_password and del_password missing from solaris_shadow - **PR** `#31879`_: (*cro*) Clarify some comments - **PR** `#31815`_: (*dr4Ke*) Fix template on contents 2015.8 - **PR** `#31818`_: (*anlutro*) Prevent event logs from writing huge amounts of data - **PR** `#31836`_: (*terminalmage*) Fix git_pillar race condition - **PR** `#31824`_: (*rallytime*) Back-port `#31819`_ to 2015.8 - **PR** `#31856`_: (*szeestraten*) Adds missing docs for Virtual Network and Subnet options in salt-cloud Azure cloud profile - **PR** `#31839`_: (*jfindlay*) add 2015.8.8 release notes - **PR** `#31828`_: (*gtmanfred*) Remove ability of authenticating user to specify pam service - **PR** `#31787`_: (*anlutro*) Fix user_create and db_create for new versions of influxdb - **PR** `#31800`_: (*rallytime*) [2015.8] Merge forward from 2015.5 to 2015.8 - **PR** `#31797`_: (*Ch3LL*) Change pkg name to less for suse pkg.info_installed test - **PR** `#31793`_: (*xopher-mc*) fixing init system detection on sles 11, refs `#31617`_ - **PR** `#31786`_: (*isbm*) Bugfix: zypper doesn't detect base product on SLE11 series - **PR** `#31780`_: (*gtmanfred*) use already created vsphere connection - **PR** `#31779`_: (*sbreidba*) win_dacl state & module: return comment field as strings, not lists. - **PR** `#31723`_: (*sjorge*) file_ignore_regex is a list, not bool - **PR** `#31747`_: (*techhat*) Use get_local_client with MASTER opts, not MINION - **PR** `#31688`_: (*whiteinge*) Various SMTP returner fixes - **PR** `#31752`_: (*rallytime*) Back-port `#31686`_ to 2015.8 - **PR** `#31733`_: (*jacobhammons*) docs to clarify cloud configuration - **PR** `#31775`_: (*techhat*) Show correct provider/driver name - **PR** `#31754`_: (*techhat*) Check all providers, not just the current one - **PR** `#31735`_: (*rallytime*) Add reboot, start, and stop actions to digital ocean driver - **PR** `#31770`_: (*anlutro*) Fix influxdb user functionality for version 0.9+ - **PR** `#31743`_: (*Talkless*) Fix parentheses mismatch in documentation - **PR** `#31162`_: (*isbm*) Remove MD5 digest from everywhere and default to SHA256 - **PR** `#31670`_: (*terminalmage*) Write lists of minions targeted by syndic masters to job cache - **PR** `#31711`_: (*ticosax*) [dockerng] Port and Volume comparison should consider Dockerfile - **PR** `#31719`_: (*techhat*) Don't worry about KeyErrors if the node is already removed - **PR** `#31713`_: (*ticosax*) [dockerng] Fix dockerng.network_present when container is given by name - **PR** `#31705`_: (*peripatetic-sojourner*) Foreman pillar - **PR** `#31702`_: (*rallytime*) [2015.8] Merge forward from 2015.5 to 2015.8 - **PR** `#31700`_: (*s0undt3ch*) It's a function! - **PR** `#31679`_: (*cro*) Fix bad link to the sample REST endpoint in salt-contrib. - **PR** `#31668`_: (*rallytime*) Some more testing documentation improvements - **PR** `#31653`_: (*DmitryKuzmenko*) Don't attempt to verify token if it wasn't sent to master. - **PR** `#31629`_: (*darix*) Fix services on sles - **PR** `#31641`_: (*rallytime*) Improve Salt Testing tutorial to be a more comprehensive intro - **PR** `#31651`_: (*dr4Ke*) test case: test_list_present_nested_already - **PR** `#31643`_: (*opdude*) Make sure we are really updating the mercurial repository - **PR** `#31598`_: (*terminalmage*) Remove limitations on validation types for eauth targets - **PR** `#31627`_: (*jakehilton*) Handling error from using gevent 1.1. - **PR** `#31630`_: (*rallytime*) [2015.8] Merge forward from 2015.5 to 2015.8 - **PR** `#31594`_: (*rallytime*) Back-port `#31589`_ to 2015.8 - **PR** `#31604`_: (*joejulian*) Workaround for non-xml output from gluster cli when not tty - **PR** `#31583`_: (*vutny*) Remove trailing white spaces - **PR** `#31592`_: (*rallytime*) Back-port `#31546`_ to 2015.8 - **PR** `#31593`_: (*rallytime*) Back-port `#31570`_ to 2015.8 - **PR** `#31567`_: (*cachedout*) Restore FIPS compliance when using master_finger - **PR** `#31568`_: (*twangboy*) Grant permissions using SID instead of name - **PR** `#31561`_: (*jtand*) Skipped test - **PR** `#31550`_: (*rallytime*) Correct versionadded tag for win_service.config - **PR** `#31549`_: (*rallytime*) [2015.8] Merge forward from 2015.5 to 2015.8 - **PR** `#31544`_: (*DmitryKuzmenko*) Protect getattr from recursion - **PR** `#31525`_: (*DmitryKuzmenko*) Issues/30643 merge forward fixes - **PR** `#31536`_: (*virtualguy*) Remove debian repo from raspbian installation - **PR** `#31528`_: (*vutny*) Correct Salt Cloud documentation about updating Salt Bootstrap script - **PR** `#31539`_: (*DmitryKuzmenko*) Added temporary workaround for CentOS 7 os-release id bug. - **PR** `#31508`_: (*mcalmer*) Zypper correct exit code checking - **PR** `#31510`_: (*vutny*) Add installation guide for Raspbian (Debian on Raspberry Pi) - **PR** `#31498`_: (*Ch3LL*) rename methods in pkg states test - **PR** `#31471`_: (*cachedout*) Correct issue where duplicate items in grains list during state run will result in duplicate grains - **PR** `#31455`_: (*ticosax*) [dockerng] Disable notset check - **PR** `#31488`_: (*isbm*) Unit Test for Zypper's "remove" and "purge" - **PR** `#31485`_: (*jacobhammons*) Fixed transport description in minion / master config - **PR** `#31411`_: (*jtand*) Added some beacons execution module integration tests - **PR** `#31475`_: (*jacobhammons*) Assorted doc issues - **PR** `#31477`_: (*vutny*) Correct installation documentation for Ubuntu - **PR** `#31479`_: (*isbm*) Zypper unit tests & fixes - **PR** `#31445`_: (*rallytime*) Only use LONGSIZE in rpm.info if available. Otherwise, use SIZE. - **PR** `#31464`_: (*Ch3LL*) integartion test: ensure decorator only runs on one method and not class - **PR** `#31458`_: (*vutny*) Correct installation documentation for Debian - **PR** `#31457`_: (*rallytime*) [2015.8] Merge forward from 2015.5 to 2015.8 - **PR** `#31439`_: (*rallytime*) Fix lowpkg.info function for Ubuntu 12 - make sure we have a pkg name - **PR** `#31456`_: (*RabidCicada*) Clarified the form of requisite targets/requisite-references - **PR** `#31453`_: (*DmitryKuzmenko*) Backport cp_geturl fix for large files into 2015.8 - **PR** `#31444`_: (*jacobhammons*) Documentation updates - ddns state, file.line state/exe function, installation dependencies - **PR** `#31341`_: (*twangboy*) Clarification on Windows Package Manager docs - **PR** `#31380`_: (*kiorky*) Bring up ext_pillar rendering errors as well - **PR** `#31418`_: (*terminalmage*) Fix core grains when Debian OS detected as 'Debian GNU/Linux' - **PR** `#31429`_: (*mcalmer*) fix argument handling for pkg.download - **PR** `#31432`_: (*ticosax*) [dockerng] Hotfix docker 1.10.2 - **PR** `#31420`_: (*twangboy*) Handle Unversioned Packages - **PR** `#31417`_: (*jacobhammons*) ddns state docs updated with notes regarding the name, zone, and keyfile. - **PR** `#31391`_: (*redmcg*) Added sanity check: is 'pillar' in self.opts - **PR** `#31376`_: (*cro*) Some distros don't have a /lib/systemd - **PR** `#31352`_: (*ticosax*) [dockerng] Pull missing images when calling dockerng.running - **PR** `#31378`_: (*mcalmer*) Zypper refresh handling - **PR** `#31373`_: (*terminalmage*) Use --set-upstream instead of --track to set upstream on older git - **PR** `#31390`_: (*abednarik*) Fix Logrotate module. - **PR** `#31354`_: (*ticosax*) [dockerng] Don't require auth for all registries - **PR** `#31368`_: (*whiteinge*) Update list of netapi clients for autoclass - **PR** `#31367`_: (*techhat*) Add docs on how to actually use SDB - **PR** `#31357`_: (*ticosax*) [dockerng] Support docker inconsistencies - **PR** `#31353`_: (*ticosax*) [dockerng] Fix when ports are integers - **PR** `#31346`_: (*ticosax*) Backport `#31130`_ to 2015.8 - **PR** `#31332`_: (*terminalmage*) Clarify documentation for gitfs/hgfs/svnfs mountpoint and root options - **PR** `#31305`_: (*mcalmer*) call zypper with option --non-interactive everywhere - **PR** `#31337`_: (*jacobhammons*) Release notes and versioning for 2015.8.7 - **PR** `#31326`_: (*ticosax*) [dockerng ] Detect settings removal - **PR** `#31292`_: (*twangboy*) Fix dunder virtual to check for Remote Administration Tools - **PR** `#31287`_: (*joejulian*) Rework tests and fix reverse peering with gluster 3.7 - **PR** `#31196`_: (*sakateka*) Here are a few fixes utils.network - **PR** `#31299`_: (*rallytime*) Allow state-output and state-verbose default settings to be set from CLI - **PR** `#31317`_: (*terminalmage*) Fix versonadded directive - **PR** `#31301`_: (*terminalmage*) Corrected fix for `#30999`_ - **PR** `#31302`_: (*terminalmage*) Audit CLI opts used in git states - **PR** `#31312`_: (*terminalmage*) Merge 2015.5 into 2015.8 - **PR** `#31225`_: (*pprince*) Fix in file_tree pillar (Fixes `#31223`_.) - **PR** `#31233`_: (*mcalmer*) implement version_cmp for zypper - **PR** `#31273`_: (*rallytime*) [2015.8] Merge forward from 2015.5 to 2015.8 - **PR** `#31253`_: (*gtmanfred*) allow for nova servers to be built with premade volumes - **PR** `#31271`_: (*rallytime*) Back-port `#30689`_ to 2015.8 - **PR** `#31255`_: (*jacobhammons*) Fixes `#30461`_ - **PR** `#31189`_: (*dmacvicar*) Fix crash with scheduler and runners (`#31106`_) - **PR** `#31201`_: (*The-Loeki*) Utilize prepared grains var in master-side ipcidr matching - **PR** `#31239`_: (*terminalmage*) Improve logging when master cannot decode a payload - **PR** `#31190`_: (*twangboy*) Clear minion cache before caching from master - **PR** `#31226`_: (*pprince*) Minor docs fix: file_tree pillar (Fixes `#31124`_) - **PR** `#31234`_: (*mcalmer*) improve doc for list_pkgs - **PR** `#31237`_: (*mcalmer*) add handling for OEM products - **PR** `#31182`_: (*rallytime*) Back-port `#31172`_ to 2015.8 - **PR** `#31191`_: (*rallytime*) Make sure doc example matches kwarg - **PR** `#31171`_: (*Ch3LL*) added logic to check for installed package - **PR** `#31177`_: (*Ch3LL*) add integration test for issue `#30934`_ - **PR** `#31181`_: (*cachedout*) Lint 2015.8 branch - **PR** `#31169`_: (*rallytime*) Back-port `#29718`_ to 2015.8 - **PR** `#31170`_: (*rallytime*) Back-port `#31157`_ to 2015.8 - **PR** `#31147`_: (*cro*) Documentation clarifications. - **PR** `#31153`_: (*edencrane*) Fixed invalid host causing 'reference to variable before assignment' - **PR** `#31152`_: (*garethgreenaway*) fixes to beacon module, state module and friends - **PR** `#31149`_: (*jfindlay*) add 2015.8.7 release notes - **PR** `#31134`_: (*isbm*) Fix types in the output data and return just a list of products - **PR** `#31120`_: (*gtmanfred*) Clean up some bugs in the nova driver - **PR** `#31132`_: (*rallytime*) Make sure required profile configurations passed in a map file work - **PR** `#31131`_: (*Ch3LL*) integration test for issue `#31014`_ - **PR** `#31133`_: (*cachedout*) Fixup 31121 - **PR** `#31125`_: (*isbm*) Force-kill websocket's child processes faster than default two minutes. - **PR** `#31119`_: (*sakateka*) fixes for ipv6-only multi-master faliover - **PR** `#31107`_: (*techhat*) Don't try to add a non-existent IP address - **PR** `#31108`_: (*jtand*) Changed npm integration test to install request. - **PR** `#31105`_: (*cachedout*) Lint 30975 - **PR** `#31100`_: (*jfindlay*) states.x509: docs: peer.sls -> peer.conf - **PR** `#31103`_: (*twangboy*) Point to reg.delete_key_recursive - **PR** `#31093`_: (*techhat*) Ensure double directories don't get created - **PR** `#31095`_: (*jfindlay*) modules.file, states.file: explain symbolic links - **PR** `#31061`_: (*rallytime*) Revert `#30217`_ - was causing salt-cloud -a breakage - **PR** `#31090`_: (*rallytime*) Back-port `#30542`_ to 2015.8 - **PR** `#31085`_: (*jacksontj*) Correctly remove path we added after loader is completed - **PR** `#31037`_: (*vutny*) Update RHEL installation guide to reflect latest repo changes - **PR** `#31050`_: (*basepi*) [2015.8] Merge forward from 2015.5 to 2015.8 - **PR** `#31053`_: (*cachedout*) Fix boto test failures - **PR** `#31029`_: (*twangboy*) Windows defaults to multiprocessing true - **PR** `#30998`_: (*dmacvicar*) add_key/reject_key: do not crash w/Permission denied: '/var/cache/salt/master/.dfn' (`#27796`_) - **PR** `#31049`_: (*twangboy*) Fix versionadded in win_service.config - **PR** `#30987`_: (*youngnick*) Changed glusterfs.peer() module so state can handle localhost peering attempts. - **PR** `#31042`_: (*moltob*) Allow using Windows path in archive.extracted name attribute - **PR** `#31012`_: (*terminalmage*) Fix gitfs/git_pillar/winrepo provider to allow lowercase values - **PR** `#31024`_: (*jfindlay*) modules.aptpkg.upgrade: clarify dist-upgrade usage - **PR** `#31028`_: (*twangboy*) Fix config overwrite by windows installer - **PR** `#31031`_: (*terminalmage*) More complete fix for `#31014`_ - **PR** `#31026`_: (*terminalmage*) Fix regression when contents_pillar/contents_grains is a list. - **PR** `#30978`_: (*garethgreenaway*) fixes to state.py in 2015.8 - **PR** `#30893`_: (*bdrung*) Make build reproducible - **PR** `#30945`_: (*cachedout*) Note that pillar cli args are sent via pub - **PR** `#31002`_: (*rmtmckenzie*) Fix lxc cloud provided minion reporting present - **PR** `#31007`_: (*jtand*) Fixed rabbitmq_vhost test failure. - **PR** `#31004`_: (*rallytime*) Remove overstate docs and a few references. - **PR** `#30965`_: (*anlutro*) Fix rabbitmq_vhost.present result when test=True - **PR** `#30955`_: (*Ch3LL*) docs: add clarification when source is not defined - **PR** `#30941`_: (*rallytime*) Back-port `#30879`_ to 2015.8 - **PR** `#30940`_: (*twangboy*) Fix Build Process for OSX - **PR** `#30944`_: (*jacobhammons*) 2015.8.5 release notes linking and clean up - **PR** `#30905`_: (*joejulian*) Add realpath to lvm.pvdisplay and use it in vg_present - **PR** `#30924`_: (*youngnick*) Fix small bug with starting volumes after creation. - **PR** `#30910`_: (*cro*) fix iDRAC state - **PR** `#30919`_: (*garethgreenaway*) Fixes to ssh_auth state module - **PR** `#30920`_: (*jacobhammons*) Versioned to 2015.8.5, added known issue `#30300`_ to release notes - **PR** `#30894`_: (*terminalmage*) git module/state: Handle identity files more gracefully - **PR** `#30750`_: (*jfindlay*) extract whole war version - **PR** `#30884`_: (*rallytime*) Move checks for private_key file existence and permissions to create function - **PR** `#30888`_: (*ticosax*) Backport `#30797`_ to 2015.8 - **PR** `#30895`_: (*bdrung*) Fix various typos - **PR** `#30889`_: (*anlutro*) Make msgpack an optional dependency in salt.utils.cache - **PR** `#30896`_: (*vutny*) Update nodegroups parameter examples in master config example and docs - **PR** `#30898`_: (*abednarik*) Fix pkg install with version. - **PR** `#30867`_: (*rallytime*) Pass in 'pack' variable to utils.boto.assign_funcs function from ALL boto modules - **PR** `#30849`_: (*jfindlay*) utils.aws: use time lib to conver to epoch seconds - **PR** `#30874`_: (*terminalmage*) Fix regression in git_pillar when multiple remotes are configured - **PR** `#30850`_: (*jfindlay*) modules.dpkg._get_pkg_info: allow for ubuntu 12.04 - **PR** `#30852`_: (*replicant0wnz*) Added more descriptive error message - **PR** `#30847`_: (*terminalmage*) Backport `#30844`_ to 2015.8 branch - **PR** `#30860`_: (*vutny*) Correct installation documentation for RHEL-based distributions - **PR** `#30841`_: (*jacobhammons*) Release notes for 2015.8.5 - **PR** `#30835`_: (*terminalmage*) Integration test for `#30820`_ - **PR** `#30837`_: (*jacobhammons*) Added known issue `#30820`_ to release notes - **PR** `#30832`_: (*rallytime*) Add grains modules to salt modindex - **PR** `#30822`_: (*rallytime*) Make sure setting list_user_permissions to ['', '', ''] doesn't stacktrace - **PR** `#30833`_: (*terminalmage*) Fix regression in scanning for state with 'name' param - **PR** `#30823`_: (*yannis666*) Fix for mine to merge configuration on update. - **PR** `#30827`_: (*jacobhammons*) Version to 2015.8.4, added CVE 2016-1866 to release notes - **PR** `#30813`_: (*anlutro*) Properly set the default value for pillar_merge_lists - **PR** `#30826`_: (*cachedout*) Fix 30682 - **PR** `#30818`_: (*rallytime*) Back-port `#30790`_ to 2015.8 - **PR** `#30815`_: (*vutny*) Pick right user argument for updating reactor function's low data - **PR** `#30747`_: (*jfindlay*) modules.lxc.running_systemd: use `command -v` not `which` - **PR** `#30800`_: (*twangboy*) Ability to handle special case installations - **PR** `#30794`_: (*rallytime*) A spelling fix and some spacing fixes for the boto_ec2 module docs - **PR** `#30756`_: (*basepi*) [2015.8] Fix two error conditions in the highstate outputter - **PR** `#30788`_: (*rallytime*) Fix incorrect doc example for dellchassis blade_idrac state - **PR** `#30791`_: (*Ch3LL*) do not shadow ret function argument for salt.function - **PR** `#30726`_: (*sjmh*) Fix improper use of yield in generator - **PR** `#30752`_: (*terminalmage*) Backport systemd and yum/dnf optimizations from develop into 2015.8 - **PR** `#30759`_: (*thusoy*) Allow managing empty files - **PR** `#30758`_: (*thusoy*) Support mounting labelled volumes with multiple drives - **PR** `#30686`_: (*cachedout*) Master-side pillar caching - **PR** `#30675`_: (*jfindlay*) handle non-ascii minion IDs - **PR** `#30691`_: (*rallytime*) Make sure we use the "instance" kwarg in cloud.action. - **PR** `#30713`_: (*rallytime*) Fix-up autodoc proxy modules for consistency - **PR** `#30741`_: (*jfindlay*) states.locale.__virtual__: return exec mod load err - **PR** `#30751`_: (*basepi*) [2015.8] Merge forward from 2015.5 to 2015.8 - **PR** `#30720`_: (*clinta*) x509.pem_managed does not return changes dict - **PR** `#30687`_: (*clarkperkins*) Setting 'del_root_vol_on_destroy' changes the root volume type to 'standard' - **PR** `#30673`_: (*terminalmage*) Properly derive the git_pillar cachedir from the id instead of the URL - **PR** `#30666`_: (*cachedout*) Fix grains cache - **PR** `#30623`_: (*twangboy*) Added service.config function - **PR** `#30678`_: (*rallytime*) Back-port `#30668`_ to 2015.8 - **PR** `#30677`_: (*clarkperkins*) Fix EC2 volume creation logic - **PR** `#30680`_: (*cro*) Merge forward from 2015.5, primarily for `#30671`_ - **PR** `#30663`_: (*isbm*) Zypper: latest version bugfix and epoch support feature - **PR** `#30652`_: (*mew1033*) Fix sh beacon - **PR** `#30657`_: (*jfindlay*) [2015.8] Backport `#30378`_ and `#29650`_ - **PR** `#30656`_: (*rallytime*) [2015.8] Merge 2015.5 into 2015.8 - **PR** `#30644`_: (*tbaker57*) Another go at fixing 30573 - **PR** `#30611`_: (*isbm*) Bugfix: Zypper `pkg.latest` crash fix - **PR** `#30631`_: (*rallytime*) Refactor rabbitmq_cluster states to use test=true functionality correctly - **PR** `#30628`_: (*rallytime*) Refactor rabbitmq_policy states to use test=true functionality correctly - **PR** `#30624`_: (*cro*) Remove bad symlinks from osx pkg dir - **PR** `#30622`_: (*rallytime*) Add glance state to list of state modules - **PR** `#30618`_: (*rallytime*) Back-port `#30591`_ to 2015.8 - **PR** `#30625`_: (*jfindlay*) doc.topics.eauth: clarify client_acl vs eauth .. _`#27796`: https://github.com/saltstack/salt/issues/27796 .. _`#29650`: https://github.com/saltstack/salt/pull/29650 .. _`#29718`: https://github.com/saltstack/salt/pull/29718 .. _`#30062`: https://github.com/saltstack/salt/pull/30062 .. _`#30217`: https://github.com/saltstack/salt/pull/30217 .. _`#30279`: https://github.com/saltstack/salt/pull/30279 .. _`#30300`: https://github.com/saltstack/salt/issues/30300 .. _`#30378`: https://github.com/saltstack/salt/pull/30378 .. _`#30458`: https://github.com/saltstack/salt/pull/30458 .. _`#30461`: https://github.com/saltstack/salt/issues/30461 .. _`#30542`: https://github.com/saltstack/salt/pull/30542 .. _`#30586`: https://github.com/saltstack/salt/pull/30586 .. _`#30591`: https://github.com/saltstack/salt/pull/30591 .. _`#30611`: https://github.com/saltstack/salt/pull/30611 .. _`#30618`: https://github.com/saltstack/salt/pull/30618 .. _`#30622`: https://github.com/saltstack/salt/pull/30622 .. _`#30623`: https://github.com/saltstack/salt/pull/30623 .. _`#30624`: https://github.com/saltstack/salt/pull/30624 .. _`#30625`: https://github.com/saltstack/salt/pull/30625 .. _`#30628`: https://github.com/saltstack/salt/pull/30628 .. _`#30631`: https://github.com/saltstack/salt/pull/30631 .. _`#30644`: https://github.com/saltstack/salt/pull/30644 .. _`#30652`: https://github.com/saltstack/salt/pull/30652 .. _`#30656`: https://github.com/saltstack/salt/pull/30656 .. _`#30657`: https://github.com/saltstack/salt/pull/30657 .. _`#30659`: https://github.com/saltstack/salt/pull/30659 .. _`#30663`: https://github.com/saltstack/salt/pull/30663 .. _`#30666`: https://github.com/saltstack/salt/pull/30666 .. _`#30668`: https://github.com/saltstack/salt/pull/30668 .. _`#30671`: https://github.com/saltstack/salt/pull/30671 .. _`#30673`: https://github.com/saltstack/salt/pull/30673 .. _`#30675`: https://github.com/saltstack/salt/pull/30675 .. _`#30677`: https://github.com/saltstack/salt/pull/30677 .. _`#30678`: https://github.com/saltstack/salt/pull/30678 .. _`#30680`: https://github.com/saltstack/salt/pull/30680 .. _`#30686`: https://github.com/saltstack/salt/pull/30686 .. _`#30687`: https://github.com/saltstack/salt/pull/30687 .. _`#30689`: https://github.com/saltstack/salt/pull/30689 .. _`#30691`: https://github.com/saltstack/salt/pull/30691 .. _`#30699`: https://github.com/saltstack/salt/pull/30699 .. _`#30703`: https://github.com/saltstack/salt/pull/30703 .. _`#30704`: https://github.com/saltstack/salt/pull/30704 .. _`#30713`: https://github.com/saltstack/salt/pull/30713 .. _`#30720`: https://github.com/saltstack/salt/pull/30720 .. _`#30726`: https://github.com/saltstack/salt/pull/30726 .. _`#30741`: https://github.com/saltstack/salt/pull/30741 .. _`#30747`: https://github.com/saltstack/salt/pull/30747 .. _`#30749`: https://github.com/saltstack/salt/pull/30749 .. _`#30750`: https://github.com/saltstack/salt/pull/30750 .. _`#30751`: https://github.com/saltstack/salt/pull/30751 .. _`#30752`: https://github.com/saltstack/salt/pull/30752 .. _`#30756`: https://github.com/saltstack/salt/pull/30756 .. _`#30757`: https://github.com/saltstack/salt/pull/30757 .. _`#30758`: https://github.com/saltstack/salt/pull/30758 .. _`#30759`: https://github.com/saltstack/salt/pull/30759 .. _`#30760`: https://github.com/saltstack/salt/pull/30760 .. _`#30764`: https://github.com/saltstack/salt/pull/30764 .. _`#30784`: https://github.com/saltstack/salt/pull/30784 .. _`#30788`: https://github.com/saltstack/salt/pull/30788 .. _`#30790`: https://github.com/saltstack/salt/pull/30790 .. _`#30791`: https://github.com/saltstack/salt/pull/30791 .. _`#30794`: https://github.com/saltstack/salt/pull/30794 .. _`#30796`: https://github.com/saltstack/salt/pull/30796 .. _`#30797`: https://github.com/saltstack/salt/pull/30797 .. _`#30800`: https://github.com/saltstack/salt/pull/30800 .. _`#30813`: https://github.com/saltstack/salt/pull/30813 .. _`#30815`: https://github.com/saltstack/salt/pull/30815 .. _`#30818`: https://github.com/saltstack/salt/pull/30818 .. _`#30820`: https://github.com/saltstack/salt/issues/30820 .. _`#30822`: https://github.com/saltstack/salt/pull/30822 .. _`#30823`: https://github.com/saltstack/salt/pull/30823 .. _`#30826`: https://github.com/saltstack/salt/pull/30826 .. _`#30827`: https://github.com/saltstack/salt/pull/30827 .. _`#30829`: https://github.com/saltstack/salt/pull/30829 .. _`#30831`: https://github.com/saltstack/salt/pull/30831 .. _`#30832`: https://github.com/saltstack/salt/pull/30832 .. _`#30833`: https://github.com/saltstack/salt/pull/30833 .. _`#30835`: https://github.com/saltstack/salt/pull/30835 .. _`#30837`: https://github.com/saltstack/salt/pull/30837 .. _`#30841`: https://github.com/saltstack/salt/pull/30841 .. _`#30844`: https://github.com/saltstack/salt/pull/30844 .. _`#30847`: https://github.com/saltstack/salt/pull/30847 .. _`#30849`: https://github.com/saltstack/salt/pull/30849 .. _`#30850`: https://github.com/saltstack/salt/pull/30850 .. _`#30852`: https://github.com/saltstack/salt/pull/30852 .. _`#30860`: https://github.com/saltstack/salt/pull/30860 .. _`#30865`: https://github.com/saltstack/salt/pull/30865 .. _`#30867`: https://github.com/saltstack/salt/pull/30867 .. _`#30874`: https://github.com/saltstack/salt/pull/30874 .. _`#30879`: https://github.com/saltstack/salt/pull/30879 .. _`#30884`: https://github.com/saltstack/salt/pull/30884 .. _`#30888`: https://github.com/saltstack/salt/pull/30888 .. _`#30889`: https://github.com/saltstack/salt/pull/30889 .. _`#30893`: https://github.com/saltstack/salt/pull/30893 .. _`#30894`: https://github.com/saltstack/salt/pull/30894 .. _`#30895`: https://github.com/saltstack/salt/pull/30895 .. _`#30896`: https://github.com/saltstack/salt/pull/30896 .. _`#30897`: https://github.com/saltstack/salt/pull/30897 .. _`#30898`: https://github.com/saltstack/salt/pull/30898 .. _`#30905`: https://github.com/saltstack/salt/pull/30905 .. _`#30910`: https://github.com/saltstack/salt/pull/30910 .. _`#30919`: https://github.com/saltstack/salt/pull/30919 .. _`#30920`: https://github.com/saltstack/salt/pull/30920 .. _`#30922`: https://github.com/saltstack/salt/pull/30922 .. _`#30924`: https://github.com/saltstack/salt/pull/30924 .. _`#30934`: https://github.com/saltstack/salt/issues/30934 .. _`#30940`: https://github.com/saltstack/salt/pull/30940 .. _`#30941`: https://github.com/saltstack/salt/pull/30941 .. _`#30942`: https://github.com/saltstack/salt/pull/30942 .. _`#30944`: https://github.com/saltstack/salt/pull/30944 .. _`#30945`: https://github.com/saltstack/salt/pull/30945 .. _`#30949`: https://github.com/saltstack/salt/pull/30949 .. _`#30955`: https://github.com/saltstack/salt/pull/30955 .. _`#30965`: https://github.com/saltstack/salt/pull/30965 .. _`#30974`: https://github.com/saltstack/salt/pull/30974 .. _`#30975`: https://github.com/saltstack/salt/pull/30975 .. _`#30978`: https://github.com/saltstack/salt/pull/30978 .. _`#30987`: https://github.com/saltstack/salt/pull/30987 .. _`#30998`: https://github.com/saltstack/salt/pull/30998 .. _`#30999`: https://github.com/saltstack/salt/issues/30999 .. _`#31002`: https://github.com/saltstack/salt/pull/31002 .. _`#31004`: https://github.com/saltstack/salt/pull/31004 .. _`#31007`: https://github.com/saltstack/salt/pull/31007 .. _`#31012`: https://github.com/saltstack/salt/pull/31012 .. _`#31014`: https://github.com/saltstack/salt/issues/31014 .. _`#31015`: https://github.com/saltstack/salt/pull/31015 .. _`#31024`: https://github.com/saltstack/salt/pull/31024 .. _`#31026`: https://github.com/saltstack/salt/pull/31026 .. _`#31028`: https://github.com/saltstack/salt/pull/31028 .. _`#31029`: https://github.com/saltstack/salt/pull/31029 .. _`#31031`: https://github.com/saltstack/salt/pull/31031 .. _`#31032`: https://github.com/saltstack/salt/pull/31032 .. _`#31037`: https://github.com/saltstack/salt/pull/31037 .. _`#31042`: https://github.com/saltstack/salt/pull/31042 .. _`#31049`: https://github.com/saltstack/salt/pull/31049 .. _`#31050`: https://github.com/saltstack/salt/pull/31050 .. _`#31053`: https://github.com/saltstack/salt/pull/31053 .. _`#31061`: https://github.com/saltstack/salt/pull/31061 .. _`#31085`: https://github.com/saltstack/salt/pull/31085 .. _`#31090`: https://github.com/saltstack/salt/pull/31090 .. _`#31093`: https://github.com/saltstack/salt/pull/31093 .. _`#31095`: https://github.com/saltstack/salt/pull/31095 .. _`#31100`: https://github.com/saltstack/salt/pull/31100 .. _`#31103`: https://github.com/saltstack/salt/pull/31103 .. _`#31105`: https://github.com/saltstack/salt/pull/31105 .. _`#31106`: https://github.com/saltstack/salt/issues/31106 .. _`#31107`: https://github.com/saltstack/salt/pull/31107 .. _`#31108`: https://github.com/saltstack/salt/pull/31108 .. _`#31110`: https://github.com/saltstack/salt/pull/31110 .. _`#31119`: https://github.com/saltstack/salt/pull/31119 .. _`#31120`: https://github.com/saltstack/salt/pull/31120 .. _`#31124`: https://github.com/saltstack/salt/pull/31124 .. _`#31125`: https://github.com/saltstack/salt/pull/31125 .. _`#31130`: https://github.com/saltstack/salt/pull/31130 .. _`#31131`: https://github.com/saltstack/salt/pull/31131 .. _`#31132`: https://github.com/saltstack/salt/pull/31132 .. _`#31133`: https://github.com/saltstack/salt/pull/31133 .. _`#31134`: https://github.com/saltstack/salt/pull/31134 .. _`#31147`: https://github.com/saltstack/salt/pull/31147 .. _`#31149`: https://github.com/saltstack/salt/pull/31149 .. _`#31152`: https://github.com/saltstack/salt/pull/31152 .. _`#31153`: https://github.com/saltstack/salt/pull/31153 .. _`#31157`: https://github.com/saltstack/salt/pull/31157 .. _`#31162`: https://github.com/saltstack/salt/pull/31162 .. _`#31169`: https://github.com/saltstack/salt/pull/31169 .. _`#31170`: https://github.com/saltstack/salt/pull/31170 .. _`#31171`: https://github.com/saltstack/salt/pull/31171 .. _`#31172`: https://github.com/saltstack/salt/pull/31172 .. _`#31176`: https://github.com/saltstack/salt/pull/31176 .. _`#31177`: https://github.com/saltstack/salt/pull/31177 .. _`#31181`: https://github.com/saltstack/salt/pull/31181 .. _`#31182`: https://github.com/saltstack/salt/pull/31182 .. _`#31183`: https://github.com/saltstack/salt/pull/31183 .. _`#31189`: https://github.com/saltstack/salt/pull/31189 .. _`#31190`: https://github.com/saltstack/salt/pull/31190 .. _`#31191`: https://github.com/saltstack/salt/pull/31191 .. _`#31196`: https://github.com/saltstack/salt/pull/31196 .. _`#31201`: https://github.com/saltstack/salt/pull/31201 .. _`#31223`: https://github.com/saltstack/salt/issues/31223 .. _`#31225`: https://github.com/saltstack/salt/pull/31225 .. _`#31226`: https://github.com/saltstack/salt/pull/31226 .. _`#31233`: https://github.com/saltstack/salt/pull/31233 .. _`#31234`: https://github.com/saltstack/salt/pull/31234 .. _`#31237`: https://github.com/saltstack/salt/pull/31237 .. _`#31239`: https://github.com/saltstack/salt/pull/31239 .. _`#31245`: https://github.com/saltstack/salt/pull/31245 .. _`#31250`: https://github.com/saltstack/salt/pull/31250 .. _`#31253`: https://github.com/saltstack/salt/pull/31253 .. _`#31255`: https://github.com/saltstack/salt/pull/31255 .. _`#31264`: https://github.com/saltstack/salt/pull/31264 .. _`#31271`: https://github.com/saltstack/salt/pull/31271 .. _`#31273`: https://github.com/saltstack/salt/pull/31273 .. _`#31287`: https://github.com/saltstack/salt/pull/31287 .. _`#31288`: https://github.com/saltstack/salt/pull/31288 .. _`#31292`: https://github.com/saltstack/salt/pull/31292 .. _`#31299`: https://github.com/saltstack/salt/pull/31299 .. _`#31301`: https://github.com/saltstack/salt/pull/31301 .. _`#31302`: https://github.com/saltstack/salt/pull/31302 .. _`#31305`: https://github.com/saltstack/salt/pull/31305 .. _`#31312`: https://github.com/saltstack/salt/pull/31312 .. _`#31317`: https://github.com/saltstack/salt/pull/31317 .. _`#31326`: https://github.com/saltstack/salt/pull/31326 .. _`#31332`: https://github.com/saltstack/salt/pull/31332 .. _`#31336`: https://github.com/saltstack/salt/pull/31336 .. _`#31337`: https://github.com/saltstack/salt/pull/31337 .. _`#31339`: https://github.com/saltstack/salt/pull/31339 .. _`#31341`: https://github.com/saltstack/salt/pull/31341 .. _`#31346`: https://github.com/saltstack/salt/pull/31346 .. _`#31352`: https://github.com/saltstack/salt/pull/31352 .. _`#31353`: https://github.com/saltstack/salt/pull/31353 .. _`#31354`: https://github.com/saltstack/salt/pull/31354 .. _`#31357`: https://github.com/saltstack/salt/pull/31357 .. _`#31367`: https://github.com/saltstack/salt/pull/31367 .. _`#31368`: https://github.com/saltstack/salt/pull/31368 .. _`#31373`: https://github.com/saltstack/salt/pull/31373 .. _`#31374`: https://github.com/saltstack/salt/pull/31374 .. _`#31376`: https://github.com/saltstack/salt/pull/31376 .. _`#31378`: https://github.com/saltstack/salt/pull/31378 .. _`#31380`: https://github.com/saltstack/salt/pull/31380 .. _`#31382`: https://github.com/saltstack/salt/pull/31382 .. _`#31390`: https://github.com/saltstack/salt/pull/31390 .. _`#31391`: https://github.com/saltstack/salt/pull/31391 .. _`#31411`: https://github.com/saltstack/salt/pull/31411 .. _`#31416`: https://github.com/saltstack/salt/pull/31416 .. _`#31417`: https://github.com/saltstack/salt/pull/31417 .. _`#31418`: https://github.com/saltstack/salt/pull/31418 .. _`#31420`: https://github.com/saltstack/salt/pull/31420 .. _`#31429`: https://github.com/saltstack/salt/pull/31429 .. _`#31432`: https://github.com/saltstack/salt/pull/31432 .. _`#31439`: https://github.com/saltstack/salt/pull/31439 .. _`#31440`: https://github.com/saltstack/salt/pull/31440 .. _`#31441`: https://github.com/saltstack/salt/pull/31441 .. _`#31442`: https://github.com/saltstack/salt/pull/31442 .. _`#31444`: https://github.com/saltstack/salt/pull/31444 .. _`#31445`: https://github.com/saltstack/salt/pull/31445 .. _`#31453`: https://github.com/saltstack/salt/pull/31453 .. _`#31455`: https://github.com/saltstack/salt/pull/31455 .. _`#31456`: https://github.com/saltstack/salt/pull/31456 .. _`#31457`: https://github.com/saltstack/salt/pull/31457 .. _`#31458`: https://github.com/saltstack/salt/pull/31458 .. _`#31461`: https://github.com/saltstack/salt/pull/31461 .. _`#31464`: https://github.com/saltstack/salt/pull/31464 .. _`#31471`: https://github.com/saltstack/salt/pull/31471 .. _`#31472`: https://github.com/saltstack/salt/pull/31472 .. _`#31475`: https://github.com/saltstack/salt/pull/31475 .. _`#31477`: https://github.com/saltstack/salt/pull/31477 .. _`#31479`: https://github.com/saltstack/salt/pull/31479 .. _`#31485`: https://github.com/saltstack/salt/pull/31485 .. _`#31488`: https://github.com/saltstack/salt/pull/31488 .. _`#31497`: https://github.com/saltstack/salt/pull/31497 .. _`#31498`: https://github.com/saltstack/salt/pull/31498 .. _`#31508`: https://github.com/saltstack/salt/pull/31508 .. _`#31510`: https://github.com/saltstack/salt/pull/31510 .. _`#31512`: https://github.com/saltstack/salt/pull/31512 .. _`#31521`: https://github.com/saltstack/salt/pull/31521 .. _`#31525`: https://github.com/saltstack/salt/pull/31525 .. _`#31528`: https://github.com/saltstack/salt/pull/31528 .. _`#31529`: https://github.com/saltstack/salt/pull/31529 .. _`#31536`: https://github.com/saltstack/salt/pull/31536 .. _`#31539`: https://github.com/saltstack/salt/pull/31539 .. _`#31544`: https://github.com/saltstack/salt/pull/31544 .. _`#31546`: https://github.com/saltstack/salt/pull/31546 .. _`#31549`: https://github.com/saltstack/salt/pull/31549 .. _`#31550`: https://github.com/saltstack/salt/pull/31550 .. _`#31558`: https://github.com/saltstack/salt/pull/31558 .. _`#31561`: https://github.com/saltstack/salt/pull/31561 .. _`#31567`: https://github.com/saltstack/salt/pull/31567 .. _`#31568`: https://github.com/saltstack/salt/pull/31568 .. _`#31570`: https://github.com/saltstack/salt/pull/31570 .. _`#31578`: https://github.com/saltstack/salt/pull/31578 .. _`#31583`: https://github.com/saltstack/salt/pull/31583 .. _`#31589`: https://github.com/saltstack/salt/pull/31589 .. _`#31592`: https://github.com/saltstack/salt/pull/31592 .. _`#31593`: https://github.com/saltstack/salt/pull/31593 .. _`#31594`: https://github.com/saltstack/salt/pull/31594 .. _`#31598`: https://github.com/saltstack/salt/pull/31598 .. _`#31601`: https://github.com/saltstack/salt/pull/31601 .. _`#31604`: https://github.com/saltstack/salt/pull/31604 .. _`#31617`: https://github.com/saltstack/salt/issues/31617 .. _`#31622`: https://github.com/saltstack/salt/pull/31622 .. _`#31627`: https://github.com/saltstack/salt/pull/31627 .. _`#31629`: https://github.com/saltstack/salt/pull/31629 .. _`#31630`: https://github.com/saltstack/salt/pull/31630 .. _`#31641`: https://github.com/saltstack/salt/pull/31641 .. _`#31643`: https://github.com/saltstack/salt/pull/31643 .. _`#31651`: https://github.com/saltstack/salt/pull/31651 .. _`#31653`: https://github.com/saltstack/salt/pull/31653 .. _`#31655`: https://github.com/saltstack/salt/pull/31655 .. _`#31658`: https://github.com/saltstack/salt/pull/31658 .. _`#31660`: https://github.com/saltstack/salt/pull/31660 .. _`#31668`: https://github.com/saltstack/salt/pull/31668 .. _`#31670`: https://github.com/saltstack/salt/pull/31670 .. _`#31679`: https://github.com/saltstack/salt/pull/31679 .. _`#31682`: https://github.com/saltstack/salt/pull/31682 .. _`#31683`: https://github.com/saltstack/salt/pull/31683 .. _`#31686`: https://github.com/saltstack/salt/pull/31686 .. _`#31687`: https://github.com/saltstack/salt/pull/31687 .. _`#31688`: https://github.com/saltstack/salt/pull/31688 .. _`#31689`: https://github.com/saltstack/salt/pull/31689 .. _`#31700`: https://github.com/saltstack/salt/pull/31700 .. _`#31702`: https://github.com/saltstack/salt/pull/31702 .. _`#31705`: https://github.com/saltstack/salt/pull/31705 .. _`#31707`: https://github.com/saltstack/salt/pull/31707 .. _`#31711`: https://github.com/saltstack/salt/pull/31711 .. _`#31713`: https://github.com/saltstack/salt/pull/31713 .. _`#31719`: https://github.com/saltstack/salt/pull/31719 .. _`#31723`: https://github.com/saltstack/salt/pull/31723 .. _`#31733`: https://github.com/saltstack/salt/pull/31733 .. _`#31735`: https://github.com/saltstack/salt/pull/31735 .. _`#31740`: https://github.com/saltstack/salt/pull/31740 .. _`#31743`: https://github.com/saltstack/salt/pull/31743 .. _`#31744`: https://github.com/saltstack/salt/pull/31744 .. _`#31745`: https://github.com/saltstack/salt/pull/31745 .. _`#31747`: https://github.com/saltstack/salt/pull/31747 .. _`#31750`: https://github.com/saltstack/salt/pull/31750 .. _`#31752`: https://github.com/saltstack/salt/pull/31752 .. _`#31754`: https://github.com/saltstack/salt/pull/31754 .. _`#31770`: https://github.com/saltstack/salt/pull/31770 .. _`#31775`: https://github.com/saltstack/salt/pull/31775 .. _`#31779`: https://github.com/saltstack/salt/pull/31779 .. _`#31780`: https://github.com/saltstack/salt/pull/31780 .. _`#31786`: https://github.com/saltstack/salt/pull/31786 .. _`#31787`: https://github.com/saltstack/salt/pull/31787 .. _`#31793`: https://github.com/saltstack/salt/pull/31793 .. _`#31797`: https://github.com/saltstack/salt/pull/31797 .. _`#31800`: https://github.com/saltstack/salt/pull/31800 .. _`#31810`: https://github.com/saltstack/salt/pull/31810 .. _`#31815`: https://github.com/saltstack/salt/pull/31815 .. _`#31818`: https://github.com/saltstack/salt/pull/31818 .. _`#31819`: https://github.com/saltstack/salt/pull/31819 .. _`#31824`: https://github.com/saltstack/salt/pull/31824 .. _`#31825`: https://github.com/saltstack/salt/pull/31825 .. _`#31826`: https://github.com/saltstack/salt/pull/31826 .. _`#31827`: https://github.com/saltstack/salt/pull/31827 .. _`#31828`: https://github.com/saltstack/salt/pull/31828 .. _`#31833`: https://github.com/saltstack/salt/pull/31833 .. _`#31834`: https://github.com/saltstack/salt/pull/31834 .. _`#31836`: https://github.com/saltstack/salt/pull/31836 .. _`#31839`: https://github.com/saltstack/salt/pull/31839 .. _`#31845`: https://github.com/saltstack/salt/pull/31845 .. _`#31846`: https://github.com/saltstack/salt/pull/31846 .. _`#31852`: https://github.com/saltstack/salt/pull/31852 .. _`#31856`: https://github.com/saltstack/salt/pull/31856 .. _`#31857`: https://github.com/saltstack/salt/pull/31857 .. _`#31878`: https://github.com/saltstack/salt/pull/31878 .. _`#31879`: https://github.com/saltstack/salt/pull/31879 .. _`#31883`: https://github.com/saltstack/salt/pull/31883 .. _`#31888`: https://github.com/saltstack/salt/pull/31888 .. _`#31900`: https://github.com/saltstack/salt/pull/31900 .. _`#31901`: https://github.com/saltstack/salt/pull/31901 .. _`#31902`: https://github.com/saltstack/salt/pull/31902 .. _`#31903`: https://github.com/saltstack/salt/pull/31903 .. _`#31904`: https://github.com/saltstack/salt/pull/31904 .. _`#31905`: https://github.com/saltstack/salt/pull/31905 .. _`#31906`: https://github.com/saltstack/salt/pull/31906 .. _`#31911`: https://github.com/saltstack/salt/pull/31911 .. _`#31922`: https://github.com/saltstack/salt/pull/31922 .. _`#31924`: https://github.com/saltstack/salt/pull/31924 .. _`#31930`: https://github.com/saltstack/salt/pull/31930 .. _`#31933`: https://github.com/saltstack/salt/pull/31933 .. _`#31947`: https://github.com/saltstack/salt/pull/31947 .. _`#31948`: https://github.com/saltstack/salt/pull/31948 .. _`#31952`: https://github.com/saltstack/salt/pull/31952