Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog/69728.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fixed the Rocky Linux 9 integration tcp/zeromq CI jobs failing most PR runs: the startup_states and salt_call ownership test fixtures left their extra minions' accepted keys on the shared session master after stopping the minions, so later netapi tests targeting ``*`` matched dead minions (wrong minion lists and 30 second timeouts). The fixtures now delete their minion keys at teardown.
4 changes: 4 additions & 0 deletions tests/pytests/integration/cli/test_salt_call_ownership.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ def non_root_minion(salt_master, salt_factories):
)
with factory.started():
yield factory
# The minion process is stopped at this point, but its accepted key stays
# on the shared session master, where later tests that target '*' (the
# netapi integration tests) would match it as a dead minion. Remove it.
salt_master.salt_key_cli().run("-d", factory.id, "-y")


@pytest.mark.skipif(shutil.which("sudo") is None, reason="sudo is not available")
Expand Down
16 changes: 16 additions & 0 deletions tests/pytests/integration/minion/test_startup_states.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ def salt_minion_startup_states_empty_string(salt_master, salt_minion_id):
)
with factory.started():
yield factory
# The minion process is stopped at this point, but its accepted key stays
# on the shared session master, where later tests that target '*' (the
# netapi integration tests) would match it as a dead minion. Remove it.
salt_master.salt_key_cli().run("-d", factory.id, "-y")


@pytest.fixture
Expand All @@ -43,6 +47,10 @@ def salt_minion_startup_states_highstate(salt_master, salt_minion_id):
)
with factory.started():
yield factory
# The minion process is stopped at this point, but its accepted key stays
# on the shared session master, where later tests that target '*' (the
# netapi integration tests) would match it as a dead minion. Remove it.
salt_master.salt_key_cli().run("-d", factory.id, "-y")


@pytest.fixture
Expand All @@ -58,6 +66,10 @@ def salt_minion_startup_states_sls(salt_master, salt_minion_id):
)
with factory.started():
yield factory
# The minion process is stopped at this point, but its accepted key stays
# on the shared session master, where later tests that target '*' (the
# netapi integration tests) would match it as a dead minion. Remove it.
salt_master.salt_key_cli().run("-d", factory.id, "-y")


@pytest.fixture
Expand All @@ -73,6 +85,10 @@ def salt_minion_startup_states_top(salt_master, salt_minion_id):
)
with factory.started():
yield factory
# The minion process is stopped at this point, but its accepted key stays
# on the shared session master, where later tests that target '*' (the
# netapi integration tests) would match it as a dead minion. Remove it.
salt_master.salt_key_cli().run("-d", factory.id, "-y")


def test_startup_states_empty_string(
Expand Down
Loading