Merge branch 'master' into wrong-isinstance-in-ini-options_absent

This commit is contained in:
Christophe Vedel 2020-04-23 23:33:35 +02:00 committed by GitHub
commit 96eaa85f1f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
625 changed files with 17305 additions and 4263 deletions

View file

@ -0,0 +1,16 @@
@Library('salt@master-1.7') _
runTestSuite(
concurrent_builds: 1,
distro_name: 'centos',
distro_version: '7',
env: env,
golden_images_branch: 'master',
jenkins_slave_label: 'kitchen-slave',
nox_env_name: 'runtests-zeromq-pycryptodome',
nox_passthrough_opts: '--ssh-tests',
python_version: 'py3',
testrun_timeout: 6,
use_spot_instances: true)
// vim: ft=groovy

View file

@ -7,7 +7,7 @@ runTestSuite(
env: env,
golden_images_branch: 'master',
jenkins_slave_label: 'kitchen-slave',
nox_env_name: 'runtests-zeromq-pycryptodomex',
nox_env_name: 'runtests-zeromq-pycryptodome',
nox_passthrough_opts: '--ssh-tests',
python_version: 'py3',
testrun_timeout: 6,

View file

@ -0,0 +1,16 @@
@Library('salt@master-1.7') _
runTestSuite(
concurrent_builds: 1,
distro_name: 'ubuntu',
distro_version: '1604',
env: env,
golden_images_branch: 'master',
jenkins_slave_label: 'kitchen-slave',
nox_env_name: 'runtests-zeromq-pycryptodome',
nox_passthrough_opts: '--ssh-tests',
python_version: 'py3',
testrun_timeout: 6,
use_spot_instances: true)
// vim: ft=groovy

View file

@ -7,7 +7,7 @@ runTestSuite(
env: env,
golden_images_branch: 'master',
jenkins_slave_label: 'kitchen-slave',
nox_env_name: 'runtests-zeromq-pycryptodomex',
nox_env_name: 'runtests-zeromq-pycryptodome',
nox_passthrough_opts: '--ssh-tests',
python_version: 'py3',
testrun_timeout: 6,

View file

@ -13,7 +13,7 @@ Remove this section if not relevant
**[NOTICE] Bug fixes or features added to Salt require tests.**
<!-- Please review the [test documentation](https://docs.saltstack.com/en/master/topics/tutorials/writing_tests.html) for details on how to implement tests into Salt's test suite. -->
- [ ] Docs
- [ ] Changelog - https://docs.saltstack.com/en/latest/topics/development/changelog.html
- [ ] Changelog
- [ ] Tests written/updated
### Commits signed with GPG?

View file

@ -67,15 +67,6 @@ repos:
- --py-version=3.5
- --platform=linux
- id: pip-tools-compile
alias: compile-changelog-requirements
name: Changelog Py3.5 Requirements
files: ^requirements/static/changelog\.in$
args:
- -v
- --py-version=3.5
- --platform=linux
- id: pip-tools-compile
alias: compile-linux-crypto-py3.5-requirements
name: Linux Py3.5 Crypto Requirements
@ -175,15 +166,6 @@ repos:
- --py-version=3.6
- --platform=linux
- id: pip-tools-compile
alias: compile-changelog-requirements
name: Changelog Py3.6 Requirements
files: ^requirements/static/changelog\.in$
args:
- -v
- --py-version=3.6
- --platform=linux
- id: pip-tools-compile
alias: compile-linux-crypto-py3.6-requirements
name: Linux Py3.6 Crypto Requirements
@ -283,15 +265,6 @@ repos:
- --py-version=3.7
- --platform=linux
- id: pip-tools-compile
alias: compile-changelog-requirements
name: Changelog Py3.7 Requirements
files: ^requirements/static/changelog\.in$
args:
- -v
- --py-version=3.7
- --platform=linux
- id: pip-tools-compile
alias: compile-linux-crypto-py3.7-requirements
name: Linux Py3.7 Crypto Requirements
@ -331,6 +304,207 @@ repos:
- --py-version=3.7
- --platform=linux
- id: pip-tools-compile
alias: compile-linux-py3.8-zmq-requirements
name: Linux Py3.8 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/linux\.in)$
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|darwin|windows)\.in$
args:
- -v
- --py-version=3.8
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- id: pip-tools-compile
alias: compile-darwin-py3.8-zmq-requirements
name: Darwin Py3.8 ZeroMQ Requirements
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|zeromq|pytest)\.txt|static/darwin\.in))$
args:
- -v
- --py-version=3.8
- --platform=darwin
- --include=pkg/osx/req.txt
- --include=pkg/osx/req_ext.txt
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --passthrough-line-from-input=^pyobjc(.*)$
# Commented out since pywin32 and pymssql do not have packages or support for Py >= 3.8
# - id: pip-tools-compile
# alias: compile-windows-py3.8-zmq-requirements
# name: Windows Py3.8 ZeroMQ Requirements
# files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|zeromq|pytest)\.txt|static/windows\.in))$
# args:
# - -v
# - --py-version=3.8
# - --platform=windows
# - --include=pkg/windows/req.txt
# - --include=pkg/windows/req_win.txt
# - --include=requirements/base.txt
# - --include=requirements/zeromq.txt
# - --include=requirements/pytest.txt
- id: pip-tools-compile
alias: compile-cloud-py3.8-requirements
name: Cloud Py3.8 Requirements
files: ^requirements/(static/cloud\.in)$
args:
- -v
- --py-version=3.8
- id: pip-tools-compile
alias: compile-doc-requirements
name: Docs Py3.8 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/docs\.in)$
args:
- -v
- --py-version=3.8
- --platform=linux
- id: pip-tools-compile
alias: compile-linux-crypto-py3.8-requirements
name: Linux Py3.8 Crypto Requirements
files: ^requirements/(crypto\.txt|static/crypto\.in)$
args:
- -v
- --py-version=3.8
- --platform=linux
- --out-prefix=linux
- id: pip-tools-compile
alias: compile-darwin-crypto-py3.8-requirements
name: Darwin Py3.8 Crypto Requirements
files: ^requirements/(crypto\.txt|static/crypto\.in)$
args:
- -v
- --py-version=3.8
- --platform=darwin
- --out-prefix=darwin
# Commented out since pywin32 and pymssql do not have packages or support for Py >= 3.8
# - id: pip-tools-compile
# alias: compile-windows-crypto-py3.8-requirements
# name: Windows Py3.8 Crypto Requirements
# files: ^requirements/(crypto\.txt|static/crypto\.in)$
# args:
# - -v
# - --py-version=3.8
# - --platform=windows
# - --out-prefix=windows
- id: pip-tools-compile
alias: compile-lint-py3.8-requirements
name: Lint Py3.8 Requirements
files: ^requirements/static/lint\.in$
args:
- -v
- --py-version=3.8
- --platform=linux
- id: pip-tools-compile
alias: compile-linux-py3.9-zmq-requirements
name: Linux Py3.9 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/linux\.in)$
exclude: ^requirements/static/(centos-6|amzn-2018\.03|lint|cloud|docs|darwin|windows)\.in$
args:
- -v
- --py-version=3.9
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- id: pip-tools-compile
alias: compile-darwin-py3.9-zmq-requirements
name: Darwin Py3.9 ZeroMQ Requirements
files: ^(pkg/osx/(req|req_ext)\.txt|requirements/((base|zeromq|pytest)\.txt|static/darwin\.in))$
args:
- -v
- --py-version=3.9
- --platform=darwin
- --include=pkg/osx/req.txt
- --include=pkg/osx/req_ext.txt
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --passthrough-line-from-input=^pyobjc(.*)$
# Commented out since pywin32 and pymssql do not have packages or support for Py >= 3.8
# - id: pip-tools-compile
# alias: compile-windows-py3.9-zmq-requirements
# name: Windows Py3.9 ZeroMQ Requirements
# files: ^(pkg/windows/(req|req_win)\.txt|requirements/((base|zeromq|pytest)\.txt|static/windows\.in))$
# args:
# - -v
# - --py-version=3.9
# - --platform=windows
# - --include=pkg/windows/req.txt
# - --include=pkg/windows/req_win.txt
# - --include=requirements/base.txt
# - --include=requirements/zeromq.txt
# - --include=requirements/pytest.txt
- id: pip-tools-compile
alias: compile-cloud-py3.9-requirements
name: Cloud Py3.9 Requirements
files: ^requirements/(static/cloud\.in)$
args:
- -v
- --py-version=3.9
- id: pip-tools-compile
alias: compile-doc-requirements
name: Docs Py3.9 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/docs\.in)$
args:
- -v
- --py-version=3.9
- --platform=linux
- id: pip-tools-compile
alias: compile-linux-crypto-py3.9-requirements
name: Linux Py3.9 Crypto Requirements
files: ^requirements/(crypto\.txt|static/crypto\.in)$
args:
- -v
- --py-version=3.9
- --platform=linux
- --out-prefix=linux
- id: pip-tools-compile
alias: compile-darwin-crypto-py3.9-requirements
name: Darwin Py3.9 Crypto Requirements
files: ^requirements/(crypto\.txt|static/crypto\.in)$
args:
- -v
- --py-version=3.9
- --platform=darwin
- --out-prefix=darwin
# Commented out since pywin32 and pymssql do not have packages or support for Py >= 3.8
# - id: pip-tools-compile
# alias: compile-windows-crypto-py3.9-requirements
# name: Windows Py3.9 Crypto Requirements
# files: ^requirements/(crypto\.txt|static/crypto\.in)$
# args:
# - -v
# - --py-version=3.9
# - --platform=windows
# - --out-prefix=windows
- id: pip-tools-compile
alias: compile-lint-py3.9-requirements
name: Lint Py3.9 Requirements
files: ^requirements/static/lint\.in$
args:
- -v
- --py-version=3.9
- --platform=linux
- repo: https://github.com/timothycrosley/isort
rev: "1e78a9acf3110e1f9721feb591f89a451fc9876a"
hooks:
@ -346,7 +520,7 @@ repos:
)$
- repo: https://github.com/psf/black
rev: 19.10b0
rev: stable
hooks:
- id: black
# This tells pre-commit not to pass files to black.
@ -358,6 +532,7 @@ repos:
tests/kitchen/.*
)$
- repo: https://github.com/saltstack/salt-nox-pre-commit
rev: master
hooks:

View file

@ -128,7 +128,8 @@ disable=R,
import-outside-toplevel,
deprecated-method,
repr-flag-used-in-string,
keyword-arg-before-vararg
keyword-arg-before-vararg,
incompatible-py3-code
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option

View file

