============================
Salt 2016.11.5 Release Notes
============================

Version 2016.11.5 is a bugfix release for :ref:`2016.11.0 <release-2016-11-0>`.

Changes for v2016.11.4..v2016.11.5
----------------------------------------------------------------

Extended changelog courtesy of Todd Stansell (https://github.com/tjstansell/salt-changelogs):

*Generated at: 2017-05-09T21:00:57Z*

Statistics:

- Total Merges: **83**
- Total Issue references: **31**
- Total PR references: **99**

Changes:

Patched Packages
----------------
Due to the critical nature of issue `#41230`_ we have decided to patch the 2016.11.5 packages with PR `#41244`_. This issue affects all calls to a salt-minion if there is an ipv6 nameserver set on the minion's host. The patched packages on repo.saltstack.com will divert from the v2016.11.5 tag and pypi packages due to the additional PR applied to the packages.

- **PR** `#41244`_: (*cachedout*) Fix ipv6 nameserver grains
  @ *2017-05-15T17:55:39Z*

  - **ISSUE** `#41230`_: (*RealKelsar*) 2016.11.5 IPv6 nameserver in resolv.conf leads to minion exception
    | refs: `#41244`_ `#41244`_
  - **ISSUE** `#40912`_: (*razed11*) IPV6 Warning when ipv6 set to False
    | refs: `#40934`_
  - **PR** `#40934`_: (*gtmanfred*) Only display IPvX warning if role is master
    | refs: `#41244`_ `#41244`_
  * 53d5b3e Merge pull request `#41244`_ from cachedout/fix_ipv6_nameserver_grains
  * f745db1 Lint

  * 6e1ab69 Partial revert of `#40934`_

  * 88f49f9 Revert "Only display IPvX warning if role is master"

- **PR** `#41173`_: (*twangboy*) Add silent action to MsgBox for Path Actions
  @ *2017-05-10T17:22:18Z*

  - **ISSUE** `#41099`_: (*lomeroe*) Windows 2016.11.4 minion installer silent mode issue
    | refs: `#41173`_
  * 96918dc Add silent action to MsgBox for Path Actions

- **PR** `#41134`_: (*twangboy*) Fix `pkg.install` on Windows on 2016.11
  @ *2017-05-09T15:10:19Z*

  * a10f014 Merge pull request `#41134`_ from twangboy/fix_get_msiexec
  * d808a60 Remove redundant if statement

  * b4d6d5a Fix for version_num of None and Latest

  * 0f31822 Fix problem when use_msiexec is a bool

- **PR** `#41102`_: (*gtmanfred*) don't pass jid to list_jobs
  @ *2017-05-08T17:45:40Z*

  - **ISSUE** `#41100`_: (*frogunder*) Exception occurred in runner jobs.list_jobs
    | refs: `#41102`_
  * 4ecab68 Merge pull request `#41102`_ from gtmanfred/2016.11
  * 83057d0 don't pass jid to list_jobs

* ffe4bc3 update unit test to reflect new behavior


* 482a5e3 Merge branch 'L4rS6-fix-file-blockreplace-diff-in-test-mode' into 2016.11


  * 505cb45 Merge branch 'fix-file-blockreplace-diff-in-test-mode' of https://github.com/L4rS6/salt into L4rS6-fix-file-blockreplace-diff-in-test-mode

  * de9f66b show chanages in file.blockreplace function in testing mode. also used same programming style as in file.managed function:   (ret['changes']['diff'] = ret['pchanges']['diff'])

- **PR** `#41103`_: (*lorengordon*) Adds a get_route() function to win_network.py
  @ *2017-05-06T06:19:42Z*

  * 2af89be Merge pull request `#41103`_ from lorengordon/win.get_route
  * 93ce564 Adds test for win_network.get_route

  * b9cbbc0 Adds a get_route() function to win_network.py

- **PR** `#41098`_: (*rallytime*) Back-port `#41088`_ to 2016.11
  @ *2017-05-05T19:04:03Z*

  - **PR** `#41088`_: (*sjorge*) Fix docs for zfs state module
    | refs: `#41098`_
  * 2f9b5a4 Merge pull request `#41098`_ from rallytime/`bp-41088`_
  * dc6cd2e Fix docs for zfs state module

- **PR** `#41097`_: (*rallytime*) Back-port `#41079`_ to 2016.11
  @ *2017-05-05T19:03:43Z*

  - **PR** `#41079`_: (*brd*) Remove an extra colon that is causing rendering issues
    | refs: `#41097`_
  * 2123001 Merge pull request `#41097`_ from rallytime/`bp-41079`_
  * 845b49c Remove and extra colon that is causing rendering issues

- **PR** `#41093`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-05-05T17:22:09Z*

  - **PR** `#41083`_: (*rallytime*) Git state: head_ref should be head_rev in "latest" function
  * ff6fa2b Merge pull request `#41093`_ from rallytime/merge-2016.11
  * a670eaa Merge branch '2016.3' into '2016.11'

  * 247400c Merge pull request `#41083`_ from rallytime/git-state-fix

    * b85ee48 Git state: head_ref should be head_rev in "latest" function

- **PR** `#41084`_: (*rallytime*) Skip the test_salt_documentation_arguments_not_assumed test for Arch
  @ *2017-05-04T21:56:29Z*

  - **PR** `#41074`_: (*rallytime*) Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch
    | refs: `#41084`_
  * 4c2e636 Merge pull request `#41084`_ from rallytime/disable-matcher-test-arch
  * da811fe Skip the correct test for the matcher tests in Arch

  * b9d1ce9 Revert "Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch"

- **PR** `#41069`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-05-04T20:34:58Z*

  - **ISSUE** `#40835`_: (*willkil*) non-root: module.mac_system.__virtual__() is wrongly returning `None`
    | refs: `#41048`_
  - **PR** `#41070`_: (*rallytime*) Pylint: remove extra line in mac_system module
  - **PR** `#41048`_: (*willkil*) mac_system: return False for non-root user
    | refs: `#41070`_
  * 1179720 Merge pull request `#41069`_ from rallytime/merge-2016.11
  * 08c5891 Merge branch '2016.3' into '2016.11'

    * 6941809 Merge pull request `#41070`_ from rallytime/lint-2016.3

      * 486e2ba Pylint: remove extra line in mac_system module

  * db70b2d Pylint: remove extra line in mac_system module

  * 855d157 Merge branch '2016.3' into '2016.11'

    * 3101694 Merge pull request `#41048`_ from willkil/mac_system_non_root

      * b65b82a mac_system: return False for non-root user

- **PR** `#41074`_: (*rallytime*) Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch
  | refs: `#41084`_
  @ *2017-05-04T19:26:16Z*

  * 9d638ab Merge pull request `#41074`_ from rallytime/disable-matcher-test-arch
  * 9eb482d Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch

- **PR** `#41078`_: (*Ch3LL*) Add 2016.11.5 release notes and change log
  @ *2017-05-04T19:00:58Z*

  * 72c854d Merge pull request `#41078`_ from Ch3LL/add_2016.11.5_release
  * 96ed815 Add 2016.11.5 release notes and change log

- **PR** `#40879`_: (*peter-funktionIT*) Update win_pki.py
  @ *2017-05-04T16:12:00Z*

  * eac8401 Merge pull request `#40879`_ from peter-funktionIT/2016.11
  * 80fa9e5 Update win_pki.py

  * a48b05f Update win_pki.py

  * 3a4e6d9 Update win_pki.py

- **PR** `#41036`_: (*terminalmage*) Do not force effective saltenv when running states via orchestration
  @ *2017-05-04T15:44:14Z*

  - **ISSUE** `#40928`_: (*sokratisg*) Orchestration runner, highstate and environment question
    | refs: `#41036`_
  * 547a973 Merge pull request `#41036`_ from terminalmage/issue40928
  * 72ef34c Do not force effective saltenv when running states via orchestration

- **PR** `#41039`_: (*terminalmage*) Look for currently-running python's pip first
  @ *2017-05-04T15:43:52Z*

  * 6e2458e Merge pull request `#41039`_ from terminalmage/improve-pip-bin
  * effe8b9 Look for currently-running python's pip first

- **PR** `#41049`_: (*Ch3LL*) fix integration wheel test_gen test
  @ *2017-05-04T15:33:59Z*

  * ff39613 Merge pull request `#41049`_ from Ch3LL/fix_wheel_test
  * ba22382 fix integration wheel test_gen test

- **PR** `#41054`_: (*terminalmage*) Update package targets for Arch pkg tests
  @ *2017-05-04T14:59:42Z*

  * 4e4b351 Merge pull request `#41054`_ from terminalmage/salt-jenkins-315
  * ee493ba Update package targets for Arch pkg tests

- **PR** `#41046`_: (*twangboy*) Fix pkg.remove
  @ *2017-05-04T14:58:57Z*

  * 62dff52 Merge pull request `#41046`_ from twangboy/fix_pkg_remove
  * 2af38e5 Use target instead of version_num

- **PR** `#41045`_: (*terminalmage*) Clarify gitfs docs
  @ *2017-05-03T22:24:55Z*

  * 2b47b7b Merge pull request `#41045`_ from terminalmage/clarify-gitfs-docs
  * c757eda Clarify gitfs docs

- **PR** `#41032`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-05-03T19:31:58Z*

  - **PR** `#41011`_: (*terminalmage*) Use proposed docker-py reload_config() function
  * 819007c Merge pull request `#41032`_ from rallytime/merge-2016.11
  * d26fd0b Merge branch '2016.3' into '2016.11'

    * b00acb0 Merge pull request `#41011`_ from terminalmage/docker-refresh-credentials

      * b8d1dcc Use proposed docker-py reload_config() func

- **PR** `#41007`_: (*jleproust*) Recognize LVM2 pv with empty vg as orphan
  @ *2017-05-03T18:24:51Z*

  - **ISSUE** `#35699`_: (*jleproust*) LVM state fails to add new device, volume group name is empty string
    | refs: `#41007`_
  * d7fbd38 Merge pull request `#41007`_ from jleproust/fix_lvm_empty_vg
  * 3b9a845 Recognize LVM2 pv with empty vg as orphan

- **PR** `#41029`_: (*rallytime*) Back-port `#38565`_ to 2016.11
  @ *2017-05-03T17:05:10Z*

  - **PR** `#38565`_: (*drawsmcgraw*) Update management of ip addresses for salt cloud azurearm module
    | refs: `#41029`_
  * 4eab962 Merge pull request `#41029`_ from rallytime/`bp-38565`_
  * 2df93ae Update management of ip addresses. - Assign static, private IP addresses. - Ability to not assign a public IP to a VM.

- **PR** `#41012`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-05-02T22:06:40Z*

  - **PR** `#40952`_: (*terminalmage*) Fix documentation for docker login function in pre-nitrogen release branches
  - **PR** `#40724`_: (*cro*) Minion key revoke cfg
  * 97500f0 Merge pull request `#41012`_ from rallytime/merge-2016.11
  * fc756c5 Merge branch '2016.3' into '2016.11'

  * 19894f6 Merge pull request `#40724`_ from cro/minion_key_revoke_cfg

    * cbc7019 Change message level when minion requests key revoke and feature is turned off.

    * 65ea899 Add allow_minion_key_revoke config option

    * 8920495 Add config option to prevent minions from revoking their own keys.

  * 129859f Merge pull request `#40952`_ from terminalmage/fix-dockerng.login-docs

    * dfbbeb5 Fix documentation for docker login function in pre-nitrogen release branches

- **PR** `#40726`_: (*benediktwerner*) Fixed minion keys remaining pending after auto signing and fixed typo (Resubmitted to 2016.3)
  @ *2017-05-02T16:57:34Z*

  * e210eae Merge pull request `#40726`_ from benediktwerner/fix-minions-remain-pending-after-autosign-and-typo
  * 82c144e Fixed minion keys remaining pending after auto signing and fixed typo

- **PR** `#40960`_: (*danlsgiga*) Fix consul module "AttributeError: 'dict' object has no attribute 'json'"
  @ *2017-05-02T16:16:57Z*

  * 4f342e2 Merge pull request `#40960`_ from danlsgiga/2016.11
  * 6e4cc6d Fix consul module "AttributeError: 'dict' object has no attribute 'json'"

- **PR** `#40963`_: (*twangboy*) Fix fullname parameter for add function
  @ *2017-05-02T16:08:59Z*

  * c3b329b Merge pull request `#40963`_ from twangboy/fix_win_useradd
  * 5371b6b Fix fullname parameter for add function

- **PR** `#40995`_: (*twangboy*) Remove unused code fragments
  @ *2017-05-02T15:31:58Z*

  * d79c033 Merge pull request `#40995`_ from twangboy/remove_utils
  * 8c01aac Remove unused code fragments

- **PR** `#40991`_: (*rallytime*) Back-port `#40982`_ to 2016.11
  @ *2017-05-01T22:31:30Z*

  - **ISSUE** `#40981`_: (*ezh*) docker-events engine is broken with modern docker
    | refs: `#40982`_
  - **PR** `#40982`_: (*ezh*) Fix docker_events field handling
    | refs: `#40991`_
  * c616287 Merge pull request `#40991`_ from rallytime/`bp-40982`_
  * 8fcb720 Fix docker_events field handling

- **PR** `#40987`_: (*gtmanfred*) get sudo_password correctly
  @ *2017-05-01T19:39:55Z*

  - **ISSUE** `#40965`_: (*weirdbricks*) salt-cloud sudo failing
    | refs: `#40987`_
  * 3fb2492 Merge pull request `#40987`_ from gtmanfred/2016.11
  * 2ed694c get sudo_password correctly

- **PR** `#40992`_: (*gtmanfred*) fix bug in status.netdev
  @ *2017-05-01T19:38:35Z*

  - **ISSUE** `#40988`_: (*santzi*) status.netdev tx_bytes is always zero
    | refs: `#40992`_
  * ecbac13 Merge pull request `#40992`_ from gtmanfred/netdev
  * a9eed7f fix bug in status.netdev

- **PR** `#40993`_: (*gtmanfred*) smtp state can use profile or sender
  @ *2017-05-01T19:35:47Z*

  - **ISSUE** `#40976`_: (*sjorge*) smtp.send_msg state oddities
    | refs: `#40993`_
  * d852320 Merge pull request `#40993`_ from gtmanfred/smtp
  * 068ebfd smtp state can use profile or sender

- **PR** `#40958`_: (*rallytime*) Back-port `#40939`_ to 2016.11
  @ *2017-04-28T18:01:17Z*

  - **PR** `#40939`_: (*Ch3LL*) Allow vmware to query deploy arg from opts
    | refs: `#40958`_
  * fc26fb8 Merge pull request `#40958`_ from rallytime/`bp-40939`_
  * 3e93948 allow vmware to query deploy arg from opts

- **PR** `#40957`_: (*rallytime*) Back-port `#38115`_ to 2016.11
  @ *2017-04-28T18:01:02Z*

  - **ISSUE** `#34640`_: (*nevins-b*) utils.shlex_split removing quotes which are required for augeas
    | refs: `#34643`_
  - **PR** `#38115`_: (*cro*) Revert "fix augeas module so shlex doesn't strip quotes"
    | refs: `#40957`_
  - **PR** `#34643`_: (*nevins-b*) fix augeas module so shlex doesn't strip quotes
    | refs: `#38115`_
  * a586e12 Merge pull request `#40957`_ from rallytime/`bp-38115`_
  * eb88917 Revert "fix augeas module so shlex doesn't strip quotes"

- **PR** `#40905`_: (*rkgrunt*) Fixed issue with parsing of master minion returns when batching is en…
  @ *2017-04-28T17:52:32Z*

  - **ISSUE** `#40635`_: (*promorphus*) Orchestrate + Batches returns false failed information
    | refs: `#40905`_ `#40905`_
  * 00a15eb Merge pull request `#40905`_ from rkgrunt/40635
  * 4f9c92a Fixed issue with parsing of master minion returns when batching is enabled.

- **PR** `#40954`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-04-28T16:41:49Z*

  - **ISSUE** `#36644`_: (*b1naryth1ef*) env_vars not properly validated/casted to strings w/ virtualenv.manage/pip.install
    | refs: `#36706`_
  - **PR** `#40930`_: (*rallytime*) Back-port `#40811`_ to 2016.3
  - **PR** `#40927`_: (*terminalmage*) Add documentation for PyYAML's loading of time expressions
  - **PR** `#40891`_: (*terminalmage*) Fix two issues with pip.install
  - **PR** `#40811`_: (*UtahDave*) get config_dir based off conf_file if __opts__['config_dir'] doesn't exist
    | refs: `#40930`_
  - **PR** `#36706`_: (*siccrusher*) Add basic sanity checks for env_vars in pip.install function
    | refs: `#40891`_ `#40891`_
  * bb50d4f Merge pull request `#40954`_ from rallytime/merge-2016.11
  * 7f31e41 Merge branch '2016.3' into '2016.11'

  * 55a3995 Merge pull request `#40930`_ from rallytime/`bp-40811`_

    * 3ccb553 get config_dir based off conf_file

  * 7bc01be Merge pull request `#40927`_ from terminalmage/docs

    * 8c078f1 Add additional note about quoting within load_yaml

    * 123b5cd Add documentation for PyYAML's loading of time expressions

  * 7eab9c6 Merge pull request `#40891`_ from terminalmage/pip-installed

    * 75e6bc0 Fix two issues with pip.install

- **PR** `#40751`_: (*rallytime*) Use Salt's SaltYamlSafeLoader and SafeOrderedDumper classes for yaml.load/dump
  @ *2017-04-28T12:56:06Z*

  - **ISSUE** `#39531`_: (*ypid*) Use yaml.safe_* instaed of yaml.load / yaml.dump / …
    | refs: `#40751`_
  * 909d519 Merge pull request `#40751`_ from rallytime/`fix-39531`_
  * 85dc416 Don't change the salt.utils.jinja yaml Dumper class

  * 4fe6ac9 Add extra line for lint

  * 55cfa12 Use salt.utils.yamldumper with SafeOderedDumper as the Dumper in yaml.dump

  * 62c4d37 Use salt.utils.yamlloader with SaltYamlSafeLoader as the Loader with yaml.load

- **PR** `#40861`_: (*DmitryKuzmenko*) Don't run status.master while minion is failing-over.
  @ *2017-04-28T12:14:56Z*

  - **ISSUE** `#37307`_: (*szjur*) Minions run every job twice and open 2 connections to the same syndic - apparently after reconnection between masters
    | refs: `#40861`_
  * 18fdd8c Merge pull request `#40861`_ from DSRCorporation/bugs/37307_minion_run_jobs_twice
  * f0d46d0 Don't run status.master while minion is failing-over.

- **PR** `#40923`_: (*terminalmage*) aptpkg: fix temp pkg unhold when version is specified
  @ *2017-04-28T11:59:54Z*

  * 62cb7b1 Merge pull request `#40923`_ from terminalmage/aptpkg-install-fix-unhold
  * 6dda4f2 aptpkg: fix temp pkg unhold when version is specified

- **PR** `#40933`_: (*gtmanfred*) allow master_port to be a string
  @ *2017-04-28T11:54:58Z*

  - **ISSUE** `#40908`_: (*nicksloan*) If master_port is a string the minion cannot connect and prints an unhelpful error message
    | refs: `#40933`_
  - **ISSUE** `#39118`_: (*bobrik*) Minion ipv6 option is not documented
    | refs: `#39289`_
  - **PR** `#39289`_: (*bobrik*) Autodetect IPv6 connectivity from minion to master
    | refs: `#40933`_
  * 9d92ba7 Merge pull request `#40933`_ from gtmanfred/2016.11
  * 194423c allow master_port to be a string

- **PR** `#40934`_: (*gtmanfred*) Only display IPvX warning if role is master
  @ *2017-04-28T11:53:50Z*

  - **ISSUE** `#40912`_: (*razed11*) IPV6 Warning when ipv6 set to False
    | refs: `#40934`_
  * d5e0b8b Merge pull request `#40934`_ from gtmanfred/ipv6
  * 7855cd6 Only display IPvX warning if role is master

- **PR** `#40935`_: (*gtmanfred*) Attempt to connect to public ip address in softlayer
  @ *2017-04-28T11:43:57Z*

  - **ISSUE** `#40881`_: (*stamak*) 2016.11 SoftLayer salt-cloud driver connects on private IP instead of public IP
    | refs: `#40935`_
  * 8fdfe4e Merge pull request `#40935`_ from gtmanfred/softlayer
  * d6eb114 Attempt to connect to public ip address in softlayer

- **PR** `#40936`_: (*terminalmage*) Add dockerng fixes to 2016.11.4 release notes
  @ *2017-04-27T19:54:16Z*

  * 7404309 Merge pull request `#40936`_ from terminalmage/release_notes
  * e494ae4 Add dockerng fixes to 2016.11.4 release notes

- **PR** `#40929`_: (*rallytime*) Back-port `#37696`_ to 2016.11
  @ *2017-04-27T17:43:26Z*

  - **ISSUE** `#33093`_: (*gtmanfred*) [salt-cloud][nova] race condition when assigning floating ips to cloud servers
    | refs: `#37696`_
  - **PR** `#37696`_: (*SolarisYan*) if vm state is not ACTIVE, it will fail
    | refs: `#40929`_
  * a622518 Merge pull request `#40929`_ from rallytime/`bp-37696`_
  * 1a28722 Pylint fix

  * 8e0a986 if vm state is not ACTIVE, associate floating ip to it will fail.So we should wait for state of vm is ACTIVE,then associate the assigned floating ip to it

- **PR** `#40921`_: (*corywright*) Make salt.auth.rest heading consistent with all other salt.auth documentation
  @ *2017-04-27T17:36:47Z*

  * f88ce8e Merge pull request `#40921`_ from corywright/consistent-salt-auth-headings
  * 2995a05 Make salt.auth.rest heading consistent with all other salt.auth documentation

- **PR** `#40752`_: (*Enquier*) Add ability to specify a custom SSL certificate or disable SSL verification in KeystoneAuth v3
  @ *2017-04-27T17:29:09Z*

  - **ISSUE** `#37824`_: (*dxiri*) SSLError Trying to use v3 API of Openstack Newton as provider.
    | refs: `#40752`_
  - **ISSUE** `#5`_: (*thatch45*) cmd module
  * 26be306 Merge pull request `#40752`_ from Enquier/nova_ssl_2
  * 817f492 fixing lint errors in keystone auth error

  * f683636 fix trailing whitespace

  * 4a70b8c fixing minor error in security_groups security groups parser had incorrect split action which caused errors

  * c9d6f8e adding note in documentation

  * c24dfe3 adding support for cacert verification

  * bfaf5e3 Merge pull request `#5`_ from saltstack/2016.11

- **PR** `#40894`_: (*senthilkumar-e*) Fix for broken /jobs/<jid> in 2016.11.4
  @ *2017-04-27T11:33:00Z*

  - **ISSUE** `#40845`_: (*e-senthilkumar*) /jobs call is broken in 2016.11.4
    | refs: `#40894`_
  * 0f2ec1e Merge pull request `#40894`_ from senthilkumar-e/broken_jobs_api_fix
  * 2f55b26 Fixing the pylint issue

  * fb607ba Fix for broken /jobs/<jid> in 2016.11.4

- **PR** `#40876`_: (*BenoitKnecht*) states: sqlite3: fix table_present with multi-line schema
  @ *2017-04-26T15:21:19Z*

  * ea55c15 Merge pull request `#40876`_ from BenoitKnecht/fix-sqlite3-table-present-with-multiline-schema
  * 2ca627d states: sqlite3: fix table_present with multi-line schema

- **PR** `#40742`_: (*clinta*) Fix `#40741`_
  @ *2017-04-25T22:52:06Z*

  - **ISSUE** `#40741`_: (*clinta*) Regression in 2016.11.3. File.managed downloads every time.
    | refs: `#40742`_
  * e09bafd Merge pull request `#40742`_ from clinta/40741
  * 72bf5af Set sfn if cached_sum == source_sum

- **PR** `#40859`_: (*skizunov*) Fix TCP Transport to work with Tornado 4.5
  @ *2017-04-25T04:29:00Z*

  * 5249496 Merge pull request `#40859`_ from skizunov/develop2
  * 958ecda Fix TCP Transport to work with Tornado 4.5

- **PR** `#40862`_: (*gtmanfred*) status should be an int
  @ *2017-04-24T23:11:31Z*

  * ca80f28 Merge pull request `#40862`_ from gtmanfred/2016.11
  * 87ec1da status should be an int

- **PR** `#40865`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-04-24T23:06:28Z*

  - **PR** `#40854`_: (*Ch3LL*) [2016.3] Bump latest release version to 2016.11.4
  - **PR** `#40822`_: (*lordcirth*) rsync.py: Don't return changes when clean
  * c953419 Merge pull request `#40865`_ from rallytime/merge-2016.11
  * 53ad315 Merge branch '2016.3' into '2016.11'

  * 2a71dc3 Merge pull request `#40854`_ from Ch3LL/11.4_release_2016.3

    * 889540a [2016.3] Bump latest release version to 2016.11.4

  * b5f67f0 Merge pull request `#40822`_ from lordcirth/fix-rsync-changes

    * 1b304bb Extra space before inline comment

    * ea4592d rsync.py: Don't return changes when clean

- **PR** `#40855`_: (*Ch3LL*) [2016.11] Bump latest release version to 2016.11.4
  @ *2017-04-24T17:37:47Z*

  * 7861f12 Merge pull request `#40855`_ from Ch3LL/11.4_release_2016.11
  * e7b6043 [2016.11] Bump latest release version to 2016.11.4

- **PR** `#40817`_: (*isbm*) Some UT for cloud
  @ *2017-04-23T10:01:40Z*

  * 25b62ae Merge pull request `#40817`_ from isbm/isbm-skip-false-values-from-preferred-ip-201611
  * 7c5714b Describe debug information

  * e0210ff Reformat idents, fix typos

  * fb777e3 PEP8: fix unused variable

  * b2e85de Fix lint, typos and readability

  * 116c96a Fix UT parameter changes

  * 61558f0 Lintfix E0602

  * ed84420 Add unit test for node ip filtering

  * 82582cf Skip test, if libcloud is not around

  * f005d53 Fix name error exception

  * b668e60 Move out nested function for testing purposes

  * 5e574a2 Add unit test for nova connector

  * 181d078 Lintfix

  * 8e9ce1a Move out nested function to be unit-testable

  * cd43805 Add initial unit test for openstack cloud module

  * 177f314 Add fake preferred IP function for testing

  * d1aeb13 Move out openstack's nested function to be testable

- **PR** `#40824`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-04-21T20:03:10Z*

  - **ISSUE** `#38914`_: (*hgfischer*) Uppercase checksums are not accepted by archive.extracted
    | refs: `#40754`_
  - **PR** `#40754`_: (*lordcirth*) file.manage_file: uppercase checksums now work
  * 50ddf21 Merge pull request `#40824`_ from rallytime/merge-2016.11
  * f31f951 Merge branch '2016.3' into '2016.11'

    * 3b9ebeb Merge pull request `#40754`_ from lordcirth/fix-uppercase-checksums

      * c80c792 remove too many newlines for lint

      * a7d8f37 file.manage_file: uppercase checksums now work

- **PR** `#40811`_: (*UtahDave*) get config_dir based off conf_file if __opts__['config_dir'] doesn't exist
  | refs: `#40930`_
  @ *2017-04-21T17:44:42Z*

  * d6e26d1 Merge pull request `#40811`_ from UtahDave/2016.11local
  * 9f6e2e9 get config_dir based off conf_file

- **PR** `#40820`_: (*gtmanfred*) remove deprecated firstgen rackspace cloud driver
  @ *2017-04-21T17:42:19Z*

  * ddedf05 Merge pull request `#40820`_ from gtmanfred/2016.11
  * b60a8d0 remove rackspace from index

  * 559aa1d remove deprecated firstgen rackspace cloud driver

- **PR** `#40797`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-04-20T19:42:04Z*

  - **ISSUE** `#40790`_: (*a-powell*) s3.query util buffering objects to memory
    | refs: `#40791`_
  - **PR** `#40791`_: (*a-powell*) S3 util get memory fix
  * 2ab4248 Merge pull request `#40797`_ from rallytime/merge-2016.11
  * 22500a7 Merge branch '2016.3' into '2016.11'

    * 623e2eb Merge pull request `#40791`_ from a-powell/s3-util-get-memory-fix

      * 36f6521 Merge remote-tracking branch 'upstream/2016.3' into s3-util-get-memory-fix

      * 04637cd Fixing objects being loaded into memory when performing a GET request with a local file specified.

- **PR** `#40800`_: (*rallytime*) Back-port `#40720`_ to 2016.11
  @ *2017-04-20T19:41:41Z*

  - **PR** `#40720`_: (*oeuftete*) Call tornado.httputil.url_concat compatibly
    | refs: `#40800`_
  * ced839f Merge pull request `#40800`_ from rallytime/`bp-40720`_
  * 6c0124a Call tornado.httputil.url_concat compatibly

- **PR** `#40785`_: (*alexproca*) win_pkg: backport 2016.11 add msiexec override to enable selection of 32 or 64 msiexec.exe
  @ *2017-04-20T16:45:14Z*

  - **ISSUE** `#19137`_: (*jeffclay*) MSI installer(s) for windows minion
    | refs: `#40716`_
  - **PR** `#40716`_: (*alexproca*) win_pkg: add msiexec override to enable selection of 32 or 64 msiexec.exe
    | refs: `#40785`_
  * 5388ffa Merge pull request `#40785`_ from alexproca/backport-winexec-selection
  * 91cafd5 Add option to select 32 or 64 version of msiexec

- **PR** `#40796`_: (*terminalmage*) Fix inaccurate nodegroup docs
  @ *2017-04-20T16:08:22Z*

  * f0f135c Merge pull request `#40796`_ from terminalmage/fix-nodegroup-docs
  * f99259a Fix inaccurate nodegroup docs

- **PR** `#40769`_: (*rallytime*) Back-port `#40760`_ to 2016.11
  @ *2017-04-19T20:23:22Z*

  - **ISSUE** `#40737`_: (*jf*) Fix consul_pillar documentation: 'root=' canNOT start with a slash
    | refs: `#40760`_
  - **PR** `#40760`_: (*jf*) Fix 'root=/...' references in consul_pillar documentation: 'keys should not start with a forward slash'!
    | refs: `#40769`_
  * d8f7855 Merge pull request `#40769`_ from rallytime/`bp-40760`_
  * 71ac15f Fix 'root=/...' references in consul_pillar documentation: 'keys should not start with a forward slash'!

- **PR** `#40756`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-04-19T17:47:51Z*

  - **ISSUE** `#40712`_: (*idokaplan*) user.update - account_disabled
    | refs: `#40721`_
  - **PR** `#40721`_: (*gtmanfred*) unset the bitwise instead of toggle
  * 61f8de4 Merge pull request `#40756`_ from rallytime/merge-2016.11
  * 0e08732 Merge branch '2016.3' into '2016.11'

  * f4f3ee6 Merge pull request `#40721`_ from gtmanfred/2016.3

    * 58b8885 unset the bitwise instead of toggle

- **PR** `#40735`_: (*rallytime*) Handle stacktraces in cloud.action function in module and runner
  @ *2017-04-18T20:05:06Z*

  - **ISSUE** `#29602`_: (*multani*) cloud.action start raises "got an unexpected keyword argument 'kwargs'"
    | refs: `#40735`_
  * 3557b51 Merge pull request `#40735`_ from rallytime/handle-cloud-traces
  * 87154a9 Use `log.error` instead of `log.err`

  * b35bf91 Handle stacktraces in cloud.action function in module and runner

- **PR** `#40745`_: (*cro*) Backport `Add support for specifying a datastore for new disks.` PR `#36457`_
  @ *2017-04-18T20:00:51Z*

  * e700d81 Merge pull request `#40745`_ from cro/vmware_disk_datastore_bp
  * 1460f82 Remove leftover conflict markers (oops! :-/ )

  * b26be65 Remove leftover conflict markers (oops! :-/ )

  * 096f063 Remove leftover conflict markers (oops! :-/ )

  * d24078d Add docs for "datastore" param for disks

  * 500d6b2 Document validity of a datastore key inside a disk definition.

  * 7608b10 Add support for specifying a datastore for new disks.

- **PR** `#40740`_: (*cro*) Backport pr `#39802`_ to add random_startup_delay
  @ *2017-04-18T19:47:55Z*

  - **PR** `#39802`_: (*cachedout*) A random startup delay option for minions
    | refs: `#40740`_
  * 78dbab0 Merge pull request `#40740`_ from cro/minion_delay_start
  * 2ab95b7 Set minion test to use default opts

  * 785e606 Add requested docs

  * 8ab321f A random startup delay option for minions

- **PR** `#40728`_: (*rallytime*) [2016.11] Merge forward from 2016.3 to 2016.11
  @ *2017-04-17T21:13:15Z*

  - **ISSUE** `#37787`_: (*elyulka*) user.present state fails to change loginclass on FreeBSD
    | refs: `#40714`_
  - **PR** `#40719`_: (*rallytime*) Back-port `#40714`_ to 2016.3
  - **PR** `#40718`_: (*terminalmage*) Fix copypasta in the pw_user docstring
  - **PR** `#40714`_: (*woodsb02*) Make salt.modules.pw_user.get_loginclass return string rather than dict
    | refs: `#40719`_
  * a48ecc4 Merge pull request `#40728`_ from rallytime/merge-2016.11
  * 0a5e05a Merge branch '2016.3' into '2016.11'

  * bf8bb0f Merge pull request `#40719`_ from rallytime/`bp-40714`_

    * d6c4362 Make salt.modules.pw_user.get_loginclass return string rather than dict

  * 4145d33 Merge pull request `#40718`_ from terminalmage/fix-docstring

  * 14e8b85 Fix copypasta in the pw_user docstring

- **PR** `#40707`_: (*gtmanfred*) Use markers when s3 bucket list is truncated
  @ *2017-04-17T16:45:21Z*

  - **ISSUE** `#36967`_: (*gmykhailiuta*) S3fs objects list gets truncated
    | refs: `#40707`_
  * c5cbfc2 Merge pull request `#40707`_ from gtmanfred/2016.11
  * 1932f72 Use markers when s3 bucket list is truncated


.. _`#19137`: https://github.com/saltstack/salt/issues/19137
.. _`#29602`: https://github.com/saltstack/salt/issues/29602
.. _`#33093`: https://github.com/saltstack/salt/issues/33093
.. _`#34640`: https://github.com/saltstack/salt/issues/34640
.. _`#34643`: https://github.com/saltstack/salt/pull/34643
.. _`#35699`: https://github.com/saltstack/salt/issues/35699
.. _`#36457`: https://github.com/saltstack/salt/issues/36457
.. _`#36644`: https://github.com/saltstack/salt/issues/36644
.. _`#36706`: https://github.com/saltstack/salt/pull/36706
.. _`#36967`: https://github.com/saltstack/salt/issues/36967
.. _`#37307`: https://github.com/saltstack/salt/issues/37307
.. _`#37696`: https://github.com/saltstack/salt/pull/37696
.. _`#37787`: https://github.com/saltstack/salt/issues/37787
.. _`#37824`: https://github.com/saltstack/salt/issues/37824
.. _`#38115`: https://github.com/saltstack/salt/pull/38115
.. _`#38565`: https://github.com/saltstack/salt/pull/38565
.. _`#38914`: https://github.com/saltstack/salt/issues/38914
.. _`#39118`: https://github.com/saltstack/salt/issues/39118
.. _`#39289`: https://github.com/saltstack/salt/pull/39289
.. _`#39531`: https://github.com/saltstack/salt/issues/39531
.. _`#39802`: https://github.com/saltstack/salt/pull/39802
.. _`#40635`: https://github.com/saltstack/salt/issues/40635
.. _`#40707`: https://github.com/saltstack/salt/pull/40707
.. _`#40712`: https://github.com/saltstack/salt/issues/40712
.. _`#40714`: https://github.com/saltstack/salt/pull/40714
.. _`#40716`: https://github.com/saltstack/salt/pull/40716
.. _`#40718`: https://github.com/saltstack/salt/pull/40718
.. _`#40719`: https://github.com/saltstack/salt/pull/40719
.. _`#40720`: https://github.com/saltstack/salt/pull/40720
.. _`#40721`: https://github.com/saltstack/salt/pull/40721
.. _`#40724`: https://github.com/saltstack/salt/pull/40724
.. _`#40726`: https://github.com/saltstack/salt/pull/40726
.. _`#40728`: https://github.com/saltstack/salt/pull/40728
.. _`#40735`: https://github.com/saltstack/salt/pull/40735
.. _`#40737`: https://github.com/saltstack/salt/issues/40737
.. _`#40740`: https://github.com/saltstack/salt/pull/40740
.. _`#40741`: https://github.com/saltstack/salt/issues/40741
.. _`#40742`: https://github.com/saltstack/salt/pull/40742
.. _`#40745`: https://github.com/saltstack/salt/pull/40745
.. _`#40751`: https://github.com/saltstack/salt/pull/40751
.. _`#40752`: https://github.com/saltstack/salt/pull/40752
.. _`#40754`: https://github.com/saltstack/salt/pull/40754
.. _`#40756`: https://github.com/saltstack/salt/pull/40756
.. _`#40760`: https://github.com/saltstack/salt/pull/40760
.. _`#40769`: https://github.com/saltstack/salt/pull/40769
.. _`#40785`: https://github.com/saltstack/salt/pull/40785
.. _`#40790`: https://github.com/saltstack/salt/issues/40790
.. _`#40791`: https://github.com/saltstack/salt/pull/40791
.. _`#40796`: https://github.com/saltstack/salt/pull/40796
.. _`#40797`: https://github.com/saltstack/salt/pull/40797
.. _`#40800`: https://github.com/saltstack/salt/pull/40800
.. _`#40811`: https://github.com/saltstack/salt/pull/40811
.. _`#40817`: https://github.com/saltstack/salt/pull/40817
.. _`#40820`: https://github.com/saltstack/salt/pull/40820
.. _`#40822`: https://github.com/saltstack/salt/pull/40822
.. _`#40824`: https://github.com/saltstack/salt/pull/40824
.. _`#40835`: https://github.com/saltstack/salt/issues/40835
.. _`#40845`: https://github.com/saltstack/salt/issues/40845
.. _`#40854`: https://github.com/saltstack/salt/pull/40854
.. _`#40855`: https://github.com/saltstack/salt/pull/40855
.. _`#40859`: https://github.com/saltstack/salt/pull/40859
.. _`#40861`: https://github.com/saltstack/salt/pull/40861
.. _`#40862`: https://github.com/saltstack/salt/pull/40862
.. _`#40865`: https://github.com/saltstack/salt/pull/40865
.. _`#40876`: https://github.com/saltstack/salt/pull/40876
.. _`#40879`: https://github.com/saltstack/salt/pull/40879
.. _`#40881`: https://github.com/saltstack/salt/issues/40881
.. _`#40891`: https://github.com/saltstack/salt/pull/40891
.. _`#40894`: https://github.com/saltstack/salt/pull/40894
.. _`#40905`: https://github.com/saltstack/salt/pull/40905
.. _`#40908`: https://github.com/saltstack/salt/issues/40908
.. _`#40912`: https://github.com/saltstack/salt/issues/40912
.. _`#40921`: https://github.com/saltstack/salt/pull/40921
.. _`#40923`: https://github.com/saltstack/salt/pull/40923
.. _`#40927`: https://github.com/saltstack/salt/pull/40927
.. _`#40928`: https://github.com/saltstack/salt/issues/40928
.. _`#40929`: https://github.com/saltstack/salt/pull/40929
.. _`#40930`: https://github.com/saltstack/salt/pull/40930
.. _`#40933`: https://github.com/saltstack/salt/pull/40933
.. _`#40934`: https://github.com/saltstack/salt/pull/40934
.. _`#41230`: https://github.com/saltstack/salt/issues/41230
.. _`#41244`: https://github.com/saltstack/salt/pull/41244
.. _`#40935`: https://github.com/saltstack/salt/pull/40935
.. _`#40936`: https://github.com/saltstack/salt/pull/40936
.. _`#40939`: https://github.com/saltstack/salt/pull/40939
.. _`#40952`: https://github.com/saltstack/salt/pull/40952
.. _`#40954`: https://github.com/saltstack/salt/pull/40954
.. _`#40957`: https://github.com/saltstack/salt/pull/40957
.. _`#40958`: https://github.com/saltstack/salt/pull/40958
.. _`#40960`: https://github.com/saltstack/salt/pull/40960
.. _`#40963`: https://github.com/saltstack/salt/pull/40963
.. _`#40965`: https://github.com/saltstack/salt/issues/40965
.. _`#40976`: https://github.com/saltstack/salt/issues/40976
.. _`#40981`: https://github.com/saltstack/salt/issues/40981
.. _`#40982`: https://github.com/saltstack/salt/pull/40982
.. _`#40987`: https://github.com/saltstack/salt/pull/40987
.. _`#40988`: https://github.com/saltstack/salt/issues/40988
.. _`#40991`: https://github.com/saltstack/salt/pull/40991
.. _`#40992`: https://github.com/saltstack/salt/pull/40992
.. _`#40993`: https://github.com/saltstack/salt/pull/40993
.. _`#40995`: https://github.com/saltstack/salt/pull/40995
.. _`#41007`: https://github.com/saltstack/salt/pull/41007
.. _`#41011`: https://github.com/saltstack/salt/pull/41011
.. _`#41012`: https://github.com/saltstack/salt/pull/41012
.. _`#41029`: https://github.com/saltstack/salt/pull/41029
.. _`#41032`: https://github.com/saltstack/salt/pull/41032
.. _`#41036`: https://github.com/saltstack/salt/pull/41036
.. _`#41039`: https://github.com/saltstack/salt/pull/41039
.. _`#41045`: https://github.com/saltstack/salt/pull/41045
.. _`#41046`: https://github.com/saltstack/salt/pull/41046
.. _`#41048`: https://github.com/saltstack/salt/pull/41048
.. _`#41049`: https://github.com/saltstack/salt/pull/41049
.. _`#41054`: https://github.com/saltstack/salt/pull/41054
.. _`#41069`: https://github.com/saltstack/salt/pull/41069
.. _`#41070`: https://github.com/saltstack/salt/pull/41070
.. _`#41074`: https://github.com/saltstack/salt/pull/41074
.. _`#41078`: https://github.com/saltstack/salt/pull/41078
.. _`#41079`: https://github.com/saltstack/salt/pull/41079
.. _`#41083`: https://github.com/saltstack/salt/pull/41083
.. _`#41084`: https://github.com/saltstack/salt/pull/41084
.. _`#41088`: https://github.com/saltstack/salt/pull/41088
.. _`#41093`: https://github.com/saltstack/salt/pull/41093
.. _`#41097`: https://github.com/saltstack/salt/pull/41097
.. _`#41098`: https://github.com/saltstack/salt/pull/41098
.. _`#41099`: https://github.com/saltstack/salt/pull/41099
.. _`#41100`: https://github.com/saltstack/salt/issues/41100
.. _`#41102`: https://github.com/saltstack/salt/pull/41102
.. _`#41103`: https://github.com/saltstack/salt/pull/41103
.. _`#41134`: https://github.com/saltstack/salt/pull/41134
.. _`#41173`: https://github.com/saltstack/salt/pull/41173
.. _`#5`: https://github.com/saltstack/salt/issues/5
.. _`bp-37696`: https://github.com/saltstack/salt/pull/37696
.. _`bp-38115`: https://github.com/saltstack/salt/pull/38115
.. _`bp-38565`: https://github.com/saltstack/salt/pull/38565
.. _`bp-40714`: https://github.com/saltstack/salt/pull/40714
.. _`bp-40720`: https://github.com/saltstack/salt/pull/40720
.. _`bp-40760`: https://github.com/saltstack/salt/pull/40760
.. _`bp-40811`: https://github.com/saltstack/salt/pull/40811
.. _`bp-40939`: https://github.com/saltstack/salt/pull/40939
.. _`bp-40982`: https://github.com/saltstack/salt/pull/40982
.. _`bp-41079`: https://github.com/saltstack/salt/pull/41079
.. _`bp-41088`: https://github.com/saltstack/salt/pull/41088
.. _`fix-39531`: https://github.com/saltstack/salt/issues/39531
