Merge 3006.x into 3007.x

This commit is contained in:
Pedro Algarvio 2024-05-02 14:19:16 +01:00
commit 44eb14b74c
No known key found for this signature in database
GPG key ID: BB36BF6584A298FF
59 changed files with 20027 additions and 12673 deletions

View file

@ -7,6 +7,88 @@ Versions are `MAJOR.PATCH`.
# Changelog
## 3006.8 (2024-04-29)
### Removed
- Removed deprecated code scheduled to be removed on 2024-01-01:
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
* All of the ``salt/log`` package.
* The ``salt/modules/cassandra_mod.py`` module.
* The ``salt/returners/cassandra_return.py`` returner.
* The ``salt/returners/django_return.py`` returner. [#66147](https://github.com/saltstack/salt/issues/66147)
### Deprecated
- Drop Fedora 37 and Fedora 38 support [#65860](https://github.com/saltstack/salt/issues/65860)
- Drop CentOS Stream 8 and 9 from CI/CD [#66104](https://github.com/saltstack/salt/issues/66104)
- Drop Photon OS 3 support [#66105](https://github.com/saltstack/salt/issues/66105)
- The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly. [#66139](https://github.com/saltstack/salt/issues/66139)
### Fixed
- ``user.add`` on Windows now allows you to add user names that contain all
numeric characters [#53363](https://github.com/saltstack/salt/issues/53363)
- Fix an issue with the win_system module detecting established connections on
non-Windows systems. Uses psutils instead of parsing the return of netstat [#60508](https://github.com/saltstack/salt/issues/60508)
- pkg.refresh_db on Windows now honors saltenv [#61807](https://github.com/saltstack/salt/issues/61807)
- Fixed an issue with adding new machine policies and applying those same
policies in the same state by adding a ``refresh_cache`` option to the
``lgpo.set`` state. [#62734](https://github.com/saltstack/salt/issues/62734)
- file.managed correctly handles file path with '#' [#63060](https://github.com/saltstack/salt/issues/63060)
- Fix master ip detection when DNS records change [#63654](https://github.com/saltstack/salt/issues/63654)
- Fix user and group management on Windows to handle the Everyone group [#63667](https://github.com/saltstack/salt/issues/63667)
- Fixes an issue in pkg.refresh_db on Windows where new package definition
files were not being picked up on the first run [#63848](https://github.com/saltstack/salt/issues/63848)
- Display a proper error when pki commands fail in the win_pki module [#64933](https://github.com/saltstack/salt/issues/64933)
- Prevent full system upgrade on single package install for Arch Linux [#65200](https://github.com/saltstack/salt/issues/65200)
- When using s3fs, if files are deleted from the bucket, they were not deleted in
the master or minion local cache, which could lead to unexpected file copies or
even state applications. This change makes the local cache consistent with the
remote bucket by deleting files locally that are deleted from the bucket.
**NOTE** this could lead to **breakage** on your affected systems if it was
inadvertently depending on previously deleted files. [#65611](https://github.com/saltstack/salt/issues/65611)
- Fixed an issue with file.directory state where paths would be modified in test
mode if backupname is used. [#66049](https://github.com/saltstack/salt/issues/66049)
- Execution modules have access to regular fileclient durring pillar rendering. [#66124](https://github.com/saltstack/salt/issues/66124)
- Fixed a issue with server channel where a minion's public key
would be rejected if it contained a final newline character. [#66126](https://github.com/saltstack/salt/issues/66126)
- Fix content type backwards compatablity with http proxy post requests in the http utils module. [#66127](https://github.com/saltstack/salt/issues/66127)
- Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services [#66143](https://github.com/saltstack/salt/issues/66143)
- Auto discovery of ssh, scp and ssh-keygen binaries. [#66205](https://github.com/saltstack/salt/issues/66205)
- Add leading slash to salt helper file paths as per dh_links requirement [#66280](https://github.com/saltstack/salt/issues/66280)
- Fixed x509.certificate_managed - ca_server did not return a certificate [#66284](https://github.com/saltstack/salt/issues/66284)
- removed log line that did nothing. [#66289](https://github.com/saltstack/salt/issues/66289)
- Chocolatey: Make sure the return dictionary from ``chocolatey.version``
contains lowercase keys [#66290](https://github.com/saltstack/salt/issues/66290)
- fix cacheing inline pillar, by not rendering inline pillar during cache save function. [#66292](https://github.com/saltstack/salt/issues/66292)
- The file module correctly perserves file permissions on link target. [#66400](https://github.com/saltstack/salt/issues/66400)
- Upgrade relenv to 0.16.0 and python to 3.10.14 [#66402](https://github.com/saltstack/salt/issues/66402)
- backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing. [#66705](https://github.com/saltstack/salt/issues/66705)
### Added
- Add Fedora 39 support [#65859](https://github.com/saltstack/salt/issues/65859)
### Security
- Upgrade to `cryptography==42.0.5` due to a few security issues:
* https://github.com/advisories/GHSA-9v9h-cgj8-h64p
* https://github.com/advisories/GHSA-3ww4-gg4f-jr7f
* https://github.com/advisories/GHSA-6vqw-3v5j-54x4 [#66141](https://github.com/saltstack/salt/issues/66141)
- Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h [#66377](https://github.com/saltstack/salt/issues/66377)
- Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g [#66411](https://github.com/saltstack/salt/issues/66411)
## 3007.0 (2024-03-03)

View file

@ -1,2 +0,0 @@
``user.add`` on Windows now allows you to add user names that contain all
numeric characters

View file

@ -1,2 +0,0 @@
Fix an issue with the win_system module detecting established connections on
non-Windows systems. Uses psutils instead of parsing the return of netstat

View file

@ -1 +0,0 @@
pkg.refresh_db on Windows now honors saltenv

View file

@ -1,3 +0,0 @@
Fixed an issue with adding new machine policies and applying those same
policies in the same state by adding a ``refresh_cache`` option to the
``lgpo.set`` state.

View file

@ -1 +0,0 @@
file.managed correctly handles file path with '#'

View file

@ -1 +0,0 @@
Fix user and group management on Windows to handle the Everyone group

View file

@ -1,2 +0,0 @@
Fixes an issue in pkg.refresh_db on Windows where new package definition
files were not being picked up on the first run

View file

@ -1 +0,0 @@
Display a proper error when pki commands fail in the win_pki module

View file

@ -1 +0,0 @@
Prevent full system upgrade on single package install for Arch Linux

View file

@ -1,7 +0,0 @@
When using s3fs, if files are deleted from the bucket, they were not deleted in
the master or minion local cache, which could lead to unexpected file copies or
even state applications. This change makes the local cache consistent with the
remote bucket by deleting files locally that are deleted from the bucket.
**NOTE** this could lead to **breakage** on your affected systems if it was
inadvertently depending on previously deleted files.

View file

@ -1 +0,0 @@
Add Fedora 39 support

View file

@ -1 +0,0 @@
Drop Fedora 37 and Fedora 38 support

View file

@ -1,2 +0,0 @@
Fixed an issue with file.directory state where paths would be modified in test
mode if backupname is used.

View file

@ -1 +0,0 @@
Drop CentOS Stream 8 and 9 from CI/CD

View file

@ -1 +0,0 @@
Drop Photon OS 3 support

View file

@ -1 +0,0 @@
Fix content type backwards compatablity with http proxy post requests in the http utils module.

View file

@ -1 +0,0 @@
The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly.

View file

@ -1,5 +0,0 @@
Upgrade to `cryptography==42.0.5` due to a few security issues:
* https://github.com/advisories/GHSA-9v9h-cgj8-h64p
* https://github.com/advisories/GHSA-3ww4-gg4f-jr7f
* https://github.com/advisories/GHSA-6vqw-3v5j-54x4

View file

@ -1 +0,0 @@
Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services

View file

@ -1,7 +0,0 @@
Removed deprecated code scheduled to be removed on 2024-01-01:
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
* All of the ``salt/log`` package.
* The ``salt/modules/cassandra_mod.py`` module.
* The ``salt/returners/cassandra_return.py`` returner.
* The ``salt/returners/django_return.py`` returner.

View file

@ -1 +0,0 @@
Auto discovery of ssh, scp and ssh-keygen binaries.

View file

@ -1 +0,0 @@
Add leading slash to salt helper file paths as per dh_links requirement

View file

@ -1 +0,0 @@
Fixed x509.certificate_managed - ca_server did not return a certificate

View file

@ -1 +0,0 @@
removed log line that did nothing.

View file

@ -1,2 +0,0 @@
Chocolatey: Make sure the return dictionary from ``chocolatey.version``
contains lowercase keys

View file

@ -1 +0,0 @@
fix cacheing inline pillar, by not rendering inline pillar during cache save function.

View file

@ -1 +0,0 @@
Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h

View file

@ -1 +0,0 @@
The file module correctly perserves file permissions on link target.

View file

@ -1 +0,0 @@
Upgrade relenv to 0.16.0 and python to 3.10.14

View file

@ -1 +0,0 @@
Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g

View file

@ -1 +0,0 @@
backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing.

View file

@ -271,9 +271,8 @@
#ping_interval: 0
# To auto recover minions if master changes IP address (DDNS)
# auth_tries: 10
# auth_safemode: True
# ping_interval: 2
# master_alive_interval: 10
# master_tries: -1
#
# Minions won't know master is missing until a ping fails. After the ping fail,
# the minion will attempt authentication and likely fails out and cause a restart.

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-API" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-API" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-api \- salt-api Command
.sp

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-CALL" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-CALL" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-call \- salt-call Documentation
.SH SYNOPSIS

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-CLOUD" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-CLOUD" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-cloud \- Salt Cloud Command
.sp

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-CP" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-CP" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-cp \- salt-cp Documentation
.sp

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-KEY" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-KEY" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-key \- salt-key Documentation
.SH SYNOPSIS

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-MASTER" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-MASTER" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-master \- salt-master Documentation
.sp

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-MINION" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-MINION" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-minion \- salt-minion Documentation
.sp

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-PROXY" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-PROXY" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-proxy \- salt-proxy Documentation
.sp

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-RUN" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-RUN" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-run \- salt-run Documentation
.sp

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-SSH" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-SSH" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-ssh \- salt-ssh Documentation
.SH SYNOPSIS

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT-SYNDIC" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT-SYNDIC" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt-syndic \- salt-syndic Documentation
.sp

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SALT" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SALT" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
salt \- salt
.SH SYNOPSIS

File diff suppressed because it is too large Load diff

View file

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SPM" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
.TH "SPM" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
.SH NAME
spm \- Salt Package Manager Command
.sp

View file

@ -291,7 +291,9 @@ Default: ``0``
Configures how often, in seconds, the minion will verify that the current
master is alive and responding. The minion will try to establish a connection
to the next master in the list if it finds the existing one is dead.
to the next master in the list if it finds the existing one is dead. This
setting can also be used to detect master DNS record changes when a minion has
been disconnected.
.. code-block:: yaml

View file

@ -0,0 +1,96 @@
(release-3006.8)=
# Salt 3006.8 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
### Removed
- Removed deprecated code scheduled to be removed on 2024-01-01:
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
* All of the ``salt/log`` package.
* The ``salt/modules/cassandra_mod.py`` module.
* The ``salt/returners/cassandra_return.py`` returner.
* The ``salt/returners/django_return.py`` returner. [#66147](https://github.com/saltstack/salt/issues/66147)
### Deprecated
- Drop Fedora 37 and Fedora 38 support [#65860](https://github.com/saltstack/salt/issues/65860)
- Drop CentOS Stream 8 and 9 from CI/CD [#66104](https://github.com/saltstack/salt/issues/66104)
- Drop Photon OS 3 support [#66105](https://github.com/saltstack/salt/issues/66105)
- The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly. [#66139](https://github.com/saltstack/salt/issues/66139)
### Fixed
- ``user.add`` on Windows now allows you to add user names that contain all
numeric characters [#53363](https://github.com/saltstack/salt/issues/53363)
- Fix an issue with the win_system module detecting established connections on
non-Windows systems. Uses psutils instead of parsing the return of netstat [#60508](https://github.com/saltstack/salt/issues/60508)
- pkg.refresh_db on Windows now honors saltenv [#61807](https://github.com/saltstack/salt/issues/61807)
- Fixed an issue with adding new machine policies and applying those same
policies in the same state by adding a ``refresh_cache`` option to the
``lgpo.set`` state. [#62734](https://github.com/saltstack/salt/issues/62734)
- file.managed correctly handles file path with '#' [#63060](https://github.com/saltstack/salt/issues/63060)
- Fix master ip detection when DNS records change [#63654](https://github.com/saltstack/salt/issues/63654)
- Fix user and group management on Windows to handle the Everyone group [#63667](https://github.com/saltstack/salt/issues/63667)
- Fixes an issue in pkg.refresh_db on Windows where new package definition
files were not being picked up on the first run [#63848](https://github.com/saltstack/salt/issues/63848)
- Display a proper error when pki commands fail in the win_pki module [#64933](https://github.com/saltstack/salt/issues/64933)
- Prevent full system upgrade on single package install for Arch Linux [#65200](https://github.com/saltstack/salt/issues/65200)
- When using s3fs, if files are deleted from the bucket, they were not deleted in
the master or minion local cache, which could lead to unexpected file copies or
even state applications. This change makes the local cache consistent with the
remote bucket by deleting files locally that are deleted from the bucket.
**NOTE** this could lead to **breakage** on your affected systems if it was
inadvertently depending on previously deleted files. [#65611](https://github.com/saltstack/salt/issues/65611)
- Fixed an issue with file.directory state where paths would be modified in test
mode if backupname is used. [#66049](https://github.com/saltstack/salt/issues/66049)
- Execution modules have access to regular fileclient durring pillar rendering. [#66124](https://github.com/saltstack/salt/issues/66124)
- Fixed a issue with server channel where a minion's public key
would be rejected if it contained a final newline character. [#66126](https://github.com/saltstack/salt/issues/66126)
- Fix content type backwards compatablity with http proxy post requests in the http utils module. [#66127](https://github.com/saltstack/salt/issues/66127)
- Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services [#66143](https://github.com/saltstack/salt/issues/66143)
- Auto discovery of ssh, scp and ssh-keygen binaries. [#66205](https://github.com/saltstack/salt/issues/66205)
- Add leading slash to salt helper file paths as per dh_links requirement [#66280](https://github.com/saltstack/salt/issues/66280)
- Fixed x509.certificate_managed - ca_server did not return a certificate [#66284](https://github.com/saltstack/salt/issues/66284)
- removed log line that did nothing. [#66289](https://github.com/saltstack/salt/issues/66289)
- Chocolatey: Make sure the return dictionary from ``chocolatey.version``
contains lowercase keys [#66290](https://github.com/saltstack/salt/issues/66290)
- fix cacheing inline pillar, by not rendering inline pillar during cache save function. [#66292](https://github.com/saltstack/salt/issues/66292)
- The file module correctly perserves file permissions on link target. [#66400](https://github.com/saltstack/salt/issues/66400)
- Upgrade relenv to 0.16.0 and python to 3.10.14 [#66402](https://github.com/saltstack/salt/issues/66402)
- backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing. [#66705](https://github.com/saltstack/salt/issues/66705)
### Added
- Add Fedora 39 support [#65859](https://github.com/saltstack/salt/issues/65859)
### Security
- Upgrade to `cryptography==42.0.5` due to a few security issues:
* https://github.com/advisories/GHSA-9v9h-cgj8-h64p
* https://github.com/advisories/GHSA-3ww4-gg4f-jr7f
* https://github.com/advisories/GHSA-6vqw-3v5j-54x4 [#66141](https://github.com/saltstack/salt/issues/66141)
- Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h [#66377](https://github.com/saltstack/salt/issues/66377)
- Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g [#66411](https://github.com/saltstack/salt/issues/66411)

View file

@ -0,0 +1,14 @@
(release-3006.8)=
# Salt 3006.8 release notes{{ unreleased }}
{{ warning }}
<!--
Add release specific details below
-->
<!--
Do not edit the changelog below.
This is auto generated.
-->
## Changelog
{{ changelog }}

View file

@ -1,3 +1,82 @@
salt (3006.8) stable; urgency=medium
# Removed
* Removed deprecated code scheduled to be removed on 2024-01-01:
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
* All of the ``salt/log`` package.
* The ``salt/modules/cassandra_mod.py`` module.
* The ``salt/returners/cassandra_return.py`` returner.
* The ``salt/returners/django_return.py`` returner. [#66147](https://github.com/saltstack/salt/issues/66147)
# Deprecated
* Drop Fedora 37 and Fedora 38 support [#65860](https://github.com/saltstack/salt/issues/65860)
* Drop CentOS Stream 8 and 9 from CI/CD [#66104](https://github.com/saltstack/salt/issues/66104)
* Drop Photon OS 3 support [#66105](https://github.com/saltstack/salt/issues/66105)
* The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly. [#66139](https://github.com/saltstack/salt/issues/66139)
# Fixed
* ``user.add`` on Windows now allows you to add user names that contain all
numeric characters [#53363](https://github.com/saltstack/salt/issues/53363)
* Fix an issue with the win_system module detecting established connections on
non*Windows systems. Uses psutils instead of parsing the return of netstat [#60508](https://github.com/saltstack/salt/issues/60508)
* pkg.refresh_db on Windows now honors saltenv [#61807](https://github.com/saltstack/salt/issues/61807)
* Fixed an issue with adding new machine policies and applying those same
policies in the same state by adding a ``refresh_cache`` option to the
``lgpo.set`` state. [#62734](https://github.com/saltstack/salt/issues/62734)
* file.managed correctly handles file path with '#' [#63060](https://github.com/saltstack/salt/issues/63060)
* Fix master ip detection when DNS records change [#63654](https://github.com/saltstack/salt/issues/63654)
* Fix user and group management on Windows to handle the Everyone group [#63667](https://github.com/saltstack/salt/issues/63667)
* Fixes an issue in pkg.refresh_db on Windows where new package definition
files were not being picked up on the first run [#63848](https://github.com/saltstack/salt/issues/63848)
* Display a proper error when pki commands fail in the win_pki module [#64933](https://github.com/saltstack/salt/issues/64933)
* Prevent full system upgrade on single package install for Arch Linux [#65200](https://github.com/saltstack/salt/issues/65200)
* When using s3fs, if files are deleted from the bucket, they were not deleted in
the master or minion local cache, which could lead to unexpected file copies or
even state applications. This change makes the local cache consistent with the
remote bucket by deleting files locally that are deleted from the bucket.
**NOTE** this could lead to **breakage** on your affected systems if it was
inadvertently depending on previously deleted files. [#65611](https://github.com/saltstack/salt/issues/65611)
* Fixed an issue with file.directory state where paths would be modified in test
mode if backupname is used. [#66049](https://github.com/saltstack/salt/issues/66049)
* Execution modules have access to regular fileclient durring pillar rendering. [#66124](https://github.com/saltstack/salt/issues/66124)
* Fixed a issue with server channel where a minion's public key
would be rejected if it contained a final newline character. [#66126](https://github.com/saltstack/salt/issues/66126)
* Fix content type backwards compatablity with http proxy post requests in the http utils module. [#66127](https://github.com/saltstack/salt/issues/66127)
* Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services [#66143](https://github.com/saltstack/salt/issues/66143)
* Auto discovery of ssh, scp and ssh-keygen binaries. [#66205](https://github.com/saltstack/salt/issues/66205)
* Add leading slash to salt helper file paths as per dh_links requirement [#66280](https://github.com/saltstack/salt/issues/66280)
* Fixed x509.certificate_managed - ca_server did not return a certificate [#66284](https://github.com/saltstack/salt/issues/66284)
* removed log line that did nothing. [#66289](https://github.com/saltstack/salt/issues/66289)
* Chocolatey: Make sure the return dictionary from ``chocolatey.version``
contains lowercase keys [#66290](https://github.com/saltstack/salt/issues/66290)
* fix cacheing inline pillar, by not rendering inline pillar during cache save function. [#66292](https://github.com/saltstack/salt/issues/66292)
* The file module correctly perserves file permissions on link target. [#66400](https://github.com/saltstack/salt/issues/66400)
* Upgrade relenv to 0.16.0 and python to 3.10.14 [#66402](https://github.com/saltstack/salt/issues/66402)
* backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing. [#66705](https://github.com/saltstack/salt/issues/66705)
# Added
* Add Fedora 39 support [#65859](https://github.com/saltstack/salt/issues/65859)
# Security
* Upgrade to `cryptography==42.0.5` due to a few security issues:
* https://github.com/advisories/GHSA*9v9h-cgj8-h64p
* https://github.com/advisories/GHSA*3ww4-gg4f-jr7f
* https://github.com/advisories/GHSA*6vqw-3v5j-54x4 [#66141](https://github.com/saltstack/salt/issues/66141)
* Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h [#66377](https://github.com/saltstack/salt/issues/66377)
* Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g [#66411](https://github.com/saltstack/salt/issues/66411)
-- Salt Project Packaging <saltproject-packaging@vmware.com> Mon, 29 Apr 2024 03:18:46 +0000
salt (3007.0) stable; urgency=medium

View file

@ -646,6 +646,82 @@ if [ $1 -ge 1 ] ; then
fi
%changelog
* Mon Apr 29 2024 Salt Project Packaging <saltproject-packaging@vmware.com> - 3006.8
# Removed
- Removed deprecated code scheduled to be removed on 2024-01-01:
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
* All of the ``salt/log`` package.
* The ``salt/modules/cassandra_mod.py`` module.
* The ``salt/returners/cassandra_return.py`` returner.
* The ``salt/returners/django_return.py`` returner. [#66147](https://github.com/saltstack/salt/issues/66147)
# Deprecated
- Drop Fedora 37 and Fedora 38 support [#65860](https://github.com/saltstack/salt/issues/65860)
- Drop CentOS Stream 8 and 9 from CI/CD [#66104](https://github.com/saltstack/salt/issues/66104)
- Drop Photon OS 3 support [#66105](https://github.com/saltstack/salt/issues/66105)
- The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly. [#66139](https://github.com/saltstack/salt/issues/66139)
# Fixed
- ``user.add`` on Windows now allows you to add user names that contain all
numeric characters [#53363](https://github.com/saltstack/salt/issues/53363)
- Fix an issue with the win_system module detecting established connections on
non-Windows systems. Uses psutils instead of parsing the return of netstat [#60508](https://github.com/saltstack/salt/issues/60508)
- pkg.refresh_db on Windows now honors saltenv [#61807](https://github.com/saltstack/salt/issues/61807)
- Fixed an issue with adding new machine policies and applying those same
policies in the same state by adding a ``refresh_cache`` option to the
``lgpo.set`` state. [#62734](https://github.com/saltstack/salt/issues/62734)
- file.managed correctly handles file path with '#' [#63060](https://github.com/saltstack/salt/issues/63060)
- Fix master ip detection when DNS records change [#63654](https://github.com/saltstack/salt/issues/63654)
- Fix user and group management on Windows to handle the Everyone group [#63667](https://github.com/saltstack/salt/issues/63667)
- Fixes an issue in pkg.refresh_db on Windows where new package definition
files were not being picked up on the first run [#63848](https://github.com/saltstack/salt/issues/63848)
- Display a proper error when pki commands fail in the win_pki module [#64933](https://github.com/saltstack/salt/issues/64933)
- Prevent full system upgrade on single package install for Arch Linux [#65200](https://github.com/saltstack/salt/issues/65200)
- When using s3fs, if files are deleted from the bucket, they were not deleted in
the master or minion local cache, which could lead to unexpected file copies or
even state applications. This change makes the local cache consistent with the
remote bucket by deleting files locally that are deleted from the bucket.
**NOTE** this could lead to **breakage** on your affected systems if it was
inadvertently depending on previously deleted files. [#65611](https://github.com/saltstack/salt/issues/65611)
- Fixed an issue with file.directory state where paths would be modified in test
mode if backupname is used. [#66049](https://github.com/saltstack/salt/issues/66049)
- Execution modules have access to regular fileclient durring pillar rendering. [#66124](https://github.com/saltstack/salt/issues/66124)
- Fixed a issue with server channel where a minion's public key
would be rejected if it contained a final newline character. [#66126](https://github.com/saltstack/salt/issues/66126)
- Fix content type backwards compatablity with http proxy post requests in the http utils module. [#66127](https://github.com/saltstack/salt/issues/66127)
- Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services [#66143](https://github.com/saltstack/salt/issues/66143)
- Auto discovery of ssh, scp and ssh-keygen binaries. [#66205](https://github.com/saltstack/salt/issues/66205)
- Add leading slash to salt helper file paths as per dh_links requirement [#66280](https://github.com/saltstack/salt/issues/66280)
- Fixed x509.certificate_managed - ca_server did not return a certificate [#66284](https://github.com/saltstack/salt/issues/66284)
- removed log line that did nothing. [#66289](https://github.com/saltstack/salt/issues/66289)
- Chocolatey: Make sure the return dictionary from ``chocolatey.version``
contains lowercase keys [#66290](https://github.com/saltstack/salt/issues/66290)
- fix cacheing inline pillar, by not rendering inline pillar during cache save function. [#66292](https://github.com/saltstack/salt/issues/66292)
- The file module correctly perserves file permissions on link target. [#66400](https://github.com/saltstack/salt/issues/66400)
- Upgrade relenv to 0.16.0 and python to 3.10.14 [#66402](https://github.com/saltstack/salt/issues/66402)
- backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing. [#66705](https://github.com/saltstack/salt/issues/66705)
# Added
- Add Fedora 39 support [#65859](https://github.com/saltstack/salt/issues/65859)
# Security
- Upgrade to `cryptography==42.0.5` due to a few security issues:
* https://github.com/advisories/GHSA-9v9h-cgj8-h64p
* https://github.com/advisories/GHSA-3ww4-gg4f-jr7f
* https://github.com/advisories/GHSA-6vqw-3v5j-54x4 [#66141](https://github.com/saltstack/salt/issues/66141)
- Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h [#66377](https://github.com/saltstack/salt/issues/66377)
- Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g [#66411](https://github.com/saltstack/salt/issues/66411)
* Sun Mar 03 2024 Salt Project Packaging <saltproject-packaging@vmware.com> - 3007.0
# Removed

View file

@ -2828,9 +2828,60 @@ class Minion(MinionBase):
# we are not connected anymore
self.connected = False
log.info("Connection to master %s lost", self.opts["master"])
if self.opts["transport"] != "tcp":
self.schedule.delete_job(name=master_event(type="alive"))
if self.opts["master_type"] != "failover":
# modify the scheduled job to fire on reconnect
log.info("Trying to tune in to next master from master-list")
if hasattr(self, "pub_channel"):
self.pub_channel.on_recv(None)
if hasattr(self.pub_channel, "auth"):
self.pub_channel.auth.invalidate()
if hasattr(self.pub_channel, "close"):
self.pub_channel.close()
if hasattr(self, "req_channel") and self.req_channel:
self.req_channel.close()
self.req_channel = None
# if eval_master finds a new master for us, self.connected
# will be True again on successful master authentication
try:
master, self.pub_channel = yield self.eval_master(
opts=self.opts,
failed=True,
failback=tag.startswith(master_event(type="failback")),
)
except SaltClientError:
pass
if self.connected:
self.opts["master"] = master
# re-init the subsystems to work with the new master
log.info(
"Re-initialising subsystems for new master %s",
self.opts["master"],
)
self.req_channel = salt.channel.client.AsyncReqChannel.factory(
self.opts, io_loop=self.io_loop
)
# put the current schedule into the new loaders
self.opts["schedule"] = self.schedule.option("schedule")
(
self.functions,
self.returners,
self.function_errors,
self.executors,
) = self._load_modules()
# make the schedule to use the new 'functions' loader
self.schedule.functions = self.functions
self.pub_channel.on_recv(self._handle_payload)
self._fire_master_minion_start()
log.info("Minion is ready to receive requests!")
# update scheduled job to run with the new master addr
if self.opts["transport"] != "tcp":
schedule = {
"function": "status.master",
@ -2840,116 +2891,35 @@ class Minion(MinionBase):
"return_job": False,
"kwargs": {
"master": self.opts["master"],
"connected": False,
"connected": True,
},
}
self.schedule.modify_job(
name=master_event(type="alive", master=self.opts["master"]),
schedule=schedule,
)
if self.opts["master_failback"] and "master_list" in self.opts:
if self.opts["master"] != self.opts["master_list"][0]:
schedule = {
"function": "status.ping_master",
"seconds": self.opts["master_failback_interval"],
"jid_include": True,
"maxrunning": 1,
"return_job": False,
"kwargs": {"master": self.opts["master_list"][0]},
}
self.schedule.modify_job(
name=master_event(type="failback"),
schedule=schedule,
)
else:
self.schedule.delete_job(
name=master_event(type="failback"), persist=True
)
else:
# delete the scheduled job to don't interfere with the failover process
if self.opts["transport"] != "tcp":
self.schedule.delete_job(name=master_event(type="alive"))
log.info("Trying to tune in to next master from master-list")
if hasattr(self, "pub_channel"):
self.pub_channel.on_recv(None)
if hasattr(self.pub_channel, "auth"):
self.pub_channel.auth.invalidate()
if hasattr(self.pub_channel, "close"):
self.pub_channel.close()
if hasattr(self, "req_channel") and self.req_channel:
self.req_channel.close()
self.req_channel = None
# if eval_master finds a new master for us, self.connected
# will be True again on successful master authentication
try:
master, self.pub_channel = yield self.eval_master(
opts=self.opts,
failed=True,
failback=tag.startswith(master_event(type="failback")),
)
except SaltClientError:
pass
if self.connected:
self.opts["master"] = master
# re-init the subsystems to work with the new master
log.info(
"Re-initialising subsystems for new master %s",
self.opts["master"],
)
self.req_channel = salt.channel.client.AsyncReqChannel.factory(
self.opts, io_loop=self.io_loop
)
# put the current schedule into the new loaders
self.opts["schedule"] = self.schedule.option("schedule")
(
self.functions,
self.returners,
self.function_errors,
self.executors,
) = self._load_modules()
# make the schedule to use the new 'functions' loader
self.schedule.functions = self.functions
self.pub_channel.on_recv(self._handle_payload)
self._fire_master_minion_start()
log.info("Minion is ready to receive requests!")
# update scheduled job to run with the new master addr
if self.opts["transport"] != "tcp":
schedule = {
"function": "status.master",
"seconds": self.opts["master_alive_interval"],
"jid_include": True,
"maxrunning": 1,
"return_job": False,
"kwargs": {
"master": self.opts["master"],
"connected": True,
},
}
self.schedule.modify_job(
name=master_event(
type="alive", master=self.opts["master"]
),
schedule=schedule,
)
if (
self.opts["master_failback"]
and "master_list" in self.opts
):
if self.opts["master"] != self.opts["master_list"][0]:
schedule = {
"function": "status.ping_master",
"seconds": self.opts[
"master_failback_interval"
],
"jid_include": True,
"maxrunning": 1,
"return_job": False,
"kwargs": {
"master": self.opts["master_list"][0]
},
}
self.schedule.modify_job(
name=master_event(type="failback"),
schedule=schedule,
)
else:
self.schedule.delete_job(
name=master_event(type="failback"), persist=True
)
else:
self.restart = True
self.io_loop.stop()
self.restart = True
self.io_loop.stop()
elif tag.startswith(master_event(type="connected")):
# handle this event only once. otherwise it will pollute the log

View file

View file

@ -0,0 +1,94 @@
import logging
import pathlib
import subprocess
import pytest
log = logging.getLogger(__name__)
@pytest.fixture(scope="package")
def master_alive_interval():
return 5
class HostsFile:
"""
Simple helper class for tests that need to modify /etc/hosts.
"""
def __init__(self, path, orig_text):
self._path = path
self._orig_text = orig_text
@property
def orig_text(self):
return self._orig_text
def __getattr__(self, key):
if key in ["_path", "_orig_text", "orig_text"]:
return self.__getattribute__(key)
return getattr(self._path, key)
@pytest.fixture
def etc_hosts():
hosts = pathlib.Path("/etc/hosts")
orig_text = hosts.read_text(encoding="utf-8")
hosts = HostsFile(hosts, orig_text)
try:
yield hosts
finally:
hosts.write_text(orig_text)
@pytest.fixture(scope="package")
def master(request, salt_factories):
subprocess.check_output(["ip", "addr", "add", "172.16.0.1/32", "dev", "lo"])
config_defaults = {
"open_mode": True,
"transport": request.config.getoption("--transport"),
}
config_overrides = {
"interface": "0.0.0.0",
}
factory = salt_factories.salt_master_daemon(
"master",
defaults=config_defaults,
overrides=config_overrides,
extra_cli_arguments_after_first_start_failure=["--log-level=info"],
)
with factory.started(start_timeout=180):
yield factory
try:
subprocess.check_output(["ip", "addr", "del", "172.16.0.1/32", "dev", "lo"])
except subprocess.CalledProcessError:
pass
@pytest.fixture(scope="package")
def salt_cli(master):
return master.salt_cli(timeout=180)
@pytest.fixture(scope="package")
def minion(master, master_alive_interval):
config_defaults = {
"transport": master.config["transport"],
}
port = master.config["ret_port"]
config_overrides = {
"master": f"master.local:{port}",
"publish_port": master.config["publish_port"],
"master_alive_interval": master_alive_interval,
}
factory = master.salt_minion_daemon(
"minion",
defaults=config_defaults,
overrides=config_overrides,
extra_cli_arguments_after_first_start_failure=["--log-level=info"],
)
return factory

View file

@ -0,0 +1,119 @@
import logging
import os
import shutil
import subprocess
import pytest
log = logging.getLogger(__name__)
@pytest.fixture(scope="package")
def salt_mm_master_1(request, salt_factories):
subprocess.check_output(["ip", "addr", "add", "172.16.0.1/32", "dev", "lo"])
config_defaults = {
"open_mode": True,
"transport": request.config.getoption("--transport"),
}
config_overrides = {
"interface": "0.0.0.0",
"master_sign_pubkey": True,
}
factory = salt_factories.salt_master_daemon(
"mm-master-1",
defaults=config_defaults,
overrides=config_overrides,
extra_cli_arguments_after_first_start_failure=["--log-level=info"],
)
try:
with factory.started(start_timeout=180):
yield factory
finally:
try:
subprocess.check_output(["ip", "addr", "del", "172.16.0.1/32", "dev", "lo"])
except subprocess.CalledProcessError:
pass
@pytest.fixture(scope="package")
def mm_master_1_salt_cli(salt_mm_master_1):
return salt_mm_master_1.salt_cli(timeout=180)
@pytest.fixture(scope="package")
def salt_mm_master_2(salt_factories, salt_mm_master_1):
# if salt.utils.platform.is_darwin() or salt.utils.platform.is_freebsd():
# subprocess.check_output(["ifconfig", "lo0", "alias", "127.0.0.2", "up"])
config_defaults = {
"open_mode": True,
"transport": salt_mm_master_1.config["transport"],
}
config_overrides = {
"interface": "0.0.0.0",
"master_sign_pubkey": True,
}
# Use the same ports for both masters, they are binding to different interfaces
for key in (
"ret_port",
"publish_port",
):
config_overrides[key] = salt_mm_master_1.config[key] + 1
factory = salt_factories.salt_master_daemon(
"mm-master-2",
defaults=config_defaults,
overrides=config_overrides,
extra_cli_arguments_after_first_start_failure=["--log-level=info"],
)
# Both masters will share the same signing key pair
for keyfile in ("master_sign.pem", "master_sign.pub"):
shutil.copyfile(
os.path.join(salt_mm_master_1.config["pki_dir"], keyfile),
os.path.join(factory.config["pki_dir"], keyfile),
)
with factory.started(start_timeout=180):
yield factory
@pytest.fixture(scope="package")
def mm_master_2_salt_cli(salt_mm_master_2):
return salt_mm_master_2.salt_cli(timeout=180)
@pytest.fixture(scope="package")
def salt_mm_minion_1(salt_mm_master_1, salt_mm_master_2, master_alive_interval):
config_defaults = {
"transport": salt_mm_master_1.config["transport"],
}
mm_master_1_port = salt_mm_master_1.config["ret_port"]
mm_master_2_port = salt_mm_master_2.config["ret_port"]
config_overrides = {
"master": [
f"master1.local:{mm_master_1_port}",
f"master2.local:{mm_master_2_port}",
],
"publish_port": salt_mm_master_1.config["publish_port"],
"master_alive_interval": master_alive_interval,
"master_tries": -1,
"verify_master_pubkey_sign": True,
"retry_dns": True,
}
factory = salt_mm_master_1.salt_minion_daemon(
"mm-minion-1",
defaults=config_defaults,
overrides=config_overrides,
extra_cli_arguments_after_first_start_failure=["--log-level=info"],
)
# Need to grab the public signing key from the master, either will do
shutil.copyfile(
os.path.join(salt_mm_master_1.config["pki_dir"], "master_sign.pub"),
os.path.join(factory.config["pki_dir"], "master_sign.pub"),
)
# with factory.started(start_timeout=180):
yield factory

View file

@ -0,0 +1,50 @@
import logging
import subprocess
import time
import pytest
log = logging.getLogger(__name__)
@pytest.mark.skip_unless_on_linux
def test_multimaster_dns(
salt_mm_master_1,
salt_mm_minion_1,
mm_master_1_salt_cli,
etc_hosts,
caplog,
master_alive_interval,
):
"""
Verify a minion configured with multimaster hot/hot will pick up a master's
dns change if it's been disconnected.
"""
etc_hosts.write_text(
f"{etc_hosts.orig_text}\n172.16.0.1 master1.local master2.local"
)
log.info("Added hosts record for master1.local and master2.local")
with salt_mm_minion_1.started(start_timeout=180):
with caplog.at_level(logging.INFO):
ret = mm_master_1_salt_cli.run("test.ping", minion_tgt="mm-minion-1")
assert ret.returncode == 0
etc_hosts.write_text(
f"{etc_hosts.orig_text}\n127.0.0.1 master1.local master2.local"
)
log.info("Changed hosts record for master1.local and master2.local")
subprocess.check_output(["ip", "addr", "del", "172.16.0.1/32", "dev", "lo"])
log.info("Removed secondary master IP address.")
# Wait for the minion's master_alive_interval, adding a second for
# reliablity.
time.sleep(master_alive_interval + 1)
assert (
"Master ip address changed from 172.16.0.1 to 127.0.0.1" in caplog.text
)
ret = mm_master_1_salt_cli.run("test.ping", minion_tgt="mm-minion-1")
assert ret.returncode == 0
assert (
"Master ip address changed from 172.16.0.1 to 127.0.0.1" in caplog.text
)

View file

@ -0,0 +1,33 @@
import logging
import subprocess
import time
import pytest
log = logging.getLogger(__name__)
@pytest.mark.skip_unless_on_linux
def test_dns_change(master, minion, salt_cli, etc_hosts, caplog, master_alive_interval):
"""
Verify a minion will pick up a master's dns change if it's been disconnected.
"""
etc_hosts.write_text(f"{etc_hosts.orig_text}\n172.16.0.1 master.local")
with minion.started(start_timeout=180):
with caplog.at_level(logging.INFO):
ret = salt_cli.run("test.ping", minion_tgt="minion")
assert ret.returncode == 0
etc_hosts.write_text(f"{etc_hosts.orig_text}\n127.0.0.1 master.local")
log.info("Changed hosts record for master1.local and master2.local")
subprocess.check_output(["ip", "addr", "del", "172.16.0.1/32", "dev", "lo"])
log.info("Removed secondary master IP address.")
# Wait for the minion's master_alive_interval, adding a second for
# reliablity.
time.sleep(master_alive_interval + 1)
assert (
"Master ip address changed from 172.16.0.1 to 127.0.0.1" in caplog.text
)
ret = salt_cli.run("test.ping", minion_tgt="minion")
assert ret.returncode == 0

View file

@ -159,10 +159,6 @@ def test_minions_alive_with_no_master(
"""
Make sure the minions stay alive after all masters have stopped.
"""
if grains["os_family"] == "Debian" and grains["osmajorrelease"] == 9:
pytest.skip(
"Skipping on Debian 9 until flaky issues resolved. See issue #61749"
)
start_time = time.time()
with salt_mm_failover_master_1.stopped():
with salt_mm_failover_master_2.stopped():