@ -1,3 +1,4 @@
# Changelog
All notable changes to Salt will be documented in this file.
This changelog follows [keepachangelog](https://keepachangelog.com/en/1.0.0/) format, and is intended for human consumption.
@ -5,9 +6,8 @@ This changelog follows [keepachangelog](https://keepachangelog.com/en/1.0.0/) fo
This project versioning is _similar_ to [Semantic Versioning](https://semver.org), and is documented in [SEP 14](https://github.com/saltstack/salt-enhancement-proposals/pull/20/files).
Versions are `MAJOR.PATCH`.
# Changelog
## 3001 - Sodium
## 3001 - Sodium [yyyy-mm-dd]
### Removed
@ -16,11 +16,9 @@ Versions are `MAJOR.PATCH`.
### Changed
### Fixed
- [#56237](https://github.com/saltstack/salt/pull/56237) - Fix alphabetical ordering and remove duplicates across all documentation indexes - [@myii](https://github.com/myii)
- [#56325](https://github.com/saltstack/salt/pull/56325) - Fix hyperlinks to `salt.serializers` and other documentation issues - [@myii](https://github.com/myii)
### Added
- [#56627](https://github.com/saltstack/salt/pull/56627) - Add new salt-ssh set_path option
- [#56637](https://github.com/saltstack/salt/pull/56637) - Add ``win_wua.installed`` to the ``win_wua`` execution module
## 3000.1
@ -29,6 +27,27 @@ Versions are `MAJOR.PATCH`.
### Deprecated
### Changed
- [#56751](https://github.com/saltstack/salt/pull/56751) - Backport 49981
- [#56731](https://github.com/saltstack/salt/pull/56731) - Backport #53994
- [#56753](https://github.com/saltstack/salt/pull/56753) - Backport 51095
### Fixed
- [#56237](https://github.com/saltstack/salt/pull/56237) - Fix alphabetical ordering and remove duplicates across all documentation indexes - [@myii](https://github.com/myii)
- [#56325](https://github.com/saltstack/salt/pull/56325) - Fix hyperlinks to `salt.serializers` and other documentation issues - [@myii](https://github.com/myii)
### Added
- [#56627](https://github.com/saltstack/salt/pull/56627) - Add new salt-ssh set_path option
- [#51379](https://github.com/saltstack/salt/pull/56792) - Backport 51379 : Adds .set_domain_workgroup to win_system
## 3000.1
### Removed
### Deprecated
### Changed
- [#56730](https://github.com/saltstack/salt/pull/56730) - Backport #52992
### Fixed

158
COPYING
View file

@ -1,158 +0,0 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: salt
Upstream-Contact: salt-users@googlegroups.com
Source: https://github.com/saltstack/salt
Files: *
Copyright: 2014 SaltStack Team
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian systems, the full text of the Apache License, Version 2.0 can be
found in the file
`/usr/share/common-licenses/Apache-2.0'.
Files: debian/*
Copyright: 2013 Joe Healy <joehealy@gmail.com>
2012 Michael Prokop <mika@debian.org>
2012 Christian Hofstaedtler <christian@hofstaedtler.name>
2012 Ulrich Dangel <mru@spamt.net>
2012 Corey Quinn <corey@sequestered.net>
2011 Aaron Toponce <aaron.toponce@gmail.com>
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian systems, the full text of the Apache License, Version 2.0 can be
found in the file
`/usr/share/common-licenses/Apache-2.0'.
Files: salt/auth/pam.py
Copyright: 2007 Chris AtLee <chris@atlee.ca>
License: MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Files: doc/_ext/youtube.py
Copyright: 2009 Chris Pickel <sfiera@gmail.com>
License: BSD-2-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Files: salt/ext/six.py
Copyright: 2010-2014 Benjamin Peterson
License: MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Files: doc/_ext/images
Copyright: 2013 SaltStack Team
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian systems, the full text of the Apache License, Version 2.0 can be
found in the file
`/usr/share/common-licenses/Apache-2.0'.
.
Files in this directory were created in-house.
Files: tests/utils/cptestcase.py
Copyright: (c) 2014 Adam Hajari
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

353
LICENSE
View file

@ -1,6 +1,192 @@
Salt - Remote execution system
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Copyright 2014-2019 SaltStack Team
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -14,3 +200,166 @@
See the License for the specific language governing permissions and
limitations under the License.
===========================================================================
Below is a summary of the licensing used by external modules that are
bundled with SaltStack.
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: salt
Upstream-Contact: salt-users@googlegroups.com
Source: https://github.com/saltstack/salt
Files: *
Copyright: 2014 SaltStack Team
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian systems, the full text of the Apache License, Version 2.0 can be
found in the file
`/usr/share/common-licenses/Apache-2.0'.
Files: debian/*
Copyright: 2013 Joe Healy <joehealy@gmail.com>
2012 Michael Prokop <mika@debian.org>
2012 Christian Hofstaedtler <christian@hofstaedtler.name>
2012 Ulrich Dangel <mru@spamt.net>
2012 Corey Quinn <corey@sequestered.net>
2011 Aaron Toponce <aaron.toponce@gmail.com>
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian systems, the full text of the Apache License, Version 2.0 can be
found in the file
`/usr/share/common-licenses/Apache-2.0'.
Files: salt/auth/pam.py
Copyright: 2007 Chris AtLee <chris@atlee.ca>
License: MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Files: doc/_ext/youtube.py
Copyright: 2009 Chris Pickel <sfiera@gmail.com>
License: BSD-2-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Files: salt/ext/six.py
Copyright: 2010-2014 Benjamin Peterson
License: MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Files: doc/_ext/images
Copyright: 2013 SaltStack Team
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian systems, the full text of the Apache License, Version 2.0 can be
found in the file
`/usr/share/common-licenses/Apache-2.0'.
.
Files in this directory were created in-house.
Files: tests/utils/cptestcase.py
Copyright: (c) 2014 Adam Hajari
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -78,3 +78,10 @@ services`_ offerings.
.. _PyCryptodome: https://pypi.org/project/pycryptodome/
.. _Issue #52674: https://github.com/saltstack/salt/issues/52674
.. _Issue #54115: https://github.com/saltstack/salt/issues/54115
License
=======
SaltStack is licensed by the SaltStack Team under the Apache 2.0 license. Please see the
LICENSE file for the full text of the Apache license, followed by a full summary
of the licensing used by external modules.

View file

@ -1 +0,0 @@
Add towncrier tool to the Salt project to help manage CHANGELOG.md file.

1
changelog/56186.fixed Normal file
View file

@ -0,0 +1 @@
Pillar data is correctly included from `init.sls` file.

1
changelog/56844.fixed Normal file
View file

@ -0,0 +1 @@
Allow correct failure information to show up when calling `win_interfaces`

1
changelog/7424.added Normal file
View file

@ -0,0 +1 @@
Added `validate` to tls module.

1
changelog/8875.added Normal file
View file

@ -0,0 +1 @@
Pillar relative includes.

View file

@ -677,7 +677,9 @@
# The master_roots setting configures a master-only copy of the file_roots dictionary,
# used by the state compiler.
#master_roots: /srv/salt-master
#master_roots:
# base:
# - /srv/salt-master
# When using multiple environments, each with their own top file, the
# default behaviour is an unordered merge. To prevent top files from
@ -1278,7 +1280,7 @@
############################################
# Warning: Failure to set TCP keepalives on the salt-master can result in
# not detecting the loss of a minion when the connection is lost or when
# it's host has been terminated without first closing the socket.
# its host has been terminated without first closing the socket.
# Salt's Presence System depends on this connection status to know if a minion
# is "present".
# ZeroMQ now includes support for configuring SO_KEEPALIVE if supported by

View file

@ -565,6 +565,15 @@
#
#state_aggregate: False
# Disable requisites during state runs by specifying a single requisite
# or a list of requisites to disable.
#
# disabled_requisites: require_in
#
# disabled_requisites:
# - require
# - require_in
##### File Directory Settings #####
##########################################
# The Salt Minion can redirect all file server operations to a local directory,

View file

@ -1202,7 +1202,7 @@ syndic_user: salt
############################################
# Warning: Failure to set TCP keepalives on the salt-master can result in
# not detecting the loss of a minion when the connection is lost or when
# it's host has been terminated without first closing the socket.
# its host has been terminated without first closing the socket.
# Salt's Presence System depends on this connection status to know if a minion
# is "present".
# ZeroMQ now includes support for configuring SO_KEEPALIVE if supported by

View file

@ -8,5 +8,5 @@
to the directory/file webserver_1/0.sls
The same applies for any subdirectories, this is especially 'tricky' when
git repos are created. Another command that typically can't render it's
git repos are created. Another command that typically can't render its
output is ```state.show_sls``` of a file in a path that contains a dot.

View file

@ -9456,7 +9456,7 @@ jQuery.fn.extend({
parentOffset = { top: 0, left: 0 },
elem = this[ 0 ];
// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
if ( jQuery.css( elem, "position" ) === "fixed" ) {
// we assume that getBoundingClientRect is available when computed position is fixed
offset = elem.getBoundingClientRect();

View file

@ -161,6 +161,8 @@ MOCK_MODULES = [
"jnpr.junos.utils.config",
"jnpr.junos.utils.sw",
"keyring",
"kubernetes",
"kubernetes.config",
"libvirt",
"lxml",
"lxml.etree",

View file

@ -284897,7 +284897,7 @@ new
all
.TP
.B note
If you see the following error, you\(aqll need to upgrade \fBrequests\fP to atleast 2.4.2
If you see the following error, you\(aqll need to upgrade \fBrequests\fP to at least 2.4.2
.UNINDENT
.INDENT 0.0
.INDENT 3.5

View file

@ -607,8 +607,8 @@ be found by analyzing the cache log with ``memcache_debug`` enabled.
Default: ``False``
If cache storage got full, i.e. the items count exceeds the
``memcache_max_items`` value, memcache cleans up it's storage. If this option
set to ``False`` memcache removes the only one oldest value from it's storage.
``memcache_max_items`` value, memcache cleans up its storage. If this option
set to ``False`` memcache removes the only one oldest value from its storage.
If this set set to ``True`` memcache removes all the expired items and also
removes the oldest one if there are no expired items.
@ -1468,7 +1468,7 @@ This should still be considered a less than secure option, due to the fact
that trust is based on just the requesting minion id.
.. versionchanged:: 2018.3.0
For security reasons the file must be readonly except for it's owner.
For security reasons the file must be readonly except for its owner.
If :conf_master:`permissive_pki_access` is ``True`` the owning group can also
have write access, but if Salt is running as ``root`` it must be a member of that group.
A less strict requirement also existed in previous version.
@ -2654,14 +2654,18 @@ nothing is ignored.
``master_roots``
----------------
Default: ``/srv/salt-master``
Default: ``''``
A master-only copy of the :conf_master:`file_roots` dictionary, used by the
state compiler.
Example:
.. code-block:: yaml
master_roots: /srv/salt-master
master_roots:
base:
- /srv/salt-master
roots: Master's Local File Server
---------------------------------
@ -4151,7 +4155,7 @@ branch/tag (or from a per-remote ``env`` parameter), but if set this will
override the process of deriving the env from the branch/tag name. For example,
in the configuration below the ``foo`` branch would be assigned to the ``base``
environment, while the ``bar`` branch would need to explicitly have ``bar``
configured as it's environment to keep it from also being mapped to the
configured as its environment to keep it from also being mapped to the
``base`` environment.
.. code-block:: yaml

View file

@ -21,7 +21,7 @@ As of Salt 0.9.10 it is possible to run Salt as a non-root user. This can be
done by setting the :conf_master:`user` parameter in the master configuration
file. and restarting the ``salt-master`` service.
The minion has it's own :conf_minion:`user` parameter as well, but running the
The minion has its own :conf_minion:`user` parameter as well, but running the
minion as an unprivileged user will keep it from making changes to things like
users, installed packages, etc. unless access controls (sudo, etc.) are setup
on the minion to permit the non-root user to make the needed changes.

View file

@ -69,7 +69,7 @@ Where the args are:
Dictionary containing the load data including ``executor_opts`` passed via
cmdline/API.
``func``, ``args``, ``kwargs``:
Execution module function to be executed and it's arguments. For instance the
Execution module function to be executed and its arguments. For instance the
simplest ``direct_call`` executor just runs it as ``func(*args, **kwargs)``.
``Returns``:
``None`` if the execution sequence must be continued with the next executor.

View file

@ -47,6 +47,7 @@ execution modules
azurearm_network
azurearm_resource
bamboohr
baredoc
bcache
beacons
bigip
@ -186,6 +187,7 @@ execution modules
haproxyconn
hashutil
heat
helm
hg
highstate_doc
hosts

View file

@ -0,0 +1,5 @@
salt.modules.baredoc module
===========================
.. automodule:: salt.modules.baredoc
:members:

View file

@ -0,0 +1,6 @@
salt.modules.helm module
========================
.. automodule:: salt.modules.helm
:members:
:undoc-members:

View file

@ -10,6 +10,7 @@ returner modules
:toctree:
:template: autosummary.rst.tmpl
appoptics_return
carbon_return
cassandra_cql_return
cassandra_return

View file

@ -0,0 +1,6 @@
salt.returners.appoptics_return module
======================================
.. automodule:: salt.returners.appoptics_return
:members:
:undoc-members:

View file

@ -66,6 +66,7 @@ state modules
boto_sqs
boto_vpc
bower
btrfs
cabal
ceph
chef
@ -124,6 +125,7 @@ state modules
grains
group
heat
helm
hg
highstate_doc
host

View file

@ -0,0 +1,6 @@
=================
salt.states.btrfs
=================
.. automodule:: salt.states.btrfs
:members:

View file

@ -0,0 +1,6 @@
salt.states.helm module
=======================
.. automodule:: salt.states.helm
:members:
:undoc-members:

View file

@ -232,6 +232,10 @@ There are several corresponding requisite_any statements:
* ``onchanges_any``
* ``onfail_any``
Lastly, onfail has one special ``onfail_all`` form to account for when `AND`
logic is desired instead of the default `OR` logic of onfail/onfail_any (which
are equivalent).
All of the requisites define specific relationships and always work with the
dependency logic defined above.
@ -374,6 +378,63 @@ exactly like the ``require`` requisite (the watching state will execute if
.. note::
If the watching state ``changes`` key contains values, then ``mod_watch``
will not be called. If you're using ``watch`` or ``watch_in`` then it's a
good idea to have a state that only enforces one attribute - such as
splitting out ``service.running`` into its own state and have
``service.enabled`` in another.
One common source of confusion is expecting ``mod_watch`` to be called for
every necessary change. You might be tempted to write something like this:
.. code-block:: yaml
httpd:
service.running:
- enable: True
- watch:
- file: httpd-config
httpd-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://httpd/files/apache.conf
If your service is already running but not enabled, you might expect that Salt
will be able to tell that since the config file changed your service needs to
be restarted. This is not the case. Because the service needs to be enabled,
that change will be made and ``mod_watch`` will never be triggered. In this
case, changes to your ``apache.conf`` will fail to be loaded. If you want to
ensure that your service always reloads the correct way to handle this is
either ensure that your service is not running before applying your state, or
simply make sure that ``service.running`` is in a state on its own:
.. code-block:: yaml
enable-httpd:
service.enabled:
- name: httpd
start-httpd:
service.running:
- name: httpd
- watch:
- file: httpd-config
httpd-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://httpd/files/apache.conf
Now that ``service.running`` is its own state, changes to ``service.enabled``
will no longer prevent ``mod_watch`` from getting triggered, so your ``httpd``
service will get restarted like you want.
.. _requisites-listen:
listen
~~~~~~
Not all state modules contain ``mod_watch``. If ``mod_watch`` is absent
from the watching state module, the ``watch`` requisite behaves exactly
like a ``require`` requisite.
@ -521,6 +582,46 @@ The ``onfail`` requisite is applied in the same way as ``require`` as ``watch``:
- onfail:
- mount: primary_mount
.. code-block:: yaml
build_site:
cmd.run:
- name: /srv/web/app/build_site
notify-build_failure:
hipchat.send_message:
- room_id: 123456
- message: "Building website fail on {{ salt.grains.get('id') }}"
The default behavior of the ``onfail`` when multiple requisites are listed is
the opposite of other requisites in the salt state engine, it acts by default
like ``any()`` instead of ``all()``. This means that when you list multiple
onfail requisites on a state, if *any* fail the requisite will be satisfied.
If you instead need *all* logic to be applied, you can use ``onfail_all``
form:
.. code-block:: yaml
test_site_a:
cmd.run:
- name: ping -c1 10.0.0.1
test_site_b:
cmd.run:
- name: ping -c1 10.0.0.2
notify_site_down:
hipchat.send_message:
- room_id: 123456
- message: "Both primary and backup sites are down!"
- onfail_all:
- cmd: test_site_a
- cmd: test_site_b
In this contrived example `notify_site_down` will run when both 10.0.0.1 and
10.0.0.2 fail to respond to ping.
.. note::
Setting failhard (:ref:`globally <global-failhard>` or in
@ -535,6 +636,8 @@ The ``onfail`` requisite is applied in the same way as ``require`` as ``watch``:
Beginning in the ``2016.11.0`` release of Salt, ``onfail`` uses OR logic for
multiple listed ``onfail`` requisites. Prior to the ``2016.11.0`` release,
``onfail`` used AND logic. See `Issue #22370`_ for more information.
Beginning in the ``Neon`` release of Salt, a new ``onfail_all`` requisite
form is available if AND logic is desired.
.. _Issue #22370: https://github.com/saltstack/salt/issues/22370

View file

@ -185,7 +185,7 @@ Connection Timeout
==================
There are several stages when deploying Salt where Salt Cloud needs to wait for
something to happen. The VM getting it's IP address, the VM's SSH port is
something to happen. The VM getting its IP address, the VM's SSH port is
available, etc.
If you find that the Salt Cloud defaults are not enough and your deployment

View file

@ -1,87 +0,0 @@
.. _changelog:
=========
Changelog
=========
With the addition of `SEP 01`_ the `keepachangelog`_ format was introduced into
our CHANGELOG.md file. The Salt project is using the `towncrier`_ tool to manage
the Changelog.md file. The reason this tool was added to manage the changelog
was because we were previously managing the file manually and it would cause
many merge conflicts. This tool allows us to add changelog entries into separate
files and before a release we simply need to run ``towncrier --version=<version>``
for it to compile the changelog correctly.
.. _add-changelog:
How do I add a changelog entry
------------------------------
To add a changelog entry you will need to add a file in the `changelog` directory.
The file name should follow the syntax ``<issue #>.<type>``.
The types are in alignment with keepachangelog:
removed:
any features that have been removed
deprecated:
any features that will soon be removed
changed:
any changes in current existing features
fixed:
any bug fixes
added:
any new features added
For example if you are fixing a bug for issue number #1234 your filename would
look like this: changelog/1234.fixed. The contents of the file should contain
a summary of what you are fixing.
This does require that an issue be linked to all of the types above.
.. _generate-changelog:
How to generate the changelog
-----------------------------
This step is only used when we need to generate the changelog right before releasing.
You should NOT run towncrier on your PR, unless you are preparing the final PR
to update the changelog before a release.
You can run the `towncrier` tool directly or you can use nox to help run the command
and ensure towncrier is installed in a virtual environment. The instructions below
will detail both approaches.
If you want to see what output towncrier will produce before generating the change log
you can run towncrier in draft mode:
.. code-block:: bash
towncrier --draft --version=3001
.. code-block:: bash
nox -e 'changelog(draft=True)' -- 3000.1
Version will need to be set to whichever version we are about to release. Once you are
confident the draft output looks correct you can now generate the changelog by running:
.. code-block:: bash
towncrier --version=3001
.. code-block:: bash
nox -e 'changelog(draft=False)' -- 3000.1
After this is run towncrier will automatically remove all the files in the changelog directory.
.. _`SEP 01`: https://github.com/saltstack/salt-enhancement-proposals/pull/2
.. _`keepachangelog`: https://keepachangelog.com/en/1.0.0/
.. _`towncrier`: https://pypi.org/project/towncrier/

View file

@ -416,7 +416,7 @@ root of the Salt repository.
Bootstrap Script Changes
------------------------
Salt's Bootstrap Script, known as `bootstrap-salt.sh`_ in the Salt repo, has it's own
Salt's Bootstrap Script, known as `bootstrap-salt.sh`_ in the Salt repo, has its own
repository, contributing guidelines, and release cadence.
All changes to the Bootstrap Script should be made to `salt-bootstrap repo`_. Any

View file

@ -69,16 +69,6 @@ dynamic modules when states are run. To disable this behavior set
When dynamic modules are autoloaded via states, only the modules defined in the
same saltenvs as the states currently being run.
Also it is possible to use the explicit ``saltutil.sync_*`` :py:mod:`state functions <salt.states.saltutil>`
to sync the modules (previously it was necessary to use the ``module.run`` state):
.. code-block::yaml
synchronize_modules:
saltutil.sync_modules:
- refresh: True
Sync Via the saltutil Module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -350,7 +340,7 @@ SDB
* :ref:`Writing SDB Modules <sdb-writing-modules>`
SDB is a way to store data that's not associated with a minion. See
SDB is a way to store data that's not associated with a minion. See
:ref:`Storing Data in Other Databases <sdb>`.
Serializer
@ -394,6 +384,12 @@ pkgfiles modules handle the actual installation.
SSH Wrapper
-----------
.. toctree::
:maxdepth: 1
:glob:
ssh_wrapper
Replacement execution modules for :ref:`Salt SSH <salt-ssh>`.
Thorium
@ -420,7 +416,7 @@ the state system.
Util
----
Just utility modules to use with other modules via ``__utils__`` (see
Just utility modules to use with other modules via ``__utils__`` (see
:ref:`Dunder Dictionaries <dunder-dictionaries>`).
Wheel

View file

@ -0,0 +1,63 @@
.. _ssh-wrapper:
===========
SSH Wrapper
===========
Salt-SSH Background
===================
Salt-SSH works by creating a tar ball of salt, a bunch of python modules, and a generated
short minion config. It then copies this onto the destination host over ssh, then
uses that host's local python install to run ``salt-client --local`` with any requested modules.
It does not automatically copy over states or cache files and since it is uses a local file_client,
modules that rely on :py:func:`cp.cache* <salt.modules.cp>` functionality do not work.
SSH Wrapper modules
===================
To support cp modules or other functionality which might not otherwise work in the remote environment,
a wrapper module can be created. These modules are run from the salt-master initiating the salt-ssh
command and can include logic to support the needed functionality. SSH Wrapper modules are located in
/salt/client/ssh/wrapper/ and are named the same as the execution module being extended. Any functions
defined inside of the wrapper module are called from the ``salt-ssh module.function argument``
command rather than executing on the minion.
State Module example
--------------------
Running salt states on an salt-ssh minion, obviously requires the state files themselves. To support this,
a state module wrapper script exists at salt/client/ssh/wrapper/state.py, and includes standard state
functions like :py:func:`apply <salt.modules.state.apply>`, :py:func:`sls <salt.modules.state.sls>`,
and :py:func:`highstate <salt.modules.state.highstate>`. When executing ``salt-ssh minion state.highstate``,
these wrapper functions are used and include the logic to walk the low_state output for that minion to
determine files used, gather needed files, tar them together, transfer the tar file to the minion over
ssh, and run a state on the ssh minion. This state then extracts the tar file, applies the needed states
and data, and cleans up the transferred files.
Wrapper Handling
----------------
From the wrapper script any invocations of ``__salt__['some.module']()`` do not run on the master
which is running the wrapper, but instead magically are invoked on the minion over ssh.
Should the function being called exist in the wrapper, the wrapper function will be
used instead.
One way of supporting this workflow may be to create a wrapper function which performs the needed file
copy operations. Now that files are resident on the ssh minion, the next step is to run the original
execution module function. But since that function name was already overridden by the wrapper, a
function alias can be created in the original execution module, which can then be called from the
wrapper.
Example
```````
The saltcheck module needs sls and tst files on the minion to function. The invocation of
:py:func:`saltcheck.run_state_tests <salt.modules.saltcheck.run_state_tests>` is run from
the wrapper module, and is responsible for performing the needed file copy. The
:py:func:`saltcheck <salt.modules.saltcheck>` execution module includes an alias line of
``run_state_tests_ssh = salt.utils.functools.alias_function(run_state_tests, 'run_state_tests_ssh')``
which creates an alias of ``run_state_tests`` with the name ``run_state_tests_ssh``. At the end of
the ``run_state_tests`` function in the wrapper module, it then calls
``__salt__['saltcheck.run_state_tests_ssh']()``. Since this function does not exist in the wrapper script,
the call is made on the remote minion, which then having the needed files, runs as expected.

View file

@ -143,3 +143,45 @@ but these are things we consider when reviewing a pull request.
* Should this be split into multiple PRs to make them easier to test and reason
about?
Pull Request Requirements
=========================
The following outlines what is required before a pull request can be merged into
the salt project. For each of these requirements, an exception can be made
that requires 3 approvals before merge. The exceptions are detailed more below.
All PR requirements
-------------------
* Approval Required: approval review from core team member OR 1 approval review
from captain of working group
* Cannot merge your own PR until 1 reviewer approves from defined list above that
is not the author.
* All Tests Pass
Bug Fix PR requirements
-----------------------
* Test Coverage: regression test written to cover bug fix. Contributers only need
to write test coverage for their specific changes.
* Point to the issue the PR is resolving. If there is not an issue one will need
to be created.
Feature PR requirements
-----------------------
* Test Coverage: tests written to cover new feature. Contributers only need to write
test coverage for their specific changes.
* Release Notes: Add note in release notes of new feature for relative release.
* Add .. versionadded:: <release> to module's documentation. If you are not certain
which release your fix will be included in you can include TBD and the PR reviewer
will let you know the correct name of the release you need to update to the versionadded.
Exceptions to all requirements
------------------------------
As previously stated, all of the above requirements can be bypassed with 3 approvals.
PR's that do not require tests include:
* documentation
* cosmetic changes (for example changing from log.debug to log.trace)
* fixing tests
* pylint
* changes outside of the salt directory

View file

@ -250,7 +250,7 @@ done at the CLI:
caller = salt.client.Caller()
ret = called.cmd('event.send',
ret = caller.cmd('event.send',
'myco/event/success'
{ 'success': True,
'message': "It works!" })

View file

@ -87,7 +87,7 @@ the context into the included file is required:
.. code-block:: jinja
{% from 'lib.sls' import test with context %}
Includes must use full paths, like so:
.. code-block:: jinja
@ -649,6 +649,56 @@ Returns:
1, 4
.. jinja_ref:: method_call
``method_call``
---------------
.. versionadded:: Sodium
Returns a result of object's method call.
Example #1:
.. code-block:: jinja
{{ [1, 2, 1, 3, 4] | method_call('index', 1, 1, 3) }}
Returns:
.. code-block:: text
2
This filter can be used with the `map filter`_ to apply object methods without
using loop constructs or temporary variables.
Example #2:
.. code-block:: jinja
{% set host_list = ['web01.example.com', 'db01.example.com'] %}
{% set host_list_split = [] %}
{% for item in host_list %}
{% do host_list_split.append(item.split('.', 1)) %}
{% endfor %}
{{ host_list_split }}
Example #3:
.. code-block:: jinja
{{ host_list|map('method_call', 'split', '.', 1)|list }}
Return of examples #2 and #3:
.. code-block:: text
[[web01, example.com], [db01, example.com]]
.. _`map filter`: http://jinja.pocoo.org/docs/2.10/templates/#map
.. jinja_ref:: is_sorted
``is_sorted``

View file

@ -69,7 +69,7 @@ Key Generation
--------------
We have reduced the requirements needed for `salt-key` to generate minion keys.
You're no longer required to have salt configured and it's common directories
You're no longer required to have salt configured and its common directories
created just to generate keys. This might prove useful if you're batch creating
keys to pre-load on minions.

View file

@ -237,7 +237,7 @@ Virtual Terminal
----------------
Sometimes the subprocess module is not good enough, and, in fact, not even
``askpass`` is. This virtual terminal is still in it's infant childhood, needs
``askpass`` is. This virtual terminal is still in its infant childhood, needs
quite some love, and was originally created to replace ``askpass``, but, while
developing it, it immediately proved that it could do so much more. It's
currently used by salt-cloud when bootstrapping salt on clouds which require

View file

@ -723,7 +723,7 @@ Changelog for v2015.5.10..v2015.5.11
* f49cc75049 Set correct type for master_tops config value
* **ISSUE** `#31614`_: (`frizzby`_) salt.utils.http.query() implementation contradicts it's documentation. decode arg (refs: `#31622`_)
* **ISSUE** `#31614`_: (`frizzby`_) salt.utils.http.query() implementation contradicts its documentation. decode arg (refs: `#31622`_)
* **PR** `#31622`_: (`jfindlay`_) doc/topics/tutorials/http: update query decoding docs
@ *2016-03-02 18:23:44 UTC*

View file

@ -1599,7 +1599,7 @@ Changelog for v2015.5.2..v2015.5.3
* b93dc5ef6c Linting!
* 2dd5904119 Fixes an issue where Pagerduty states/modules couldn't find it's profile in the Pillar
* 2dd5904119 Fixes an issue where Pagerduty states/modules couldn't find its profile in the Pillar
* **PR** `#24366`_: (`terminalmage`_) Use yes $'\\n' instead of printf '\\n' for pecl commands
@ *2015-06-03 21:28:58 UTC*

View file

@ -481,7 +481,7 @@ Changelog for v2015.8.10..v2015.8.11
* b7ac6c735a Moved imports to top, out of _get_moto_version function
* 02f9ba99ba Updated version check. Moved check into it's own function
* 02f9ba99ba Updated version check. Moved check into its own function
* d445026c56 Updated test to work with new moto version. Changed strings to unicode

View file

@ -208,12 +208,12 @@ Changelog for v2015.8.3..v2015.8.4
* 5a637420e8 Backport DNF support to 2015.5 branch
* **PR** `#30526`_: (`twangboy`_) Added FlushKey to make sure it's changes are saved to disk
* **PR** `#30526`_: (`twangboy`_) Added FlushKey to make sure its changes are saved to disk
@ *2016-01-22 02:33:13 UTC*
* e366f6a7fd Merge pull request `#30526`_ from twangboy/reg_flushkey
* 23085ffbbb Added FlushKey to make sure it's changes are saved to disk
* 23085ffbbb Added FlushKey to make sure its changes are saved to disk
* **PR** `#30521`_: (`basepi`_) [2015.8] Merge forward from 2015.5 to 2015.8
@ *2016-01-21 23:05:03 UTC*
@ -2990,7 +2990,7 @@ Changelog for v2015.8.3..v2015.8.4
* 7775d65089 Merge pull request `#29178`_ from whytewolf/glance_keystone_profile_fix
* 807dd426a6 Profile not being passed to keystone.endpoint_get in _auth. so if a profiles are being used, then keystone.endpoint_get will not be able to authenticate causing glance to not be able to get it's endpoint.
* 807dd426a6 Profile not being passed to keystone.endpoint_get in _auth. so if a profiles are being used, then keystone.endpoint_get will not be able to authenticate causing glance to not be able to get its endpoint.
.. _`#10157`: https://github.com/saltstack/salt/issues/10157
.. _`#11`: https://github.com/saltstack/salt/issues/11

View file

@ -642,7 +642,7 @@ Changelog for v2016.11.8..v2016.11.9
* 1b12acd303 Check type before casting
* 03fa37b445 Cast vdata to it's proper type
* 03fa37b445 Cast vdata to its proper type
* **PR** `#43863`_: (`nicholasmhughes`_) Atomicfile only copies mode and not user/group perms
@ *2017-11-10 18:47:55 UTC*

View file

@ -1338,7 +1338,7 @@ Changelog for v2016.3.1..v2016.3.2
* b7ac6c735a Moved imports to top, out of _get_moto_version function
* 02f9ba99ba Updated version check. Moved check into it's own function
* 02f9ba99ba Updated version check. Moved check into its own function
* d445026c56 Updated test to work with new moto version. Changed strings to unicode

View file

@ -649,7 +649,7 @@ Changelog for v2016.3.4..v2016.3.5
* cdbd2fbe3c Added limit-output to eliminate false packages
* **ISSUE** `#38174`_: (`NickDubelman`_) [syndic] Why can't a syndic node signal when all of it's minions have returned? (refs: `#38279`_)
* **ISSUE** `#38174`_: (`NickDubelman`_) [syndic] Why can't a syndic node signal when all of its minions have returned? (refs: `#38279`_)
* **ISSUE** `#32400`_: (`rallytime`_) Document Default Config Values (refs: `#38279`_)

View file

@ -136,7 +136,7 @@ Changelog for v2017.7.0..v2017.7.1
* 5b99d45f54 Merge pull request `#42473`_ from rallytime/bp-42436
* 82ed919803 Updating the versions function inside the manage runner to account for when a minion is offline and we are unable to determine it's version.
* 82ed919803 Updating the versions function inside the manage runner to account for when a minion is offline and we are unable to determine its version.
* **ISSUE** `#42381`_: (`zebooka`_) Git.detached broken in 2017.7.0 (refs: `#42399`_)

View file

@ -2041,7 +2041,7 @@ Changelog for v2017.7.1..v2017.7.2
* 09521602c1 Merge pull request `#42436`_ from garethgreenaway/42374_manage_runner_minion_offline
* 0fd39498c0 Updating the versions function inside the manage runner to account for when a minion is offline and we are unable to determine it's version.
* 0fd39498c0 Updating the versions function inside the manage runner to account for when a minion is offline and we are unable to determine its version.
* **ISSUE** `#42427`_: (`grichmond-salt`_) Issue Passing Variables created from load_json as Inline Pillar Between States (refs: `#42435`_)

View file

@ -1501,7 +1501,7 @@ Changelog for v2017.7.2..v2017.7.3
* 1b12acd303 Check type before casting
* 03fa37b445 Cast vdata to it's proper type
* 03fa37b445 Cast vdata to its proper type
* ed8da2450b Merge pull request `#43863`_ from nicholasmhughes/fix-atomicfile-permission-copy

View file

@ -3565,7 +3565,7 @@ Changelog for v2018.3.2..v2018.3.3
* 406efb161e Merge pull request `#48015`_ from garethgreenaway/47546_more_unicode_nonsense
* f457f9cb84 Adding a test to ensure archive.list returns the right results when a tar file contains a file with unicode in it's name.
* f457f9cb84 Adding a test to ensure archive.list returns the right results when a tar file contains a file with unicode in its name.
* 9af49bc595 Ensure member names are decoded before adding to various lists.

View file

@ -3212,7 +3212,7 @@ Changelog for v2018.3.3..v2018.3.4
* 791e3ff Use dwoz/winrm-fs for chunked downloads
* f3999e1 Move vagrant to it's own group
* f3999e1 Move vagrant to its own group
* 0662e37 Merge pull request `#49870`_ from KaiSforza/ci_actually_fail

View file

@ -2620,7 +2620,7 @@ Changelog for v2019.2.0..v2019.2.1
* 0372718 Fix lint issues on salt
* 9eab9f4 Add nox session/env/target to run lint against Salt and it's test suite
* 9eab9f4 Add nox session/env/target to run lint against Salt and its test suite
* 123f771 Lock lint requirements

View file

@ -17,6 +17,16 @@ The old syntax for the mine_function - as a dict, or as a list with dicts that
contain more than exactly one key - is still supported but discouraged in favor
of the more uniform syntax of module.run.
State Execution Module
======================
The :mod:`state.test <salt.modules.state.test>` function
can be used to test a state on a minion. This works by executing the
:mod:`state.apply <salt.modules.state.apply>` function while forcing the ``test`` kwarg
to ``True`` so that the ``state.apply`` function is not required to be called by the
user directly. This also allows you to add the ``state.test`` function to a minion's
``minion_blackout_whitelist`` pillar if you wish to be able to test a state while a
minion is in blackout.
New Grains
==========
@ -77,3 +87,9 @@ You can set this setting in your roster file like so:
user: root
passwd: P@ssword
set_path: '$PATH:/usr/local/bin/'
State Changes
=============
- Adding a new option for the State compiler, ``disabled_requisites`` will allow
requisites to be disabled during State runs.

View file

@ -180,6 +180,7 @@ Results can then be analyzed with `kcachegrind`_ or similar tool.
.. _`kcachegrind`: http://kcachegrind.sourceforge.net/html/Home.html
Make sure you have yappi installed.
On Windows, in the absense of kcachegrind, a simple file-based workflow to create
profiling graphs could use `gprof2dot`_, `graphviz`_ and this batch file:

View file

@ -379,8 +379,9 @@ string with quotes:
Keys Limited to 1024 Characters
===============================
Simple keys are limited to a single line and cannot be longer that 1024 characters.
This is a limitation from PyYaml, as seen in a comment in `PyYAML's code`_, and
applies to anything parsed by YAML in Salt.
Simple keys are limited by the `YAML Spec`_ to a single line, and cannot be
longer that 1024 characters. PyYAML enforces these limitations (see here__),
and therefore anything parsed as YAML in Salt is subject to them.
.. _PyYAML's code: http://pyyaml.org/browser/pyyaml/trunk/lib/yaml/scanner.py#L91
.. _`YAML Spec`: https://yaml.org/spec/1.2/spec.html#id2792424
.. __: https://github.com/yaml/pyyaml/blob/eb459f8/lib/yaml/scanner.py#L279-L293

View file

@ -57,7 +57,7 @@ Dependencies
============
Manipulation of the ESXi host via a Proxy Minion requires the machine running
the Proxy Minion process to have the ESXCLI package (and all of it's dependencies)
the Proxy Minion process to have the ESXCLI package (and all of its dependencies)
and the pyVmomi Python Library to be installed.
ESXi Password

View file

@ -272,7 +272,7 @@ system, such as a database.
data using a returner (instead of the local job cache on disk).
If a master has many accepted keys, it may take a long time to publish a job
because the master much first determine the matching minions and deliver
because the master must first determine the matching minions and deliver
that information back to the waiting client before the job can be published.
To mitigate this, a key cache may be enabled. This will reduce the load

View file

@ -138,7 +138,7 @@ The following configuration is an example, how a complete syslog-ng configuratio
The :py:func:`syslog_ng.reloaded <salt.states.syslog_ng.reloaded>` function can generate syslog-ng configuration from YAML. If the statement (source, destination, parser,
etc.) has a name, this function uses the id as the name, otherwise (log
statement) it's purpose is like a mandatory comment.
statement) its purpose is like a mandatory comment.
After execution this example the syslog\_ng state will generate this
file:

View file

@ -45,7 +45,7 @@ SITECUSTOMIZE_DIR = os.path.join(REPO_ROOT, "tests", "support", "coverage")
IS_DARWIN = sys.platform.lower().startswith("darwin")
IS_WINDOWS = sys.platform.lower().startswith("win")
# Python versions to run against
_PYTHON_VERSIONS = ("2", "2.7", "3", "3.4", "3.5", "3.6", "3.7")
_PYTHON_VERSIONS = ("2", "2.7", "3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9")
# Nox options
# Reuse existing virtualenvs
@ -489,24 +489,22 @@ def _runtests(session, coverage, cmd_args):
@nox.session(python=_PYTHON_VERSIONS, name="runtests-parametrized")
@nox.parametrize("coverage", [False, True])
@nox.parametrize("transport", ["zeromq", "tcp"])
@nox.parametrize("crypto", [None, "m2crypto", "pycryptodomex"])
@nox.parametrize("crypto", [None, "m2crypto", "pycryptodome"])
def runtests_parametrized(session, coverage, transport, crypto):
# Install requirements
_install_requirements(session, transport, "unittest-xml-reporting==2.5.2")
if crypto:
if crypto == "m2crypto":
session.run(
"pip",
"uninstall",
"-y",
"pycrypto",
"pycryptodome",
"pycryptodomex",
silent=True,
)
else:
session.run("pip", "uninstall", "-y", "m2crypto", silent=True)
session.run(
"pip",
"uninstall",
"-y",
"m2crypto",
"pycrypto",
"pycryptodome",
"pycryptodomex",
silent=True,
)
distro_constraints = _get_distro_pip_constraints(session, transport)
install_command = [
"--progress-bar=off",
@ -601,40 +599,40 @@ def runtests_zeromq_m2crypto(session, coverage):
)
@nox.session(python=_PYTHON_VERSIONS, name="runtests-pycryptodomex")
@nox.session(python=_PYTHON_VERSIONS, name="runtests-pycryptodome")
@nox.parametrize("coverage", [False, True])
def runtests_pycryptodomex(session, coverage):
def runtests_pycryptodome(session, coverage):
"""
runtests.py session with zeromq transport and pycryptodomex
runtests.py session with zeromq transport and pycryptodome
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto='pycryptodomex', transport='zeromq')".format(
"runtests-parametrized-{}(coverage={}, crypto='pycryptodome', transport='zeromq')".format(
session.python, coverage
)
)
@nox.session(python=_PYTHON_VERSIONS, name="runtests-tcp-pycryptodomex")
@nox.session(python=_PYTHON_VERSIONS, name="runtests-tcp-pycryptodome")
@nox.parametrize("coverage", [False, True])
def runtests_tcp_pycryptodomex(session, coverage):
def runtests_tcp_pycryptodome(session, coverage):
"""
runtests.py session with TCP transport and pycryptodomex
runtests.py session with TCP transport and pycryptodome
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto='pycryptodomex', transport='tcp')".format(
"runtests-parametrized-{}(coverage={}, crypto='pycryptodome', transport='tcp')".format(
session.python, coverage
)
)
@nox.session(python=_PYTHON_VERSIONS, name="runtests-zeromq-pycryptodomex")
@nox.session(python=_PYTHON_VERSIONS, name="runtests-zeromq-pycryptodome")
@nox.parametrize("coverage", [False, True])
def runtests_zeromq_pycryptodomex(session, coverage):
def runtests_zeromq_pycryptodome(session, coverage):
"""
runtests.py session with zeromq transport and pycryptodomex
runtests.py session with zeromq transport and pycryptodome
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto='pycryptodomex', transport='zeromq')".format(
"runtests-parametrized-{}(coverage={}, crypto='pycryptodome', transport='zeromq')".format(
session.python, coverage
)
)
@ -675,24 +673,22 @@ def runtests_tornado(session, coverage):
@nox.session(python=_PYTHON_VERSIONS, name="pytest-parametrized")
@nox.parametrize("coverage", [False, True])
@nox.parametrize("transport", ["zeromq", "tcp"])
@nox.parametrize("crypto", [None, "m2crypto", "pycryptodomex"])
@nox.parametrize("crypto", [None, "m2crypto", "pycryptodome"])
def pytest_parametrized(session, coverage, transport, crypto):
# Install requirements
_install_requirements(session, transport)
if crypto:
if crypto == "m2crypto":
session.run(
"pip",
"uninstall",
"-y",
"pycrypto",
"pycryptodome",
"pycryptodomex",
silent=True,
)
else:
session.run("pip", "uninstall", "-y", "m2crypto", silent=True)
session.run(
"pip",
"uninstall",
"-y",
"m2crypto",
"pycrypto",
"pycryptodome",
"pycryptodomex",
silent=True,
)
distro_constraints = _get_distro_pip_constraints(session, transport)
install_command = [
"--progress-bar=off",
@ -793,40 +789,40 @@ def pytest_zeromq_m2crypto(session, coverage):
)
@nox.session(python=_PYTHON_VERSIONS, name="pytest-pycryptodomex")
@nox.session(python=_PYTHON_VERSIONS, name="pytest-pycryptodome")
@nox.parametrize("coverage", [False, True])
def pytest_pycryptodomex(session, coverage):
def pytest_pycryptodome(session, coverage):
"""
pytest session with zeromq transport and pycryptodomex
pytest session with zeromq transport and pycryptodome
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto='pycryptodomex', transport='zeromq')".format(
"pytest-parametrized-{}(coverage={}, crypto='pycryptodome', transport='zeromq')".format(
session.python, coverage
)
)
@nox.session(python=_PYTHON_VERSIONS, name="pytest-tcp-pycryptodomex")
@nox.session(python=_PYTHON_VERSIONS, name="pytest-tcp-pycryptodome")
@nox.parametrize("coverage", [False, True])
def pytest_tcp_pycryptodomex(session, coverage):
def pytest_tcp_pycryptodome(session, coverage):
"""
pytest session with TCP transport and pycryptodomex
pytest session with TCP transport and pycryptodome
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto='pycryptodomex', transport='tcp')".format(
"pytest-parametrized-{}(coverage={}, crypto='pycryptodome', transport='tcp')".format(
session.python, coverage
)
)
@nox.session(python=_PYTHON_VERSIONS, name="pytest-zeromq-pycryptodomex")
@nox.session(python=_PYTHON_VERSIONS, name="pytest-zeromq-pycryptodome")
@nox.parametrize("coverage", [False, True])
def pytest_zeromq_pycryptodomex(session, coverage):
def pytest_zeromq_pycryptodome(session, coverage):
"""
pytest session with zeromq transport and pycryptodomex
pytest session with zeromq transport and pycryptodome
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto='pycryptodomex', transport='zeromq')".format(
"pytest-parametrized-{}(coverage={}, crypto='pycryptodome', transport='zeromq')".format(
session.python, coverage
)
)
@ -889,9 +885,11 @@ def _pytest(session, coverage, cmd_args):
try:
if coverage is True:
_run_with_coverage(session, "coverage", "run", "-m", "py.test", *cmd_args)
_run_with_coverage(
session, "python", "-m", "coverage", "run", "-m", "pytest", *cmd_args
)
else:
session.run("py.test", *cmd_args, env=env)
session.run("python", "-m", "pytest", *cmd_args, env=env)
except CommandFailed: # pylint: disable=try-except-raise
# Not rerunning failed tests for now
raise
@ -905,9 +903,11 @@ def _pytest(session, coverage, cmd_args):
cmd_args[idx] = parg.replace(".xml", "-rerun-failed.xml")
cmd_args.append("--lf")
if coverage is True:
_run_with_coverage(session, "coverage", "run", "-m", "py.test", *cmd_args)
_run_with_coverage(
session, "python", "-m", "coverage", "run", "-m", "pytest", *cmd_args
)
else:
session.run("py.test", *cmd_args, env=env)
session.run("python", "-m", "pytest", *cmd_args, env=env)
# pylint: enable=unreachable
@ -1091,7 +1091,7 @@ def docs_html(session, compress):
if pydir == "py3.4":
session.error("Sphinx only runs on Python >= 3.5")
requirements_file = "requirements/static/docs.in"
distro_constraints = ["requirements/static/{}/docs.txt".format(pydir)]
distro_constraints = ["requirements/static/{}/docs.txt".format(_get_pydir(session))]
install_command = ["--progress-bar=off", "-r", requirements_file]
for distro_constraint in distro_constraints:
install_command.extend(["--constraint", distro_constraint])
@ -1115,7 +1115,7 @@ def docs_man(session, compress, update):
if pydir == "py3.4":
session.error("Sphinx only runs on Python >= 3.5")
requirements_file = "requirements/static/docs.in"
distro_constraints = ["requirements/static/{}/docs.txt".format(pydir)]
distro_constraints = ["requirements/static/{}/docs.txt".format(_get_pydir(session))]
install_command = ["--progress-bar=off", "-r", requirements_file]
for distro_constraint in distro_constraints:
install_command.extend(["--constraint", distro_constraint])
@ -1129,24 +1129,3 @@ def docs_man(session, compress, update):
if compress:
session.run("tar", "-cJvf", "man-archive.tar.xz", "_build/man", external=True)
os.chdir("..")
@nox.session(name="changelog", python="3")
@nox.parametrize("draft", [False, True])
def changelog(session, draft):
"""
Generate salt's changelog
"""
requirements_file = "requirements/static/changelog.in"
distro_constraints = [
"requirements/static/{}/changelog.txt".format(_get_pydir(session))
]
install_command = ["--progress-bar=off", "-r", requirements_file]
for distro_constraint in distro_constraints:
install_command.extend(["--constraint", distro_constraint])
session.install(*install_command, silent=PIP_INSTALL_SILENT)
town_cmd = ["towncrier", "--version={}".format(session.posargs[0])]
if draft:
town_cmd.append("--draft")
session.run(*town_cmd)

View file

@ -19,7 +19,7 @@ msgpack-python==0.5.6
psutil==5.6.6
pyasn1==0.4.5
pycparser==2.19
pycryptodome==3.8.1
pycryptodomex==3.9.7
python-dateutil==2.8.0
python-gnupg==0.4.4
pyyaml==5.1.2

View file

@ -1,6 +1,6 @@
# Need to set a specific version of pyzmq, so can't use the main project's requirements file... have to copy it in and modify...
#-r ../../../requirements/zeromq.txt
-r ../../../requirements/base.txt
pycrypto>=2.6.1
pycryptodomex==3.9.7
pyzmq
-r requirements.txt

View file

@ -74,7 +74,7 @@ BuildRequires: python-ioflo >= 1.1.7
BuildRequires: python-raet >= 0.6.0
%endif
# requirements/zeromq.txt
BuildRequires: python-pycrypto >= 2.6.1
BuildRequires: pycryptodomex >= 3.9.7
BuildRequires: python-pyzmq >= 2.2.0
%if %{with test}
# requirements/dev_python27.txt
@ -121,7 +121,7 @@ Recommends: python-gnupg
# Recommends: salt-raet
# requirements/zeromq.txt
%endif
Requires: python-pycrypto >= 2.6.1
Requires: pycryptodomex >= 3.9.7
Requires: python-pyzmq >= 2.2.0
#
%if 0%{?suse_version}

View file

@ -1,6 +1,6 @@
-r req_win.txt
backports-abc==0.5; python_version < '3.0'
backports.ssl-match-hostname==3.7.0.1
backports.ssl-match-hostname==3.7.0.1; python_version < '3.7'
certifi
cffi==1.12.2
CherryPy==17.4.1
@ -19,7 +19,7 @@ msgpack-python==0.5.6
psutil==5.6.6
pyasn1==0.4.5
pycparser==2.19
pycryptodomex==3.8.1
pycryptodomex==3.9.7
pycurl==7.43.0.5
pymssql==2.1.4
PyMySQL==0.9.3

View file

@ -1,12 +0,0 @@
mock
boto
boto3
moto
SaltPyLint>=v2017.6.22
apache-libcloud
virtualenv
# Needed for archive, which is gated for Redhat
# rarfile
# Needed for keystone
# python-keystoneclient

View file

@ -1,2 +1,2 @@
pywin32==224
pywin32==227
WMI==1.4.9

View file

@ -16,34 +16,3 @@ line_length = 88
ensure_newline_before_comments=true
skip="salt/ext,tests/kitchen,templates"
[tool.towncrier]
package = "salt"
package_dir = "salt"
filename = "CHANGELOG.md"
directory = "changelog/"
start_string = "# Changelog\n"
[[tool.towncrier.type]]
directory = "removed"
name = "Removed"
showcontent = true
[[tool.towncrier.type]]
directory = "deprecated"
name = "Deprecated"
showcontent = true
[[tool.towncrier.type]]
directory = "changed"
name = "Changed"
showcontent = true
[[tool.towncrier.type]]
directory = "fixed"
name = "Fixed"
showcontent = true
[[tool.towncrier.type]]
directory = "added"
name = "Added"
showcontent = true

View file

@ -1,2 +1 @@
pycrypto>=2.6.1; sys.platform not in 'win32,darwin'
pycryptodomex; sys.platform == 'win32'
pycryptodomex>=3.9.7

View file

@ -1 +0,0 @@
towncrier

View file

@ -1,2 +1,2 @@
m2crypto
pycryptodomex
pycryptodome

View file

@ -1,12 +0,0 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile -o requirements/static/py3.5/changelog.txt -v requirements/static/changelog.in
#
click==7.1.1 # via towncrier
incremental==17.5.0 # via towncrier
jinja2==2.11.2 # via towncrier
markupsafe==1.1.1 # via jinja2
toml==0.10.0 # via towncrier
towncrier==19.2.0

View file

@ -5,4 +5,4 @@
# pip-compile -o requirements/static/py3.5/darwin-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodomex==3.9.0
pycryptodome==3.9.7

View file

@ -81,7 +81,8 @@ pyaml==19.4.1 # via moto
pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5
pycparser==2.19
pycryptodome==3.8.1
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.9.7
pynacl==1.3.0 # via paramiko
pyopenssl==19.0.0
pyparsing==2.4.5 # via packaging

View file

@ -5,4 +5,4 @@
# pip-compile -o requirements/static/py3.5/linux-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodomex==3.9.3
pycryptodome==3.9.7

View file

@ -74,8 +74,8 @@ pyaml==19.4.1 # via moto
pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa
pycparser==2.19 # via cffi
pycrypto==2.6.1 ; sys_platform not in "win32,darwin"
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.9.7
pygit2==0.28.2
pyinotify==0.9.6
pynacl==1.3.0 # via paramiko

View file

@ -5,4 +5,4 @@
# pip-compile -o requirements/static/py3.5/windows-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodomex==3.9.0
pycryptodome==3.9.7

View file

@ -10,7 +10,7 @@ atomicwrites==1.3.0 # via pytest
attrs==19.1.0 # via pytest
aws-xray-sdk==0.95 # via moto
backports.functools-lru-cache==1.5 # via cheroot
backports.ssl-match-hostname==3.7.0.1
backports.ssl-match-hostname==3.7.0.1 ; python_version < "3.7"
boto3==1.9.132
boto==2.49.0
botocore==1.12.132 # via boto3, moto, s3transfer
@ -69,7 +69,7 @@ pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5
pycparser==2.19
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.8.1 ; sys_platform == "win32"
pycryptodomex==3.9.7
pycurl==7.43.0.5
pygit2==0.28.2
pymssql==2.1.4
@ -88,7 +88,7 @@ python-jose==2.0.2 # via moto
pythonnet==2.3.0
pytz==2019.1 # via moto, tempora
pyvmomi==6.7.1.2018.12
pywin32==224
pywin32==227
pyyaml==5.1.2
pyzmq==18.0.1 ; python_version != "3.4"
requests==2.21.0

View file

@ -1,12 +0,0 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile -o requirements/static/py3.6/changelog.txt -v requirements/static/changelog.in
#
click==7.1.1 # via towncrier
incremental==17.5.0 # via towncrier
jinja2==2.11.2 # via towncrier
markupsafe==1.1.1 # via jinja2
toml==0.10.0 # via towncrier
towncrier==19.2.0

View file

@ -5,4 +5,4 @@
# pip-compile -o requirements/static/py3.6/darwin-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodomex==3.9.0
pycryptodome==3.9.7

View file

@ -80,7 +80,8 @@ pyaml==19.4.1 # via moto
pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5
pycparser==2.19
pycryptodome==3.8.1
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.9.7
pynacl==1.3.0 # via paramiko
pyopenssl==19.0.0
pyparsing==2.4.5 # via packaging

View file

@ -5,4 +5,4 @@
# pip-compile -o requirements/static/py3.6/linux-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodomex==3.9.3
pycryptodome==3.9.7

View file

@ -73,8 +73,8 @@ pyaml==19.4.1 # via moto
pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa
pycparser==2.19 # via cffi
pycrypto==2.6.1 ; sys_platform not in "win32,darwin"
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.9.7
pygit2==0.28.2
pyinotify==0.9.6
pynacl==1.3.0 # via paramiko

View file

@ -5,4 +5,4 @@
# pip-compile -o requirements/static/py3.6/windows-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodomex==3.9.0
pycryptodome==3.9.7

View file

@ -10,7 +10,7 @@ atomicwrites==1.3.0 # via pytest
attrs==19.1.0 # via pytest
aws-xray-sdk==0.95 # via moto
backports.functools-lru-cache==1.5 # via cheroot
backports.ssl-match-hostname==3.7.0.1
backports.ssl-match-hostname==3.7.0.1 ; python_version < "3.7"
boto3==1.9.132
boto==2.49.0
botocore==1.12.132 # via boto3, moto, s3transfer
@ -68,7 +68,7 @@ pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5
pycparser==2.19
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.8.1 ; sys_platform == "win32"
pycryptodomex==3.9.7
pycurl==7.43.0.5
pygit2==0.28.2
pymssql==2.1.4
@ -87,7 +87,7 @@ python-jose==2.0.2 # via moto
pythonnet==2.3.0
pytz==2019.1 # via moto, tempora
pyvmomi==6.7.1.2018.12
pywin32==224
pywin32==227
pyyaml==5.1.2
pyzmq==18.0.1 ; python_version != "3.4"
requests==2.21.0

View file

@ -1,12 +0,0 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile -o requirements/static/py3.7/changelog.txt -v requirements/static/changelog.in
#
click==7.1.1 # via towncrier
incremental==17.5.0 # via towncrier
jinja2==2.11.2 # via towncrier
markupsafe==1.1.1 # via jinja2
toml==0.10.0 # via towncrier
towncrier==19.2.0

View file

@ -5,4 +5,4 @@
# pip-compile -o requirements/static/py3.7/darwin-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodomex==3.9.0
pycryptodome==3.9.7

View file

@ -79,7 +79,8 @@ pyaml==19.4.1 # via moto
pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5
pycparser==2.19
pycryptodome==3.8.1
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.9.7
pynacl==1.3.0 # via paramiko
pyopenssl==19.0.0
pyparsing==2.4.5 # via packaging

View file

@ -5,4 +5,4 @@
# pip-compile -o requirements/static/py3.7/linux-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodomex==3.9.3
pycryptodome==3.9.7

View file

@ -73,8 +73,8 @@ pyaml==19.4.1 # via moto
pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5 # via paramiko, pyasn1-modules, rsa
pycparser==2.19 # via cffi
pycrypto==2.6.1 ; sys_platform not in "win32,darwin"
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.9.7
pygit2==0.28.2
pyinotify==0.9.6
pynacl==1.3.0 # via paramiko

View file

@ -5,4 +5,4 @@
# pip-compile -o requirements/static/py3.7/windows-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodomex==3.9.0
pycryptodome==3.9.7

View file

@ -10,7 +10,6 @@ atomicwrites==1.3.0 # via pytest
attrs==19.1.0 # via pytest
aws-xray-sdk==0.95 # via moto
backports.functools-lru-cache==1.5 # via cheroot
backports.ssl-match-hostname==3.7.0.1
boto3==1.9.132
boto==2.49.0
botocore==1.12.132 # via boto3, moto, s3transfer
@ -68,7 +67,7 @@ pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5
pycparser==2.19
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.8.1 ; sys_platform == "win32"
pycryptodomex==3.9.7
pycurl==7.43.0.5
pygit2==0.28.2
pymssql==2.1.4
@ -87,7 +86,7 @@ python-jose==2.0.2 # via moto
pythonnet==2.3.0
pytz==2019.1 # via moto, tempora
pyvmomi==6.7.1.2018.12
pywin32==224
pywin32==227
pyyaml==5.1.2
pyzmq==18.0.1 ; python_version != "3.4"
requests==2.21.0

View file

@ -0,0 +1,115 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile -o requirements/static/py3.8/cloud.txt -v requirements/static/cloud.in
#
adal==1.2.1 # via azure-datalake-store, msrestazure
asn1crypto==0.24.0 # via cryptography
azure-applicationinsights==0.1.0 # via azure
azure-batch==4.1.3 # via azure
azure-common==1.1.18 # via azure-applicationinsights, azure-batch, azure-cosmosdb-table, azure-eventgrid, azure-graphrbac, azure-keyvault, azure-loganalytics, azure-mgmt-advisor, azure-mgmt-applicationinsights, azure-mgmt-authorization, azure-mgmt-batch, azure-mgmt-batchai, azure-mgmt-billing, azure-mgmt-cdn, azure-mgmt-cognitiveservices, azure-mgmt-commerce, azure-mgmt-compute, azure-mgmt-consumption, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-cosmosdb, azure-mgmt-datafactory, azure-mgmt-datalake-analytics, azure-mgmt-datalake-store, azure-mgmt-datamigration, azure-mgmt-devspaces, azure-mgmt-devtestlabs, azure-mgmt-dns, azure-mgmt-eventgrid, azure-mgmt-eventhub, azure-mgmt-hanaonazure, azure-mgmt-iotcentral, azure-mgmt-iothub, azure-mgmt-iothubprovisioningservices, azure-mgmt-keyvault, azure-mgmt-loganalytics, azure-mgmt-logic, azure-mgmt-machinelearningcompute, azure-mgmt-managementgroups, azure-mgmt-managementpartner, azure-mgmt-maps, azure-mgmt-marketplaceordering, azure-mgmt-media, azure-mgmt-monitor, azure-mgmt-msi, azure-mgmt-network, azure-mgmt-notificationhubs, azure-mgmt-policyinsights, azure-mgmt-powerbiembedded, azure-mgmt-rdbms, azure-mgmt-recoveryservices, azure-mgmt-recoveryservicesbackup, azure-mgmt-redis, azure-mgmt-relay, azure-mgmt-reservations, azure-mgmt-resource, azure-mgmt-scheduler, azure-mgmt-search, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-mgmt-sql, azure-mgmt-storage, azure-mgmt-subscription, azure-mgmt-trafficmanager, azure-mgmt-web, azure-servicebus, azure-servicefabric, azure-servicemanagement-legacy, azure-storage-blob, azure-storage-common, azure-storage-file, azure-storage-queue
azure-cosmosdb-nspkg==2.0.2 # via azure-cosmosdb-table
azure-cosmosdb-table==1.0.5 # via azure
azure-datalake-store==0.0.44 # via azure
azure-eventgrid==1.2.0 # via azure
azure-graphrbac==0.40.0 # via azure
azure-keyvault==1.1.0 # via azure
azure-loganalytics==0.1.0 # via azure
azure-mgmt-advisor==1.0.1 # via azure-mgmt
azure-mgmt-applicationinsights==0.1.1 # via azure-mgmt
azure-mgmt-authorization==0.50.0 # via azure-mgmt
azure-mgmt-batch==5.0.1 # via azure-mgmt
azure-mgmt-batchai==2.0.0 # via azure-mgmt
azure-mgmt-billing==0.2.0 # via azure-mgmt
azure-mgmt-cdn==3.1.0 # via azure-mgmt
azure-mgmt-cognitiveservices==3.0.0 # via azure-mgmt
azure-mgmt-commerce==1.0.1 # via azure-mgmt
azure-mgmt-compute==4.6.0 # via azure-mgmt
azure-mgmt-consumption==2.0.0 # via azure-mgmt
azure-mgmt-containerinstance==1.4.1 # via azure-mgmt
azure-mgmt-containerregistry==2.7.0 # via azure-mgmt
azure-mgmt-containerservice==4.4.0 # via azure-mgmt
azure-mgmt-cosmosdb==0.4.1 # via azure-mgmt
azure-mgmt-datafactory==0.6.0 # via azure-mgmt
azure-mgmt-datalake-analytics==0.6.0 # via azure-mgmt
azure-mgmt-datalake-nspkg==3.0.1 # via azure-mgmt-datalake-analytics, azure-mgmt-datalake-store
azure-mgmt-datalake-store==0.5.0 # via azure-mgmt
azure-mgmt-datamigration==1.0.0 # via azure-mgmt
azure-mgmt-devspaces==0.1.0 # via azure-mgmt
azure-mgmt-devtestlabs==2.2.0 # via azure-mgmt
azure-mgmt-dns==2.1.0 # via azure-mgmt
azure-mgmt-eventgrid==1.0.0 # via azure-mgmt
azure-mgmt-eventhub==2.5.0 # via azure-mgmt
azure-mgmt-hanaonazure==0.1.1 # via azure-mgmt
azure-mgmt-iotcentral==0.1.0 # via azure-mgmt
azure-mgmt-iothub==0.5.0 # via azure-mgmt
azure-mgmt-iothubprovisioningservices==0.2.0 # via azure-mgmt
azure-mgmt-keyvault==1.1.0 # via azure-mgmt
azure-mgmt-loganalytics==0.2.0 # via azure-mgmt
azure-mgmt-logic==3.0.0 # via azure-mgmt
azure-mgmt-machinelearningcompute==0.4.1 # via azure-mgmt
azure-mgmt-managementgroups==0.1.0 # via azure-mgmt
azure-mgmt-managementpartner==0.1.0 # via azure-mgmt
azure-mgmt-maps==0.1.0 # via azure-mgmt
azure-mgmt-marketplaceordering==0.1.0 # via azure-mgmt
azure-mgmt-media==1.0.0 # via azure-mgmt
azure-mgmt-monitor==0.5.2 # via azure-mgmt
azure-mgmt-msi==0.2.0 # via azure-mgmt
azure-mgmt-network==2.6.0 # via azure-mgmt
azure-mgmt-notificationhubs==2.0.0 # via azure-mgmt
azure-mgmt-nspkg==3.0.2 # via azure-mgmt-advisor, azure-mgmt-applicationinsights, azure-mgmt-authorization, azure-mgmt-batch, azure-mgmt-batchai, azure-mgmt-billing, azure-mgmt-cognitiveservices, azure-mgmt-commerce, azure-mgmt-consumption, azure-mgmt-cosmosdb, azure-mgmt-datafactory, azure-mgmt-datalake-nspkg, azure-mgmt-datamigration, azure-mgmt-devspaces, azure-mgmt-devtestlabs, azure-mgmt-dns, azure-mgmt-eventgrid, azure-mgmt-hanaonazure, azure-mgmt-iotcentral, azure-mgmt-iothub, azure-mgmt-iothubprovisioningservices, azure-mgmt-keyvault, azure-mgmt-loganalytics, azure-mgmt-logic, azure-mgmt-machinelearningcompute, azure-mgmt-managementgroups, azure-mgmt-managementpartner, azure-mgmt-maps, azure-mgmt-marketplaceordering, azure-mgmt-monitor, azure-mgmt-msi, azure-mgmt-notificationhubs, azure-mgmt-policyinsights, azure-mgmt-powerbiembedded, azure-mgmt-recoveryservices, azure-mgmt-recoveryservicesbackup, azure-mgmt-redis, azure-mgmt-relay, azure-mgmt-reservations, azure-mgmt-scheduler, azure-mgmt-search, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-mgmt-sql, azure-mgmt-storage, azure-mgmt-subscription, azure-mgmt-trafficmanager, azure-mgmt-web
azure-mgmt-policyinsights==0.1.0 # via azure-mgmt
azure-mgmt-powerbiembedded==2.0.0 # via azure-mgmt
azure-mgmt-rdbms==1.8.0 # via azure-mgmt
azure-mgmt-recoveryservices==0.3.0 # via azure-mgmt
azure-mgmt-recoveryservicesbackup==0.3.0 # via azure-mgmt
azure-mgmt-redis==5.0.0 # via azure-mgmt
azure-mgmt-relay==0.1.0 # via azure-mgmt
azure-mgmt-reservations==0.2.1 # via azure-mgmt
azure-mgmt-resource==2.1.0 # via azure-mgmt
azure-mgmt-scheduler==2.0.0 # via azure-mgmt
azure-mgmt-search==2.0.0 # via azure-mgmt
azure-mgmt-servicebus==0.5.3 # via azure-mgmt
azure-mgmt-servicefabric==0.2.0 # via azure-mgmt
azure-mgmt-signalr==0.1.1 # via azure-mgmt
azure-mgmt-sql==0.9.1 # via azure-mgmt
azure-mgmt-storage==2.0.0 # via azure-mgmt
azure-mgmt-subscription==0.2.0 # via azure-mgmt
azure-mgmt-trafficmanager==0.50.0 # via azure-mgmt
azure-mgmt-web==0.35.0 # via azure-mgmt
azure-mgmt==4.0.0 # via azure
azure-nspkg==3.0.2 # via azure-applicationinsights, azure-batch, azure-cosmosdb-nspkg, azure-eventgrid, azure-graphrbac, azure-keyvault, azure-loganalytics, azure-mgmt-nspkg, azure-servicebus, azure-servicefabric, azure-servicemanagement-legacy
azure-servicebus==0.21.1 # via azure
azure-servicefabric==6.3.0.0 # via azure
azure-servicemanagement-legacy==0.20.6 # via azure
azure-storage-blob==1.5.0 # via azure
azure-storage-common==1.4.0 # via azure-cosmosdb-table, azure-storage-blob, azure-storage-file, azure-storage-queue
azure-storage-file==1.4.0 # via azure
azure-storage-queue==1.4.0 # via azure
azure==4.0.0
certifi==2019.3.9 # via msrest, requests
cffi==1.12.2 # via azure-datalake-store, cryptography
chardet==3.0.4 # via requests
cryptography==2.6.1 # via adal, azure-cosmosdb-table, azure-keyvault, azure-storage-common, requests-ntlm, smbprotocol
idna==2.8 # via requests
isodate==0.6.0 # via msrest
msrest==0.6.6 # via azure-applicationinsights, azure-eventgrid, azure-keyvault, azure-loganalytics, azure-mgmt-cdn, azure-mgmt-compute, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-dns, azure-mgmt-eventhub, azure-mgmt-keyvault, azure-mgmt-media, azure-mgmt-network, azure-mgmt-rdbms, azure-mgmt-resource, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-servicefabric, msrestazure
msrestazure==0.6.0 # via azure-batch, azure-eventgrid, azure-graphrbac, azure-keyvault, azure-mgmt-advisor, azure-mgmt-applicationinsights, azure-mgmt-authorization, azure-mgmt-batch, azure-mgmt-batchai, azure-mgmt-billing, azure-mgmt-cdn, azure-mgmt-cognitiveservices, azure-mgmt-commerce, azure-mgmt-compute, azure-mgmt-consumption, azure-mgmt-containerinstance, azure-mgmt-containerregistry, azure-mgmt-containerservice, azure-mgmt-cosmosdb, azure-mgmt-datafactory, azure-mgmt-datalake-analytics, azure-mgmt-datalake-store, azure-mgmt-datamigration, azure-mgmt-devspaces, azure-mgmt-devtestlabs, azure-mgmt-dns, azure-mgmt-eventgrid, azure-mgmt-eventhub, azure-mgmt-hanaonazure, azure-mgmt-iotcentral, azure-mgmt-iothub, azure-mgmt-iothubprovisioningservices, azure-mgmt-keyvault, azure-mgmt-loganalytics, azure-mgmt-logic, azure-mgmt-machinelearningcompute, azure-mgmt-managementgroups, azure-mgmt-managementpartner, azure-mgmt-maps, azure-mgmt-marketplaceordering, azure-mgmt-media, azure-mgmt-monitor, azure-mgmt-msi, azure-mgmt-network, azure-mgmt-notificationhubs, azure-mgmt-policyinsights, azure-mgmt-powerbiembedded, azure-mgmt-rdbms, azure-mgmt-recoveryservices, azure-mgmt-recoveryservicesbackup, azure-mgmt-redis, azure-mgmt-relay, azure-mgmt-reservations, azure-mgmt-resource, azure-mgmt-scheduler, azure-mgmt-search, azure-mgmt-servicebus, azure-mgmt-servicefabric, azure-mgmt-signalr, azure-mgmt-sql, azure-mgmt-storage, azure-mgmt-subscription, azure-mgmt-trafficmanager, azure-mgmt-web
netaddr==0.7.19
ntlm-auth==1.3.0 # via requests-ntlm, smbprotocol
oauthlib==3.0.1 # via requests-oauthlib
profitbricks==4.1.3
pyasn1==0.4.5 # via smbprotocol
pycparser==2.19 # via cffi
pyjwt==1.7.1 # via adal
pypsexec==0.1.0
python-dateutil==2.8.0 # via adal, azure-cosmosdb-table, azure-storage-common
pywinrm==0.3.0
requests-ntlm==1.1.0 # via pywinrm
requests-oauthlib==1.2.0 # via msrest
requests==2.21.0 # via adal, azure-cosmosdb-table, azure-datalake-store, azure-keyvault, azure-servicebus, azure-servicemanagement-legacy, azure-storage-common, msrest, profitbricks, pywinrm, requests-ntlm, requests-oauthlib
six==1.12.0 # via cryptography, isodate, profitbricks, pypsexec, python-dateutil, pywinrm, smbprotocol
smbprotocol==0.1.1 # via pypsexec
urllib3==1.24.2 # via requests
xmltodict==0.12.0 # via pywinrm

View file

@ -0,0 +1,8 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile -o requirements/static/py3.8/darwin-crypto.txt -v requirements/static/crypto.in
#
m2crypto==0.35.2
pycryptodome==3.9.7

View file

@ -0,0 +1,124 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile -o requirements/static/py3.8/darwin.txt -v pkg/osx/req.txt pkg/osx/req_ext.txt requirements/base.txt requirements/zeromq.txt requirements/pytest.txt requirements/static/darwin.in
#
apache-libcloud==2.4.0
appdirs==1.4.3 # via virtualenv
argh==0.26.2 # via watchdog
asn1crypto==1.3.0 # via certvalidator, cryptography, oscrypto
atomicwrites==1.3.0 # via pytest
attrs==19.1.0 # via pytest
aws-xray-sdk==0.95 # via moto
backports.functools-lru-cache==1.5 # via cheroot
backports.ssl_match_hostname==3.7.0.1
bcrypt==3.1.6 # via paramiko
boto3==1.9.132
boto==2.49.0
botocore==1.12.132 # via boto3, moto, s3transfer
cachetools==3.1.0 # via google-auth
certifi==2019.3.9
certvalidator==0.11.1 # via vcert
cffi==1.12.2
chardet==3.0.4 # via requests
cheetah3==3.1.0
cheroot==6.5.5 # via cherrypy
cherrypy==17.4.1
click==7.0
clustershell==1.8.1
contextlib2==0.5.5 # via cherrypy
croniter==0.3.29
cryptography==2.6.1
distlib==0.3.0 # via virtualenv
dnspython==1.16.0
docker-pycreds==0.4.0 # via docker
docker==3.7.2
docutils==0.14 # via botocore
ecdsa==0.13.3 # via python-jose
enum34==1.1.6
filelock==3.0.12 # via virtualenv
future==0.17.1 # via python-jose
genshi==0.7.3
gitdb2==2.0.5 # via gitpython
gitpython==2.1.15
google-auth==1.6.3 # via kubernetes
idna==2.8
ipaddress==1.0.22
jaraco.functools==2.0 # via tempora
jinja2==2.10.1
jmespath==0.9.4
jsondiff==1.1.1 # via moto
jsonpickle==1.1 # via aws-xray-sdk
jsonschema==2.6.0
junos-eznc==2.2.0
jxmlease==1.0.1
keyring==5.7.1
kubernetes==3.0.0
linode-python==1.1.1
lxml==4.3.3 # via junos-eznc, ncclient
mako==1.0.7
markupsafe==1.1.1
mock==3.0.5
more-itertools==5.0.0
moto==1.3.7
msgpack-python==0.5.6
msgpack==0.5.6
ncclient==0.6.4 # via junos-eznc
netaddr==0.7.19 # via junos-eznc
oscrypto==1.2.0 # via certvalidator
packaging==19.2 # via pytest
paramiko==2.4.2 # via junos-eznc, ncclient, scp
pathtools==0.1.2 # via watchdog
pluggy==0.13.1 # via pytest
portend==2.4 # via cherrypy
psutil==5.6.6
py==1.8.0 # via pytest
pyaml==19.4.1 # via moto
pyasn1-modules==0.2.4 # via google-auth
pyasn1==0.4.5
pycparser==2.19
pycryptodome==3.8.1 # via python-jose
pycryptodomex==3.9.7
pynacl==1.3.0 # via paramiko
pyopenssl==19.0.0
pyparsing==2.4.5 # via packaging
pyserial==3.4 # via junos-eznc
pytest-helpers-namespace==2019.1.8
pytest-salt-runtests-bridge==2019.7.10
pytest-salt==2019.12.27
pytest-tempdir==2019.10.12
pytest==4.6.6
python-dateutil==2.8.0
python-etcd==0.4.5
python-gnupg==0.4.4
python-jose==2.0.2 # via moto
pytz==2019.1 # via moto, tempora
pyvmomi==6.7.1.2018.12
pyyaml==5.1.2
pyzmq==18.0.1 ; python_version != "3.4"
requests==2.21.0
responses==0.10.6 # via moto
rfc3987==1.3.8
rsa==4.0 # via google-auth
s3transfer==0.2.0 # via boto3
salttesting==2017.6.1
scp==0.13.2 # via junos-eznc
setproctitle==1.1.10
six==1.12.0 # via bcrypt, cheroot, cherrypy, cryptography, docker, docker-pycreds, google-auth, junos-eznc, kubernetes, mock, more-itertools, moto, ncclient, packaging, pynacl, pyopenssl, pytest, python-dateutil, python-jose, pyvmomi, responses, salttesting, tempora, vcert, virtualenv, websocket-client
smmap2==2.0.5 # via gitdb2
strict-rfc3339==0.7
tempora==1.14.1 # via portend
timelib==0.2.4
urllib3==1.24.2 # via botocore, kubernetes, python-etcd, requests
vcert==0.7.3
virtualenv==20.0.10
vultr==1.0.1
watchdog==0.9.0
wcwidth==0.1.7 # via pytest
websocket-client==0.40.0 # via docker, kubernetes
werkzeug==0.15.6 # via moto
wrapt==1.11.1 # via aws-xray-sdk
xmltodict==0.12.0 # via moto
yamlordereddictloader==0.4.0
zc.lockfile==1.4 # via cherrypy

View file

@ -0,0 +1,30 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile -o requirements/static/py3.8/docs.txt -v requirements/static/docs.in
#
alabaster==0.7.12 # via sphinx
babel==2.7.0 # via sphinx
certifi==2019.3.9 # via requests
chardet==3.0.4 # via requests
docutils==0.14 # via sphinx
idna==2.8 # via requests
imagesize==1.1.0 # via sphinx
jinja2==2.10.1 # via sphinx
markupsafe==1.1.1 # via jinja2
packaging==19.0 # via sphinx
pygments==2.4.2 # via sphinx
pyparsing==2.4.0 # via packaging
pytz==2019.1 # via babel
requests==2.22.0 # via sphinx
six==1.12.0 # via packaging
snowballstemmer==1.2.1 # via sphinx
sphinx==3.0.2
sphinxcontrib-applehelp==1.0.1 # via sphinx
sphinxcontrib-devhelp==1.0.1 # via sphinx
sphinxcontrib-htmlhelp==1.0.2 # via sphinx
sphinxcontrib-jsmath==1.0.1 # via sphinx
sphinxcontrib-qthelp==1.0.2 # via sphinx
sphinxcontrib-serializinghtml==1.1.3 # via sphinx
urllib3==1.25.3 # via requests

Some files were not shown because too many files have changed in this diff Show more