mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge branch 'master' into doc-fixes
This commit is contained in:
commit
4c3638bd14
4225 changed files with 251245 additions and 155844 deletions
|
@ -1,6 +1,6 @@
|
|||
codecov:
|
||||
ci:
|
||||
- jenkinsci.saltstack.com
|
||||
- jenkins.saltproject.io
|
||||
- github.com
|
||||
|
||||
max_report_age: 24 # The age you want coverage reports to expire at, or if you
|
||||
|
|
65
.github/CODEOWNERS
vendored
65
.github/CODEOWNERS
vendored
|
@ -12,55 +12,52 @@
|
|||
* @saltstack/team-core
|
||||
|
||||
# Team Boto
|
||||
salt/*/*boto* @saltstack/team-boto @saltstack/team-core
|
||||
salt/*/*boto* @saltstack/team-core
|
||||
|
||||
# Team Cloud
|
||||
salt/cloud/* @saltstack/team-cloud @saltstack/team-core
|
||||
salt/utils/openstack/* @saltstack/team-cloud @saltstack/team-core
|
||||
salt/utils/aws.py @saltstack/team-cloud @saltstack/team-core
|
||||
salt/*/*cloud* @saltstack/team-cloud @saltstack/team-core
|
||||
salt/cloud/* @saltstack/team-core
|
||||
salt/utils/openstack/* @saltstack/team-core
|
||||
salt/utils/aws.py @saltstack/team-core
|
||||
salt/*/*cloud* @saltstack/team-core
|
||||
|
||||
# Team NetAPI
|
||||
salt/cli/api.py @saltstack/team-netapi @saltstack/team-core
|
||||
salt/client/netapi.py @saltstack/team-netapi @saltstack/team-core
|
||||
salt/netapi/* @saltstack/team-netapi @saltstack/team-core
|
||||
salt/cli/api.py @saltstack/team-core
|
||||
salt/client/netapi.py @saltstack/team-core
|
||||
salt/netapi/* @saltstack/team-core
|
||||
|
||||
# Team Network
|
||||
salt/proxy/* @saltstack/team-proxy @saltstack/team-core
|
||||
salt/proxy/* @saltstack/team-core
|
||||
|
||||
# Team SPM
|
||||
salt/cli/spm.py @saltstack/team-spm @saltstack/team-core
|
||||
salt/spm/* @saltstack/team-spm @saltstack/team-core
|
||||
salt/cli/spm.py @saltstack/team-core
|
||||
salt/spm/* @saltstack/team-core
|
||||
|
||||
# Team SSH
|
||||
salt/cli/ssh.py @saltstack/team-ssh @saltstack/team-core
|
||||
salt/client/ssh/* @saltstack/team-ssh @saltstack/team-core
|
||||
salt/roster/* @saltstack/team-ssh @saltstack/team-core
|
||||
salt/runners/ssh.py @saltstack/team-ssh @saltstack/team-core
|
||||
salt/*/thin.py @saltstack/team-ssh @saltstack/team-core
|
||||
salt/cli/ssh.py @saltstack/team-core
|
||||
salt/client/ssh/* @saltstack/team-core
|
||||
salt/roster/* @saltstack/team-core
|
||||
salt/runners/ssh.py @saltstack/team-core
|
||||
salt/*/thin.py @saltstack/team-core
|
||||
|
||||
# Team State
|
||||
salt/state.py @saltstack/team-state @saltstack/team-core
|
||||
salt/state.py @saltstack/team-core
|
||||
|
||||
# Team SUSE
|
||||
salt/*/*btrfs* @saltstack/team-suse @saltstack/team-core
|
||||
salt/*/*kubernetes* @saltstack/team-suse @saltstack/team-core
|
||||
salt/*/*pkg* @saltstack/team-suse @saltstack/team-core
|
||||
salt/*/*snapper* @saltstack/team-suse @saltstack/team-core
|
||||
salt/*/*xfs* @saltstack/team-suse @saltstack/team-core
|
||||
salt/*/*zypper* @saltstack/team-suse @saltstack/team-core
|
||||
salt/*/*btrfs* @saltstack/team-core
|
||||
salt/*/*kubernetes* @saltstack/team-core
|
||||
salt/*/*pkg* @saltstack/team-core
|
||||
salt/*/*snapper* @saltstack/team-core
|
||||
salt/*/*xfs* @saltstack/team-core
|
||||
salt/*/*zypper* @saltstack/team-core
|
||||
|
||||
# Team Transport
|
||||
salt/transport/* @saltstack/team-transport @saltstack/team-core
|
||||
salt/utils/zeromq.py @saltstack/team-transport @saltstack/team-core
|
||||
salt/transport/* @saltstack/team-core
|
||||
salt/utils/zeromq.py @saltstack/team-core
|
||||
|
||||
# Team Windows
|
||||
salt/*/*win* @saltstack/team-windows @saltstack/team-core
|
||||
salt/modules/reg.py @saltstack/team-windows @saltstack/team-core
|
||||
salt/states/reg.py @saltstack/team-windows @saltstack/team-core
|
||||
tests/*/*win* @saltstack/team-windows @saltstack/team-core
|
||||
tests/*/test_reg.py @saltstack/team-windows @saltstack/team-core
|
||||
tests/pytests/* @saltstack/team-code @s0undt3ch
|
||||
|
||||
# Jenkins Integration
|
||||
.ci/* @saltstack/saltstack-sre-team @saltstack/team-core
|
||||
salt/*/*win* @saltstack/team-core
|
||||
salt/modules/reg.py @saltstack/team-core
|
||||
salt/states/reg.py @saltstack/team-core
|
||||
tests/*/*win* @saltstack/team-core
|
||||
tests/*/test_reg.py @saltstack/team-core
|
||||
tests/pytests/* @saltstack/team-core @s0undt3ch
|
||||
|
|
19
.github/ISSUE_TEMPLATE/bug_report.md
vendored
19
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -11,7 +11,20 @@ assignees: ''
|
|||
A clear and concise description of what the bug is.
|
||||
|
||||
**Setup**
|
||||
(Please provide relevant configs and/or SLS files (be sure to remove sensitive info).
|
||||
(Please provide relevant configs and/or SLS files (be sure to remove sensitive info. There is no general set-up of Salt.)
|
||||
|
||||
Please be as specific as possible and give set-up details.
|
||||
|
||||
- [ ] on-prem machine
|
||||
- [ ] VM (Virtualbox, KVM, etc. please specify)
|
||||
- [ ] VM running on a cloud service, please be explicit and add details
|
||||
- [ ] container (Kubernetes, Docker, containerd, etc. please specify)
|
||||
- [ ] or a combination, please be explicit
|
||||
- [ ] jails if it is FreeBSD
|
||||
- [ ] classic packaging
|
||||
- [ ] onedir packaging
|
||||
- [ ] used bootstrap to install
|
||||
|
||||
|
||||
**Steps to Reproduce the behavior**
|
||||
(Include debug logs if possible and relevant)
|
||||
|
@ -24,9 +37,9 @@ If applicable, add screenshots to help explain your problem.
|
|||
|
||||
**Versions Report**
|
||||
<details><summary>salt --versions-report</summary>
|
||||
(Provided by running salt --versions-report. Please also mention any differences in master/minion versions.)
|
||||
(Provided by running salt --versions-report. Please also mention any differences in master/minion versions.)
|
||||
|
||||
```
|
||||
```yaml
|
||||
PASTE HERE
|
||||
```
|
||||
</details>
|
||||
|
|
7
.github/ISSUE_TEMPLATE/config.yml
vendored
7
.github/ISSUE_TEMPLATE/config.yml
vendored
|
@ -6,9 +6,6 @@ contact_links:
|
|||
- name: Salt-Users Forum
|
||||
url: https://groups.google.com/forum/#!forum/salt-users
|
||||
about: Please ask and answer questions here.
|
||||
- name: Salt on Freenode
|
||||
url: http://webchat.freenode.net/?channels=salt&uio=Mj10cnVlJjk9dHJ1ZSYxMD10cnVl83
|
||||
- name: Salt on LiberaChat
|
||||
url: https://web.libera.chat/#salt
|
||||
about: Please ask and answer questions here.
|
||||
- name: Security vulnerabilities
|
||||
email: security@saltstack.com
|
||||
about: Please report security vulnerabilities here.
|
||||
|
|
14
.github/ISSUE_TEMPLATE/tech-debt.md
vendored
Normal file
14
.github/ISSUE_TEMPLATE/tech-debt.md
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
name: Tech Debt
|
||||
about: Issue is related to tech debt. This includes compatibility changes for newer versions of software and OSes that salt interacts with.
|
||||
title: "[TECH DEBT]"
|
||||
labels: tech-debt
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Description of the tech debt to be addressed, include links and screenshots
|
||||
<!-- Note: Please direct questions to the salt-users google group, IRC or Community Slack. -->
|
||||
|
||||
### Versions Report
|
||||
(Provided by running `salt --versions-report`. Please also mention any differences in master/minion versions.)
|
2
.github/ISSUE_TEMPLATE/test-failure.md
vendored
2
.github/ISSUE_TEMPLATE/test-failure.md
vendored
|
@ -2,7 +2,7 @@
|
|||
name: Test Failure
|
||||
about: Jenkins Test Failure issues
|
||||
title: "[TEST FAILURE]"
|
||||
labels: Test Failure
|
||||
labels: 'Test-Failure'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
|
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -11,14 +11,14 @@ Remove this section if not relevant
|
|||
|
||||
### Merge requirements satisfied?
|
||||
**[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. -->
|
||||
<!-- Please review the [test documentation](https://docs.saltproject.io/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/master/topics/development/changelog.html
|
||||
- [ ] Changelog - https://docs.saltproject.io/en/master/topics/development/changelog.html
|
||||
- [ ] Tests written/updated
|
||||
|
||||
### Commits signed with GPG?
|
||||
Yes/No
|
||||
|
||||
Please review [Salt's Contributing Guide](https://docs.saltstack.com/en/master/topics/development/contributing.html) for best practices.
|
||||
Please review [Salt's Contributing Guide](https://docs.saltproject.io/en/master/topics/development/contributing.html) for best practices.
|
||||
|
||||
See GitHub's [page on GPG signing](https://help.github.com/articles/signing-commits-using-gpg/) for more information about signing commits with GPG.
|
||||
|
|
4
.github/config.yml
vendored
4
.github/config.yml
vendored
|
@ -14,7 +14,7 @@ newIssueWelcomeComment: >
|
|||
- [Community Wiki](https://github.com/saltstack/community/wiki)
|
||||
- [Salt’s Contributor Guide](https://docs.saltproject.io/en/master/topics/development/contributing.html)
|
||||
- [Join our Community Slack](https://join.slack.com/t/saltstackcommunity/shared_invite/zt-3av8jjyf-oBQ2M0vhXOhJpNpRkPWBvg)
|
||||
- [IRC on Freenode](https://webchat.freenode.net/#salt)
|
||||
- [IRC on LiberaChat](https://web.libera.chat/#salt)
|
||||
- [Salt Project YouTube channel](https://www.youtube.com/channel/UCpveTIucFx9ljGelW63-BWg)
|
||||
- [Salt Project Twitch channel](https://www.twitch.tv/saltprojectoss)
|
||||
|
||||
|
@ -40,7 +40,7 @@ newPRWelcomeComment: >
|
|||
- [Community Wiki](https://github.com/saltstack/community/wiki)
|
||||
- [Salt’s Contributor Guide](https://docs.saltproject.io/en/master/topics/development/contributing.html)
|
||||
- [Join our Community Slack](https://join.slack.com/t/saltstackcommunity/shared_invite/zt-3av8jjyf-oBQ2M0vhXOhJpNpRkPWBvg)
|
||||
- [IRC on Freenode](https://webchat.freenode.net/#salt)
|
||||
- [IRC on LiberaChat](https://web.libera.chat/#salt)
|
||||
- [Salt Project YouTube channel](https://www.youtube.com/channel/UCpveTIucFx9ljGelW63-BWg)
|
||||
- [Salt Project Twitch channel](https://www.twitch.tv/saltprojectoss)
|
||||
|
||||
|
|
52
.github/workflows/docs.yml
vendored
52
.github/workflows/docs.yml
vendored
|
@ -2,8 +2,14 @@ name: Docs
|
|||
|
||||
on: [push, pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
Salt:
|
||||
permissions:
|
||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||
pull-requests: read # for dorny/paths-filter to read pull requests
|
||||
name: Build Salt Documentation
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
@ -14,16 +20,18 @@ jobs:
|
|||
|
||||
- name: Install System Deps
|
||||
run: |
|
||||
echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install -y enchant git gcc imagemagick make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev xz-utils
|
||||
apt-get install -y git/buster-backports
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set Python Version Env Var
|
||||
run: |
|
||||
echo PY_VERSION=$(python -c 'import sys; print("{}.{}".format(*sys.version_info))') >> $GITHUB_ENV
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Nox
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install nox
|
||||
|
@ -36,16 +44,7 @@ jobs:
|
|||
list-files: json
|
||||
filters: |
|
||||
docs:
|
||||
- docs/**
|
||||
|
||||
- name: Set Docs Python Cache Key
|
||||
run: echo "PY=$(python --version --version | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup Nox Cache
|
||||
uses: pat-s/always-upload-cache@v2.1.3
|
||||
with:
|
||||
path: .nox/
|
||||
key: docs-salt|${{ env.PY }}|${{ hashFiles(format('requirements/static/ci/py{0}/*.txt', env.PY_VERSION)) }}
|
||||
- doc/**
|
||||
|
||||
- name: Install Python Requirements
|
||||
env:
|
||||
|
@ -66,6 +65,9 @@ jobs:
|
|||
path: doc/_build/html
|
||||
|
||||
Manpages:
|
||||
permissions:
|
||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||
pull-requests: read # for dorny/paths-filter to read pull requests
|
||||
name: Build Salt man Pages
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
@ -76,8 +78,10 @@ jobs:
|
|||
|
||||
- name: Install System Deps
|
||||
run: |
|
||||
echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install -y enchant git gcc imagemagick make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev
|
||||
apt-get install -y git/buster-backports
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
|
@ -89,30 +93,16 @@ jobs:
|
|||
list-files: json
|
||||
filters: |
|
||||
docs:
|
||||
- docs/**
|
||||
|
||||
- name: Set Python Version Env Var
|
||||
if: github.event_name == 'push' || steps.changed-files.outputs.docs == 'true'
|
||||
run: |
|
||||
echo PY_VERSION=$(python -c 'import sys; print("{}.{}".format(*sys.version_info))') >> $GITHUB_ENV
|
||||
- doc/**
|
||||
|
||||
- name: Install Nox
|
||||
if: github.event_name == 'push' || steps.changed-files.outputs.docs == 'true'
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install nox
|
||||
|
||||
- name: Set Docs Python Cache Key
|
||||
if: github.event_name == 'push' || steps.changed-files.outputs.docs == 'true'
|
||||
run: echo "PY=$(python --version --version | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup Nox Cache
|
||||
if: github.event_name == 'push' || steps.changed-files.outputs.docs == 'true'
|
||||
uses: pat-s/always-upload-cache@v2.1.3
|
||||
with:
|
||||
path: .nox/
|
||||
key: docs-man|${{ env.PY }}|${{ hashFiles(format('requirements/static/ci/py{0}/*.txt', env.PY_VERSION)) }}
|
||||
|
||||
- name: Install Python Requirements
|
||||
if: github.event_name == 'push' || steps.changed-files.outputs.docs == 'true'
|
||||
env:
|
||||
|
|
53
.github/workflows/lint.yml
vendored
53
.github/workflows/lint.yml
vendored
|
@ -2,8 +2,14 @@ name: Lint
|
|||
|
||||
on: [push, pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
Salt:
|
||||
permissions:
|
||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||
pull-requests: read # for dorny/paths-filter to read pull requests
|
||||
name: Lint Salt's Source Code
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
@ -14,29 +20,20 @@ jobs:
|
|||
|
||||
- name: Install System Deps
|
||||
run: |
|
||||
echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install -y enchant git gcc make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev
|
||||
apt-get install -y git/buster-backports
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set Python Version Env Var
|
||||
run: |
|
||||
echo PY_VERSION=$(python -c 'import sys; print("{}.{}".format(*sys.version_info))') >> $GITHUB_ENV
|
||||
|
||||
- name: Install Nox
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install nox
|
||||
|
||||
- name: Set Lint Python Cache Key
|
||||
run: echo "PY=$(python --version --version | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup Nox Cache
|
||||
uses: pat-s/always-upload-cache@v2.1.3
|
||||
with:
|
||||
path: .nox/
|
||||
key: lint-salt|${{ env.PY }}|${{ hashFiles(format('requirements/static/ci/py{0}/*.txt', env.PY_VERSION)) }}
|
||||
|
||||
- id: changed-files
|
||||
name: Get Changed Files
|
||||
uses: dorny/paths-filter@v2
|
||||
|
@ -50,6 +47,9 @@ jobs:
|
|||
- noxfile.py
|
||||
- salt/**/*.py
|
||||
- tasks/**/*.py
|
||||
rcfile:
|
||||
- added|modified:
|
||||
- .pylintrc
|
||||
|
||||
- name: Install Python Requirements
|
||||
env:
|
||||
|
@ -65,13 +65,16 @@ jobs:
|
|||
nox --forcecolor -e lint-salt -- ${{ join(fromJSON(steps.changed-files.outputs.salt_files), ' ') }}
|
||||
|
||||
- name: Lint ALL Files
|
||||
if: steps.changed-files.outputs.salt == 'true'
|
||||
if: steps.changed-files.outputs.salt == 'true' || steps.changed-files.outputs.rcfile == 'true'
|
||||
env:
|
||||
SKIP_REQUIREMENTS_INSTALL: YES
|
||||
run: |
|
||||
nox --forcecolor -e lint-salt
|
||||
|
||||
Tests:
|
||||
permissions:
|
||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||
pull-requests: read # for dorny/paths-filter to read pull requests
|
||||
name: Lint Salt's Test Suite
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
@ -82,29 +85,20 @@ jobs:
|
|||
|
||||
- name: Install System Deps
|
||||
run: |
|
||||
echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install -y enchant git gcc make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev
|
||||
apt-get install -y git/buster-backports
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set Python Version Env Var
|
||||
run: |
|
||||
echo PY_VERSION=$(python -c 'import sys; print("{}.{}".format(*sys.version_info))') >> $GITHUB_ENV
|
||||
|
||||
- name: Install Nox
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install nox
|
||||
|
||||
- name: Set Lint Python Cache Key
|
||||
run: echo "PY=$(python --version --version | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup Nox Cache
|
||||
uses: pat-s/always-upload-cache@v2.1.3
|
||||
with:
|
||||
path: .nox/
|
||||
key: lint-tests|${{ env.PY }}|${{ hashFiles(format('requirements/static/ci/py{0}/*.txt', env.PY_VERSION)) }}
|
||||
|
||||
- id: changed-files
|
||||
name: Get Changed Files
|
||||
uses: dorny/paths-filter@v2
|
||||
|
@ -115,6 +109,9 @@ jobs:
|
|||
tests:
|
||||
- added|modified:
|
||||
- tests/**/*.py
|
||||
rcfile:
|
||||
- added|modified:
|
||||
- .pylintrc
|
||||
|
||||
- name: Install Python Requirements
|
||||
env:
|
||||
|
@ -130,7 +127,7 @@ jobs:
|
|||
nox --forcecolor -e lint-tests -- ${{ join(fromJSON(steps.changed-files.outputs.tests_files), ' ') }}
|
||||
|
||||
- name: Lint ALL Files
|
||||
if: steps.changed-files.outputs.tests == 'true'
|
||||
if: steps.changed-files.outputs.tests == 'true' || steps.changed-files.outputs.rcfile == 'true'
|
||||
env:
|
||||
SKIP_REQUIREMENTS_INSTALL: YES
|
||||
run: |
|
||||
|
|
67
.github/workflows/pr-checks.yml
vendored
Normal file
67
.github/workflows/pr-checks.yml
vendored
Normal file
|
@ -0,0 +1,67 @@
|
|||
name: PR Checks
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
|
||||
Check-Changed-Files-Docstrings:
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
name: Check Docstrings For Changed Files On PR
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.9'
|
||||
|
||||
- name: Install Dependencies
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pre-commit pygithub
|
||||
|
||||
- name: Install Pre-Commit Hooks
|
||||
run: |
|
||||
pre-commit install --install-hooks
|
||||
|
||||
- id: changed-files
|
||||
name: Get Changed Files
|
||||
uses: dorny/paths-filter@v2
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
list-files: json
|
||||
filters: |
|
||||
salt:
|
||||
- added|modified:
|
||||
- 'salt/**'
|
||||
|
||||
- name: Check Docstrings For Changed Files On PR
|
||||
id: check-known-missing-docstrings
|
||||
if: github.event_name == 'pull_request_target' && steps.changed-files.outputs.salt == 'true'
|
||||
continue-on-error: true
|
||||
shell: bash
|
||||
run: |
|
||||
set -o pipefail
|
||||
pre-commit run --hook-stage manual check-known-missing-docstrings \
|
||||
--show-diff-on-failure --color=never \
|
||||
--files ${{ join(fromJSON(steps.changed-files.outputs.salt_files), ' ') }} | tee output.txt
|
||||
|
||||
- name: Comment on PR
|
||||
# Comment on PRs if pre-commit triggered a failure
|
||||
if: steps.check-known-missing-docstrings.outcome == 'failure'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
python .github/workflows/scripts/pr-docstring-comments.py \
|
||||
--org ${{ github.repository_owner }} \
|
||||
--repo ${{ github.event.repository.name }} \
|
||||
--issue ${{ github.event.number }} output.txt
|
40
.github/workflows/pre-commit.yml
vendored
40
.github/workflows/pre-commit.yml
vendored
|
@ -2,8 +2,14 @@ name: Pre-Commit
|
|||
|
||||
on: [push, pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
Pre-Commit:
|
||||
permissions:
|
||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||
pull-requests: read # for dorny/paths-filter to read pull requests
|
||||
name: Run Pre-Commit Against Salt
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -15,19 +21,20 @@ jobs:
|
|||
|
||||
- name: Install System Deps
|
||||
run: |
|
||||
echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install -y enchant git gcc make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev
|
||||
apt-get install -y git/buster-backports
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set Pre-Commit Cache Key
|
||||
run: echo "PY=$(python --version --version | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup Pre-Commit Cache
|
||||
uses: pat-s/always-upload-cache@v2.1.3
|
||||
with:
|
||||
path: ~/.cache/pre-commit
|
||||
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
|
||||
- name: Install Pre-Commit
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pre-commit
|
||||
pre-commit install --install-hooks
|
||||
|
||||
- id: changed-files
|
||||
name: Get Changed Files
|
||||
|
@ -44,21 +51,22 @@ jobs:
|
|||
- '**'
|
||||
|
||||
- name: Check ALL Files On Branch
|
||||
uses: pre-commit/action@v2.0.0
|
||||
if: github.event_name != 'pull_request'
|
||||
env:
|
||||
SKIP: lint-salt,lint-tests,pyupgrade,remove-import-headers,rstcheck
|
||||
SKIP: lint-salt,lint-tests,remove-import-headers,rstcheck
|
||||
run: |
|
||||
pre-commit run --show-diff-on-failure --color=always --all-files
|
||||
|
||||
- name: Check Changed Files On PR
|
||||
uses: pre-commit/action@v2.0.0
|
||||
if: github.event_name == 'pull_request' && steps.changed-files.outputs.repo == 'true'
|
||||
with:
|
||||
extra_args: --files ${{ join(fromJSON(steps.changed-files.outputs.repo_files), ' ') }}
|
||||
env:
|
||||
SKIP: lint-salt,lint-tests
|
||||
run: |
|
||||
pre-commit run --show-diff-on-failure --color=always --files ${{ join(fromJSON(steps.changed-files.outputs.repo_files), ' ') }}
|
||||
|
||||
- name: Check Docs On Deleted Files
|
||||
uses: pre-commit/action@v2.0.0
|
||||
if: steps.changed-files.outputs.deleted == 'true'
|
||||
with:
|
||||
extra_args: check-docs --files ${{ join(fromJSON(steps.changed-files.outputs.deleted_files), ' ') }}
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
pre-commit run --show-diff-on-failure --color=always check-docs --files ${{ join(fromJSON(steps.changed-files.outputs.deleted_files), ' ') }}
|
||||
|
|
76
.github/workflows/release-tag.yml
vendored
Normal file
76
.github/workflows/release-tag.yml
vendored
Normal file
|
@ -0,0 +1,76 @@
|
|||
name: Generate Tag and Github Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
saltVersion:
|
||||
description: 'Salt Version'
|
||||
required: true
|
||||
saltRepo:
|
||||
description: 'Salt Repo'
|
||||
default: saltstack/salt
|
||||
saltBranch:
|
||||
description: 'Salt Branch'
|
||||
default: freeze
|
||||
reTag:
|
||||
description: 'Re Tag (Deletes tag and release)'
|
||||
default: false
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
GenerateTagRelease:
|
||||
permissions:
|
||||
contents: write # for dev-drprasad/delete-tag-and-release to delete tags or releases
|
||||
name: Generate Tag and Github Release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dev-drprasad/delete-tag-and-release@v0.2.0
|
||||
if: github.event.inputs.reTag == 'true'
|
||||
with:
|
||||
delete_release: true # default: false
|
||||
tag_name: v${{ github.event.inputs.saltVersion }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ${{ github.event.inputs.saltRepo }}
|
||||
ref: ${{ github.event.inputs.saltBranch }}
|
||||
- name: Bump version and push tag
|
||||
id: tag_version
|
||||
uses: mathieudutour/github-tag-action@v5.6
|
||||
with:
|
||||
create_annotated_tag: True
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
custom_tag: ${{ github.event.inputs.saltVersion }}
|
||||
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: 3.8
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install pypa/build
|
||||
run: |
|
||||
python -m pip install build --user
|
||||
- name: Build a binary wheel and a source tarball
|
||||
run: |
|
||||
git fetch --tags origin
|
||||
git checkout v${{ github.event.inputs.saltVersion }}
|
||||
chmod 700 conf/cloud.*.d
|
||||
chmod 600 conf/cloud
|
||||
chmod 600 conf/cloud.profiles
|
||||
chmod 600 conf/cloud.providers
|
||||
python3 setup.py --ssh-packaging sdist
|
||||
python -m build --sdist --outdir dist/ .
|
||||
- name: Create a GitHub release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
tag: ${{ steps.tag_version.outputs.new_tag }}
|
||||
name: Release ${{ steps.tag_version.outputs.new_tag }}
|
||||
body: |
|
||||
WARNING: The tarball generated by GitHub will not have the correct version information when using a version not ending in .0 . Please use the tarball generated by SaltStack instead. See issue #41847 for more information.
|
||||
Official Salt packages can be found at https://repo.saltproject.io/
|
||||
artifacts: dist/salt*.tar.gz
|
208
.github/workflows/release.yml
vendored
Normal file
208
.github/workflows/release.yml
vendored
Normal file
|
@ -0,0 +1,208 @@
|
|||
name: Generate Release Docs
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
saltVersion:
|
||||
description: 'Salt Version'
|
||||
required: true
|
||||
manPages:
|
||||
description: "Build Man Pages"
|
||||
default: true
|
||||
required: false
|
||||
branch:
|
||||
description: "Branch to build/push PR"
|
||||
default: "master"
|
||||
required: false
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
SaltChangelog:
|
||||
permissions:
|
||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||
pull-requests: read # for dorny/paths-filter to read pull requests
|
||||
name: Build Salt Changelog
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
container:
|
||||
image: python:3.8.6-slim-buster
|
||||
|
||||
steps:
|
||||
|
||||
- name: Install System Deps
|
||||
run: |
|
||||
echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install -y enchant git gcc imagemagick make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev xz-utils
|
||||
apt-get install -y git/buster-backports
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ github.event.inputs.branch }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Nox
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install nox
|
||||
|
||||
- id: changed-files
|
||||
name: Get Changed Files
|
||||
uses: dorny/paths-filter@v2
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
list-files: json
|
||||
filters: |
|
||||
docs:
|
||||
- doc/**
|
||||
|
||||
- name: Install Python Requirements
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
nox --install-only --forcecolor -e 'changelog(force=True, draft=False)' -- ${{ github.event.inputs.saltVersion }}
|
||||
nox --install-only --forcecolor -e 'changelog(force=False, draft=True)' -- ${{ github.event.inputs.saltVersion }}
|
||||
|
||||
- name: Build Changelog
|
||||
env:
|
||||
SKIP_REQUIREMENTS_INSTALL: YES
|
||||
run: |
|
||||
nox --forcecolor -e 'changelog(force=False, draft=True)' -- ${{ github.event.inputs.saltVersion }} > rn_changelog
|
||||
nox --forcecolor -e 'changelog(force=True, draft=False)' -- ${{ github.event.inputs.saltVersion }}
|
||||
git restore --staged changelog/
|
||||
git diff --no-color > rm_changelog_patch.txt
|
||||
|
||||
- name: Store Generated Changelog
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: salt-changelog
|
||||
path: |
|
||||
CHANGELOG.md
|
||||
rm_changelog_patch.txt
|
||||
rn_changelog
|
||||
|
||||
Manpages:
|
||||
permissions:
|
||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||
pull-requests: read # for dorny/paths-filter to read pull requests
|
||||
name: Build Salt man Pages
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
container:
|
||||
image: python:3.8.6-slim-buster
|
||||
|
||||
steps:
|
||||
|
||||
- name: Install System Deps
|
||||
if: github.event.inputs.manPages == 'true'
|
||||
run: |
|
||||
echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install -y enchant git gcc imagemagick make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev
|
||||
apt-get install -y git/buster-backports
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ github.event.inputs.branch }}
|
||||
|
||||
|
||||
- id: changed-files
|
||||
if: github.event.inputs.manPages == 'true'
|
||||
name: Get Changed Files
|
||||
uses: dorny/paths-filter@v2
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
list-files: json
|
||||
filters: |
|
||||
docs:
|
||||
- doc/**
|
||||
|
||||
- name: Install Nox
|
||||
if: github.event.inputs.manPages == 'true'
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install nox
|
||||
|
||||
- name: Install Python Requirements
|
||||
if: github.event.inputs.manPages == 'true'
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run:
|
||||
nox --install-only --forcecolor -e 'docs-man(compress=False, update=True, clean=True)'
|
||||
|
||||
- name: Build Manpages
|
||||
if: github.event.inputs.manPages == 'true'
|
||||
env:
|
||||
SKIP_REQUIREMENTS_INSTALL: YES
|
||||
run: |
|
||||
nox --forcecolor -e 'docs-man(compress=False, update=True, clean=True)'
|
||||
|
||||
- name: Store Generated Documentation
|
||||
if: github.event.inputs.manPages == 'true'
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: salt-man-pages
|
||||
path: doc/_build/man
|
||||
|
||||
PullRequest:
|
||||
permissions:
|
||||
contents: write # for peter-evans/create-pull-request to create branch
|
||||
pull-requests: write # for peter-evans/create-pull-request to create a PR
|
||||
needs: [SaltChangelog, Manpages]
|
||||
name: Create Pull Request
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
container:
|
||||
image: python:3.8.6-slim-buster
|
||||
|
||||
steps:
|
||||
- name: Install System Deps
|
||||
run: |
|
||||
echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install -y enchant git gcc imagemagick make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev xz-utils
|
||||
apt-get install -y git/buster-backports
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ github.event.inputs.branch }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download salt-man-pages
|
||||
if: github.event.inputs.manPages == 'true'
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: salt-man-pages
|
||||
path: doc/man/
|
||||
|
||||
- name: Download salt changelog
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: salt-changelog
|
||||
|
||||
- name: Generate Release Notes and changelog
|
||||
run: |
|
||||
git apply rm_changelog_patch.txt
|
||||
rm rm_changelog_patch.txt
|
||||
sed -i '0,/^======/d' rn_changelog
|
||||
cat rn_changelog
|
||||
cat rn_changelog >> doc/topics/releases/${{ github.event.inputs.saltVersion }}.rst
|
||||
rm rn_changelog
|
||||
|
||||
- name: Create Pull Request for Release
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit-message: Add changelog and docs for ${{ github.event.inputs.saltVersion }} release
|
||||
title: 'Generate Salt Man Page and Changelog'
|
||||
body: >
|
||||
This PR is auto-generated by
|
||||
[create-pull-request](https://github.com/peter-evans/create-pull-request).
|
||||
branch: docs_${{ github.event.inputs.saltVersion }}
|
||||
base: ${{ github.event.inputs.branch }}
|
112
.github/workflows/scripts/label-and-assign.py
vendored
Normal file
112
.github/workflows/scripts/label-and-assign.py
vendored
Normal file
|
@ -0,0 +1,112 @@
|
|||
import argparse
|
||||
import datetime
|
||||
import json
|
||||
import operator
|
||||
import os
|
||||
import pathlib
|
||||
import random
|
||||
import sys
|
||||
|
||||
import github
|
||||
from github.GithubException import GithubException
|
||||
|
||||
CACHE_FILENAME = pathlib.Path(".cache", "last-user-assigned")
|
||||
|
||||
|
||||
def get_last_account_assigned():
|
||||
if not CACHE_FILENAME.exists():
|
||||
return
|
||||
|
||||
try:
|
||||
data = json.loads(CACHE_FILENAME.read_text())
|
||||
return data["username"]
|
||||
except (ValueError, KeyError):
|
||||
return
|
||||
|
||||
|
||||
def get_team_members(options):
|
||||
g = github.Github(os.environ["READ_ORG_TOKEN"])
|
||||
org = g.get_organization(options.org)
|
||||
team = org.get_team_by_slug(options.team)
|
||||
return sorted(list(team.get_members()), key=operator.attrgetter("login"))
|
||||
|
||||
|
||||
def get_triage_next_account(options):
|
||||
team_members = get_team_members(options)
|
||||
last_account_assigned = get_last_account_assigned()
|
||||
if last_account_assigned is None:
|
||||
return random.choice(team_members)
|
||||
|
||||
previous_account = None
|
||||
for member in team_members:
|
||||
if previous_account and previous_account.login == last_account_assigned:
|
||||
return member
|
||||
previous_account = member
|
||||
else:
|
||||
# The previously assigned account is not longer part of the team members
|
||||
# or the team was switched
|
||||
return random.choice(team_members)
|
||||
|
||||
|
||||
def label_and_assign_issue(options):
|
||||
g = github.Github(os.environ["GITHUB_TOKEN"])
|
||||
org = g.get_organization(options.org)
|
||||
print(f"Loaded Organization: {org.login}", file=sys.stderr, flush=True)
|
||||
repo = org.get_repo(options.repo)
|
||||
print(f"Loaded Repository: {repo.full_name}", file=sys.stderr, flush=True)
|
||||
issue = repo.get_issue(options.issue)
|
||||
print(f"Loaded Issue: {issue}", file=sys.stderr, flush=True)
|
||||
next_triage_account = get_triage_next_account(options)
|
||||
print(
|
||||
f"Next account up for triage: {next_triage_account.login}",
|
||||
file=sys.stderr,
|
||||
flush=True,
|
||||
)
|
||||
print(f"Adding label {options.label} to {issue}", file=sys.stderr, flush=True)
|
||||
issue.add_to_labels(options.label)
|
||||
print(
|
||||
f"Assigning {issue} to {next_triage_account.login}", file=sys.stderr, flush=True
|
||||
)
|
||||
issue.add_to_assignees(next_triage_account)
|
||||
CACHE_FILENAME.write_text(
|
||||
json.dumps(
|
||||
{
|
||||
"username": next_triage_account.login,
|
||||
"when": str(datetime.datetime.utcnow()),
|
||||
}
|
||||
)
|
||||
)
|
||||
print("Done!", file=sys.stderr, flush=True)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--org", required=True, help="The Github Organization")
|
||||
parser.add_argument("--team", required=True, help="The Organization Team Slug")
|
||||
parser.add_argument("--repo", required=True, help="The Organization Repository")
|
||||
parser.add_argument("--issue", required=True, type=int, help="The issue number")
|
||||
parser.add_argument("--label", required=True, help="The issue label to assign")
|
||||
|
||||
if not os.environ.get("GITHUB_TOKEN"):
|
||||
parser.exit(status=1, message="GITHUB_TOKEN environment variable not set")
|
||||
if not os.environ.get("READ_ORG_TOKEN"):
|
||||
parser.exit(status=1, message="READ_ORG_TOKEN environment variable not set")
|
||||
|
||||
options = parser.parse_args()
|
||||
print(
|
||||
f"Last assignment cache file path: {CACHE_FILENAME}",
|
||||
file=sys.stderr,
|
||||
flush=True,
|
||||
)
|
||||
if CACHE_FILENAME.parent.is_dir() is False:
|
||||
CACHE_FILENAME.parent.mkdir()
|
||||
|
||||
try:
|
||||
label_and_assign_issue(options)
|
||||
parser.exit(0)
|
||||
except GithubException as exc:
|
||||
parser.exit(1, message=str(exc))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
124
.github/workflows/scripts/pr-docstring-comments.py
vendored
Normal file
124
.github/workflows/scripts/pr-docstring-comments.py
vendored
Normal file
|
@ -0,0 +1,124 @@
|
|||
import argparse
|
||||
import os
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
import github
|
||||
from github.GithubException import GithubException
|
||||
|
||||
COMMENT_HEADER = "### Hi! I'm your friendly PR bot!"
|
||||
COMMENT_TEMPLATE = """\
|
||||
{comment_header}
|
||||
|
||||
You might be wondering what I'm doing commenting here on your PR.
|
||||
|
||||
**Yes, as a matter of fact, I am...**
|
||||
|
||||
I'm just here to help us improve the documentation. I can't respond to
|
||||
questions or anything, but what I *can* do, I do well!
|
||||
|
||||
**Okay... so what do you do?**
|
||||
|
||||
I detect modules that are missing docstrings or "CLI Example" on existing docstrings!
|
||||
When I was created we had a *lot* of these. The documentation for these
|
||||
modules need some love and attention to make Salt better for our users.
|
||||
|
||||
**So what does that have to do with my PR?**
|
||||
|
||||
I noticed that in this PR there are some files changed that have some of these
|
||||
issues. So I'm leaving this comment to let you know your options.
|
||||
|
||||
**Okay, what are they?**
|
||||
|
||||
Well, my favorite, is that since you were making changes here I'm hoping that
|
||||
you would be the most familiar with this module and be able to add some other
|
||||
examples or fix any of the reported issues.
|
||||
|
||||
**If I can, then what?**
|
||||
|
||||
Well, you can either add them to this PR or add them to another PR. Either way is fine!
|
||||
|
||||
**Well... what if I can't, or don't want to?**
|
||||
|
||||
That's also fine! We appreciate *all* contributions to the Salt Project. If you
|
||||
can't add those other examples, either because you're too busy, or unfamiliar,
|
||||
or you just aren't interested, we still appreciate the contributions that
|
||||
you've made already.
|
||||
|
||||
Whatever approach you decide to take, just drop a comment here letting us know!
|
||||
|
||||
<details>
|
||||
<summary>Detected Issues (click me)</summary>
|
||||
<pre>{issues_output}</pre>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
Thanks again!
|
||||
"""
|
||||
|
||||
|
||||
def get_previous_comments(pr):
|
||||
for comment in pr.get_issue_comments():
|
||||
if comment.user.login != "github-actions[bot]":
|
||||
# Not a comment made by this bot
|
||||
continue
|
||||
if not comment.body.startswith(COMMENT_HEADER):
|
||||
# This comment does not start with our header
|
||||
continue
|
||||
yield comment
|
||||
|
||||
|
||||
def comment_on_pr(options, issues_output):
|
||||
gh = github.Github(os.environ["GITHUB_TOKEN"])
|
||||
org = gh.get_organization(options.org)
|
||||
print(f"Loaded Organization: {org.login}", file=sys.stderr, flush=True)
|
||||
repo = org.get_repo(options.repo)
|
||||
print(f"Loaded Repository: {repo.full_name}", file=sys.stderr, flush=True)
|
||||
pr = repo.get_pull(options.issue)
|
||||
print(f"Loaded PR: {pr}", file=sys.stderr, flush=True)
|
||||
comment = pr.create_issue_comment(
|
||||
COMMENT_TEMPLATE.format(
|
||||
comment_header=COMMENT_HEADER, issues_output=issues_output
|
||||
)
|
||||
)
|
||||
new_comment_content = COMMENT_TEMPLATE.format(
|
||||
comment_header=COMMENT_HEADER, issues_output=issues_output
|
||||
)
|
||||
for comment in get_previous_comments(pr):
|
||||
if comment.body.strip() != new_comment_content.strip():
|
||||
# The content has changed.
|
||||
print(f"Deleting previous comment {comment}")
|
||||
comment.delete()
|
||||
|
||||
comment = pr.create_issue_comment(new_comment_content)
|
||||
print(f"Created Comment: {comment}")
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--org", required=True, help="The Github Organization")
|
||||
parser.add_argument("--repo", required=True, help="The Organization Repository")
|
||||
parser.add_argument("--issue", required=True, type=int, help="The issue number")
|
||||
parser.add_argument(
|
||||
"issues_output_path", metavar="ISSUES_OUTPUT_PATH", type=pathlib.Path
|
||||
)
|
||||
|
||||
if not os.environ.get("GITHUB_TOKEN"):
|
||||
parser.exit(status=1, message="GITHUB_TOKEN environment variable not set")
|
||||
|
||||
options = parser.parse_args()
|
||||
if not options.issues_output_path.is_file():
|
||||
parser.exit(1, message=f"The path {options.issues_output_path} is not a file")
|
||||
issues_output = options.issues_output_path.read_text().strip()
|
||||
if not issues_output:
|
||||
parser.exit(1, message=f"The file {options.issues_output_path} is empty")
|
||||
try:
|
||||
comment_on_pr(options, issues_output)
|
||||
parser.exit(0)
|
||||
except GithubException as exc:
|
||||
parser.exit(1, message=str(exc))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
56
.github/workflows/triage.yml
vendored
Normal file
56
.github/workflows/triage.yml
vendored
Normal file
|
@ -0,0 +1,56 @@
|
|||
name: New Issues Triage Assignment
|
||||
concurrency: 1
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
label-and-assign:
|
||||
permissions:
|
||||
actions: read # for dawidd6/action-download-artifact to query and download artifacts
|
||||
contents: read # for actions/checkout to fetch code
|
||||
issues: write
|
||||
pull-requests: read # for dawidd6/action-download-artifact to query commit hash
|
||||
name: Triage New Issue
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
pip install pygithub
|
||||
|
||||
- name: Download last assignment cache
|
||||
continue-on-error: true
|
||||
uses: dawidd6/action-download-artifact@v2
|
||||
with:
|
||||
workflow: triage.yml
|
||||
name: last-assignment
|
||||
path: .cache
|
||||
|
||||
- name: Label And Assign
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
READ_ORG_TOKEN: ${{ secrets.READ_ORG_TEAM_MEMBERS_ISSUE_TRIAGE }}
|
||||
run: |
|
||||
python .github/workflows/scripts/label-and-assign.py \
|
||||
--org ${{ github.repository_owner }} \
|
||||
--repo ${{ github.event.repository.name }} \
|
||||
--team team-triage \
|
||||
--label needs-triage \
|
||||
--issue ${{ github.event.issue.number }}
|
||||
|
||||
- name: Upload last assignment cache
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: last-assignment
|
||||
path: .cache
|
14
.github/workflows/twine-check.yml
vendored
14
.github/workflows/twine-check.yml
vendored
|
@ -2,6 +2,9 @@ name: Twine Check
|
|||
|
||||
on: [push, pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
Twine-Check:
|
||||
name: Run 'twine check' Against Salt
|
||||
|
@ -14,17 +17,18 @@ jobs:
|
|||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.8'
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ env.pythonLocation }}
|
||||
key: ${{ env.pythonLocation }}-${{ hashFiles('README.rst') }}-${{ hashFiles('.github/workflows/twine-check.yml') }}
|
||||
|
||||
- name: Install dependencies
|
||||
env:
|
||||
PIP_EXTRA_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
run: |
|
||||
pip install --upgrade pip setuptools wheel
|
||||
pip install twine>=3.4.1
|
||||
- name: Python setup
|
||||
|
||||
- name: Create Source Tarball
|
||||
run: |
|
||||
python3 setup.py sdist
|
||||
|
||||
- name: Twine check
|
||||
run: |
|
||||
python3 -m twine check dist/*
|
||||
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -35,6 +35,7 @@ Pipfile.lock
|
|||
/tests/cachedir/
|
||||
/tests/unit/templates/roots/
|
||||
/var/
|
||||
/venv/
|
||||
|
||||
# setuptools stuff
|
||||
*.egg-info
|
||||
|
@ -87,6 +88,7 @@ tests/unit/templates/roots
|
|||
|
||||
# Pycharm
|
||||
.idea
|
||||
venv/
|
||||
|
||||
# VS Code
|
||||
.vscode
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -10,8 +10,17 @@ DOCS_PATH = CODE_ROOT / "doc"
|
|||
TESTS_INTEGRATION_FILES_PATH = CODE_ROOT / "tests" / "integration" / "files"
|
||||
CHANGELOG_ENTRIES_PATH = CODE_ROOT / "changelog"
|
||||
CHANGELOG_LIKE_RE = re.compile(r"([\d]+)\.([a-z]+)$")
|
||||
CHANGELOG_EXTENSIONS = ("removed", "deprecated", "changed", "fixed", "added")
|
||||
CHANGELOG_ENTRY_RE = re.compile(r"[\d]+\.({})$".format("|".join(CHANGELOG_EXTENSIONS)))
|
||||
CHANGELOG_EXTENSIONS = (
|
||||
"removed",
|
||||
"deprecated",
|
||||
"changed",
|
||||
"fixed",
|
||||
"added",
|
||||
"security",
|
||||
)
|
||||
CHANGELOG_ENTRY_RE = re.compile(
|
||||
r"([\d]+|(CVE|cve)-[\d]{{4}}-[\d]+)\.({})$".format("|".join(CHANGELOG_EXTENSIONS))
|
||||
)
|
||||
|
||||
|
||||
def check_changelog_entries(files):
|
||||
|
|
|
@ -123,7 +123,6 @@ disable=R,
|
|||
do-not-assign-a-lambda-expression-use-a-def,
|
||||
3rd-party-local-module-not-gated,
|
||||
pep8-reserved-keywords,
|
||||
str-format-in-logging,
|
||||
import-outside-toplevel,
|
||||
deprecated-method,
|
||||
repr-flag-used-in-string,
|
||||
|
@ -681,10 +680,13 @@ allowed-3rd-party-modules=msgpack,
|
|||
libcloud,
|
||||
zmq,
|
||||
pytest,
|
||||
_pytest,
|
||||
attr,
|
||||
setuptools,
|
||||
pytestsalt,
|
||||
saltfactories,
|
||||
psutil,
|
||||
pytestshellutils,
|
||||
distro,
|
||||
os,
|
||||
re,
|
||||
|
|
719
CHANGELOG.md
719
CHANGELOG.md
|
@ -7,21 +7,646 @@ Versions are `MAJOR.PATCH`.
|
|||
|
||||
# Changelog
|
||||
|
||||
Salt 3003.1 (2021-04-20)
|
||||
Salt 3005.1 (2022-09-26)
|
||||
========================
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Fix arch parsing issue in apt source files (#62247)
|
||||
- Fixed parsing CDROM apt sources (#62474)
|
||||
- Use str() method instead of repo_line for when python3-apt is installed or not in aptpkg.py. (#62546)
|
||||
- Remove the connection_timeout from netmiko_connection_args before netmiko_connection_args is added to __context__["netmiko_device"]["args"] which is passed along to the Netmiko library. (#62547)
|
||||
- fixes #62553 by checking for disabled master_type before starting master connection and skipping it if set. (#62553)
|
||||
- Fix runas with cmd module when using the onedir bundled packages (#62565)
|
||||
- Fix the Pyinstaller hooks to preserve the environment if None is passed. (#62567, #62628)
|
||||
- pkgrepo.managed sets wrong permissions on keys installed to /etc/apt/keyring (#62569)
|
||||
- pkgrepo.managed creates zero byte gpg files when dearmoring contents to the same filename (#62570)
|
||||
- Ensure default values for IPC Buffers are correct type (#62591)
|
||||
- Fix a hang on salt-ssh when using sudo. (#62603)
|
||||
- Renderers now have access to the correct set of salt functions. (#62610, #62620)
|
||||
- Fix including Jinja template from absolute path (#62611)
|
||||
- include jmespath in package requirements (#62613)
|
||||
- Fix pkgrepo.managed signed-by in test=true mode (#62662)
|
||||
- Ensure the status of the service is captured when the beacon function is called, even when the event is not being emitted. (#62675)
|
||||
- The sub proxies controlled by Deltaproxy need to have their own req_channel otherwise there are timeout exceptions when the __master_req_channel_payload is fired and reacted on. (#62708)
|
||||
|
||||
|
||||
Salt 3005 (2022-08-22)
|
||||
======================
|
||||
|
||||
Removed
|
||||
-------
|
||||
|
||||
- Removed support for Ubuntu 16.04 (#59913)
|
||||
- Deprecating and removing salt-unity. (#56055)
|
||||
- Removed support for macos mojave (#61130)
|
||||
- Removed `salt.utils.MultiprocessingProcess` and `salt.utils.SignalHandlingMultiprocessingProcess`. Please use `salt.utils.Process` and `salt.utils.SignalHandlingProcess` instead. (#61573)
|
||||
- Remove the grains.get_or_set_hash function. Please reference pillar and SDB documentation for secure ways to manage sensitive information. Grains are an insecure way to store secrets. (#61691)
|
||||
- Removed the `telnet_port`, `serial_type` and `console` parameters in salt/modules/virt.py. Use the `serials` and `consoles` parameters instead. Use the `serials` parameter with a value like ``{{{{'type': 'tcp', 'protocol': 'telnet', 'port': {}}}}}`` instead and a similar `consoles` parameter. (#61693)
|
||||
- Remove remove_lock in zypperpkg.py in favor of unhold.
|
||||
Remove add_lock in zypperpkg.py in favor of hold. (#61694)
|
||||
- Removed support for old-style Windows Group Policy names
|
||||
Recommended policy names will be displayed in comments (#61696)
|
||||
- Remove the feature flag feature.enable_slsvars_fixes and enable the fixes for `sls_path`, `tpl_file`, and `tpldir` by default.
|
||||
Enabling this behavior by default will fix the following:
|
||||
- tpldir: If your directory name and your SLS file name are the same tpldir used to return a ., now it returns the correct directory name.
|
||||
- slspath,slsdotpath,slscolonpath,sls_path: If an init.sls file is accessed by its explicit name path.to.init instead of path.to, init shows up as a directory for in various sls context parameters, now it will only show as a file.
|
||||
- tplfile: When using tplfile in a SLS file in the root directory of file roots it returns empty. Now it returns the filename. (#61697)
|
||||
- Remove SaltMessageServer.shutdown in favor of close.
|
||||
Remove LoadBalancerWorker.stop in favor of close. (#61698)
|
||||
- Removed the PyObjC dependency.
|
||||
|
||||
This addresses problems with building a one dir build for macOS.
|
||||
It became problematic because depending on the macOS version, it pulls different dependencies, and we would either have to build a macos onedir for each macOS supported release, or ship a crippled onedir(because it would be tied to the macOS version where the onedir was built).
|
||||
Since it's currently not being used, it's removed. (#62432)
|
||||
|
||||
|
||||
Deprecated
|
||||
----------
|
||||
|
||||
- In etcd_util, the recursive kwarg in the read and delete methods has been deprecated in favor of recurse for both client versions.
|
||||
In etcd_util, the index kwarg in the watch method has been deprecated in favor of start_revision for both client versions.
|
||||
In etcd_util, the waitIndex kwarg in the read method has been deprecated in favor of start_revision for both client versions.
|
||||
The etcd API v2 implementation has been deprecated in favor of etcd API v3. (#60325)
|
||||
- Deprecated transport kwarg inside salt.utils.event.get_event (#61275)
|
||||
- Deprecated netmiko_conn and pyeapi_conn in napalm_mod.py as these function should not be called from the CLI (#61566)
|
||||
- Deprecate all Azure cloud modules (#62183)
|
||||
- Deprecated ``defaults`` and ``preserve_context`` for ``salt.utils.functools.namespaced_function``.
|
||||
Additionally, the behavior when ``preserve_namespace=True`` was passed is now the default in order not to require duplicating imports on the modules that are namespacing functions. (#62272)
|
||||
- Deprecated the cassandra module in favor of the cassandra_cql module/returner. (#62327)
|
||||
|
||||
|
||||
Changed
|
||||
-------
|
||||
|
||||
- alternatives: Do not access /var/lib/dpkg/alternatives directly (#58745)
|
||||
- Enhance logging when there are errors at loading beacons (#60402)
|
||||
- Updated mysql cache module to also store updated timestamp, making it consistent with default cache module. Users of mysql cache should ensure database size before updating, as ALTER TABLE will add the timestamp column. (#61081)
|
||||
- Changed linux_shadow to test success of commands using cmd.retcode instead of cmd.run (#61932)
|
||||
- `zabbix.user_get` returns full user info with groups and medias
|
||||
`zabbix.user_addmedia` returns error for Zabbix 4.0+ due to `user.addmedia` method removal
|
||||
`zabbix.user_deletemedia` returns error for Zabbix 4.0+ due to `user.deletemedia` method removal (#62012)
|
||||
- "Sign before ending the testrun in x509.create_certificate" (#62100)
|
||||
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Import salt.utils.azurearm instead of using __utils__ from loader in azure cloud. This fixes an issue where __utils__ would become unavailable when we are using the ThreadPool in azurearm. (#59744)
|
||||
- Use contextvars libary from site-packages if it is intalled. Fixes salt ssh for targets with python <=3.6 (#59942)
|
||||
- Fix salt-ssh using sudo with a password (#8882)
|
||||
- Fix SSH password regex to not search for content after password:. (#25721)
|
||||
- Addressing a few issues when having keep_symlinks set to True with file.recurse. Also allow symlinks that are outside the salt fileserver root to be discoverable as symlinks when fileserver_followsymlinks is set to False. (#29562)
|
||||
- serialize to JSON only non string objects. (#35215)
|
||||
- Fix archive.extracted doesn't set user/group ownership correctly (#38605)
|
||||
- Make sys.argspec work on functions with annotations (#48735)
|
||||
- Fixed pdbedit.list_users with Samba 4.8 (#49648)
|
||||
- Fixes a scenario where ipv6 is enabled but the master is configured as an ipv4 IP address. (#49835)
|
||||
- Ensure that NOTIFY_SOCKET is not passed to child processes created with cmdmod unless it's set explicitly for such call. (#50851)
|
||||
- remove escaping of dbname in mysql.alter_db function. (#51559)
|
||||
- Fix runit module failing to find service if it is not symlinked. (#52759)
|
||||
- Changed manage.versions to report minions offline if minion call fails. (#53513)
|
||||
- Fixed events stream from /events endpoint not halting when auth token has expired. (#53742)
|
||||
- Fixed user.present which was breaking when updating workphone,homephone, fullname and "other" fields in case int was passed instead of string (#53961)
|
||||
- Fix error in webutil state module when attempting to grep a file that does not exist. (#53977)
|
||||
- Fixed ability to modify the "Audit: Force audit policy subcategory settings..." policy (#54301)
|
||||
- Fix timeout handling in netapi/saltnado. (#55394)
|
||||
- Fixing REST auth so that we actually support using ACLs from the REST server like we said in the documentation. (#55654)
|
||||
- Salt now correctly handles macOS after Py3.8 where python defaults to spawn instead of fork. (#55847)
|
||||
- Factor out sum and sorting of permissions into separate functions.
|
||||
Additionally, the same logic was applied to the rest_cherrypy netapi (#56495)
|
||||
- Display packages that are marked NoRemove in pkg.list_pkgs for Windows platforms (#56864)
|
||||
- Attempt to fix 56957 by detecting the broken recusion and stopping it. (#56957)
|
||||
- Fixed bytes vs. text issue when using sqlite for sdb backend. (#57133)
|
||||
- Ensure test is added to opts when using the state module with salt-ssh. (#57144)
|
||||
- Fixed RuntimeError OrderedDict mutated in network.managed for Debian systems. (#57721)
|
||||
- Improved the multiprocessing classes to better handle spawning platforms (#57742)
|
||||
- Config options are enforced according to config type (#57873)
|
||||
- fixed 57992 fix multi item kv v2 items read. (#57992)
|
||||
- Fixed thread leak during FQDN lookup when DNS entries had malformed PTR records, or other similar issues. (#58141)
|
||||
- Remove unnecessary dot in template that cause the bridge interface to fail on debian. Fixes #58195 (#58195)
|
||||
- update salt.module.schedule to check the job_args and job_kwargs for valid formatting. (#58329)
|
||||
- Allowe use of `roster` in salt.function state when using the SSH client. (#58662)
|
||||
- Detect new and legacy styles of calling module.run and support them both. (#58763)
|
||||
- Clean repo uri before checking if it's present, avoiding ghost change. (#58807)
|
||||
- Fix error "'__opts__' is not defined" when using the boto v2 modules (#58934)
|
||||
- hgfs: fix bytes vs str issues within hgfs. (#58963)
|
||||
- Fixes salt-ssh error when targetting IPs or hostnames directly. (#59033)
|
||||
- Allow for multiple configuration entries with keyword strict_config=False on yum-based systems (#59090)
|
||||
- Fixed error when running legacy code in winrepo.update_git_repos (#59101)
|
||||
- Clarify the persist argument in the scheduler module. Adding code in the list function to indicate if the schedule job is saved or not. (#59102)
|
||||
- Swap ret["retcode"] for ret.get("retcode") in the event that there is no retcode, eg. when a function is not passed with a module. (#59331)
|
||||
- Fix race condition when caching vault tokens (#59361)
|
||||
- The ssh module now accepts all ssh public key types as of openssh server version 8.7. (#59429)
|
||||
- Set default transport and port settings for Napalm NXOS, if not set. (#59448)
|
||||
- Use __salt_system_encoding__ when retrieving keystore certificate SHA1 str (#59503)
|
||||
- Fix error being thrown on empty flags list given to file.replace (#59554)
|
||||
- Update url for ez_setup.py script in virtualenv_mod.py (#59604)
|
||||
- Changed yumpkg module to normalize versions to strings when they were ambiguously floats (example version=3005.0). (#59705)
|
||||
- Fix pillar_roots.write on subdirectories broken after CVE-2021-25282 patch. (#59935)
|
||||
- Improved performance of zfs.filesystem_present and zfs.volume_present. When
|
||||
applying these states, only query specified ZFS properties rather than all
|
||||
properties. (#59970)
|
||||
- Fixed highstate outputter not displaying with salt.function in orchestration when module returns a dictionary. (#60029)
|
||||
- Update docs where python-dateutil is required for schedule. (#60070)
|
||||
- Send un-parsed username to LookupAccountName function (#60076)
|
||||
- Fix ability to set propagation on a folder to "this_folder_only" (#60103)
|
||||
- Fix name attribute access error in spm. (#60106)
|
||||
- Fix zeromq stream.send exception message (#60228)
|
||||
- Exit gracefully on ctrl+c. (#60242)
|
||||
- Corrected import statement for redis_cache in cluster mode. (#60272)
|
||||
- loader: Fix loading grains with annotations (#60285)
|
||||
- fix docker_network.present when com.docker.network.bridge.name is being used as the unixes can not have a bridge of the same name (#60316)
|
||||
- Fix exception in yumpkg.remove for not installed package on calling pkg.remove or pkg.removed (#60356)
|
||||
- Batch runs now return proper retcodes in a tuple of the form (result, retcode) (#60361)
|
||||
- Fixed issue with ansible roster __virtual__ when ansible is not installed. (#60370)
|
||||
- Fixed error being thrown when None was passed as src/defaults or dest to defaults.update and defaults.merge (#60431)
|
||||
- Allow for additional options for xmit hash policy in mode 4 NIC bonding on Redhat (#60583)
|
||||
- Properly detect VMware grains on Windows Server 2019+ (#60593)
|
||||
- Allow for minion failure to respond to job sent in batch mode (#60724)
|
||||
- The mac assistive execution module no longer shells out to change the database. (#60819)
|
||||
- Fix regression in win_timezone.get_zone which failed to resolve specific timezones that begin or end with d/s/t/o/f/_ characters (#60829)
|
||||
- The TCP transport resets it's unpacker on stream disconnects (#60831)
|
||||
- Moving the call to the validate function earlier to ensure that beacons are in the right format before we attempt to do anything to the configuration. Adding a generic validation to ensure the beacon configuration is in the wrong format when a validation function does not exist. (#60838)
|
||||
- Update the mac installer welcome and conclusion page, add docs for the salt-config tool (#60858)
|
||||
- Fixed external node classifier not callable due to wrong parameter (#60872)
|
||||
- Adjust Debian/Ubuntu package use of name 'ifenslave-2.6' to 'ifenslave' (#60876)
|
||||
- Clear and update the Pillar Cache when running saltutil.refresh_pillar. This only affects users
|
||||
that have `pillar_cache` set to True. If you do not want to clear the cache you can pass the kwarg
|
||||
`clean_cache=False` to `saltutil.refresh_pillar`. (#60897)
|
||||
- Handle the situation when apt repo lines have or do not have trailing slashes properly. (#60907)
|
||||
- Fixed Python 2 syntax for Python 3, allow for view objects returned by dictionary keys() function (#60909)
|
||||
- Fix REST CherryPY append the default permissions every request (#60955)
|
||||
- Do not consider "skipped" targets as failed for "ansible.playbooks" states (#60983)
|
||||
- Fix behavior for internal "_netlink_tool_remote_on" to filter results based on requested end (#61017)
|
||||
- schedule.job_status module: Convert datetime objects into formatted strings (#61043)
|
||||
- virt: don't crash if console doesn't have service or type attribute (#61054)
|
||||
- Fixed conflict between importlib_metada from Salt and importlib.metadata from Python 3.10 (#61062)
|
||||
- sys.argspec now works with pillar.get, vault.read_secret, and vault.list_secrets (#61084)
|
||||
- Set virtual grain on FreeBSD EC2 instances (#61094)
|
||||
- Fixed v3004 windows minion failing to open log file at C:\ProgramData\Salt Project\Salt\var\log\salt\minion (#61113)
|
||||
- Correct returned result to False when an error exception occurs for pip.installed (#61117)
|
||||
- fixed extend being too strict and wanting the system_type to exist when it is only needed for requisites. (#61121)
|
||||
- Fixed bug where deserialization in script engine would throw an error after all output was read. (#61124)
|
||||
- Adding missing import for salt.utils.beacons into beacons that were updated to use it. (#61135)
|
||||
- added exception catch to salt.utils.vt.terminal.isalive(). (#61160)
|
||||
- Re-factor transport to make them more plug-able (#61161)
|
||||
- Remove max zeromq pinned version due to issues on FreeBSD (#61163)
|
||||
- Fixing deltaproxy code to handle the situation where the control proxy is configured to control a proxy minion whose pillar data could not be loaded. (#61172)
|
||||
- Prevent get_tops from performing a Set operation on a List (#61176)
|
||||
- Make "state.highstate" to acts on concurrent flag.
|
||||
Simplify "transactional_update" module to not use SSH wrapper and allow more flexible execution (#61188)
|
||||
- Fix a failure with salt.utils.vault.make_request when namespace is not defined in the connection. (#61191)
|
||||
- Fix race condition in `salt.utils.verify.verify_env` and ignore directories starting with dot (#61192)
|
||||
- LGPO: Search for policies in a case-sensitive manner first, then fall back to non case-sensitive names (#61198)
|
||||
- Fixed state includes in dynamic environments (#61200)
|
||||
- Minimize the number of network connections minions to the master (#61247)
|
||||
- Fix salt-call event.event with pillar or grains (#61252)
|
||||
- Fixed failing dcs.compile_config where a successful compile errored with `AttributeError: 'list' object has no attribute 'get'`. (#61261)
|
||||
- Make the salt.utils.win_dacl.get_name() function include the "NT Security" prefix for Virtual Accounts. Virtual Accounts can only be added with the fully qualified name. (#61271)
|
||||
- Fixed tracebacks and print helpful error message when proxy_return = True but no platform or primary_ip set in NetBox pillar. (#61277)
|
||||
- Ensure opts is included in pack for minion_mods and config loads opts from the named_context. (#61297)
|
||||
- Added prefix length info for IPv6 addresses in Windows (#61316)
|
||||
- Handle MariaDB 10.5+ SLAVE MONITOR grant (#61331)
|
||||
- Fix secondary ip addresses being added to ip4_interfaces and ip6_interfaces at the same time (#61370)
|
||||
- Do not block the deltaproxy startup. Wrap the call to the individual proxy initialization functions in a try...except, catching the exception, logging an error and moving onto the next proxy minion. (#61377)
|
||||
- show_instance of hetzner cloud provider should enforce an action like the other ones (#61392)
|
||||
- Fix Hetzner Cloud config loading mechanism (#61399)
|
||||
- Sets correctly the lvm grain even when lvm's command execution outputs a WARNING (#61412)
|
||||
- Use net instead of sc in salt cloud when restarting the salt service (#61413)
|
||||
- Fix use_etag support in fileclient by removing case sensitivity of expected header (#61440)
|
||||
- Expand environment variables in the root_dir registry key (#61445)
|
||||
- Use salt.utils.path.readlink everywhere instead of os.readlink (#61458)
|
||||
- Fix state_aggregate minion option not respected (#61478)
|
||||
- Fixed wua.installed and wua.uptodate to return all changes, failures, and supersedences (#61479)
|
||||
- When running with test=True and there are no changes, don't show that there are changes. (#61483)
|
||||
- Fix issue with certutil when there's a space in the path to the certificate (#61494)
|
||||
- Fix cmdmod not respecting config for saltenv (#61507)
|
||||
- Convert Py 2'isms to Python 3, and add tests for set_filesystems on AIX (#61509)
|
||||
- Fix tracebacks caused by missing block device type and wrong mode used for gzip.open while calling inspector.export (#61530)
|
||||
- win_wua: Titles no longer limited to 40 characters (#61533)
|
||||
- Fixed error when using network module on RHEL 8 due to the name of the service changing from "network" to "NetworkManager". (#61538)
|
||||
- Allow symlink to be created even if source is missing on Windows (#61544)
|
||||
- Print jinja error context on `UndefinedError`. Previously `jinja2.exceptions.UndefinedError` resulted in a `SaltRenderError` without source file context, unlike all of the other Jinja exceptions handled in `salt/utils/templates.py`. (#61553)
|
||||
- Fix uptime on AIX systems when less than 24 hours (#61557)
|
||||
- Fix issue with state.show_state_usage when a saltenv is not referenced in any topfile (#61614)
|
||||
- Making the retry state system feature available when parallel is set to True. (#61630)
|
||||
- modules/aptpkg.SourceEntry: fix parsing lines with arbitrary comments in case HAS_APT=False (#61632)
|
||||
- Fix file.comment incorrectly reports changes in test mode (#61662)
|
||||
- Fix improper master caching of file listing in multiple dynamic environments (#61738)
|
||||
- When configured beacons are empty write an empty beacon configuration file. (#61741)
|
||||
- Fix file.replace updating mtime with no changes (#61743)
|
||||
- Fixed etcd_return being out of sync with the underlying etcd_util. (#61756)
|
||||
- Fixing items, values, and keys functions in the data module. (#61812)
|
||||
- Ensure that `salt://` URIs never contain backslashes, converting them to forward slashes instead. A specific situation to handle is caching files on Windows minions, where Jinja relative imports introduce a backslash into the path. (#61829)
|
||||
- Do not raise a UnicodeDecodeError when pillar cache cannot decode binary data. (#61836)
|
||||
- Don't rely on ``importlib.metadata``, even on Py3.10, use ``importlib_metadata`` instead. (#61839)
|
||||
- Fix the reporting of errors for file.directory in test mode (#61846)
|
||||
- Update Markup and contextfunction imports for jinja versions >=3.1. (#61848)
|
||||
- Update states.chef for version 16.x and 17.x Chef Infra Client output. (#61891)
|
||||
- Fixed some whitespace and ``pathlib.Path`` issues when not using the sytem ``aptsources`` package. (#61936)
|
||||
- fixed error when using backslash literal in file.replace (#61944)
|
||||
- Fix an issue where under spawning platforms, one could exhaust the available multiprocessing semaphores. (#61945)
|
||||
- Fix salt-cloud sync_after_install functionality (#61946)
|
||||
- Ensure that `common_prefix` matching only occurs if a directory name is identified (in the `archive.list` execution module function, which affects the `archive.extracted` state). (#61968)
|
||||
- When states are running in parallel, ensure that the total run time produced by the highstate outputter takes that into account. (#61999)
|
||||
- Temporary logging is now shutdown when logging has been configured. (#62005)
|
||||
- modules/lxd.FilesManager: fix memory leak through pylxd.modules.container.Container.FilesManager (#62006)
|
||||
- utils/jinja.SaltCacheLoader: fix leaking SaltCacheLoader through atexit.register (#62007)
|
||||
- Fixed errors on calling `zabbix_user.admin_password_present` state, due to changed error message in Zabbix 6.0
|
||||
Fixed `zabbix.host_update` not mapping group ids list to list of dicts in format `[{"groupid": groupid}, ...]`
|
||||
Fixed `zabbix.user_update` not mapping usergroup id list to list of dicts in format `[{"usrgrpid": usrgrpid}, ...]` (#62012)
|
||||
- utils/yamlloader and yamlloader_old: fix leaking DuplicateKeyWarning through a warnings module (#62021)
|
||||
- Fix cache checking for Jinja templates (#62042)
|
||||
- Fixed salt.states.file.managed() for follow_symlinks=True and test=True (#62066)
|
||||
- Stop trigering the `GLIBC race condition <https://sourceware.org/bugzilla/show_bug.cgi?id=19329>`_ when parallelizing the resolution of the fqnds. (#62071)
|
||||
- Fix useradd functions hard-coded relative command name (#62087)
|
||||
- Fix #62092: Catch zmq.error.ZMQError to set HWM for zmq >= 3.
|
||||
|
||||
Run ``git show 0be0941`` for more info. (#62092)
|
||||
- Allow emitatstartup to work when delay option is setup. (#62095)
|
||||
- Fix broken relative jinja includes in local mode bug introduced in #62043 (#62117)
|
||||
- Fix broken file.comment functionality introduced in #62045 (#62121)
|
||||
- Fixed an incompatibility preventing salt-cloud from deploying VMs on Proxmox VE 7 (#62154)
|
||||
- Fix sysctl functions hard-coded relative command name (#62164)
|
||||
- All of Salt's loaders now accept ``loaded_base_name`` as a keyword argument, allowing different namespacing the loaded modules. (#62186)
|
||||
- Only functions defined on the modules being loaded will be added to the lazy loader, functions imported from other modules, unless they are properly namespaced, are not included. (#62190)
|
||||
- Fixes issue in postgresql privileges detection: privileges on views were never retrieved and always recreated. (#57690)
|
||||
- Fix service.enabled error for unavailable service in test mode (#62258)
|
||||
- Fix variable reuse causing requisite_in problems (#62264)
|
||||
- Adding -G option to pkgdd cmd_prefix list when current_zone_only is True. (#62206)
|
||||
- Don't expect ``lsof`` to be installed when trying check which minions are connected. (#62303)
|
||||
- Added a pyinstaller hook that traverses the python used on the tiamat package to add all possible modules as hidden imports. (#62362)
|
||||
- Fix use of random shuffle and sample functions as Jinja filters (#62372)
|
||||
- All of the requirements provided in the requirements files are now included. The job of evaluating platform markers is not Salt's it's pip's. (#62392)
|
||||
- Update all platforms to use pycparser 2.21 or greater for Py 3.9 or higher, fixes fips fault with openssl v3.x (#62400)
|
||||
- Due to changes in the Netmiko library for the exception paths, need to check the version of Netmiko python library and then import the exceptions from different locations depending on the result. (#62405)
|
||||
- Fixed urlparse typo in rpmbuild_pkgbuild.py (#62442)
|
||||
- Fixing changes dict in pkg state to be consistent when installing and test=True. (#60995)
|
||||
- Use fire_event_async when expecting a coroutine (#62453)
|
||||
- Fixes import error under windows. (#62459)
|
||||
- account for revision number in formulas to account for difference between bottle and formula (#62466)
|
||||
- Fixed stacktrace on Windows when running pkg.list_pkgs (#62479)
|
||||
- Update sanitizing masking for Salt SSH to include additional password like strings. (#62483)
|
||||
- Fixes an issue where the minion could not connect to a master after 2 failed attempts (#62489)
|
||||
|
||||
|
||||
Added
|
||||
-----
|
||||
|
||||
- Added ability to request VPC peering connections in different AWS regions (boto_vpc). (#50394)
|
||||
- Added event return capability to Splunk returner (#50815)
|
||||
- Added allow downgrades support to apt upgrade (#52977)
|
||||
- added new grain for metadata to handle googles metadata differences (#53223)
|
||||
- Added win_shortcut execution and state module that does not prepend the current working directory to paths. Use shortcut.create and shortcut.present instead of file.shortcut. (#53706)
|
||||
- Add __env__ substitution inside file and pillar root paths (#55747)
|
||||
- Added support cpu hot add/remove, memory hot add, and nested virtualization to VMware salt-cloud driver. (#56144)
|
||||
- Add a consul state module with acl_present and acl_absent functions. (#58101)
|
||||
- Added restconf module/states/proxy code for network device automation (#59006)
|
||||
- Adds the ability to get version information from a file on Windows systems (#59702)
|
||||
- Add aptkey=False kwarg option to the aptpkg.py module and pkgrepo state. Apt-key is on the path to be deprecated. This will allow users to not use apt-key to manage the repo keys. It will set aptkey=False automatically if it does not detect apt-key exists on the machine. (#59785)
|
||||
- Added "Instant Clone" feature in the existing VMware Cloud module (#60004)
|
||||
- Added support for etcd API v3 (#60325)
|
||||
- Added `pkg.held` and `pkg.unheld` state functions for Zypper, YUM/DNF and APT. Improved `zypperpkg.hold` and `zypperpkg.unhold` functions. (#60432)
|
||||
- Added suse_ip module allowing to manage network interfaces on SUSE based Linux systems (#60702)
|
||||
- Support querying for JSON data in SQL external pillar (#60905)
|
||||
- Added support for yum and dnf on AIX (#60912)
|
||||
- Added percent success/failure of state runs in highstate summary output via new state_output_pct option (#60990)
|
||||
- Add support for retrieve IP-address from qemu agent by Salt-cloud on Proxmox (#61146)
|
||||
- Added new shortcut execution and state module to better handle UNC shortcuts and to test more thoroughly (#61170)
|
||||
- added yamllint utils module and yaml execution modules (#61182)
|
||||
- Add "--no-return-event" option to salt-call to prevent sending return event back to master. (#61188)
|
||||
- Add Etag support for file.managed web sources (#61270)
|
||||
- Adding the ability to add, delete, purge, and modify Salt scheduler jobs when the Salt minion is not running. (#61324)
|
||||
- Added a force option to file.symlink to overwrite an existing symlink with the same name (#61326)
|
||||
- `gpg_decrypt_must_succeed` config to prevent gpg renderer from failing silently (#61418)
|
||||
- Do not load a private copy of `__grains__` and `__salt__` for the sentry log handler if it is disabled. (#61484)
|
||||
- Add Jinja filters for itertools functions, flatten, and a state template workflow (#61502)
|
||||
- Add feature to allow roll-up of duplicate IDs with different names in highstate output (#61549)
|
||||
- Allow cp functions to derive saltenv from config if not explicitly set (#61562)
|
||||
- Multiprocessing logging no longer uses multiprocessing queues which penalized performance.
|
||||
|
||||
Instead, each new process configures the terminal and file logging, and also any external logging handlers configured. (#61629)
|
||||
- Add a function to the freezer module for comparison of packages and repos in two frozen states (#61682)
|
||||
- Add grains_refresh_pre_exec option to allow grains to be refreshed before any operation (#61708)
|
||||
- Add possibility to pass extra parameters to salt-ssh pre flight script with `ssh_pre_flight_args` (#61715)
|
||||
- Add Etag support for archive.extracted web sources (#61763)
|
||||
- Add regex exclusions, full path matching, symlink following, and mtime/ctime comparison to file.tidied (#61823)
|
||||
- Add better handling for unit abbreviations and large values to salt.utils.stringutils.human_to_bytes (#61831)
|
||||
- Provide PyInstaller hooks that provide some runtime adjustments when Salt is running from a Tiamat(PyInstaller) bundled package. (#61864)
|
||||
- Add configurable tiamat pip pypath location (#61937)
|
||||
- Add CNAME record support to the dig exec module (#61991)
|
||||
- Added support for changed user object in Zabbix 5.4+
|
||||
Added compatibility with Zabbix 4.0+ for `zabbix.user_getmedia` method
|
||||
Added support for setting medias in `zabbix.user_update` for Zabbix 3.4+ (#62012)
|
||||
- Add ignore_missing parameter to file.comment state (#62044)
|
||||
- General improvements on the "ansiblegate" module:
|
||||
* Add "ansible.targets" method to gather Ansible inventory
|
||||
* Add "ansible.discover_playbooks" method to help collecting playbooks
|
||||
* Fix crash when running Ansible playbooks if ansible-playbook CLI output is not the expected JSON.
|
||||
* Fix issues when processing inventory and there are groups with no members.
|
||||
* Allow new types of targets for Ansible roster (#60056)
|
||||
- Add sample and shuffle functions from random (#62225)
|
||||
- Add "<tiamat> python" subcommand to allow execution or arbitrary scripts via bundled Python runtime (#62381)
|
||||
|
||||
|
||||
Salt 3004.2 (2022-05-12)
|
||||
========================
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Expand environment variables in the root_dir registry key (#61445)
|
||||
- Update Markup and contextfunction imports for jinja versions >=3.1. (#61848)
|
||||
- Fix bug in tcp transport (#61865)
|
||||
- Make sure the correct key is being used when verifying or validating communication, eg. when a Salt syndic is involved use syndic_master.pub and when a Salt minion is involved use minion_master.pub. (#61868)
|
||||
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- Fixed PAM auth to reject auth attempt if user account is locked. (cve-2022-22967)
|
||||
|
||||
|
||||
Salt 3004.1 (2022-02-16)
|
||||
========================
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- Sign authentication replies to prevent MiTM (cve-2022-22935)
|
||||
- Prevent job and fileserver replays (cve-2022-22936)
|
||||
- Sign pillar data to prevent MiTM attacks. (cve-2202-22934)
|
||||
- Fixed targeting bug, especially visible when using syndic and user auth. (CVE-2022-22941) (#60413)
|
||||
- Fix denial of service in junos ifconfig output parsing.
|
||||
|
||||
|
||||
Salt 3004 (2021-10-11)
|
||||
======================
|
||||
|
||||
Removed
|
||||
-------
|
||||
|
||||
- Removed the deprecated glance state and execution module in favor of the glance_image
|
||||
state module and the glanceng execution module. (#59079)
|
||||
- Removed support for Ubuntu 16.04 (#59869)
|
||||
- Removed the deprecated support for ``gid_from_name`` from the ``user`` state module (#60565)
|
||||
- Removed deprecated virt.migrate_non_shared, virt.migrate_non_shared_inc, ssh from virt.migrate, and python2/python3 args from salt.utils.thin.gen_min and .gen_thin (#60893)
|
||||
|
||||
|
||||
Deprecated
|
||||
----------
|
||||
|
||||
- The _ext_nodes alias to the master_tops function was added back in 3004 to maintain backwards compatibility with older supported versions. This alias will now be removed in 3006. This change will break Master and Minion communication compatibility with Salt minions running versions 3003 and lower. (#60980)
|
||||
- utils/boto3_elasticsearch is no longer needed (#59882)
|
||||
- Changed "manufacture" grain to "manufacturer" for Solaris on SPARC to unify the name across all platforms. The old "manufacture" grain is now deprecated and will be removed in Sulfur (#60511)
|
||||
- Deprecate `salt.payload.Serial` (#60953)
|
||||
|
||||
|
||||
Changed
|
||||
-------
|
||||
|
||||
- Changed nginx.version to return version without `nginx/` prefix. (#57111)
|
||||
- Updated Slack webhook returner to support event returns on salt-master (#57182)
|
||||
- Parsing Epoch out of version during pkg remove, since yum can't handle that in all of the cases. (#57881)
|
||||
- Add extra onfail req check in the state engine to allow onfail to be used with onchanges and other reqs in the same state (#59026)
|
||||
- Changed the default character set used by `utils.pycrypto.secure_password()` to include symbols and implemented arguments to control the used character set. (#59486)
|
||||
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Set default 'bootstrap_delay' to 0 (#61005)
|
||||
- Fixed issue where multiple args to netapi were not preserved (#59182)
|
||||
- Handle all repo formats in the aptpkg module. (#60971)
|
||||
- Do not break master_tops for minion with version lower to 3003
|
||||
This is going to be removed in Salt 3006 (Sulfur) (#60980)
|
||||
- Reverting changes in PR #60150. Updating installed and removed functions to return changes when test=True. (#60995)
|
||||
- Handle signals and properly exit, instead of raising exceptions. (#60391, #60963)
|
||||
- Redirect imports of ``salt.ext.six`` to ``six`` (#60966)
|
||||
- Surface strerror to user state instead of returning false (#20789)
|
||||
- Fixing _get_envs() to preserve the order of pillar_roots. _get_envs() returned pillar_roots in a non-deterministic order. (#24501)
|
||||
- Fixes salt-cloud `KeyError` that occurs when there exists any subnets with no tags when profiles use `subnetname` (#44330)
|
||||
- Fixes postgres_local_cache by removing duplicate unicode encoding. (#46942)
|
||||
- Fixing the state aggregation system to properly handle requisities.
|
||||
Fixing pkg state to exclude packages from aggregation if the hold attribute is in the state. (#47628)
|
||||
- fix issue that allows case sensitive files to be carried through (#47969)
|
||||
- Allow GCE Salt Cloud to use previously created IP Addresses. (#48947)
|
||||
- Fixing rabbitmq.list_user_permissions to ensure we are returning a permission list with three elements even when some values are empty. (#49115)
|
||||
- Periodically restart the fileserver update process to avoid leaks (#50313)
|
||||
- Fix default value to dictionary for mine_function (#50695)
|
||||
- Allow user.present to work on Alpine Linux by fixing linux_shadow.info (#50979)
|
||||
- Ensure that zypper is called with only one --no-refresh parameter (#51382)
|
||||
- Fixed fileclient cachedir path switching from master to minion due to incorrect MasterMinion configuration (#52288)
|
||||
- Fixed the container detection inside virtual machines (#53868)
|
||||
- Fix invalid dnf command when obsoletes=True in pkg.update function (#54224)
|
||||
- Jinja renderer resolves wrong relative paths when importing subdirectories (#55159)
|
||||
- Fixed bug #55262 where `salt.modules.iptables` would call `cmd.run` and receive and interpret interspersed `stdout` and `stderr` output from subprocesses. (#55262)
|
||||
- Updated pcs support to handle auth and setup for new syntax supporting version 0.10 (#56924)
|
||||
- Reinstate ignore_cidr option in salt-cloud openstack driver (#57127)
|
||||
- Fix for network.wolmatch runner displaying 'invalid arguments' error with valid arguments (#57473)
|
||||
- Fixed bug 57490, which prevented package installation for Open Euler and Issabel PBX. Both Open Euler and Issabel PBX use Yum for package management, added them to yumpkg.py. (#57490)
|
||||
- Better handling of bad RSA public keys from minions (#57733)
|
||||
- Fixing various functions in the file state module that use user.info to get group information, certain hosts particularly proxy minions do not have the user.info function available. (#57786)
|
||||
- Do not monkey patch yaml loaders: Prevent breaking Ansible filter modules (#57995)
|
||||
- Fix --subset command line option, and support old 'sub' parameter name in cmd_subset for backwards compatibility (#58600)
|
||||
- When calling salt.utils.http.query with a HEAD method to check for the existence of a source ensure that decode_body is False, so the file is not downloaded into memory when we don't need the contents. (#58881)
|
||||
- Update the runas user on freebsd for postgres versions >9.5, since freebsd will be removing the package on 2021-05-13. (#58915)
|
||||
- Fix pip module linked requirements file parsing (#58944)
|
||||
- Fix incorrect hostname quoting in /etc/sysconfig/networking on Red Hat family OS. (#58956)
|
||||
- Fix Xen DomU virt detection in grains for long running machines. (#59001)
|
||||
- add encoding when windows encoding is not defaulting to utf8 (#59063)
|
||||
- Fix "aptpkg.normalize_name" in case the arch is "all" for DEB packages (#59269)
|
||||
- Astra Linux now considered a Debian family distro (#59332)
|
||||
- Reworking the mysql module and state so that passwordless does not try to use unix_socket until unix_socket is set to True. (#59337)
|
||||
- Fixed the zabbix module to read the connection data from pillar. (#59338)
|
||||
- Fix crash on "yumpkg" execution module when unexpected output at listing patches (#59354)
|
||||
- Remove return that had left over py2 code from win_path.py (#59396)
|
||||
- Don't create spicevmc channel for Xen virtual machines (#59416)
|
||||
- Fix win_servermanager.install so it will reboot when restart=True is passed (#59424)
|
||||
- Clear the cached network interface grains during minion init and grains refresh (#59490)
|
||||
- Normalized grain output for LXC containers (#59573)
|
||||
- Fix typo in 'salt/states/cmd.py' to use "comment" instead of "commnd". (#59581)
|
||||
- add aliyun linux support and set alinux as redhat family (#59686)
|
||||
- Don't fail updating network without netmask ip attribute (#59692)
|
||||
- Fixed using reserved keyword 'set' as function argument in modules/ipset.py (#59714)
|
||||
- Return empty changes when nothing has been done in virt.defined and virt.running states (#59739)
|
||||
- Import salt.utils.azurearm instead of using __utils__ from loader in azure cloud. This fixes an issue where __utils__ would become unavailable when we are using the ThreadPool in azurearm. (#59744)
|
||||
- Fix an issue with the LGPO module when the gpt.ini file contains unix style line
|
||||
endings (/n). This was happening on a Windows Server 2019 instance created in
|
||||
Google Cloud Platform (GCP). (#59769)
|
||||
- The ``ansiblegate`` module now correctly passes keyword arguments to Ansible module calls (#59792)
|
||||
- Make sure cmdmod._log_cmd handles tuples properly (#59793)
|
||||
- Updating the add, delete, modify, enable_job, and disable_job functions to return appropriate changes. (#59844)
|
||||
- Apply pre-commit changes to entire codebase. (#59847)
|
||||
- Fix Hetzner cloud driver does not recognize machines when rolling out a map (#59864)
|
||||
- Update Windows build deps & DLLs, Use Python 3.8, libsodium.dll 1.0.18, OpenSSL dlls to 1.1.1k (#59865)
|
||||
- Salt api verifies proper log file path when providing '--log-file' from the cli (#59880)
|
||||
- Detect Mendel Linux as Debian (#59892)
|
||||
- Fixed compilation of requisite_ins by also checking state type along with name/id (#59922)
|
||||
- Fix xen._get_vm() to not break silently when a VM and a template on XenServer have the same name. (#59932)
|
||||
- Added missing space for nftables.build_rule when using saddr or daddr. (#59958)
|
||||
- Add back support to load old entrypoints by iterating instead of type checking (#59961)
|
||||
- Fixed interrupting salt-call in a pdb session. (#59966)
|
||||
- Validate we can import map files in states (#60003)
|
||||
- Update alter_db to return True or False depending on the success of failure of the alter. Update grant_exists to only use the full list of available privileges when the grant is on the global level, eg. datbase is "*.*". (#60031)
|
||||
- Fixed firewalld.list_zones when any "rich rules" is set (#60033)
|
||||
- IPCMessageSubscriber objects expose their connect method as a corotine so they
|
||||
can be wrapped by SyncWrapper. (#60049)
|
||||
- Allow for Napalm dependency netmiko_mod to load correctly when used by Napalm with Cisco IOS (#60061)
|
||||
- Ensure proper access to the created temporary file when ``runas`` is passed to ``cmd.exec_code_all`` (#60072)
|
||||
- Fixed an IndexError in pkgng.latest_version when querying an unknown package. (#60105)
|
||||
- Fixed pkgng.latest_version when querying by origin (e.g. "shells/bash"). (#60108)
|
||||
- Gracefuly handle errors in virt.vm_info (#60132)
|
||||
- The LGPO Module now uses "Success and Failure" for normal audit settings and advanced audit settings (#60142)
|
||||
- Fixing tests/pytests/unit/utils/scheduler/test_eval.py tests so the sleep happens before the status, so the job is given time before we check it. (#60149)
|
||||
- Update the external ipaddress to the latest 3.9.5 version which has some security fixes. Updating the compat.p to use the vendored version if the python version is below 3.9.5 and only run the test_ipaddress.py tests if below 3.9.5. (#60168)
|
||||
- Fixed ValueError exception in state.show_state_usage (#60179)
|
||||
- Redact the username and password when something goes wrong when using an HTTP source and we raise an exception. (#60203)
|
||||
- Inject the Ansible functions into Salt's ``ansiblegate`` module which was broken on the 3001 release. (#60207)
|
||||
- Figure out the available Python version inside containers when executing "dockermod.call" function (#60229)
|
||||
- Handle IPv6 route types such as anycast, multicast, etc when returned from IPv6 route table queries (#60232)
|
||||
- Move the commonly used code that converts a list to a dictionary into salt.utils.beacons. Fixing inotify beacon close function to ensure the configuration is converted from the provided list format into a dictionary. (#60241)
|
||||
- Set name of engine subprocesses (#60259)
|
||||
- Properly discover block devices path in virt.running (#60296)
|
||||
- Avoid exceptions when handling some exception cases. (#60330)
|
||||
- Fixed faulty error message in npm.installed state. (#60339)
|
||||
- Port option reinstated for Junos Proxy (accidentally removed) (#60340)
|
||||
- Now hosts.rm_host can remove entries from /etc/hosts when this file have inline comments. (#60351)
|
||||
- Fixes issue where the full same name is not used when making rights assignments with group policy (#60357)
|
||||
- Fixed zabbix_host.present to not overwrite inventory_mode to "manual" every time inventory is updated. (#60382)
|
||||
- Allowed zabbix_host.present to do partial updates of inventory, also don't erase everything if inventory is missing in state definition. (#60389)
|
||||
- Fixing the mysql_cache module to handle binary inserting binary data into the database. Initially adding tests. (#60398)
|
||||
- Fixed host_inventory_get to not throw an exception if host does not exist (#60418)
|
||||
- Check for /dev/kvm to detect KVM hypervisor. (#60419)
|
||||
- Fixing file.accumulated handling of dependencies when the state_id is used instead of {function: state_id} format. (#60426)
|
||||
- Adding the ability for yumpkg.remove to handle package names with widdcards. (#60461)
|
||||
- Pass emulator path to get guest capabilities from libvirt (#60491)
|
||||
- virt.get_disks: properly report qemu-img errors (#60512)
|
||||
- Make all platforms have psutils. This prevents a minion from starting if an instance is all ready running. (#60523)
|
||||
- Ignore configuration for 'enable_fqdns_grains' for AIX, Solaris and Juniper, assume False (#60529)
|
||||
- Remove check for TIAMAT_BUILD enforcing USE_STATIC_REQUIREMENTS, this is now controlled by Tiamat v7.10.1 and above (#60559)
|
||||
- Have the beacon call run through a try...except, catching any errors, logging and firing an event that includes the error.
|
||||
Fixing the swapusage beacon to ensure value is a string before we attempt to filter out the %. (#60585)
|
||||
- Refactor loader into logical sub-modules (#60594)
|
||||
- Clean up references to ZMQDefaultLoop (#60617)
|
||||
- change dep warn from Silicon to Phosphorus for the cmd,show,system_info and add_config functions in the nxos module. (#60669)
|
||||
- Fix bug 60602 where the hetzner cloud provider isn't recognized correctly (#60675)
|
||||
- Fix the ``pwd.getpwnam`` caching issue on macOS user module (#60676)
|
||||
- Fixing beacons that can include a value in their configuration that may or may not included a percentage. We want to handle the situation where the percentage sign is not included and the value is not handled as a string. (#60684)
|
||||
- Fix RuntimeError in process manager (#60749)
|
||||
- Ensure all data that is being passed along to LDAP is in an OrderedSet and contains bytes. (#60760)
|
||||
- Update the AWS API version so VMs spun up by salt-cloud where the VPC has it enabled to assign ipv6 addresses by default, actually get ipv6 addresses assigned by default. (#60804)
|
||||
- Remove un-needed singletons from tranports (#60851)
|
||||
|
||||
|
||||
Added
|
||||
-----
|
||||
|
||||
- Add windows support for file.patch with patch.exe from git for windows optional packages (#44783)
|
||||
- Added ability to pass exclude kwarg to salt.state inside orchestrate. (#49130)
|
||||
- Added `success_stdout` and `success_stderr` arguments to `cmd.run`, to override default return code behavior. (#50597)
|
||||
- The netbox pillar now been enhanced to add support for querying virtual machines
|
||||
(in addition to devices), as well as minion interfaces and associated IP
|
||||
addresses. (#51490)
|
||||
- Add support for transactional systems, like openSUSE MicroOS (#58519)
|
||||
- Added namespace headers to allow use of namespace from config to communicate with Vault Enterprise namespaces (#58585)
|
||||
- boto3mod unit tests (#58713)
|
||||
- New decorators `allow_one_of()` and `require_one_of()` (#58742)
|
||||
- Added `nosync` switch to disable initial raid synchronization (#59193)
|
||||
- Expanded the documentation for the netbox pillar. (#59398)
|
||||
- Rocky Linux has been added to the RedHat os_family. (#59682)
|
||||
- Add "poudriere -i -j jail_name" option to list jail information for poudriere (#59831)
|
||||
- Added the grains.uuid on Windows platform (#59888)
|
||||
- Add a salt.util.platform check to detect the AArch64 64-bit extension of the ARM architecture. (#59915)
|
||||
- Adding support for Deltaproxy controlled proxy minions into Salt Open. (#60090)
|
||||
- Added functions to slsutil execution module to test if files exist in the state tree
|
||||
Added function to slsutil execution module to search for a file by walking up the state tree (#60159)
|
||||
- Allow module_refresh to also refresh available beacons, eg. following a Python library being installed and "refresh_modules" being passed as an argument in a state. (#60541)
|
||||
- Add the `detect_remote_minions` and `remote_minions_port` options to allow the master to detect remote ports for connected minions. This will allow users to detect Heist-Salt minions the master is connected to over port 22 by default. (#60612)
|
||||
- Add the python rpm-vercmp library in the rpm_lowpkg.py module. (#60814)
|
||||
- Allow a user to use the aptpkg.py module without installing python-apt. (#60818)
|
||||
|
||||
|
||||
Salt 3003.5 (2022-07-05)
|
||||
========================
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Update Markup and contextfunction imports for jinja versions >=3.1. (#61848)
|
||||
- Fix bug in tcp transport (#61865)
|
||||
- Make sure the correct key is being used when verifying or validating communication, eg. when a Salt syndic is involved use syndic_master.pub and when a Salt minion is involved use minion_master.pub. (#61868)
|
||||
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- Fixed PAM auth to reject auth attempt if user account is locked. (cve-2022-22967)
|
||||
|
||||
|
||||
Salt 3003.4 (2022-02-25)
|
||||
========================
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- Sign authentication replies to prevent MiTM (cve-2022-22935)
|
||||
- Prevent job and fileserver replays (cve-2022-22936)
|
||||
- Sign pillar data to prevent MiTM attacks. (cve-2202-22934)
|
||||
- Fixed targeting bug, especially visible when using syndic and user auth. (CVE-2022-22941) (#60413)
|
||||
- Fix denial of service in junos ifconfig output parsing.
|
||||
|
||||
|
||||
Salt 3003.3 (2021-08-20)
|
||||
========================
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Fix issue introduced in https://github.com/saltstack/salt/pull/59648 (#60046)
|
||||
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- Verify the owner of an existing config before trusting it during install. If the owner cannot be verified, back it up and use defaults. (CVE-2021-22004)
|
||||
- Ensure that sourced file is cached using its hash name (cve-2021-21996)
|
||||
|
||||
|
||||
Salt 3003.2 (2021-07-29)
|
||||
========================
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Periodically restart the fileserver update process to avoid leaks (#50313)
|
||||
- Add ssh_timeout to kwargs in deploy_script (#59901)
|
||||
- Update the external ipaddress to the latest 3.9.5 version which has some security fixes. Updating the compat.p to use the vendored version if the python version is below 3.9.5 and only run the test_ipaddress.py tests if below 3.9.5. (#60168)
|
||||
- Use the right crypto library for salt.utils.crypt.reinit_crypto (#60215)
|
||||
- Stop SSH from hanging if connection is lost. Also added args to customize grace period. (#60216)
|
||||
- Improve reliability of Terminal class (#60504)
|
||||
- Ignore configuration for 'enable_fqdns_grains' for AIX, Solaris and Juniper, assume False (#60529)
|
||||
|
||||
|
||||
Salt 3003.1 (2021-06-08)
|
||||
========================
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Import salt.utils.azurearm instead of using __utils__ from loader in azure cloud. This fixes an issue where __utils__ would become unavailable when we are using the ThreadPool in azurearm. (#59744)
|
||||
- Use contextvars library from site-packages if it is intalled. Fixes salt ssh for targets with python <=3.6 (#59942)
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Fixed race condition in batch logic. Added `listen` option to `LocalClient` to prevent event subscriber from purging cached events during batch iteration. (#56273)
|
||||
- Fixed dependencies for Amazon Linux 2 on https://repo.saltproject.io since Amazon Linux 2 now provides some of the python libraries in their repos. (#59982)
|
||||
- IPCMessageSubscriber objects expose their connect method as a coroutine so they can be wrapped by SyncWrapper. (#60049)
|
||||
- Import salt.utils.azurearm instead of using __utils__ from loader in azure cloud. This fixes an issue where __utils__ would become unavailable when we are using the ThreadPool in azurearm. (#59744)
|
||||
- Use contextvars library from site-packages if it is intalled. Fixes salt ssh for targets with python <=3.6 (#59942)
|
||||
- Add back support to load old entrypoints by iterating instead of type checking (#59961)
|
||||
- Pass the value of the `__grains__` NamedContext to salt.pillar.get_pillar, instead of the NamedContext object itself. (#59975)
|
||||
- Fix pillar serialization in jinja templates (#60083)
|
||||
|
||||
Salt 3003 (2021-03-05)
|
||||
======================
|
||||
|
@ -34,6 +659,7 @@ Removed
|
|||
- Removing the _ext_nodes deprecation warning and alias to the master_tops function. This change will break compatibility with a Salt master running versions 2017.7.8 and older and Salt minions running versions 3003 and newer. (#59804)
|
||||
- removed the arg `managed_private_key` from 'salt.states.x509.certificate_managed' (#59247)
|
||||
- Drop support for python 3.5 on Windows (#59479)
|
||||
- Removed support for Ubuntu 16.04 (#59913)
|
||||
|
||||
|
||||
Deprecated
|
||||
|
@ -58,7 +684,7 @@ Fixed
|
|||
- Fixed installation on Apple Silicon Macs by checking $HOMEBREW_PREFIX for `libcrypto` instead of assuming /usr/local. (#59808)
|
||||
- Fix incorrect documentation for pillar_source_merging_strategy (#26396)
|
||||
- Don't iterate through cloud map errors (#34033)
|
||||
- Supress noisy warnings when very old pyzmq is used. (#50327)
|
||||
- Suppress noisy warnings when very old pyzmq is used. (#50327)
|
||||
- Fixed glusterfs version parsing for pre-4.0 (#50707)
|
||||
- Prevent traceback when trying to list reactors when none are configured. (#53334)
|
||||
- Fixed zabbix_host.present to accept all Zabbix host properties (#53838)
|
||||
|
@ -80,7 +706,7 @@ Fixed
|
|||
minion not to start
|
||||
Use default timezone offset in scheduler when correct timezone cannot be determined (#58379)
|
||||
- Pop!_OS 20.04 and 20.10 now support using pkg.* / aptpkg.* (#58395)
|
||||
- Restoring functionallity of the textfsm module when using textfsm_path argument (#58499)
|
||||
- Restoring functionality of the textfsm module when using textfsm_path argument (#58499)
|
||||
- Invalidate file list cache when cache file has a future last modified time (#58529)
|
||||
- Fix issue with setting permissions in combination with the win_perms_reset
|
||||
option (#58541)
|
||||
|
@ -88,7 +714,7 @@ Fixed
|
|||
valid if Powershell 7 is installed on the system. (#58598)
|
||||
- Fixed the zabbix.host_create call on zabbix_host.present to include the
|
||||
optional parameter visible_name. Now working as documented. (#58602)
|
||||
- Fixed some bugs to allow zabbix_host.present to update a host already
|
||||
- Fixed some bugs to allow zabbix_host.present to update a host already
|
||||
existent on Zabbix server:
|
||||
|
||||
- Added checks before "pop" the elements "bulk" and "details" from
|
||||
|
@ -96,8 +722,8 @@ Fixed
|
|||
didn't works with Zabbix >= 5.0
|
||||
- Fixed the "inventory" comparison. It failed when both current and new
|
||||
inventory were missing.
|
||||
- Rewrite of the update_interfaces routine to really "update" the
|
||||
interfaces and not trying to delete and recreate all interfaces,
|
||||
- Rewrite of the update_interfaces routine to really "update" the
|
||||
interfaces and not trying to delete and recreate all interfaces,
|
||||
which almost always gives errors as interfaces with linked items
|
||||
can't be deleted. (#58603)
|
||||
- Added the "details" mandatory object with the properly default values
|
||||
|
@ -191,6 +817,53 @@ Added
|
|||
binary ELF files in the package. (#59569)
|
||||
|
||||
|
||||
Salt 3002.9 (2022-05-25)
|
||||
========================
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Fixed an error when running on CentOS Stream 8. (#59161)
|
||||
- Fix bug in tcp transport (#61865)
|
||||
- Make sure the correct key is being used when verifying or validating communication, eg. when a Salt syndic is involved use syndic_master.pub and when a Salt minion is involved use minion_master.pub. (#61868)
|
||||
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- Fixed PAM auth to reject auth attempt if user account is locked. (cve-2022-22967)
|
||||
|
||||
|
||||
Salt 3002.8 (2022-02-25)
|
||||
========================
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- Sign authentication replies to prevent MiTM (cve-2020-22935)
|
||||
- Sign pillar data to prevent MiTM attacks. (cve-2022-22934)
|
||||
- Prevent job and fileserver replays (cve-2022-22936)
|
||||
- Fixed targeting bug, especially visible when using syndic and user auth. (CVE-2022-22941) (#60413)
|
||||
|
||||
|
||||
|
||||
Salt 3002.7 (2021-08-20)
|
||||
========================
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Verify the owner of an existing config before trusting it during install. If the owner cannot be verified, back it up and use defaults. (CVE-2021-22004)
|
||||
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- Fix the CVE-2021-31607 vulnerability
|
||||
Additionally, an audit and a tool was put in place, ``bandit``, to address similar issues througout the code base, and prevent them. (CVE-2021-31607)
|
||||
- Ensure that sourced file is cached using its hash name (cve-2021-21996)
|
||||
|
||||
|
||||
Salt 3002.6 (2021-03-10)
|
||||
========================
|
||||
|
||||
|
@ -199,6 +872,7 @@ Changed
|
|||
|
||||
- Store git sha in salt/_version.py when installing from a tag so it can be found if needed later. (#59137)
|
||||
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
|
@ -268,7 +942,7 @@ Fixed
|
|||
- Removing use of undefined varilable in utils/slack.py. (#58753)
|
||||
- Restored the ability to specify the amount of extents for a Logical
|
||||
Volume as a percentage. (#58759)
|
||||
- Ensuring that the version check function is run a second time in all the user related functions incase the user being managed is the connection user and the password has been updated. (#58773)
|
||||
- Ensuring that the version check function is run a second time in all the user related functions in case the user being managed is the connection user and the password has been updated. (#58773)
|
||||
- Allow bytes in gpg renderer (#58794)
|
||||
- Fix issue where win_wua module fails to load when BITS is set to Manual (#58848)
|
||||
- Ensure that elasticsearch.index_exists is available before loading the elasticsearch returner. (#58851)
|
||||
|
@ -316,7 +990,7 @@ Deprecated
|
|||
Changed
|
||||
-------
|
||||
|
||||
- Allow to specify a custom port for Proxmox connection (#50620)
|
||||
- Allow specifying a custom port for Proxmox connection (#50620)
|
||||
- Changed the lvm.lv_present state to accept a resizefs switch. So, when
|
||||
the logical volume is resized, the filesystem will be resized too. (#55265)
|
||||
- Change the ``enable_fqdns_grains`` setting to default to ``False`` on proxy minions
|
||||
|
@ -509,7 +1183,7 @@ Added
|
|||
even just maintaining highstate becomes unmanageable. (#57849)
|
||||
- - Added an execution module for running idem exec modules
|
||||
- Added a state module for running idem states (#57969)
|
||||
- - Added the ability for states to return `sub_state_run`s -- results frome external state engines (#57993)
|
||||
- - Added the ability for states to return `sub_state_run`s -- results from external state engines (#57993)
|
||||
- Added salt-cloud support for Linode APIv4 via the ``api_version`` provider configuration parameter. (#58093)
|
||||
- Added support to manage services in Slackware Linux. (#58206)
|
||||
- Added list_sources to chocolatey module to have an overview of the repositories present on the minions.
|
||||
|
@ -520,6 +1194,25 @@ Added
|
|||
This flag will be deprecated in the Phosphorus release when this functionality
|
||||
becomes the default. (#58652)
|
||||
|
||||
Salt 3001.8 (2021-08-20)
|
||||
========================
|
||||
|
||||
Version 3001.8 is a bug fix release for :ref:`3001 <release-3001>`.
|
||||
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Verify the owner of an existing config before trusting it during install. If the owner cannot be verified, back it up and use defaults. (CVE-2021-22004)
|
||||
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
- Fix the CVE-2021-31607 vulnerability
|
||||
Additionally, an audit and a tool was put in place, ``bandit``, to address similar issues througout the code base, and prevent them. (CVE-2021-31607)
|
||||
- Ensure that sourced file is cached using its hash name (cve-2021-21996)
|
||||
|
||||
Salt 3001.7 (2021-03-10)
|
||||
========================
|
||||
|
||||
|
@ -1435,4 +2128,4 @@ Fixed
|
|||
## [2019.2.1] - 2019-09-25 [YANKED]
|
||||
|
||||
|
||||
- See [old release notes](https://docs.saltstack.com/en/latest/topics/releases/2019.2.1.html)
|
||||
- See [old release notes](https://docs.saltproject.io/en/latest/topics/releases/2019.2.1.html)
|
||||
|
|
|
@ -8,7 +8,7 @@ in a number of ways:
|
|||
|
||||
- Using Salt and opening well-written bug reports.
|
||||
- Joining a `working group <https://github.com/saltstack/community>`__.
|
||||
- Answering questions on `irc <https://webchat.freenode.net/#salt>`__,
|
||||
- Answering questions on `irc <https://web.libera.chat/#salt>`__,
|
||||
the `community Slack <https://join.slack.com/t/saltstackcommunity/shared_invite/zt-3av8jjyf-oBQ2M0vhXOhJpNpRkPWBvg>`__,
|
||||
the `salt-users mailing
|
||||
list <https://groups.google.com/forum/#!forum/salt-users>`__,
|
||||
|
@ -180,6 +180,25 @@ Now before each commit, it will ensure that your code at least *looks*
|
|||
right before you open a pull request. And with that step, it’s time to
|
||||
start hacking on Salt!
|
||||
|
||||
.. _imagemagick-setup:
|
||||
|
||||
``imagemagick`` Setup
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
One last prerequisite is to have ``imagemagick`` installed, as it is required
|
||||
by Sphinx for generating the HTML documentation.
|
||||
|
||||
::
|
||||
|
||||
# On Mac, via homebrew
|
||||
brew install imagemagick
|
||||
|
||||
::
|
||||
|
||||
# Example Linux installation: Debian-based
|
||||
sudo apt install imagemagick
|
||||
|
||||
|
||||
Salt Issues
|
||||
-----------
|
||||
|
||||
|
@ -273,8 +292,10 @@ Documentation
|
|||
~~~~~~~~~~~~~
|
||||
|
||||
Salt uses both docstrings, as well as normal reStructuredText files in
|
||||
the ``salt/doc`` folder for documentation. Since we use nox, you can
|
||||
build your docs and view them in your browser with this one-liner:
|
||||
the ``salt/doc`` folder for documentation. Sphinx is used to generate the
|
||||
documentation, and does require :ref:`setting up imagemagick on your OS.<imagemagick-setup>`
|
||||
Since we use ``nox``, you can build your docs and view them in your browser
|
||||
with this one-liner:
|
||||
|
||||
::
|
||||
|
||||
|
@ -507,8 +528,7 @@ your PR is submitted during the week you should be able to expect some
|
|||
kind of communication within that business day. If your tests are
|
||||
passing and we’re not in a code freeze, ideally your code will be merged
|
||||
that day. If you haven’t heard from your assigned reviewer, ping them on
|
||||
GitHub, `irc <https://webchat.freenode.net/#salt>`__, or Community
|
||||
Slack.
|
||||
GitHub, `irc <https://web.libera.chat/#salt>`__, or Community Slack.
|
||||
|
||||
It’s likely that your reviewer will leave some comments that need
|
||||
addressing - it may be a style change, or you forgot a changelog entry,
|
||||
|
|
2
Gemfile
2
Gemfile
|
@ -8,7 +8,7 @@ gem 'kitchen-sync'
|
|||
gem 'git'
|
||||
|
||||
group :docker do
|
||||
gem 'kitchen-docker', :git => 'https://github.com/test-kitchen/kitchen-docker.git'
|
||||
gem 'kitchen-docker', :git => 'https://github.com/test-kitchen/kitchen-docker.git', :branch => 'main'
|
||||
end
|
||||
|
||||
group :windows do
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -186,7 +186,7 @@
|
|||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright {yyyy} {name of copyright owner}
|
||||
Copyright (c) 2011-2022 VMware, Inc. All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -6,6 +6,7 @@ include NOTICE
|
|||
include README.rst
|
||||
include SUPPORT.rst
|
||||
include run.py
|
||||
include pyproject.toml
|
||||
include tests/*.py
|
||||
recursive-include tests *
|
||||
recursive-include requirements *.txt
|
||||
|
@ -20,3 +21,4 @@ recursive-include salt *.jinja
|
|||
recursive-include templates *
|
||||
include salt/templates/git/*
|
||||
include salt/templates/lxc/*
|
||||
include salt/utils/pyinstaller/rthooks.dat
|
||||
|
|
|
@ -104,7 +104,7 @@ Also, check out some of our community resources including:
|
|||
|
||||
* `Salt Project Community Wiki <https://github.com/saltstack/community/wiki>`_
|
||||
* `Salt Project Community Slack`_
|
||||
* `Salt Project: IRC on Freenode <https://webchat.freenode.net/#salt>`_
|
||||
* `Salt Project: IRC on LiberaChat <https://web.libera.chat/#salt>`_
|
||||
* `Salt Project YouTube channel <https://www.youtube.com/channel/UCpveTIucFx9ljGelW63-BWg>`_
|
||||
* `Salt Project Twitch channel <https://www.twitch.tv/saltprojectoss>`_
|
||||
|
||||
|
|
10
SUPPORT.rst
10
SUPPORT.rst
|
@ -2,11 +2,11 @@ Get SaltStack Support and Help
|
|||
==============================
|
||||
|
||||
**IRC Chat** - Join the vibrant, helpful and positive SaltStack chat room in
|
||||
Freenode at #salt. There is no need to introduce yourself, or ask permission to
|
||||
join in, just help and be helped! Make sure to wait for an answer, sometimes it
|
||||
may take a few moments for someone to reply.
|
||||
LiberaChat at #salt. There is no need to introduce yourself, or ask permission
|
||||
to join in, just help and be helped! Make sure to wait for an answer, sometimes
|
||||
it may take a few moments for someone to reply.
|
||||
|
||||
`<http://webchat.freenode.net/?channels=salt&uio=Mj10cnVlJjk9dHJ1ZSYxMD10cnVl83>`_
|
||||
`<https://web.libera.chat/#salt>`_
|
||||
|
||||
**SaltStack Slack** - Alongside IRC is our SaltStack Community Slack for the
|
||||
SaltStack Working groups. Use the following link to request an invitation.
|
||||
|
@ -25,7 +25,7 @@ salt-users@googlegroups.com
|
|||
|
||||
**Reporting Issues** - To report an issue with Salt, please follow the
|
||||
guidelines for filing bug reports:
|
||||
`<https://docs.saltstack.com/en/master/topics/development/reporting_bugs.html>`_
|
||||
`<https://docs.saltproject.io/en/master/topics/development/reporting_bugs.html>`_
|
||||
|
||||
**SaltStack Support** - If you need dedicated, prioritized support, please
|
||||
consider a SaltStack Support package that fits your needs:
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Surface strerror to user state instead of returning false
|
5
changelog/3396.added
Normal file
5
changelog/3396.added
Normal file
|
@ -0,0 +1,5 @@
|
|||
Introduce a `LIB_STATE_DIR` syspaths variable which defaults to `CONFIG_DIR`,
|
||||
but can be individually customized during installation by specifying
|
||||
`--salt-lib-state-dir` during installation. Change the default `pki_dir` to
|
||||
`<LIB_STATE_DIR>/pki/master` (for the master) and `<LIB_STATE_DIR>/pki/minion`
|
||||
(for the minion).
|
1
changelog/36138.fixed
Normal file
1
changelog/36138.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Add kwargs to handle extra parameters for http.query
|
1
changelog/39292.fixed
Normal file
1
changelog/39292.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Fix mounted bind mounts getting active mount options added
|
1
changelog/40054.fixed
Normal file
1
changelog/40054.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Fix `sysctl.present` converts spaces to tabs.
|
|
@ -1 +0,0 @@
|
|||
Fixes postgres_local_cache by removing duplicate unicode encoding.
|
1
changelog/47201.fixed
Normal file
1
changelog/47201.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Fix mount.mounted with 'mount: False' reports unmounted file system as unchanged when running with test=True
|
1
changelog/48609.changed
Normal file
1
changelog/48609.changed
Normal file
|
@ -0,0 +1 @@
|
|||
More intelligent diffing in changes of file.serialize state.
|
|
@ -1 +0,0 @@
|
|||
Allow GCE Salt Cloud to use previously created IP Addresses.
|
|
@ -1 +0,0 @@
|
|||
Added `success_stdout` and `success_stderr` arguments to `cmd.run`, to override default return code behavior.
|
|
@ -1 +0,0 @@
|
|||
Allow user.present to work on Alpine Linux by fixing linux_shadow.info
|
|
@ -1 +0,0 @@
|
|||
Ensure that zypper is called with only one --no-refresh parameter
|
1
changelog/51620.fixed
Normal file
1
changelog/51620.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Do not raise an exception in pkg.info_installed on nonzero return code
|
1
changelog/51739.fixed
Normal file
1
changelog/51739.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Passes the value of the force parameter from file.copy to its call to file.remove so that files with the read-only attribute are handled.
|
|
@ -1 +0,0 @@
|
|||
Fixed fileclient cachedir path switching from master to minion due to incorrect MasterMinion configuration
|
1
changelog/52354.fixed
Normal file
1
changelog/52354.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Don't check for cached pillar errors on state.apply
|
1
changelog/53914.fixed
Normal file
1
changelog/53914.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Include sync_roster when sync_all is called.
|
1
changelog/53988.fixed
Normal file
1
changelog/53988.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Avoid warning noise in lograte.get
|
|
@ -1 +0,0 @@
|
|||
Fix invalid dnf command when obsoletes=True in pkg.update function
|
1
changelog/54347.fixed
Normal file
1
changelog/54347.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Fixed listing revoked keys with gpg.list_keys
|
1
changelog/54508.fixed
Normal file
1
changelog/54508.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Fix mount.mounted does not handle blanks properly
|
1
changelog/54679.added
Normal file
1
changelog/54679.added
Normal file
|
@ -0,0 +1 @@
|
|||
A new salt-ssh roster that generates a roster by parses a known_hosts file.
|
1
changelog/54682.fixed
Normal file
1
changelog/54682.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Fixed grain num_cpus get wrong CPUs count in case of inconsistent CPU numbering.
|
1
changelog/54713.added
Normal file
1
changelog/54713.added
Normal file
|
@ -0,0 +1 @@
|
|||
Added Windows Event Viewer support
|
1
changelog/54907.fixed
Normal file
1
changelog/54907.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Fix spelling error for python_shell argument in dpkg_lower module
|
1
changelog/55269.fixed
Normal file
1
changelog/55269.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Fixed malformed state return when testing file.managed with unavailable source file
|
1
changelog/56013.added
Normal file
1
changelog/56013.added
Normal file
|
@ -0,0 +1 @@
|
|||
Added the win_lgpo_reg state and execution modules which will allow registry based group policy to be set directly in the Registry.pol file
|
1
changelog/56016.fixed
Normal file
1
changelog/56016.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Included stdout in error message for Zypper calls in zypperpkg module.
|
|
@ -1 +0,0 @@
|
|||
Changed nginx.version to return version without `nginx/` prefix.
|
|
@ -1 +0,0 @@
|
|||
Reinstate ignore_cidr option in salt-cloud openstack driver
|
1
changelog/57180.fixed
Normal file
1
changelog/57180.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Don't check for cached pillar errors on state.apply
|
|
@ -1 +0,0 @@
|
|||
Fixed bug 57490, which prevented package installation for Open Euler and Issabel PBX. Both Open Euler and Issabel PBX use Yum for package management, added them to yumpkg.py.
|
|
@ -1 +0,0 @@
|
|||
Parsing Epoch out of version during pkg remove, since yum can't handle that in all of the cases.
|
1
changelog/58297.fixed
Normal file
1
changelog/58297.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Add missing MariaDB Grants to mysql module. MariaDB has added some grants in 10.4.x and 10.5.x that are not present here, which results in an error when creating.
|
|
@ -1 +0,0 @@
|
|||
Added namespace headers to allow use of namespace from config to communicate with Vault Enterprise namespaces
|
|
@ -1 +0,0 @@
|
|||
boto3mod unit tests
|
|
@ -1 +0,0 @@
|
|||
New decorators `allow_one_of()` and `require_one_of()`
|
|
@ -1 +0,0 @@
|
|||
Update the runas user on freebsd for postgres versions >9.5, since freebsd will be removing the package on 2021-05-13.
|
|
@ -1 +0,0 @@
|
|||
Fix incorrect hostname quoting in /etc/sysconfig/networking on Red Hat family OS.
|
|
@ -1 +0,0 @@
|
|||
Fix Xen DomU virt detection in grains for long running machines.
|
|
@ -1 +0,0 @@
|
|||
Add extra onfail req check in the state engine to allow onfail to be used with onchanges and other reqs in the same state
|
|
@ -1,2 +0,0 @@
|
|||
Removed the deprecated glance state and execution module in favor of the glance_image
|
||||
state module and the glanceng execution module.
|
|
@ -1 +0,0 @@
|
|||
Added `nosync` switch to disable initial raid synchronization
|
|
@ -1 +0,0 @@
|
|||
Fix "aptpkg.normalize_name" in case the arch is "all" for DEB packages
|
|
@ -1 +0,0 @@
|
|||
Astra Linux now considered a Debian family distro
|
|
@ -1 +0,0 @@
|
|||
Fixed the zabbix module to read the connection data from pillar.
|
1
changelog/59339.fixed
Normal file
1
changelog/59339.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Don't check for cached pillar errors on state.apply
|
|
@ -1 +0,0 @@
|
|||
Fix crash on "yumpkg" execution module when unexpected output at listing patches
|
|
@ -1 +0,0 @@
|
|||
Don't create spicevmc channel for Xen virtual machines
|
1
changelog/59439.changed
Normal file
1
changelog/59439.changed
Normal file
|
@ -0,0 +1 @@
|
|||
Improve support for listing macOS brew casks
|
|
@ -1 +0,0 @@
|
|||
Fix typo in 'salt/states/cmd.py' to use "comment" instead of "commnd".
|
1
changelog/59585.fixed
Normal file
1
changelog/59585.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
Fix postgres_privileges.present not idempotent for functions
|
|
@ -1 +0,0 @@
|
|||
Rocky Linux has been added to the RedHat os_family.
|
|
@ -1 +0,0 @@
|
|||
add aliyun linux support and set alinux as redhat family
|
|
@ -1 +0,0 @@
|
|||
Don't fail updating network without netmask ip attribute
|
|
@ -1 +0,0 @@
|
|||
Return empty changes when nothing has been done in virt.defined and virt.running states
|
|
@ -1 +0,0 @@
|
|||
Import salt.utils.azurearm instead of using __utils__ from loader in azure cloud. This fixes an issue where __utils__ would become unavailable when we are using the ThreadPool in azurearm.
|
|
@ -1,3 +0,0 @@
|
|||
Fix an issue with the LGPO module when the gpt.ini file contains unix style line
|
||||
endings (/n). This was happening on a Windows Server 2019 instance created in
|
||||
Google Cloud Platform (GCP).
|
|
@ -1 +0,0 @@
|
|||
Add "poudriere -i -j jail_name" option to list jail information for poudriere
|
|
@ -1 +0,0 @@
|
|||
Updating the add, delete, modify, enable_job, and disable_job functions to return appropriate changes.
|
|
@ -1 +0,0 @@
|
|||
Fix Hetzner cloud driver does not recognize machines when rolling out a map
|
|
@ -1 +0,0 @@
|
|||
Removed support for Ubuntu 16.04
|
|
@ -1 +0,0 @@
|
|||
Salt api verifies proper log file path when providing '--log-file' from the cli
|
|
@ -1 +0,0 @@
|
|||
Added the grains.uuid on Windows platform
|
|
@ -1 +0,0 @@
|
|||
Detect Mendel Linux as Debian
|
1
changelog/59909.fixed
Normal file
1
changelog/59909.fixed
Normal file
|
@ -0,0 +1 @@
|
|||
add load balancing policy default option and ensure the module can be executed with arguments from CLI
|
|
@ -1 +0,0 @@
|
|||
Add a salt.util.platform check to detect the AArch64 64-bit extension of the ARM architecture.
|
|
@ -1 +0,0 @@
|
|||
Fixed compilation of requisite_ins by also checking state type along with name/id
|
|
@ -1 +0,0 @@
|
|||
Added missing space for nftables.build_rule when using saddr or daddr.
|
|
@ -1 +0,0 @@
|
|||
Add back support to load old entrypoints by iterating instead of type checking
|
|
@ -1 +0,0 @@
|
|||
Fixed interrupting salt-call in a pdb session.
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue