mirror of
https://github.com/saltstack/salt.git
synced 2025-04-07 04:51:38 +00:00
Merge branch '3006.x' into merge/3007.x/3006.x
This commit is contained in:
commit
8dd2e3473c
288 changed files with 6332 additions and 1573 deletions
2
.github/workflows/backport.yml
vendored
2
.github/workflows/backport.yml
vendored
|
@ -20,12 +20,14 @@ jobs:
|
|||
github.event.pull_request.merged == true
|
||||
&& (
|
||||
contains(github.event.pull_request.labels.*.name, 'backport:master') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'backport:3007.x') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'backport:3006.x') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'backport:3005.x')
|
||||
)
|
||||
&& (
|
||||
(github.event.action == 'labeled' && (
|
||||
contains(github.event.pull_request.labels.*.name, 'backport:master') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'backport:3007.x') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'backport:3006.x') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'backport:3005.x')
|
||||
))
|
||||
|
|
1
.github/workflows/build-docs.yml
vendored
1
.github/workflows/build-docs.yml
vendored
|
@ -32,7 +32,6 @@ jobs:
|
|||
- linkcheck
|
||||
- spellcheck
|
||||
- html
|
||||
- epub
|
||||
# - pdf
|
||||
|
||||
steps:
|
||||
|
|
6
.github/workflows/staging.yml
vendored
6
.github/workflows/staging.yml
vendored
|
@ -2868,12 +2868,6 @@ jobs:
|
|||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-docs-html.tar.xz
|
||||
path: artifacts/release
|
||||
|
||||
- name: Download Release Documentation (ePub)
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: Salt-${{ needs.prepare-workflow.outputs.salt-version }}.epub
|
||||
path: artifacts/release
|
||||
|
||||
- name: Show Release Artifacts
|
||||
run: |
|
||||
tree -a artifacts/release
|
||||
|
|
|
@ -124,12 +124,6 @@ concurrency:
|
|||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-docs-html.tar.xz
|
||||
path: artifacts/release
|
||||
|
||||
- name: Download Release Documentation (ePub)
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: Salt-${{ needs.prepare-workflow.outputs.salt-version }}.epub
|
||||
path: artifacts/release
|
||||
|
||||
- name: Show Release Artifacts
|
||||
run: |
|
||||
tree -a artifacts/release
|
||||
|
|
4
.github/workflows/test-action-windows.yml
vendored
4
.github/workflows/test-action-windows.yml
vendored
|
@ -374,8 +374,8 @@ jobs:
|
|||
if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' && job.status != 'cancelled'
|
||||
run: |
|
||||
nox --force-color -e create-xml-coverage-reports
|
||||
mv artifacts/coverage/salt.xml artifacts/coverage/salt..${{ inputs.distro-slug }}..${{ inputs.nox-session }}.xml
|
||||
mv artifacts/coverage/tests.xml artifacts/coverage/tests..${{ inputs.distro-slug }}..${{ inputs.nox-session }}.xml
|
||||
mv artifacts/coverage/salt.xml artifacts/coverage/salt..${{ inputs.distro-slug }}..${{ inputs.nox-session }}.xml || true
|
||||
mv artifacts/coverage/tests.xml artifacts/coverage/tests..${{ inputs.distro-slug }}..${{ inputs.nox-session }}.xml || true
|
||||
|
||||
- name: Report Salt Code Coverage
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success'
|
||||
|
|
38
.github/workflows/test-installer-action-windows.yml
vendored
Normal file
38
.github/workflows/test-installer-action-windows.yml
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
name: Test Windows Installer
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
Test-Windows-Installer:
|
||||
runs-on:
|
||||
- windows-latest
|
||||
|
||||
steps:
|
||||
|
||||
- name: Checkout Salt
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set Up Python 3.10
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Install NSIS
|
||||
run: .\pkg\windows\install_nsis.cmd -CICD
|
||||
shell: cmd
|
||||
|
||||
- name: Build Test Installer
|
||||
run: .\pkg\windows\nsis\tests\setup.cmd -CICD
|
||||
shell: cmd
|
||||
|
||||
- name: Run Stress Test
|
||||
run: .\pkg\windows\nsis\tests\test.cmd -CICD .\stress_tests
|
||||
shell: cmd
|
||||
|
||||
- name: Run Config Tests
|
||||
run: .\pkg\windows\nsis\tests\test.cmd -CICD .\config_tests
|
||||
shell: cmd
|
|
@ -192,12 +192,6 @@ jobs:
|
|||
run: |
|
||||
tools --timestamps vm decompress-dependencies ${{ inputs.distro-slug }}
|
||||
|
||||
- name: Downgrade importlib-metadata
|
||||
if: ${{ contains(fromJSON('["amazonlinux-2", "centos-7"]'), inputs.distro-slug) && contains(fromJSON('["upgrade-classic", "downgrade-classic"]'), matrix.tests-chunk) }}
|
||||
run: |
|
||||
# This step can go away once we stop testing classic packages upgrade/downgrades to/from 3005.x
|
||||
tools --timestamps vm ssh ${{ inputs.distro-slug }} -- "sudo python3 -m pip install -U 'importlib-metadata<=4.13.0' 'virtualenv<=20.21.1'"
|
||||
|
||||
- name: Show System Info
|
||||
run: |
|
||||
tools --timestamps --timeout-secs=1800 vm test --skip-requirements-install --print-system-information-only \
|
||||
|
|
|
@ -105,7 +105,7 @@ jobs:
|
|||
test:
|
||||
name: Test
|
||||
runs-on: ${{ inputs.runner }}
|
||||
timeout-minutes: 120 # 2 Hours - More than this and something is wrong
|
||||
timeout-minutes: 150 # 2 & 1/2 Hours - More than this and something is wrong (MacOS needs a little more time)
|
||||
needs:
|
||||
- generate-matrix
|
||||
strategy:
|
||||
|
|
|
@ -191,12 +191,6 @@ jobs:
|
|||
run: |
|
||||
tools --timestamps vm decompress-dependencies ${{ inputs.distro-slug }}
|
||||
|
||||
- name: Downgrade importlib-metadata
|
||||
if: ${{ contains(fromJSON('["amazonlinux-2", "centos-7"]'), inputs.distro-slug) && contains(fromJSON('["upgrade-classic", "downgrade-classic"]'), matrix.tests-chunk) }}
|
||||
run: |
|
||||
# This step can go away once we stop testing classic packages upgrade/downgrades to/from 3005.x
|
||||
tools --timestamps vm ssh ${{ inputs.distro-slug }} -- "sudo python3 -m pip install -U 'importlib-metadata<=4.13.0' 'virtualenv<=20.21.1'"
|
||||
|
||||
- name: Show System Info
|
||||
run: |
|
||||
tools --timestamps --timeout-secs=1800 vm test --skip-requirements-install --print-system-information-only \
|
||||
|
|
51
CHANGELOG.md
51
CHANGELOG.md
|
@ -13,10 +13,23 @@ Versions are `MAJOR.PATCH`.
|
|||
### Removed
|
||||
|
||||
- The ``salt.utils.psutil_compat`` was deprecated and now removed in Salt 3008. Please use the ``psutil`` module directly. [#66160](https://github.com/saltstack/salt/issues/66160)
|
||||
## 3006.9 (2024-07-29)
|
||||
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Drop CentOS 7 support [#66623](https://github.com/saltstack/salt/issues/66623)
|
||||
- No longer build RPM packages with CentOS Stream 9 [#66624](https://github.com/saltstack/salt/issues/66624)
|
||||
|
||||
|
||||
### Fixed
|
||||
|
||||
- Made slsutil.renderer work with salt-ssh [#50196](https://github.com/saltstack/salt/issues/50196)
|
||||
- Fixed defaults.merge is not available when using salt-ssh [#51605](https://github.com/saltstack/salt/issues/51605)
|
||||
- Fixed config.get does not support merge option with salt-ssh [#56441](https://github.com/saltstack/salt/issues/56441)
|
||||
- Update to include croniter in pkg requirements [#57649](https://github.com/saltstack/salt/issues/57649)
|
||||
- Fixed state.test does not work with salt-ssh [#61100](https://github.com/saltstack/salt/issues/61100)
|
||||
- Made slsutil.findup work with salt-ssh [#61143](https://github.com/saltstack/salt/issues/61143)
|
||||
- Fixes multiple issues with the cmd module on Windows. Scripts are called using
|
||||
the ``-File`` parameter to the ``powershell.exe`` binary. ``CLIXML`` data in
|
||||
stderr is now removed (only applies to encoded commands). Commands can now be
|
||||
|
@ -35,6 +48,38 @@ Versions are `MAJOR.PATCH`.
|
|||
- Change log level of successful master cluster key exchange from error to info. [#66266](https://github.com/saltstack/salt/issues/66266)
|
||||
- Made `file.managed` skip download of a remote source if the managed file already exists with the correct hash [#66342](https://github.com/saltstack/salt/issues/66342)
|
||||
- Fixed nftables.build_rule breaks ipv6 rules by using the wrong syntax for source and destination addresses [#66382](https://github.com/saltstack/salt/issues/66382)
|
||||
- file.replace and file.search work properly with /proc files [#63102](https://github.com/saltstack/salt/issues/63102)
|
||||
- Fix utf8 handling in 'pass' renderer [#64300](https://github.com/saltstack/salt/issues/64300)
|
||||
- Fixed incorrect version argument will be ignored for multiple package targets warning when using pkgs argument to yumpkg module. [#64563](https://github.com/saltstack/salt/issues/64563)
|
||||
- salt-cloud honors root_dir config setting for log_file location and fixes for root_dir locations on windows. [#64728](https://github.com/saltstack/salt/issues/64728)
|
||||
- Fixed slsutil.update with salt-ssh during template rendering [#65067](https://github.com/saltstack/salt/issues/65067)
|
||||
- Fix config.items when called on minion [#65251](https://github.com/saltstack/salt/issues/65251)
|
||||
- Ensure on rpm and deb systems, that user and group for existing Salt, is maintained on upgrade [#65264](https://github.com/saltstack/salt/issues/65264)
|
||||
- Fix typo in nftables module to ensure unique nft family values [#65295](https://github.com/saltstack/salt/issues/65295)
|
||||
- pkg.installed state aggregate does not honors requires requisite [#65304](https://github.com/saltstack/salt/issues/65304)
|
||||
- Added SSH wrapper for logmod [#65630](https://github.com/saltstack/salt/issues/65630)
|
||||
- Fix for GitFS failure to unlock lock file, and resource cleanup for process SIGTERM [#65816](https://github.com/saltstack/salt/issues/65816)
|
||||
- Corrected x509_v2 CRL creation `last_update` and `next_update` values when system timezone is not UTC [#65837](https://github.com/saltstack/salt/issues/65837)
|
||||
- Make sure the root minion process handles SIGUSR1 and emits a traceback like it's child processes [#66095](https://github.com/saltstack/salt/issues/66095)
|
||||
- Replaced pyvenv with builtin venv for virtualenv_mod [#66132](https://github.com/saltstack/salt/issues/66132)
|
||||
- Made `file.managed` skip download of a remote source if the managed file already exists with the correct hash [#66342](https://github.com/saltstack/salt/issues/66342)
|
||||
- Fix win_task ExecutionTimeLimit and result/error code interpretation [#66347](https://github.com/saltstack/salt/issues/66347), [#66441](https://github.com/saltstack/salt/issues/66441)
|
||||
- Fixed nftables.build_rule breaks ipv6 rules by using the wrong syntax for source and destination addresses [#66382](https://github.com/saltstack/salt/issues/66382)
|
||||
- Fixed x509_v2 certificate.managed crash for locally signed certificates if the signing policy defines signing_private_key [#66414](https://github.com/saltstack/salt/issues/66414)
|
||||
- Fixed parallel state execution with Salt-SSH [#66514](https://github.com/saltstack/salt/issues/66514)
|
||||
- Fix support for FIPS approved encryption and signing algorithms. [#66579](https://github.com/saltstack/salt/issues/66579)
|
||||
- Fix relative file_roots paths [#66588](https://github.com/saltstack/salt/issues/66588)
|
||||
- Fixed an issue with cmd.run with requirements when the shell is not the
|
||||
default [#66596](https://github.com/saltstack/salt/issues/66596)
|
||||
- Fix RPM package provides [#66604](https://github.com/saltstack/salt/issues/66604)
|
||||
- Upgrade relAenv to 0.16.1. This release fixes several package installs for salt-pip [#66632](https://github.com/saltstack/salt/issues/66632)
|
||||
- Upgrade relenv to 0.17.0 (https://github.com/saltstack/relenv/blob/v0.17.0/CHANGELOG.md) [#66663](https://github.com/saltstack/salt/issues/66663)
|
||||
- Upgrade dependencies due to security issues:
|
||||
- pymysql>=1.1.1
|
||||
- requests>=2.32.0
|
||||
- docker>=7.1.0 [#66666](https://github.com/saltstack/salt/issues/66666)
|
||||
- Corrected missed line in branch 3006.x when backporting from PR 61620 and 65044 [#66683](https://github.com/saltstack/salt/issues/66683)
|
||||
- Remove debug output from shell scripts for packaging [#66747](https://github.com/saltstack/salt/issues/66747)
|
||||
|
||||
|
||||
### Added
|
||||
|
@ -44,12 +89,18 @@ Versions are `MAJOR.PATCH`.
|
|||
unbootstrap chocolatey. [#64722](https://github.com/saltstack/salt/issues/64722)
|
||||
- Add Ubuntu 24.04 support [#66180](https://github.com/saltstack/salt/issues/66180)
|
||||
- Add Fedora 40 support, replacing Fedora 39 [#66300](https://github.com/saltstack/salt/issues/66300)
|
||||
- Add Ubuntu 24.04 support [#66180](https://github.com/saltstack/salt/issues/66180)
|
||||
- Add Fedora 40 support, replacing Fedora 39 [#66300](https://github.com/saltstack/salt/issues/66300)
|
||||
- Build RPM packages with Rocky Linux 9 (instead of CentOS Stream 9) [#66624](https://github.com/saltstack/salt/issues/66624)
|
||||
|
||||
|
||||
### Security
|
||||
|
||||
- Bump to `pydantic==2.6.4` due to https://github.com/advisories/GHSA-mr82-8j83-vxmv [#66433](https://github.com/saltstack/salt/issues/66433)
|
||||
- Bump to ``jinja2==3.1.4`` due to https://github.com/advisories/GHSA-h75v-3vvj-5mfj [#66488](https://github.com/saltstack/salt/issues/66488)
|
||||
- Bump to ``jinja2==3.1.4`` due to https://github.com/advisories/GHSA-h75v-3vvj-5mfj [#66488](https://github.com/saltstack/salt/issues/66488)
|
||||
- CVE-2024-37088 salt-call will fail with exit code 1 if bad pillar data is
|
||||
encountered. [#66702](https://github.com/saltstack/salt/issues/66702)
|
||||
|
||||
|
||||
## 3006.8 (2024-04-29)
|
||||
|
|
3
changelog/33669.added.md
Normal file
3
changelog/33669.added.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
Issue #33669: Fixes an issue with the ``ini_managed`` execution module
|
||||
where it would always wrap the separator with spaces. Adds a new parameter
|
||||
named ``no_spaces`` that will not warp the separator with spaces.
|
|
@ -1 +0,0 @@
|
|||
Made slsutil.renderer work with salt-ssh
|
|
@ -1 +0,0 @@
|
|||
Fixed defaults.merge is not available when using salt-ssh
|
|
@ -1 +0,0 @@
|
|||
Fixed config.get does not support merge option with salt-ssh
|
|
@ -1 +0,0 @@
|
|||
Update to include croniter in pkg requirements
|
|
@ -1 +0,0 @@
|
|||
Fixed state.test does not work with salt-ssh
|
|
@ -1 +0,0 @@
|
|||
Made slsutil.findup work with salt-ssh
|
|
@ -1 +0,0 @@
|
|||
Fix utf8 handling in 'pass' renderer
|
|
@ -1 +0,0 @@
|
|||
Fixed incorrect version argument will be ignored for multiple package targets warning when using pkgs argument to yumpkg module.
|
|
@ -1 +0,0 @@
|
|||
salt-cloud honors root_dir config setting for log_file location and fixes for root_dir locations on windows.
|
|
@ -1 +0,0 @@
|
|||
Fixed slsutil.update with salt-ssh during template rendering
|
1
changelog/65104.fixed.md
Normal file
1
changelog/65104.fixed.md
Normal file
|
@ -0,0 +1 @@
|
|||
The 'profile' outputter does not crash with incorrectly formatted data
|
|
@ -1 +0,0 @@
|
|||
Fix config.items when called on minion
|
|
@ -1 +0,0 @@
|
|||
pkg.installed state aggregate does not honors requires requisite
|
|
@ -1 +0,0 @@
|
|||
Added SSH wrapper for logmod
|
|
@ -1 +0,0 @@
|
|||
Fix for GitFS failure to unlock lock file, and resource cleanup for process SIGTERM
|
1
changelog/66249.fixed.md
Normal file
1
changelog/66249.fixed.md
Normal file
|
@ -0,0 +1 @@
|
|||
Fix batch mode hang indefinitely in some scenarios
|
|
@ -1 +0,0 @@
|
|||
Fix win_task ExecutionTimeLimit and result/error code interpretation
|
|
@ -1 +0,0 @@
|
|||
Fixed x509_v2 certificate.managed crash for locally signed certificates if the signing policy defines signing_private_key
|
|
@ -1 +0,0 @@
|
|||
Fix win_task ExecutionTimeLimit and result/error code interpretation
|
1
changelog/66467.removed.md
Normal file
1
changelog/66467.removed.md
Normal file
|
@ -0,0 +1 @@
|
|||
Remove psutil_compat.py file, which should have been removed when RHEL 6 EOL
|
|
@ -1 +0,0 @@
|
|||
Fix support for FIPS approved encryption and signing algorithms.
|
|
@ -1 +0,0 @@
|
|||
Fix RPM package provides
|
|
@ -1 +0,0 @@
|
|||
Drop CentOS 7 support
|
|
@ -1 +0,0 @@
|
|||
Build RPM packages with Rocky Linux 9 (instead of CentOS Stream 9)
|
|
@ -1 +0,0 @@
|
|||
No longer build RPM packages with CentOS Stream 9
|
|
@ -1 +0,0 @@
|
|||
Upgrade relAenv to 0.16.1. This release fixes several package installs for salt-pip
|
|
@ -1 +0,0 @@
|
|||
Upgrade relenv to 0.17.0 (https://github.com/saltstack/relenv/blob/v0.17.0/CHANGELOG.md)
|
|
@ -1,4 +0,0 @@
|
|||
Upgrade dependencies due to security issues:
|
||||
- pymysql>=1.1.1
|
||||
- requests>=2.32.0
|
||||
- docker>=7.1.0
|
|
@ -1 +0,0 @@
|
|||
Corrected missed line in branch 3006.x when backporting from PR 61620 and 65044
|
2
changelog/66716.fixed.md
Normal file
2
changelog/66716.fixed.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
Fixed an issue where ``status.master`` wasn't detecting a connection to the
|
||||
specified master properly
|
2
changelog/66718.fixed.md
Normal file
2
changelog/66718.fixed.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
Fixed ``win_wua.available`` when some of the update objects are empty CDispatch
|
||||
objects. The ``available`` function no longer crashes
|
1
changelog/66726.fixed.md
Normal file
1
changelog/66726.fixed.md
Normal file
|
@ -0,0 +1 @@
|
|||
Clean up multiprocessing file handles on minion
|
2
changelog/66786.fixed.md
Normal file
2
changelog/66786.fixed.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
Fix an issue where files created using `salt.utils.atomicile.atomic_open()`
|
||||
were created with restrictive permissions instead of respecting the umask.
|
1
changelog/66789.fixed.md
Normal file
1
changelog/66789.fixed.md
Normal file
|
@ -0,0 +1 @@
|
|||
Fix bad async_method name on AsyncPubClient class
|
1
changelog/66796.fixed.md
Normal file
1
changelog/66796.fixed.md
Normal file
|
@ -0,0 +1 @@
|
|||
Ensure Manjaro ARM reports the correct os_family of Arch.
|
|
@ -16,7 +16,7 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
|||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean check_sphinx-build html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
|
||||
.PHONY: help clean check_sphinx-build html dirhtml singlehtml pickle json htmlhelp qthelp devhelp latex latexpdf text man changes linkcheck doctest
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
|
@ -28,7 +28,6 @@ help:
|
|||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " pdf to make Salt-all.pdf and splitted pdf using xelatex"
|
||||
@echo " cheatsheet to create salt-cheatsheet.pdf"
|
||||
|
@ -101,11 +100,6 @@ devhelp: check_sphinx-build
|
|||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Salt"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub: check_sphinx-build
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex: check_sphinx-build
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
|
|
2
doc/_themes/saltstack2/layout.html
vendored
2
doc/_themes/saltstack2/layout.html
vendored
|
@ -193,10 +193,8 @@
|
|||
|
||||
{% if not (build_type == repo_primary_branch or build_type == "next") and on_saltstack %}
|
||||
<li><a class="icon-dl" href="/en/pdf/Salt-{{ release }}.pdf"><img height="25" width="25" class="nolightbox" src="{{ pathto('_static/images/pdf_icon.svg', 1) }}"></a></li>
|
||||
<li><a class="icon-dl" href="/en/epub/Salt-{{ release }}.epub"><img height="25" width="18" class="nolightbox" src="{{ pathto('_static/images/epub_icon.svg', 1) }}"></a></li>
|
||||
{% elif build_type == repo_primary_branch and on_saltstack %}
|
||||
<li><a class="icon-dl" href="/en/pdf/Salt-{{ repo_primary_branch }}.pdf"><img height="25" width="25" class="nolightbox" src="{{ pathto('_static/images/pdf_icon.svg', 1) }}"></a></li>
|
||||
<li><a class="icon-dl" href="/en/epub/Salt-{{ repo_primary_branch }}.epub"><img height="25" width="18" class="nolightbox" src="{{ pathto('_static/images/epub_icon.svg', 1) }}"></a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="600px" height="800px" viewBox="0 0 600 800" enable-background="new 0 0 600 800" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#86B918" d="M131.969,755.898c11.244,0,19.199-4.599,25.85-11.573l7.591,6.827c-8.227,9.192-18.222,15.376-33.76,15.376
|
||||
c-22.534,0-40.906-17.294-40.906-42.824c0-23.777,16.649-42.815,39.333-42.815c24.237,0,38.203,19.347,38.203,43.453
|
||||
c0,1.113,0,2.381-0.15,3.803h-65.031C104.838,745.921,117.536,755.898,131.969,755.898z M155.927,719.111
|
||||
c-1.277-14.907-9.844-27.916-26.194-27.916c-14.242,0-25.043,11.909-26.639,27.916H155.927z"/>
|
||||
<path fill="#41281B" d="M231.23,725.461h-26.957v39.177H191.75V653.616h41.562c25.043,0,41.542,13.331,41.542,35.373
|
||||
C274.854,713.096,254.87,725.461,231.23,725.461z M232.333,665.196h-28.062v48.839h27.447c18.386,0,30.441-9.823,30.441-24.577
|
||||
C262.163,673.444,250.28,665.196,232.333,665.196z"/>
|
||||
<path fill="#41281B" d="M388.377,717.193c0,32.363-18.535,49.174-46.3,49.174c-27.424,0-46.134-16.811-46.134-48.208v-64.543
|
||||
h12.518v63.752c0,23.939,12.693,37.425,33.954,37.425c20.453,0,33.462-12.378,33.462-36.634v-64.543h12.5V717.193z"/>
|
||||
<path fill="#41281B" d="M500.202,681.379c0,14.584-8.885,22.034-17.602,25.85c13.163,3.95,23.771,11.561,23.771,26.958
|
||||
c0,19.172-16.014,30.451-40.269,30.451h-50.112V653.616h48.048C485.92,653.616,500.202,664.392,500.202,681.379z M487.51,683.122
|
||||
c0-11.112-8.739-18.24-24.573-18.24h-34.59v38.229h33.63C477.033,703.104,487.51,696.277,487.51,683.122z M493.698,733.388
|
||||
c0-12.218-10.162-19.192-29.513-19.192h-35.839v39.163h38.076C483.238,753.358,493.698,745.921,493.698,733.388z"/>
|
||||
</g>
|
||||
<path fill="#86B918" d="M298.549,467.913L129.228,298.579L298.549,129.27l56.446,56.435L242.104,298.579l56.441,56.443
|
||||
l169.323-169.308L320.366,38.217c-12.043-12.055-31.579-12.055-43.634,0L38.169,276.781c-12.044,12.043-12.044,31.58,0,43.633
|
||||
l238.563,238.557c12.055,12.05,31.591,12.05,43.634,0l238.565-238.557c12.044-12.053,12.044-31.59,0-43.633l-34.631-34.622
|
||||
L298.549,467.913z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.3 KiB |
13
doc/conf.py
13
doc/conf.py
|
@ -383,19 +383,6 @@ man_pages = [
|
|||
]
|
||||
|
||||
|
||||
### epub options
|
||||
epub_title = "Salt Documentation"
|
||||
epub_author = "VMware, Inc."
|
||||
epub_publisher = epub_author
|
||||
epub_copyright = copyright
|
||||
|
||||
epub_scheme = "URL"
|
||||
epub_identifier = "http://saltproject.io/"
|
||||
|
||||
epub_tocdup = False
|
||||
# epub_tocdepth = 3
|
||||
|
||||
|
||||
def skip_mod_init_member(app, what, name, obj, skip, options):
|
||||
# pylint: disable=too-many-arguments,unused-argument
|
||||
if name.startswith("_"):
|
||||
|
|
87
doc/topics/releases/3006.9.md
Normal file
87
doc/topics/releases/3006.9.md
Normal file
|
@ -0,0 +1,87 @@
|
|||
(release-3006.9)=
|
||||
# Salt 3006.9 release notes
|
||||
|
||||
<!---
|
||||
Do not edit this file. This is auto generated.
|
||||
Edit the templates in doc/topics/releases/templates/
|
||||
for a given release.
|
||||
-->
|
||||
|
||||
|
||||
<!--
|
||||
Add release specific details below
|
||||
-->
|
||||
|
||||
<!--
|
||||
Do not edit the changelog below.
|
||||
This is auto generated.
|
||||
-->
|
||||
## Changelog
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Drop CentOS 7 support [#66623](https://github.com/saltstack/salt/issues/66623)
|
||||
- No longer build RPM packages with CentOS Stream 9 [#66624](https://github.com/saltstack/salt/issues/66624)
|
||||
|
||||
|
||||
### Fixed
|
||||
|
||||
- Made slsutil.renderer work with salt-ssh [#50196](https://github.com/saltstack/salt/issues/50196)
|
||||
- Fixed defaults.merge is not available when using salt-ssh [#51605](https://github.com/saltstack/salt/issues/51605)
|
||||
- Fixed config.get does not support merge option with salt-ssh [#56441](https://github.com/saltstack/salt/issues/56441)
|
||||
- Update to include croniter in pkg requirements [#57649](https://github.com/saltstack/salt/issues/57649)
|
||||
- Fixed state.test does not work with salt-ssh [#61100](https://github.com/saltstack/salt/issues/61100)
|
||||
- Made slsutil.findup work with salt-ssh [#61143](https://github.com/saltstack/salt/issues/61143)
|
||||
- Fixes multiple issues with the cmd module on Windows. Scripts are called using
|
||||
the ``-File`` parameter to the ``powershell.exe`` binary. ``CLIXML`` data in
|
||||
stderr is now removed (only applies to encoded commands). Commands can now be
|
||||
sent to ``cmd.powershell`` as a list. Makes sure JSON data returned is valid.
|
||||
Strips whitespace from the return when using ``runas``. [#61166](https://github.com/saltstack/salt/issues/61166)
|
||||
- Fixed the win_lgpo_netsh salt util to handle non-English systems. This was a
|
||||
rewrite to use PowerShell instead of netsh to make the changes on the system [#61534](https://github.com/saltstack/salt/issues/61534)
|
||||
- file.replace and file.search work properly with /proc files [#63102](https://github.com/saltstack/salt/issues/63102)
|
||||
- Fix utf8 handling in 'pass' renderer [#64300](https://github.com/saltstack/salt/issues/64300)
|
||||
- Fixed incorrect version argument will be ignored for multiple package targets warning when using pkgs argument to yumpkg module. [#64563](https://github.com/saltstack/salt/issues/64563)
|
||||
- salt-cloud honors root_dir config setting for log_file location and fixes for root_dir locations on windows. [#64728](https://github.com/saltstack/salt/issues/64728)
|
||||
- Fixed slsutil.update with salt-ssh during template rendering [#65067](https://github.com/saltstack/salt/issues/65067)
|
||||
- Fix config.items when called on minion [#65251](https://github.com/saltstack/salt/issues/65251)
|
||||
- Ensure on rpm and deb systems, that user and group for existing Salt, is maintained on upgrade [#65264](https://github.com/saltstack/salt/issues/65264)
|
||||
- Fix typo in nftables module to ensure unique nft family values [#65295](https://github.com/saltstack/salt/issues/65295)
|
||||
- pkg.installed state aggregate does not honors requires requisite [#65304](https://github.com/saltstack/salt/issues/65304)
|
||||
- Added SSH wrapper for logmod [#65630](https://github.com/saltstack/salt/issues/65630)
|
||||
- Fix for GitFS failure to unlock lock file, and resource cleanup for process SIGTERM [#65816](https://github.com/saltstack/salt/issues/65816)
|
||||
- Corrected x509_v2 CRL creation `last_update` and `next_update` values when system timezone is not UTC [#65837](https://github.com/saltstack/salt/issues/65837)
|
||||
- Make sure the root minion process handles SIGUSR1 and emits a traceback like it's child processes [#66095](https://github.com/saltstack/salt/issues/66095)
|
||||
- Replaced pyvenv with builtin venv for virtualenv_mod [#66132](https://github.com/saltstack/salt/issues/66132)
|
||||
- Made `file.managed` skip download of a remote source if the managed file already exists with the correct hash [#66342](https://github.com/saltstack/salt/issues/66342)
|
||||
- Fix win_task ExecutionTimeLimit and result/error code interpretation [#66347](https://github.com/saltstack/salt/issues/66347), [#66441](https://github.com/saltstack/salt/issues/66441)
|
||||
- Fixed nftables.build_rule breaks ipv6 rules by using the wrong syntax for source and destination addresses [#66382](https://github.com/saltstack/salt/issues/66382)
|
||||
- Fixed x509_v2 certificate.managed crash for locally signed certificates if the signing policy defines signing_private_key [#66414](https://github.com/saltstack/salt/issues/66414)
|
||||
- Fixed parallel state execution with Salt-SSH [#66514](https://github.com/saltstack/salt/issues/66514)
|
||||
- Fix support for FIPS approved encryption and signing algorithms. [#66579](https://github.com/saltstack/salt/issues/66579)
|
||||
- Fix relative file_roots paths [#66588](https://github.com/saltstack/salt/issues/66588)
|
||||
- Fixed an issue with cmd.run with requirements when the shell is not the
|
||||
default [#66596](https://github.com/saltstack/salt/issues/66596)
|
||||
- Fix RPM package provides [#66604](https://github.com/saltstack/salt/issues/66604)
|
||||
- Upgrade relAenv to 0.16.1. This release fixes several package installs for salt-pip [#66632](https://github.com/saltstack/salt/issues/66632)
|
||||
- Upgrade relenv to 0.17.0 (https://github.com/saltstack/relenv/blob/v0.17.0/CHANGELOG.md) [#66663](https://github.com/saltstack/salt/issues/66663)
|
||||
- Upgrade dependencies due to security issues:
|
||||
- pymysql>=1.1.1
|
||||
- requests>=2.32.0
|
||||
- docker>=7.1.0 [#66666](https://github.com/saltstack/salt/issues/66666)
|
||||
- Corrected missed line in branch 3006.x when backporting from PR 61620 and 65044 [#66683](https://github.com/saltstack/salt/issues/66683)
|
||||
- Remove debug output from shell scripts for packaging [#66747](https://github.com/saltstack/salt/issues/66747)
|
||||
|
||||
|
||||
### Added
|
||||
|
||||
- Add Ubuntu 24.04 support [#66180](https://github.com/saltstack/salt/issues/66180)
|
||||
- Add Fedora 40 support, replacing Fedora 39 [#66300](https://github.com/saltstack/salt/issues/66300)
|
||||
- Build RPM packages with Rocky Linux 9 (instead of CentOS Stream 9) [#66624](https://github.com/saltstack/salt/issues/66624)
|
||||
|
||||
|
||||
### Security
|
||||
|
||||
- Bump to ``jinja2==3.1.4`` due to https://github.com/advisories/GHSA-h75v-3vvj-5mfj [#66488](https://github.com/saltstack/salt/issues/66488)
|
||||
- CVE-2024-37088 salt-call will fail with exit code 1 if bad pillar data is
|
||||
encountered. [#66702](https://github.com/saltstack/salt/issues/66702)
|
14
doc/topics/releases/templates/3006.9.md.template
Normal file
14
doc/topics/releases/templates/3006.9.md.template
Normal file
|
@ -0,0 +1,14 @@
|
|||
(release-3006.9)=
|
||||
# Salt 3006.9 release notes{{ unreleased }}
|
||||
{{ warning }}
|
||||
|
||||
<!--
|
||||
Add release specific details below
|
||||
-->
|
||||
|
||||
<!--
|
||||
Do not edit the changelog below.
|
||||
This is auto generated.
|
||||
-->
|
||||
## Changelog
|
||||
{{ changelog }}
|
15
noxfile.py
15
noxfile.py
|
@ -1870,18 +1870,10 @@ def ci_test_onedir_pkgs(session):
|
|||
"--upgrade",
|
||||
"--no-uninstall",
|
||||
],
|
||||
"upgrade-classic": [
|
||||
"--upgrade",
|
||||
"--no-uninstall",
|
||||
],
|
||||
"downgrade": [
|
||||
"--downgrade",
|
||||
"--no-uninstall",
|
||||
],
|
||||
"downgrade-classic": [
|
||||
"--downgrade",
|
||||
"--no-uninstall",
|
||||
],
|
||||
"download-pkgs": [
|
||||
"--download-pkgs",
|
||||
],
|
||||
|
@ -1912,9 +1904,6 @@ def ci_test_onedir_pkgs(session):
|
|||
"PKG_TEST_TYPE": chunk,
|
||||
}
|
||||
|
||||
if chunk in ("upgrade-classic", "downgrade-classic"):
|
||||
cmd_args.append("--classic")
|
||||
|
||||
pytest_args = (
|
||||
common_pytest_args[:]
|
||||
+ cmd_args[:]
|
||||
|
@ -1982,8 +1971,6 @@ def ci_test_onedir_pkgs(session):
|
|||
)
|
||||
if "downgrade" in chunk:
|
||||
pytest_args.append("--use-prev-version")
|
||||
if chunk in ("upgrade-classic", "downgrade-classic"):
|
||||
pytest_args.append("--classic")
|
||||
if append_tests_path:
|
||||
pytest_args.append("tests/pytests/pkg/")
|
||||
try:
|
||||
|
@ -2006,8 +1993,6 @@ def ci_test_onedir_pkgs(session):
|
|||
)
|
||||
if "downgrade" in chunk:
|
||||
pytest_args.append("--use-prev-version")
|
||||
if chunk in ("upgrade-classic", "downgrade-classic"):
|
||||
pytest_args.append("--classic")
|
||||
if append_tests_path:
|
||||
pytest_args.append("tests/pytests/pkg/")
|
||||
_pytest(
|
||||
|
|
|
@ -42,6 +42,70 @@ salt (3007.1) stable; urgency=medium
|
|||
|
||||
-- Salt Project Packaging <saltproject-packaging@vmware.com> Sun, 19 May 2024 12:48:59 +0000
|
||||
|
||||
salt (3006.9) stable; urgency=medium
|
||||
|
||||
|
||||
# Deprecated
|
||||
|
||||
* Drop CentOS 7 support [#66623](https://github.com/saltstack/salt/issues/66623)
|
||||
* No longer build RPM packages with CentOS Stream 9 [#66624](https://github.com/saltstack/salt/issues/66624)
|
||||
|
||||
# Fixed
|
||||
|
||||
* Made slsutil.renderer work with salt-ssh [#50196](https://github.com/saltstack/salt/issues/50196)
|
||||
* Fixed defaults.merge is not available when using salt-ssh [#51605](https://github.com/saltstack/salt/issues/51605)
|
||||
* Fixed config.get does not support merge option with salt-ssh [#56441](https://github.com/saltstack/salt/issues/56441)
|
||||
* Update to include croniter in pkg requirements [#57649](https://github.com/saltstack/salt/issues/57649)
|
||||
* Fixed state.test does not work with salt-ssh [#61100](https://github.com/saltstack/salt/issues/61100)
|
||||
* Made slsutil.findup work with salt-ssh [#61143](https://github.com/saltstack/salt/issues/61143)
|
||||
* file.replace and file.search work properly with /proc files [#63102](https://github.com/saltstack/salt/issues/63102)
|
||||
* Fix utf8 handling in 'pass' renderer [#64300](https://github.com/saltstack/salt/issues/64300)
|
||||
* Fixed incorrect version argument will be ignored for multiple package targets warning when using pkgs argument to yumpkg module. [#64563](https://github.com/saltstack/salt/issues/64563)
|
||||
* salt-cloud honors root_dir config setting for log_file location and fixes for root_dir locations on windows. [#64728](https://github.com/saltstack/salt/issues/64728)
|
||||
* Fixed slsutil.update with salt-ssh during template rendering [#65067](https://github.com/saltstack/salt/issues/65067)
|
||||
* Fix config.items when called on minion [#65251](https://github.com/saltstack/salt/issues/65251)
|
||||
* Ensure on rpm and deb systems, that user and group for existing Salt, is maintained on upgrade [#65264](https://github.com/saltstack/salt/issues/65264)
|
||||
* Fix typo in nftables module to ensure unique nft family values [#65295](https://github.com/saltstack/salt/issues/65295)
|
||||
* pkg.installed state aggregate does not honors requires requisite [#65304](https://github.com/saltstack/salt/issues/65304)
|
||||
* Added SSH wrapper for logmod [#65630](https://github.com/saltstack/salt/issues/65630)
|
||||
* Fix for GitFS failure to unlock lock file, and resource cleanup for process SIGTERM [#65816](https://github.com/saltstack/salt/issues/65816)
|
||||
* Corrected x509_v2 CRL creation `last_update` and `next_update` values when system timezone is not UTC [#65837](https://github.com/saltstack/salt/issues/65837)
|
||||
* Make sure the root minion process handles SIGUSR1 and emits a traceback like it's child processes [#66095](https://github.com/saltstack/salt/issues/66095)
|
||||
* Replaced pyvenv with builtin venv for virtualenv_mod [#66132](https://github.com/saltstack/salt/issues/66132)
|
||||
* Made `file.managed` skip download of a remote source if the managed file already exists with the correct hash [#66342](https://github.com/saltstack/salt/issues/66342)
|
||||
* Fix win_task ExecutionTimeLimit and result/error code interpretation [#66347](https://github.com/saltstack/salt/issues/66347), [#66441](https://github.com/saltstack/salt/issues/66441)
|
||||
* Fixed nftables.build_rule breaks ipv6 rules by using the wrong syntax for source and destination addresses [#66382](https://github.com/saltstack/salt/issues/66382)
|
||||
* Fixed x509_v2 certificate.managed crash for locally signed certificates if the signing policy defines signing_private_key [#66414](https://github.com/saltstack/salt/issues/66414)
|
||||
* Fixed parallel state execution with Salt-SSH [#66514](https://github.com/saltstack/salt/issues/66514)
|
||||
* Fix support for FIPS approved encryption and signing algorithms. [#66579](https://github.com/saltstack/salt/issues/66579)
|
||||
* Fix relative file_roots paths [#66588](https://github.com/saltstack/salt/issues/66588)
|
||||
* Fixed an issue with cmd.run with requirements when the shell is not the
|
||||
default [#66596](https://github.com/saltstack/salt/issues/66596)
|
||||
* Fix RPM package provides [#66604](https://github.com/saltstack/salt/issues/66604)
|
||||
* Upgrade relAenv to 0.16.1. This release fixes several package installs for salt-pip [#66632](https://github.com/saltstack/salt/issues/66632)
|
||||
* Upgrade relenv to 0.17.0 (https://github.com/saltstack/relenv/blob/v0.17.0/CHANGELOG.md) [#66663](https://github.com/saltstack/salt/issues/66663)
|
||||
* Upgrade dependencies due to security issues:
|
||||
* pymysql>=1.1.1
|
||||
* requests>=2.32.0
|
||||
* docker>=7.1.0 [#66666](https://github.com/saltstack/salt/issues/66666)
|
||||
* Corrected missed line in branch 3006.x when backporting from PR 61620 and 65044 [#66683](https://github.com/saltstack/salt/issues/66683)
|
||||
* Remove debug output from shell scripts for packaging [#66747](https://github.com/saltstack/salt/issues/66747)
|
||||
|
||||
# Added
|
||||
|
||||
* Add Ubuntu 24.04 support [#66180](https://github.com/saltstack/salt/issues/66180)
|
||||
* Add Fedora 40 support, replacing Fedora 39 [#66300](https://github.com/saltstack/salt/issues/66300)
|
||||
* Build RPM packages with Rocky Linux 9 (instead of CentOS Stream 9) [#66624](https://github.com/saltstack/salt/issues/66624)
|
||||
|
||||
# Security
|
||||
|
||||
* Bump to ``jinja2==3.1.4`` due to https://github.com/advisories/GHSA-h75v-3vvj-5mfj [#66488](https://github.com/saltstack/salt/issues/66488)
|
||||
* CVE-2024-37088 salt-call will fail with exit code 1 if bad pillar data is
|
||||
encountered. [#66702](https://github.com/saltstack/salt/issues/66702)
|
||||
|
||||
|
||||
-- Salt Project Packaging <saltproject-packaging@vmware.com> Mon, 29 Jul 2024 07:42:36 +0000
|
||||
|
||||
salt (3006.8) stable; urgency=medium
|
||||
|
||||
|
||||
|
|
|
@ -1,10 +1,37 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
if [ ! -e "/var/log/salt/api" ]; then
|
||||
touch /var/log/salt/api
|
||||
chmod 640 /var/log/salt/api
|
||||
db_get salt-api/user
|
||||
if [ "$RET" != "root" ]; then
|
||||
if [ ! -e "/var/log/salt/api" ]; then
|
||||
touch /var/log/salt/api
|
||||
chmod 640 /var/log/salt/api
|
||||
fi
|
||||
chown $RET:$RET /var/log/salt/api
|
||||
fi
|
||||
if command -v systemctl; then
|
||||
db_get salt-api/active
|
||||
RESLT=$(echo "$RET" | cut -d ' ' -f 1)
|
||||
if [ "$RESLT" != 10 ]; then
|
||||
systemctl daemon-reload
|
||||
if [ "$RESLT" = "active" ]; then
|
||||
systemctl restart salt-api
|
||||
fi
|
||||
db_get salt-api/enabled
|
||||
RESLT=$(echo "$RET" | cut -d ' ' -f 1)
|
||||
if [ "$RESLT" = "disabled" ]; then
|
||||
systemctl disable salt-api
|
||||
else
|
||||
systemctl enable salt-api
|
||||
fi
|
||||
else
|
||||
systemctl daemon-reload
|
||||
systemctl restart salt-api
|
||||
systemctl enable salt-api
|
||||
fi
|
||||
fi
|
||||
chown salt:salt /var/log/salt/api
|
||||
if command -v systemctl; then systemctl enable salt-api; fi
|
||||
;;
|
||||
esac
|
||||
|
|
28
pkg/debian/salt-api.preinst
Normal file
28
pkg/debian/salt-api.preinst
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
case "$1" in
|
||||
upgrade)
|
||||
[ -z "$SALT_HOME" ] && SALT_HOME=/opt/saltstack/salt
|
||||
[ -z "$SALT_USER" ] && SALT_USER=salt
|
||||
[ -z "$SALT_NAME" ] && SALT_NAME="Salt"
|
||||
[ -z "$SALT_GROUP" ] && SALT_GROUP=salt
|
||||
|
||||
# Reset permissions to fix previous installs
|
||||
CUR_USER=$(ls -dl /run/salt-api.pid | cut -d ' ' -f 3)
|
||||
CUR_GROUP=$(ls -dl /run/salt-api.pid | cut -d ' ' -f 4)
|
||||
db_set salt-api/user $CUR_USER
|
||||
chown -R $CUR_USER:$CUR_GROUP /var/log/salt/api
|
||||
if command -v systemctl; then
|
||||
SM_ENABLED=$(systemctl show -p UnitFileState salt-api | cut -d '=' -f 2)
|
||||
db_set salt-api/enabled $SM_ENABLED
|
||||
SM_ACTIVE=$(systemctl is-active salt-api)
|
||||
db_set salt-api/active $SM_ACTIVE
|
||||
else
|
||||
db_set salt-api/enabled enabled
|
||||
db_set salt-api/active active
|
||||
|
||||
fi
|
||||
;;
|
||||
esac
|
17
pkg/debian/salt-api.templates
Normal file
17
pkg/debian/salt-api.templates
Normal file
|
@ -0,0 +1,17 @@
|
|||
Template: salt-api/user
|
||||
Type: string
|
||||
Default: salt
|
||||
Description: User for salt-api
|
||||
User to run the salt-api process as
|
||||
|
||||
Template: salt-api/enabled
|
||||
Type: string
|
||||
Default: enabled
|
||||
Description: Systemd enable state for salt-api
|
||||
default enable state for salt-api systemd state
|
||||
|
||||
Template: salt-api/active
|
||||
Type: string
|
||||
Default: active
|
||||
Description: Systemd active state for salt-api
|
||||
default active state for salt-api systemd state
|
|
@ -1,6 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
PY_VER=$(/opt/saltstack/salt/bin/python3 -c "import sys; sys.stdout.write('{}.{}'.format(*sys.version_info)); sys.stdout.flush;")
|
||||
chown -R salt:salt /etc/salt/cloud.deploy.d /opt/saltstack/salt/lib/python${PY_VER}/site-packages/salt/cloud/deploy
|
||||
db_get salt-master/user
|
||||
if [ "$RET" != "root" ]; then
|
||||
PY_VER=$(/opt/saltstack/salt/bin/python3 -c "import sys; sys.stdout.write('{}.{}'.format(*sys.version_info)); sys.stdout.flush;")
|
||||
chown -R $RET:$RET /etc/salt/cloud.deploy.d /opt/saltstack/salt/lib/python${PY_VER}/site-packages/salt/cloud/deploy
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -1,14 +1,41 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
if [ ! -e "/var/log/salt/master" ]; then
|
||||
touch /var/log/salt/master
|
||||
chmod 640 /var/log/salt/master
|
||||
db_get salt-master/user
|
||||
if [ "$RET" != "root" ]; then
|
||||
if [ ! -e "/var/log/salt/master" ]; then
|
||||
touch /var/log/salt/master
|
||||
chmod 640 /var/log/salt/master
|
||||
fi
|
||||
if [ ! -e "/var/log/salt/key" ]; then
|
||||
touch /var/log/salt/key
|
||||
chmod 640 /var/log/salt/key
|
||||
fi
|
||||
chown -R $RET:$RET /etc/salt/pki/master /etc/salt/master.d /var/log/salt/master /var/log/salt/key /var/cache/salt/master /var/run/salt/master
|
||||
fi
|
||||
if [ ! -e "/var/log/salt/key" ]; then
|
||||
touch /var/log/salt/key
|
||||
chmod 640 /var/log/salt/key
|
||||
if command -v systemctl; then
|
||||
db_get salt-master/active
|
||||
RESLT=$(echo "$RET" | cut -d ' ' -f 1)
|
||||
if [ "$RESLT" != 10 ]; then
|
||||
systemctl daemon-reload
|
||||
if [ "$RESLT" = "active" ]; then
|
||||
systemctl restart salt-master
|
||||
fi
|
||||
db_get salt-master/enabled
|
||||
RESLT=$(echo "$RET" | cut -d ' ' -f 1)
|
||||
if [ "$RESLT" = "disabled" ]; then
|
||||
systemctl disable salt-master
|
||||
else
|
||||
systemctl enable salt-master
|
||||
fi
|
||||
else
|
||||
systemctl daemon-reload
|
||||
systemctl restart salt-master
|
||||
systemctl enable salt-master
|
||||
fi
|
||||
fi
|
||||
chown -R salt:salt /etc/salt/pki/master /etc/salt/master.d /var/log/salt/master /var/log/salt/key /var/cache/salt/master /var/run/salt/master
|
||||
if command -v systemctl; then systemctl enable salt-master; fi
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
case "$1" in
|
||||
install|upgrade)
|
||||
install)
|
||||
[ -z "$SALT_HOME" ] && SALT_HOME=/opt/saltstack/salt
|
||||
[ -z "$SALT_USER" ] && SALT_USER=salt
|
||||
[ -z "$SALT_NAME" ] && SALT_NAME="Salt"
|
||||
|
@ -8,11 +12,37 @@ case "$1" in
|
|||
|
||||
# Reset permissions to fix previous installs
|
||||
find ${SALT_HOME} /etc/salt /var/log/salt /var/cache/salt /var/run/salt \
|
||||
\! \( -path /etc/salt/cloud.deploy.d\* -o -path /var/log/salt/cloud -o -path /opt/saltstack/salt/lib/python${PY_VER}/site-packages/salt/cloud/deploy\* \) -a \
|
||||
\( -user ${SALT_USER} -o -group ${SALT_GROUP} \) -exec chown root:root \{\} \;
|
||||
\! \( -path /etc/salt/cloud.deploy.d\* -o -path /var/log/salt/cloud -o -path \
|
||||
/opt/saltstack/salt/lib/python${PY_VER}/site-packages/salt/cloud/deploy\* \) -a \( -user ${SALT_USER} \
|
||||
-o -group ${SALT_GROUP} \) -exec chown ${SALT_USER}:${SALT_GROUP} \{\} \;
|
||||
|
||||
# remove incorrectly installed ufw salt-master directory - issue 57712
|
||||
test -d /etc/ufw/applications.d/salt-master && rm -rf /etc/ufw/applications.d/salt-master || /bin/true
|
||||
;;
|
||||
|
||||
;;
|
||||
upgrade)
|
||||
[ -z "$SALT_HOME" ] && SALT_HOME=/opt/saltstack/salt
|
||||
[ -z "$SALT_USER" ] && SALT_USER=salt
|
||||
[ -z "$SALT_NAME" ] && SALT_NAME="Salt"
|
||||
[ -z "$SALT_GROUP" ] && SALT_GROUP=salt
|
||||
PY_VER=$(/opt/saltstack/salt/bin/python3 -c "import sys; sys.stdout.write('{}.{}'.format(*sys.version_info)); sys.stdout.flush();")
|
||||
|
||||
# Reset permissions to fix previous installs
|
||||
CUR_USER=$(ls -dl /run/salt/master | cut -d ' ' -f 3)
|
||||
CUR_GROUP=$(ls -dl /run/salt/master | cut -d ' ' -f 4)
|
||||
db_set salt-master/user $CUR_USER
|
||||
chown -R $CUR_USER:$CUR_GROUP /etc/salt/pki/master /etc/salt/master.d /var/log/salt/master \
|
||||
/var/log/salt/key /var/cache/salt/master /var/run/salt/master
|
||||
if command -v systemctl; then
|
||||
SM_ENABLED=$(systemctl show -p UnitFileState salt-master | cut -d '=' -f 2)
|
||||
db_set salt-master/enabled $SM_ENABLED
|
||||
SM_ACTIVE=$(systemctl is-active salt-master)
|
||||
db_set salt-master/active $SM_ACTIVE
|
||||
else
|
||||
db_set salt-master/enabled enabled
|
||||
db_set salt-master/active active
|
||||
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# remove incorrectly installed ufw salt-master directory - issue 57712
|
||||
test -d /etc/ufw/applications.d/salt-master && rm -rf /etc/ufw/applications.d/salt-master || /bin/true
|
||||
|
|
17
pkg/debian/salt-master.templates
Normal file
17
pkg/debian/salt-master.templates
Normal file
|
@ -0,0 +1,17 @@
|
|||
Template: salt-master/user
|
||||
Type: string
|
||||
Default: salt
|
||||
Description: User for salt-master
|
||||
User to run the salt-master process as
|
||||
|
||||
Template: salt-master/enabled
|
||||
Type: string
|
||||
Default: enabled
|
||||
Description: Systemd enable state for salt-master
|
||||
default enable state for salt-master systemd state
|
||||
|
||||
Template: salt-master/active
|
||||
Type: string
|
||||
Default: active
|
||||
Description: Systemd active state for salt-master
|
||||
default active state for salt-master systemd state
|
41
pkg/debian/salt-minion.postinst
Normal file
41
pkg/debian/salt-minion.postinst
Normal file
|
@ -0,0 +1,41 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
db_get salt-minion/user
|
||||
if [ "$RET" != "root" ]; then
|
||||
if [ ! -e "/var/log/salt/minion" ]; then
|
||||
touch /var/log/salt/minion
|
||||
chmod 640 /var/log/salt/minion
|
||||
fi
|
||||
if [ ! -e "/var/log/salt/key" ]; then
|
||||
touch /var/log/salt/key
|
||||
chmod 640 /var/log/salt/key
|
||||
fi
|
||||
chown -R $RET:$RET /etc/salt/pki/minion /etc/salt/minion.d /var/log/salt/minion /var/cache/salt/minion /var/run/salt/minion
|
||||
fi
|
||||
if command -v systemctl; then
|
||||
db_get salt-minion/active
|
||||
RESLT=$(echo "$RET" | cut -d ' ' -f 1)
|
||||
if [ "$RESLT" != 10 ]; then
|
||||
systemctl daemon-reload
|
||||
if [ "$RESLT" = "active" ]; then
|
||||
systemctl restart salt-minion
|
||||
fi
|
||||
db_get salt-minion/enabled
|
||||
RESLT=$(echo "$RET" | cut -d ' ' -f 1)
|
||||
if [ "$RESLT" = "disabled" ]; then
|
||||
systemctl disable salt-minion
|
||||
else
|
||||
systemctl enable salt-minion
|
||||
fi
|
||||
else
|
||||
systemctl daemon-reload
|
||||
systemctl restart salt-minion
|
||||
systemctl enable salt-minion
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
30
pkg/debian/salt-minion.preinst
Normal file
30
pkg/debian/salt-minion.preinst
Normal file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
case "$1" in
|
||||
upgrade)
|
||||
[ -z "$SALT_HOME" ] && SALT_HOME=/opt/saltstack/salt
|
||||
[ -z "$SALT_USER" ] && SALT_USER=salt
|
||||
[ -z "$SALT_NAME" ] && SALT_NAME="Salt"
|
||||
[ -z "$SALT_GROUP" ] && SALT_GROUP=salt
|
||||
PY_VER=$(/opt/saltstack/salt/bin/python3 -c "import sys; sys.stdout.write('{}.{}'.format(*sys.version_info)); sys.stdout.flush();")
|
||||
|
||||
# Reset permissions to fix previous installs
|
||||
CUR_USER=$(ls -dl /run/salt/minion | cut -d ' ' -f 3)
|
||||
CUR_GROUP=$(ls -dl /run/salt/minion | cut -d ' ' -f 4)
|
||||
db_set salt-minion/user $CUR_USER
|
||||
chown -R $CUR_USER:$CUR_GROUP /etc/salt/pki/minion /etc/salt/minion.d /var/log/salt/minion \
|
||||
/var/cache/salt/minion /var/run/salt/minion
|
||||
if command -v systemctl; then
|
||||
SM_ENABLED=$(systemctl show -p UnitFileState salt-minion | cut -d '=' -f 2)
|
||||
db_set salt-minion/enabled $SM_ENABLED
|
||||
SM_ACTIVE=$(systemctl is-active salt-minion)
|
||||
db_set salt-minion/active $SM_ACTIVE
|
||||
else
|
||||
db_set salt-minion/enabled enabled
|
||||
db_set salt-minion/active active
|
||||
|
||||
fi
|
||||
;;
|
||||
esac
|
17
pkg/debian/salt-minion.templates
Normal file
17
pkg/debian/salt-minion.templates
Normal file
|
@ -0,0 +1,17 @@
|
|||
Template: salt-minion/user
|
||||
Type: string
|
||||
Default: root
|
||||
Description: User for salt-minion
|
||||
User to run the salt-minion process as
|
||||
|
||||
Template: salt-minion/enabled
|
||||
Type: string
|
||||
Default: enabled
|
||||
Description: Systemd enable state for salt-minion
|
||||
default enable state for salt-minion systemd state
|
||||
|
||||
Template: salt-minion/active
|
||||
Type: string
|
||||
Default: active
|
||||
Description: Systemd active state for salt-minion
|
||||
default active state for salt-minion systemd state
|
|
@ -15,10 +15,18 @@
|
|||
%global __requires_exclude_from ^.*$
|
||||
%define _source_payload w2.gzdio
|
||||
%define _binary_payload w2.gzdio
|
||||
%define _SALT_GROUP salt
|
||||
%define _SALT_USER salt
|
||||
%define _SALT_NAME Salt
|
||||
%define _SALT_HOME /opt/saltstack/salt
|
||||
%global _SALT_GROUP salt
|
||||
%global _SALT_USER salt
|
||||
%global _SALT_NAME Salt
|
||||
%global _SALT_HOME /opt/saltstack/salt
|
||||
|
||||
# salt-master current user and group
|
||||
%global _MS_CUR_USER %{_SALT_USER}
|
||||
%global _MS_CUR_GROUP %{_SALT_GROUP}
|
||||
|
||||
# salt-minion current user and group
|
||||
%global _MN_CUR_USER %{_SALT_USER}
|
||||
%global _MN_CUR_GROUP %{_SALT_GROUP}
|
||||
|
||||
# Disable debugsource template
|
||||
%define _debugsource_template %{nil}
|
||||
|
@ -425,11 +433,22 @@ usermod -c "%{_SALT_NAME}" \
|
|||
%{_SALT_USER}
|
||||
|
||||
%pre master
|
||||
# Reset permissions to fix previous installs
|
||||
PY_VER=$(/opt/saltstack/salt/bin/python3 -c "import sys; sys.stdout.write('{}.{}'.format(*sys.version_info)); sys.stdout.flush();")
|
||||
find /etc/salt /opt/saltstack/salt /var/log/salt /var/cache/salt /var/run/salt \
|
||||
\! \( -path /etc/salt/cloud.deploy.d\* -o -path /var/log/salt/cloud -o -path /opt/saltstack/salt/lib/python${PY_VER}/site-packages/salt/cloud/deploy\* \) -a \
|
||||
\( -user salt -o -group salt \) -exec chown root:root \{\} \;
|
||||
if [ $1 -gt 1 ] ; then
|
||||
# Reset permissions to match previous installs - performing upgrade
|
||||
_MS_LCUR_USER=$(ls -dl /run/salt/master | cut -d ' ' -f 3)
|
||||
_MS_LCUR_GROUP=$(ls -dl /run/salt/master | cut -d ' ' -f 4)
|
||||
%global _MS_CUR_USER %{_MS_LCUR_USER}
|
||||
%global _MS_CUR_GROUP %{_MS_LCUR_GROUP}
|
||||
fi
|
||||
|
||||
%pre minion
|
||||
if [ $1 -gt 1 ] ; then
|
||||
# Reset permissions to match previous installs - performing upgrade
|
||||
_MN_LCUR_USER=$(ls -dl /run/salt/minion | cut -d ' ' -f 3)
|
||||
_MN_LCUR_GROUP=$(ls -dl /run/salt/minion | cut -d ' ' -f 4)
|
||||
%global _MN_CUR_USER %{_MN_LCUR_USER}
|
||||
%global _MN_CUR_GROUP %{_MN_LCUR_GROUP}
|
||||
fi
|
||||
|
||||
|
||||
# assumes systemd for RHEL 7 & 8 & 9
|
||||
|
@ -558,7 +577,12 @@ if [ ! -e "/var/log/salt/cloud" ]; then
|
|||
touch /var/log/salt/cloud
|
||||
chmod 640 /var/log/salt/cloud
|
||||
fi
|
||||
chown -R %{_SALT_USER}:%{_SALT_GROUP} /etc/salt/cloud.deploy.d /var/log/salt/cloud /opt/saltstack/salt/lib/python${PY_VER}/site-packages/salt/cloud/deploy
|
||||
if [ $1 -gt 1 ] ; then
|
||||
# Reset permissions to match previous installs - performing upgrade
|
||||
chown -R %{_MS_CUR_USER}:%{_MS_CUR_GROUP} /etc/salt/cloud.deploy.d /var/log/salt/cloud /opt/saltstack/salt/lib/python${PY_VER}/site-packages/salt/cloud/deploy
|
||||
else
|
||||
chown -R %{_SALT_USER}:%{_SALT_GROUP} /etc/salt/cloud.deploy.d /var/log/salt/cloud /opt/saltstack/salt/lib/python${PY_VER}/site-packages/salt/cloud/deploy
|
||||
fi
|
||||
|
||||
|
||||
%posttrans master
|
||||
|
@ -570,7 +594,12 @@ if [ ! -e "/var/log/salt/key" ]; then
|
|||
touch /var/log/salt/key
|
||||
chmod 640 /var/log/salt/key
|
||||
fi
|
||||
chown -R %{_SALT_USER}:%{_SALT_GROUP} /etc/salt/pki/master /etc/salt/master.d /var/log/salt/master /var/log/salt/key /var/cache/salt/master /var/run/salt/master
|
||||
if [ $1 -gt 1 ] ; then
|
||||
# Reset permissions to match previous installs - performing upgrade
|
||||
chown -R %{_MS_CUR_USER}:%{_MS_CUR_GROUP} /etc/salt/pki/master /etc/salt/master.d /var/log/salt/master /var/log/salt/key /var/cache/salt/master /var/run/salt/master
|
||||
else
|
||||
chown -R %{_SALT_USER}:%{_SALT_GROUP} /etc/salt/pki/master /etc/salt/master.d /var/log/salt/master /var/log/salt/key /var/cache/salt/master /var/run/salt/master
|
||||
fi
|
||||
|
||||
|
||||
%posttrans api
|
||||
|
@ -578,7 +607,26 @@ if [ ! -e "/var/log/salt/api" ]; then
|
|||
touch /var/log/salt/api
|
||||
chmod 640 /var/log/salt/api
|
||||
fi
|
||||
chown %{_SALT_USER}:%{_SALT_GROUP} /var/log/salt/api
|
||||
if [ $1 -gt 1 ] ; then
|
||||
# Reset permissions to match previous installs - performing upgrade
|
||||
chown -R %{_MS_CUR_USER}:%{_MS_CUR_GROUP} /var/log/salt/api
|
||||
else
|
||||
chown -R %{_SALT_USER}:%{_SALT_GROUP} /var/log/salt/api
|
||||
fi
|
||||
|
||||
%posttrans minion
|
||||
if [ ! -e "/var/log/salt/minion" ]; then
|
||||
touch /var/log/salt/minion
|
||||
chmod 640 /var/log/salt/minion
|
||||
fi
|
||||
if [ ! -e "/var/log/salt/key" ]; then
|
||||
touch /var/log/salt/key
|
||||
chmod 640 /var/log/salt/key
|
||||
fi
|
||||
if [ $1 -gt 1 ] ; then
|
||||
# Reset permissions to match previous installs - performing upgrade
|
||||
chown -R %{_MN_CUR_USER}:%{_MN_CUR_GROUP} /etc/salt/pki/minion /etc/salt/minion.d /var/log/salt/minion /var/cache/salt/minion /var/run/salt/minion
|
||||
fi
|
||||
|
||||
|
||||
%preun
|
||||
|
@ -688,6 +736,74 @@ fi
|
|||
- Bump to ``jinja2==3.1.4`` due to https://github.com/advisories/GHSA-h75v-3vvj-5mfj [#66488](https://github.com/saltstack/salt/issues/66488)
|
||||
|
||||
|
||||
* Mon Jul 29 2024 Salt Project Packaging <saltproject-packaging@vmware.com> - 3006.9
|
||||
|
||||
# Deprecated
|
||||
|
||||
- Drop CentOS 7 support [#66623](https://github.com/saltstack/salt/issues/66623)
|
||||
- No longer build RPM packages with CentOS Stream 9 [#66624](https://github.com/saltstack/salt/issues/66624)
|
||||
|
||||
# Fixed
|
||||
|
||||
- Made slsutil.renderer work with salt-ssh [#50196](https://github.com/saltstack/salt/issues/50196)
|
||||
- Fixed defaults.merge is not available when using salt-ssh [#51605](https://github.com/saltstack/salt/issues/51605)
|
||||
- Fixed config.get does not support merge option with salt-ssh [#56441](https://github.com/saltstack/salt/issues/56441)
|
||||
- Update to include croniter in pkg requirements [#57649](https://github.com/saltstack/salt/issues/57649)
|
||||
- Fixed state.test does not work with salt-ssh [#61100](https://github.com/saltstack/salt/issues/61100)
|
||||
- Made slsutil.findup work with salt-ssh [#61143](https://github.com/saltstack/salt/issues/61143)
|
||||
- Fixes multiple issues with the cmd module on Windows. Scripts are called using
|
||||
the ``-File`` parameter to the ``powershell.exe`` binary. ``CLIXML`` data in
|
||||
stderr is now removed (only applies to encoded commands). Commands can now be
|
||||
sent to ``cmd.powershell`` as a list. Makes sure JSON data returned is valid.
|
||||
Strips whitespace from the return when using ``runas``. [#61166](https://github.com/saltstack/salt/issues/61166)
|
||||
- Fixed the win_lgpo_netsh salt util to handle non-English systems. This was a
|
||||
rewrite to use PowerShell instead of netsh to make the changes on the system [#61534](https://github.com/saltstack/salt/issues/61534)
|
||||
- file.replace and file.search work properly with /proc files [#63102](https://github.com/saltstack/salt/issues/63102)
|
||||
- Fix utf8 handling in 'pass' renderer [#64300](https://github.com/saltstack/salt/issues/64300)
|
||||
- Fixed incorrect version argument will be ignored for multiple package targets warning when using pkgs argument to yumpkg module. [#64563](https://github.com/saltstack/salt/issues/64563)
|
||||
- salt-cloud honors root_dir config setting for log_file location and fixes for root_dir locations on windows. [#64728](https://github.com/saltstack/salt/issues/64728)
|
||||
- Fixed slsutil.update with salt-ssh during template rendering [#65067](https://github.com/saltstack/salt/issues/65067)
|
||||
- Fix config.items when called on minion [#65251](https://github.com/saltstack/salt/issues/65251)
|
||||
- Ensure on rpm and deb systems, that user and group for existing Salt, is maintained on upgrade [#65264](https://github.com/saltstack/salt/issues/65264)
|
||||
- Fix typo in nftables module to ensure unique nft family values [#65295](https://github.com/saltstack/salt/issues/65295)
|
||||
- pkg.installed state aggregate does not honors requires requisite [#65304](https://github.com/saltstack/salt/issues/65304)
|
||||
- Added SSH wrapper for logmod [#65630](https://github.com/saltstack/salt/issues/65630)
|
||||
- Fix for GitFS failure to unlock lock file, and resource cleanup for process SIGTERM [#65816](https://github.com/saltstack/salt/issues/65816)
|
||||
- Corrected x509_v2 CRL creation `last_update` and `next_update` values when system timezone is not UTC [#65837](https://github.com/saltstack/salt/issues/65837)
|
||||
- Make sure the root minion process handles SIGUSR1 and emits a traceback like it's child processes [#66095](https://github.com/saltstack/salt/issues/66095)
|
||||
- Replaced pyvenv with builtin venv for virtualenv_mod [#66132](https://github.com/saltstack/salt/issues/66132)
|
||||
- Made `file.managed` skip download of a remote source if the managed file already exists with the correct hash [#66342](https://github.com/saltstack/salt/issues/66342)
|
||||
- Fix win_task ExecutionTimeLimit and result/error code interpretation [#66347](https://github.com/saltstack/salt/issues/66347), [#66441](https://github.com/saltstack/salt/issues/66441)
|
||||
- Fixed nftables.build_rule breaks ipv6 rules by using the wrong syntax for source and destination addresses [#66382](https://github.com/saltstack/salt/issues/66382)
|
||||
- Fixed x509_v2 certificate.managed crash for locally signed certificates if the signing policy defines signing_private_key [#66414](https://github.com/saltstack/salt/issues/66414)
|
||||
- Fixed parallel state execution with Salt-SSH [#66514](https://github.com/saltstack/salt/issues/66514)
|
||||
- Fix support for FIPS approved encryption and signing algorithms. [#66579](https://github.com/saltstack/salt/issues/66579)
|
||||
- Fix relative file_roots paths [#66588](https://github.com/saltstack/salt/issues/66588)
|
||||
- Fixed an issue with cmd.run with requirements when the shell is not the
|
||||
default [#66596](https://github.com/saltstack/salt/issues/66596)
|
||||
- Fix RPM package provides [#66604](https://github.com/saltstack/salt/issues/66604)
|
||||
- Upgrade relAenv to 0.16.1. This release fixes several package installs for salt-pip [#66632](https://github.com/saltstack/salt/issues/66632)
|
||||
- Upgrade relenv to 0.17.0 (https://github.com/saltstack/relenv/blob/v0.17.0/CHANGELOG.md) [#66663](https://github.com/saltstack/salt/issues/66663)
|
||||
- Upgrade dependencies due to security issues:
|
||||
- pymysql>=1.1.1
|
||||
- requests>=2.32.0
|
||||
- docker>=7.1.0 [#66666](https://github.com/saltstack/salt/issues/66666)
|
||||
- Corrected missed line in branch 3006.x when backporting from PR 61620 and 65044 [#66683](https://github.com/saltstack/salt/issues/66683)
|
||||
- Remove debug output from shell scripts for packaging [#66747](https://github.com/saltstack/salt/issues/66747)
|
||||
|
||||
# Added
|
||||
|
||||
- Add Ubuntu 24.04 support [#66180](https://github.com/saltstack/salt/issues/66180)
|
||||
- Add Fedora 40 support, replacing Fedora 39 [#66300](https://github.com/saltstack/salt/issues/66300)
|
||||
- Build RPM packages with Rocky Linux 9 (instead of CentOS Stream 9) [#66624](https://github.com/saltstack/salt/issues/66624)
|
||||
|
||||
# Security
|
||||
|
||||
- Bump to ``jinja2==3.1.4`` due to https://github.com/advisories/GHSA-h75v-3vvj-5mfj [#66488](https://github.com/saltstack/salt/issues/66488)
|
||||
- CVE-2024-37088 salt-call will fail with exit code 1 if bad pillar data is
|
||||
encountered. [#66702](https://github.com/saltstack/salt/issues/66702)
|
||||
|
||||
|
||||
* Mon Apr 29 2024 Salt Project Packaging <saltproject-packaging@vmware.com> - 3006.8
|
||||
|
||||
# Removed
|
||||
|
@ -950,6 +1066,7 @@ fi
|
|||
|
||||
# Fixed
|
||||
|
||||
- Fix issue with ownership on upgrade of master and minion files
|
||||
- Fix an issue with mac_shadow that was causing a command execution error when
|
||||
retrieving values that were not yet set. For example, retrieving last login
|
||||
before the user had logged in. [#34658](https://github.com/saltstack/salt/issues/34658)
|
||||
|
|
52
pkg/windows/nsis/installer/helper_StrContains.nsh
Normal file
52
pkg/windows/nsis/installer/helper_StrContains.nsh
Normal file
|
@ -0,0 +1,52 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# StrContains
|
||||
#
|
||||
# This function does a case sensitive searches for an occurrence of a substring in a string.
|
||||
# It returns the substring if it is found.
|
||||
# Otherwise it returns null("").
|
||||
# Written by kenglish_hi
|
||||
# Adapted from StrReplace written by dandaman32
|
||||
#------------------------------------------------------------------------------
|
||||
!define StrContains "!insertmacro StrContains"
|
||||
!macro StrContains OUT NEEDLE HAYSTACK
|
||||
Push "${HAYSTACK}"
|
||||
Push "${NEEDLE}"
|
||||
Call StrContains
|
||||
Pop "${OUT}"
|
||||
!macroend
|
||||
Function StrContains
|
||||
|
||||
# Initialize variables
|
||||
Var /GLOBAL STR_HAYSTACK
|
||||
Var /GLOBAL STR_NEEDLE
|
||||
Var /GLOBAL STR_CONTAINS_VAR_1
|
||||
Var /GLOBAL STR_CONTAINS_VAR_2
|
||||
Var /GLOBAL STR_CONTAINS_VAR_3
|
||||
Var /GLOBAL STR_CONTAINS_VAR_4
|
||||
Var /GLOBAL STR_RETURN_VAR
|
||||
|
||||
Exch $STR_NEEDLE
|
||||
Exch 1
|
||||
Exch $STR_HAYSTACK
|
||||
# Uncomment to debug
|
||||
#MessageBox MB_OK 'STR_NEEDLE = $STR_NEEDLE STR_HAYSTACK = $STR_HAYSTACK '
|
||||
StrCpy $STR_RETURN_VAR ""
|
||||
StrCpy $STR_CONTAINS_VAR_1 -1
|
||||
StrLen $STR_CONTAINS_VAR_2 $STR_NEEDLE
|
||||
StrLen $STR_CONTAINS_VAR_4 $STR_HAYSTACK
|
||||
|
||||
loop:
|
||||
IntOp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_1 + 1
|
||||
StrCpy $STR_CONTAINS_VAR_3 $STR_HAYSTACK $STR_CONTAINS_VAR_2 $STR_CONTAINS_VAR_1
|
||||
StrCmp $STR_CONTAINS_VAR_3 $STR_NEEDLE found
|
||||
StrCmp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_4 done
|
||||
Goto loop
|
||||
|
||||
found:
|
||||
StrCpy $STR_RETURN_VAR $STR_NEEDLE
|
||||
Goto done
|
||||
|
||||
done:
|
||||
Pop $STR_NEEDLE # Prevent "invalid opcode" errors and keep the stack clean
|
||||
Exch $STR_RETURN_VAR
|
||||
FunctionEnd
|
|
@ -12,8 +12,17 @@ clean.ps1
|
|||
clean.ps1
|
||||
|
||||
#>
|
||||
param(
|
||||
[Parameter(Mandatory=$false)]
|
||||
[Alias("c")]
|
||||
# Don't pretify the output of the Write-Result
|
||||
[Switch] $CICD
|
||||
)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Script Preferences
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
$ProgressPreference = "SilentlyContinue"
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
|
@ -21,15 +30,22 @@ $ErrorActionPreference = "Stop"
|
|||
# Script Variables
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
$SCRIPT_DIR = (Get-ChildItem "$($myInvocation.MyCommand.Definition)").DirectoryName
|
||||
$SCRIPT_DIR = (Get-ChildItem "$($myInvocation.MyCommand.Definition)").DirectoryName
|
||||
$PROJECT_DIR = $(git rev-parse --show-toplevel)
|
||||
$WINDOWS_DIR = "$PROJECT_DIR\pkg\windows"
|
||||
$BUILDENV_DIR = "$WINDOWS_DIR\buildenv"
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Script Functions
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
function Write-Result($result, $ForegroundColor="Green") {
|
||||
$position = 80 - $result.Length - [System.Console]::CursorLeft
|
||||
Write-Host -ForegroundColor $ForegroundColor ("{0,$position}$result" -f "")
|
||||
if ( $CICD ) {
|
||||
Write-Host $result -ForegroundColor $ForegroundColor
|
||||
} else {
|
||||
$position = 80 - $result.Length - [System.Console]::CursorLeft
|
||||
Write-Host -ForegroundColor $ForegroundColor ("{0,$position}$result" -f "")
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
@ -61,6 +77,51 @@ if ( Test-Path -Path "$SCRIPT_DIR\venv" ) {
|
|||
Write-Result "Success" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Remove buildenv directory
|
||||
#-------------------------------------------------------------------------------
|
||||
if ( Test-Path -Path "$BUILDENV_DIR" ) {
|
||||
Write-Host "Removing buildenv directory: " -NoNewline
|
||||
Remove-Item -Path "$BUILDENV_DIR" -Recurse -Force
|
||||
if ( Test-Path -Path "$BUILDENV_DIR" ) {
|
||||
Write-Result "Failed" -ForegroundColor Red
|
||||
exit 1
|
||||
} else {
|
||||
Write-Result "Success" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Make sure processes are not running
|
||||
#-------------------------------------------------------------------------------
|
||||
$processes = "test-setup",
|
||||
"Un",
|
||||
"Un_A",
|
||||
"Un_B",
|
||||
"Un_C",
|
||||
"Un_D",
|
||||
"Un_E",
|
||||
"Un_F",
|
||||
"Un_G"
|
||||
$processes | ForEach-Object {
|
||||
$proc = Get-Process -Name $_ -ErrorAction SilentlyContinue
|
||||
if ( ($null -ne $proc) ) {
|
||||
Write-Host "Killing $($_): " -NoNewline
|
||||
$proc = Get-WmiObject -Class Win32_Process -Filter "Name='$_.exe'"
|
||||
$proc.Terminate() *> $null
|
||||
Start-Sleep -Seconds 5
|
||||
$proc = Get-Process -Name $_ -ErrorAction SilentlyContinue
|
||||
if ( ($null -eq $proc) ) {
|
||||
Write-Result "Success" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Result "Failed" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Remove test-setup.exe
|
||||
#-------------------------------------------------------------------------------
|
||||
|
@ -75,6 +136,92 @@ if ( Test-Path -Path "$SCRIPT_DIR\test-setup.exe" ) {
|
|||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Remove custom_conf
|
||||
#-------------------------------------------------------------------------------
|
||||
if ( Test-Path -Path "$SCRIPT_DIR\custom_conf" ) {
|
||||
Write-Host "Removing custom_conf: " -NoNewline
|
||||
Remove-Item -Path "$SCRIPT_DIR\custom_conf" -Recurse -Force
|
||||
if ( Test-Path -Path "$SCRIPT_DIR\custom_conf" ) {
|
||||
Write-Result "Failed" -ForegroundColor Red
|
||||
exit 1
|
||||
} else {
|
||||
Write-Result "Success" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Remove the salt-minion service
|
||||
#-------------------------------------------------------------------------------
|
||||
if ( $(Get-Service -Name salt-minion -ErrorAction SilentlyContinue).Name ) {
|
||||
Write-Host "Removing salt-minion service" -NoNewline
|
||||
Stop-Service -Name salt-minion
|
||||
$service = Get-WmiObject -Class Win32_Service -Filter "Name='salt-minion'"
|
||||
$service.delete() *> $null
|
||||
if ( $(Get-Service -Name salt-minion -ErrorAction SilentlyContinue).Name ) {
|
||||
Write-Result "Failed" -ForegroundColor Red
|
||||
exit 1
|
||||
} else {
|
||||
Write-Result "Success" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Remove Salt Project directory from Program Files
|
||||
#-------------------------------------------------------------------------------
|
||||
if ( Test-Path -Path "$env:ProgramFiles\Salt Project" ) {
|
||||
Write-Host "Removing Salt Project from Program Files: " -NoNewline
|
||||
Remove-Item -Path "$env:ProgramFiles\Salt Project" -Recurse -Force
|
||||
if ( Test-Path -Path "$env:ProgramFiles\Salt Project" ) {
|
||||
Write-Result "Failed" -ForegroundColor Red
|
||||
exit 1
|
||||
} else {
|
||||
Write-Result "Success" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Remove Salt Project directory from ProgramData
|
||||
#-------------------------------------------------------------------------------
|
||||
if ( Test-Path -Path "$env:ProgramData\Salt Project" ) {
|
||||
Write-Host "Removing Salt Project from ProgramData: " -NoNewline
|
||||
Remove-Item -Path "$env:ProgramData\Salt Project" -Recurse -Force
|
||||
if ( Test-Path -Path "$env:ProgramData\Salt Project" ) {
|
||||
Write-Result "Failed" -ForegroundColor Red
|
||||
exit 1
|
||||
} else {
|
||||
Write-Result "Success" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Remove Salt Project from Registry
|
||||
#-------------------------------------------------------------------------------
|
||||
if ( Test-Path -Path "HKLM:SOFTWARE\Salt Project" ) {
|
||||
Write-Host "Removing Salt Project from Software: " -NoNewline
|
||||
Remove-Item -Path "HKLM:SOFTWARE\Salt Project" -Recurse -Force
|
||||
if ( Test-Path -Path "HKLM:SOFTWARE\Salt Project" ) {
|
||||
Write-Result "Failed" -ForegroundColor Red
|
||||
exit 1
|
||||
} else {
|
||||
Write-Result "Success" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Remove Salt Minion directory from Registry
|
||||
#-------------------------------------------------------------------------------
|
||||
if ( Test-Path -Path "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Salt Minion" ) {
|
||||
Write-Host "Removing Salt Minion from the Uninstall: " -NoNewline
|
||||
Remove-Item -Path "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Salt Minion" -Recurse -Force
|
||||
if ( Test-Path -Path "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Salt Minion" ) {
|
||||
Write-Result "Failed" -ForegroundColor Red
|
||||
exit 1
|
||||
} else {
|
||||
Write-Result "Success" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Script Completed
|
||||
#-------------------------------------------------------------------------------
|
||||
|
|
|
@ -6,32 +6,38 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
full_path_conf = rf"{pytest.REPO_DIR}\custom_conf"
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", f"/custom-config={full_path_conf}"]
|
||||
)
|
||||
yield
|
||||
full_path_conf = pytest.helpers.custom_config()
|
||||
# Install salt with custom config
|
||||
args = ["/S", f"/custom-config={full_path_conf}"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
assert os.path.exists(rf"{pytest.DATA_DIR}\conf\minion")
|
||||
data_dir = pytest.DATA_DIR
|
||||
data_dir_exists = os.path.exists(data_dir)
|
||||
assert os.path.exists(rf"{data_dir}\conf\minion")
|
||||
|
||||
|
||||
def test_config_correct(install):
|
||||
# The config file should be the custom config, unchanged
|
||||
with open(rf"{pytest.REPO_DIR}\custom_conf") as f:
|
||||
script_dir = pytest.SCRIPT_DIR
|
||||
script_dir_exists = os.path.exists(script_dir)
|
||||
with open(rf"{script_dir}\custom_conf") as f:
|
||||
expected = f.readlines()
|
||||
|
||||
data_dir = pytest.DATA_DIR
|
||||
data_dir_exists = os.path.exists(data_dir)
|
||||
with open(rf"{pytest.DATA_DIR}\conf\minion") as f:
|
||||
result = f.readlines()
|
||||
|
||||
|
|
|
@ -6,19 +6,21 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", "/custom-config=custom_conf", "/master=cli_master"]
|
||||
)
|
||||
yield
|
||||
# Install salt with custom config
|
||||
args = ["/S", "/custom-config=custom_conf", "/master=cli_master"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,25 +6,26 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
)
|
||||
yield
|
||||
# Install salt with custom config
|
||||
args = [
|
||||
"/S",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,24 +6,21 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
"/custom-config=custom_conf",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
)
|
||||
yield
|
||||
# Install salt with custom config
|
||||
args = ["/S", "/custom-config=custom_conf", "/minion-name=cli_minion"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,17 +6,21 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S", "/custom-config=custom_conf"])
|
||||
yield
|
||||
# Install salt with custom config
|
||||
args = ["/S", "/custom-config=custom_conf"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
@ -25,7 +29,7 @@ def test_config_present(install):
|
|||
|
||||
def test_config_correct(install):
|
||||
# The config file should be the custom config, unchanged
|
||||
with open(rf"{pytest.REPO_DIR}\custom_conf") as f:
|
||||
with open(rf"{pytest.SCRIPT_DIR}\custom_conf") as f:
|
||||
expected = f.readlines()
|
||||
|
||||
with open(rf"{pytest.DATA_DIR}\conf\minion") as f:
|
||||
|
|
|
@ -6,13 +6,18 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S"])
|
||||
yield
|
||||
args = ["/S"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
@ -21,7 +26,7 @@ def test_config_present(install):
|
|||
|
||||
def test_config_correct(install):
|
||||
# The config file should be the default config, unchanged
|
||||
with open(rf"{pytest.REPO_DIR}\_files\minion") as f:
|
||||
with open(rf"{pytest.SCRIPT_DIR}\_files\minion") as f:
|
||||
expected = f.readlines()
|
||||
|
||||
with open(rf"{pytest.DATA_DIR}\conf\minion") as f:
|
||||
|
|
|
@ -6,13 +6,18 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S", "/master=cli_master"])
|
||||
yield
|
||||
args = ["/S", "/master=cli_master"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,15 +6,18 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", "/master=cli_master", "/minion-name=cli_minion"]
|
||||
)
|
||||
yield
|
||||
args = ["/S", "/master=cli_master", "/minion-name=cli_minion"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,13 +6,18 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S", "/minion-name=cli_minion"])
|
||||
yield
|
||||
args = ["/S", "/minion-name=cli_minion"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,17 +6,20 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S"])
|
||||
yield
|
||||
args = ["/S"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,20 +6,22 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S", "/custom-config=custom_conf"])
|
||||
yield
|
||||
args = ["/S", "/custom-config=custom_conf"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
@ -28,7 +30,7 @@ def test_config_present(install):
|
|||
|
||||
def test_config_correct(install):
|
||||
# The config file should be the custom config, unchanged
|
||||
with open(rf"{pytest.REPO_DIR}\custom_conf") as f:
|
||||
with open(rf"{pytest.SCRIPT_DIR}\custom_conf") as f:
|
||||
expected = f.readlines()
|
||||
|
||||
with open(rf"{pytest.DATA_DIR}\conf\minion") as f:
|
||||
|
|
|
@ -6,22 +6,22 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", "/custom-config=custom_conf", "/master=cli_master"]
|
||||
)
|
||||
yield
|
||||
args = ["/S", "/custom-config=custom_conf", "/master=cli_master"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,28 +6,27 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
)
|
||||
yield
|
||||
args = [
|
||||
"/S",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -8,24 +8,20 @@ def install():
|
|||
pytest.helpers.clean_env()
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
"/custom-config=custom_conf",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
)
|
||||
yield
|
||||
args = ["/S", "/custom-config=custom_conf", "/minion-name=cli_minion"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,17 +6,20 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S", "/default-config"])
|
||||
yield
|
||||
args = ["/S", "/default-config"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
@ -25,7 +28,7 @@ def test_config_present(install):
|
|||
|
||||
def test_config_correct(install):
|
||||
# The config file should be the default config, unchanged
|
||||
with open(rf"{pytest.REPO_DIR}\_files\minion") as f:
|
||||
with open(rf"{pytest.SCRIPT_DIR}\_files\minion") as f:
|
||||
expected = f.readlines()
|
||||
|
||||
with open(rf"{pytest.DATA_DIR}\conf\minion") as f:
|
||||
|
|
|
@ -6,19 +6,20 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", "/default-config", "/master=cli_master"]
|
||||
)
|
||||
yield
|
||||
args = ["/S", "/default-config", "/master=cli_master"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,25 +6,20 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
"/default-config",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
)
|
||||
yield
|
||||
args = ["/S", "/default-config", "/master=cli_master", "/minion-name=cli_minion"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -6,19 +6,20 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", "/default-config", "/minion-name=cli_minion"]
|
||||
)
|
||||
yield
|
||||
args = ["/S", "/default-config", "/minion-name=cli_minion"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present(install):
|
||||
assert os.path.exists(rf"{pytest.INST_DIR}\ssm.exe")
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir = pytest.INST_DIR
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
def test_config_present(install):
|
||||
|
|
|
@ -10,24 +10,19 @@ def inst_dir():
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
pytest.helpers.clean_env()
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
f"/install-dir={inst_dir}",
|
||||
"/custom-config=custom_conf",
|
||||
]
|
||||
)
|
||||
yield
|
||||
args = ["/S", f"/install-dir={inst_dir}", "/custom-config=custom_conf"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
|
||||
def test_binaries_present(install, inst_dir):
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
|
@ -37,7 +32,7 @@ def test_config_present(install):
|
|||
|
||||
def test_config_correct(install):
|
||||
# The config file should be the custom config, unchanged
|
||||
with open(rf"{pytest.REPO_DIR}\custom_conf") as f:
|
||||
with open(rf"{pytest.SCRIPT_DIR}\custom_conf") as f:
|
||||
expected = f.readlines()
|
||||
|
||||
with open(rf"{pytest.DATA_DIR}\conf\minion") as f:
|
||||
|
|
|
@ -10,25 +10,24 @@ def inst_dir():
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
pytest.helpers.clean_env()
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
f"/install-dir={inst_dir}",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
]
|
||||
)
|
||||
yield
|
||||
args = [
|
||||
"/S",
|
||||
f"/install-dir={inst_dir}",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
|
||||
def test_binaries_present(install, inst_dir):
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
|
|
|
@ -10,26 +10,25 @@ def inst_dir():
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
pytest.helpers.clean_env()
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
f"/install-dir={inst_dir}",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
)
|
||||
yield
|
||||
args = [
|
||||
"/S",
|
||||
f"/install-dir={inst_dir}",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
|
||||
def test_binaries_present(install, inst_dir):
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
|
|
|
@ -10,25 +10,24 @@ def inst_dir():
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
pytest.helpers.clean_env()
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
f"/install-dir={inst_dir}",
|
||||
"/custom-config=custom_conf",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
)
|
||||
yield
|
||||
args = [
|
||||
"/S",
|
||||
f"/install-dir={inst_dir}",
|
||||
"/custom-config=custom_conf",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
|
||||
def test_binaries_present(install, inst_dir):
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
|
|
|
@ -10,13 +10,17 @@ def inst_dir():
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S", f"/install-dir={inst_dir}"])
|
||||
yield
|
||||
pytest.helpers.clean_env()
|
||||
args = ["/S", f"/install-dir={inst_dir}"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
|
||||
def test_binaries_present(install, inst_dir):
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
|
@ -26,7 +30,7 @@ def test_config_present(install):
|
|||
|
||||
def test_config_correct(install):
|
||||
# The config file should be the default config, unchanged
|
||||
with open(rf"{pytest.REPO_DIR}\_files\minion") as f:
|
||||
with open(rf"{pytest.SCRIPT_DIR}\_files\minion") as f:
|
||||
expected = f.readlines()
|
||||
|
||||
with open(rf"{pytest.DATA_DIR}\conf\minion") as f:
|
||||
|
|
|
@ -5,20 +5,22 @@ import pytest
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def inst_dir():
|
||||
return r"C:\custom_location"
|
||||
return "C:\\custom_location"
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", f"/install-dir={inst_dir}", "/master=cli_master"]
|
||||
)
|
||||
yield
|
||||
pytest.helpers.clean_env()
|
||||
args = ["/S", f"/install-dir={inst_dir}", "/master=cli_master"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
|
||||
def test_binaries_present(install, inst_dir):
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
|
|
|
@ -5,26 +5,27 @@ import pytest
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def inst_dir():
|
||||
return r"C:\custom_location"
|
||||
return "C:\\custom_location"
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
f"/install-dir={inst_dir}",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
)
|
||||
yield
|
||||
pytest.helpers.clean_env()
|
||||
args = [
|
||||
"/S",
|
||||
f"/install-dir={inst_dir}",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
|
||||
def test_binaries_present(install, inst_dir):
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
|
|
|
@ -5,20 +5,22 @@ import pytest
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def inst_dir():
|
||||
return r"C:\custom_location"
|
||||
return "C:\\custom_location"
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", f"/install-dir={inst_dir}", "/minion-name=cli_minion"]
|
||||
)
|
||||
yield {"inst_dir": inst_dir}
|
||||
pytest.helpers.clean_env()
|
||||
args = ["/S", f"/install-dir={inst_dir}", "/minion-name=cli_minion"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
|
||||
def test_binaries_present(install, inst_dir):
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
|
|
|
@ -5,22 +5,24 @@ import pytest
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def inst_dir():
|
||||
return r"C:\custom_location"
|
||||
return "C:\\custom_location"
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
pytest.helpers.clean_env()
|
||||
# Create an existing config
|
||||
pytest.helpers.existing_config()
|
||||
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S", f"/install-dir={inst_dir}"])
|
||||
yield
|
||||
args = ["/S", f"/install-dir={inst_dir}"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env(inst_dir)
|
||||
|
||||
|
||||
def test_binaries_present(install, inst_dir):
|
||||
# This will show the contents of the directory on failure
|
||||
inst_dir_exists = os.path.exists(inst_dir)
|
||||
dir_contents = os.listdir(inst_dir)
|
||||
assert os.path.exists(rf"{inst_dir}\ssm.exe")
|
||||
|
||||
|
||||
|
|
|
@ -5,24 +5,23 @@ import pytest
|
|||
|
||||
@pytest.fixture(scope="module")
|
||||
def inst_dir():
|
||||
return r"C:\custom_location"
|
||||
return "C:\\custom_location"
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def install(inst_dir):
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create old install
|
||||
pytest.helpers.old_install()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", f"/install-dir={inst_dir}", "/move-config"]
|
||||
)
|
||||
yield
|
||||
args = ["/S", f"/install-dir={inst_dir}", "/move-config"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_binaries_present_old_location(install):
|
||||
# This will show the contents of the directory on failure
|
||||
dir_contents = os.listdir(rf"{pytest.OLD_DIR}\bin")
|
||||
# Apparently we don't move the binaries even if they pass install-dir
|
||||
# TODO: Decide if this is expected behavior
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
|
|
|
@ -6,20 +6,20 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create old config
|
||||
pytest.helpers.old_install()
|
||||
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S"])
|
||||
yield
|
||||
args = ["/S"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_ssm_present_old_location(install):
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
|
||||
|
||||
def test_binaries_present_old_location(install):
|
||||
# This will show the contents of the directory on failure
|
||||
dir_contents = os.listdir(rf"{pytest.OLD_DIR}\bin")
|
||||
# Apparently we don't move the binaries even if they pass install-dir
|
||||
# TODO: Decide if this is expected behavior
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\python.exe")
|
||||
|
||||
|
||||
|
|
|
@ -6,23 +6,22 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create old config
|
||||
pytest.helpers.old_install()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command([pytest.INST_BIN, "/S", "/custom-config=custom_conf"])
|
||||
yield
|
||||
args = ["/S", "/custom-config=custom_conf"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_ssm_present_old_location(install):
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
|
||||
|
||||
def test_binaries_present_old_location(install):
|
||||
# This will show the contents of the directory on failure
|
||||
dir_contents = os.listdir(rf"{pytest.OLD_DIR}\bin")
|
||||
# Apparently we don't move the binaries even if they pass install-dir
|
||||
# TODO: Decide if this is expected behavior
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\python.exe")
|
||||
|
||||
|
||||
|
@ -32,7 +31,7 @@ def test_config_present_old_location(install):
|
|||
|
||||
def test_config_correct(install):
|
||||
# The config file should be the custom config, unchanged
|
||||
with open(rf"{pytest.REPO_DIR}\custom_conf") as f:
|
||||
with open(rf"{pytest.SCRIPT_DIR}\custom_conf") as f:
|
||||
expected = f.readlines()
|
||||
|
||||
with open(rf"{pytest.OLD_DIR}\conf\minion") as f:
|
||||
|
|
|
@ -6,25 +6,22 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create old config
|
||||
pytest.helpers.old_install()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", "/custom-config=custom_conf", "/master=cli_master"]
|
||||
)
|
||||
yield
|
||||
args = ["/S", "/custom-config=custom_conf", "/master=cli_master"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_ssm_present_old_location(install):
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
|
||||
|
||||
def test_binaries_present_old_location(install):
|
||||
# This will show the contents of the directory on failure
|
||||
dir_contents = os.listdir(rf"{pytest.OLD_DIR}\bin")
|
||||
# Apparently we don't move the binaries even if they pass install-dir
|
||||
# TODO: Decide if this is expected behavior
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\python.exe")
|
||||
|
||||
|
||||
|
|
|
@ -6,31 +6,27 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create old config
|
||||
pytest.helpers.old_install()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[
|
||||
pytest.INST_BIN,
|
||||
"/S",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
)
|
||||
yield
|
||||
args = [
|
||||
"/S",
|
||||
"/custom-config=custom_conf",
|
||||
"/master=cli_master",
|
||||
"/minion-name=cli_minion",
|
||||
]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_ssm_present_old_location(install):
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
|
||||
|
||||
def test_binaries_present_old_location(install):
|
||||
# This will show the contents of the directory on failure
|
||||
dir_contents = os.listdir(rf"{pytest.OLD_DIR}\bin")
|
||||
# Apparently we don't move the binaries even if they pass install-dir
|
||||
# TODO: Decide if this is expected behavior
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\python.exe")
|
||||
|
||||
|
||||
|
|
|
@ -6,25 +6,22 @@ import pytest
|
|||
@pytest.fixture(scope="module")
|
||||
def install():
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
# Create old config
|
||||
pytest.helpers.old_install()
|
||||
|
||||
# Create a custom config
|
||||
pytest.helpers.custom_config()
|
||||
|
||||
pytest.helpers.run_command(
|
||||
[pytest.INST_BIN, "/S", "/custom-config=custom_conf", "/minion-name=cli_minion"]
|
||||
)
|
||||
yield
|
||||
args = ["/S", "/custom-config=custom_conf", "/minion-name=cli_minion"]
|
||||
pytest.helpers.install_salt(args)
|
||||
yield args
|
||||
pytest.helpers.clean_env()
|
||||
|
||||
|
||||
def test_ssm_present_old_location(install):
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
|
||||
|
||||
def test_binaries_present_old_location(install):
|
||||
# This will show the contents of the directory on failure
|
||||
dir_contents = os.listdir(rf"{pytest.OLD_DIR}\bin")
|
||||
# Apparently we don't move the binaries even if they pass install-dir
|
||||
# TODO: Decide if this is expected behavior
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\ssm.exe")
|
||||
assert os.path.exists(rf"{pytest.OLD_DIR}\bin\python.exe")
|
||||
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue