mirror of
https://github.com/saltstack/salt.git
synced 2025-04-10 06:41:40 +00:00
Add tests for minion config option startup_states
This commit is contained in:
parent
356f868571
commit
1c5b03f7be
1 changed files with 114 additions and 0 deletions
114
tests/pytests/integration/minion/test_startup_states.py
Normal file
114
tests/pytests/integration/minion/test_startup_states.py
Normal file
|
@ -0,0 +1,114 @@
|
|||
"""Test minion configuration option startup_states.
|
||||
|
||||
There are four valid values for this option, which are validated by checking the jobs
|
||||
executed after minion start.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def salt_minion_startup_states_empty_string(salt_master, salt_minion_id):
|
||||
config_overrides = {
|
||||
"startup_states": "",
|
||||
}
|
||||
factory = salt_master.salt_minion_daemon(
|
||||
f"{salt_minion_id}-empty-string",
|
||||
overrides=config_overrides,
|
||||
)
|
||||
with factory.started():
|
||||
yield factory
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def salt_minion_startup_states_highstate(salt_master, salt_minion_id):
|
||||
config_overrides = {
|
||||
"startup_states": "highstate",
|
||||
}
|
||||
factory = salt_master.salt_minion_daemon(
|
||||
f"{salt_minion_id}-highstate",
|
||||
overrides=config_overrides,
|
||||
)
|
||||
with factory.started():
|
||||
yield factory
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def salt_minion_startup_states_sls(salt_master, salt_minion_id):
|
||||
config_overrides = {"startup_states": "sls", "sls_list": ["example-sls"]}
|
||||
factory = salt_master.salt_minion_daemon(
|
||||
f"{salt_minion_id}-sls",
|
||||
overrides=config_overrides,
|
||||
)
|
||||
with factory.started():
|
||||
yield factory
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def salt_minion_startup_states_top(salt_master, salt_minion_id):
|
||||
config_overrides = {"startup_states": "top", "top_file": "example-top.sls"}
|
||||
factory = salt_master.salt_minion_daemon(
|
||||
f"{salt_minion_id}-top",
|
||||
overrides=config_overrides,
|
||||
)
|
||||
with factory.started():
|
||||
yield factory
|
||||
|
||||
|
||||
def test_startup_states_empty_string(
|
||||
salt_run_cli, salt_minion_startup_states_empty_string
|
||||
):
|
||||
# Get jobs for this minion
|
||||
ret = salt_run_cli.run(
|
||||
"jobs.list_jobs", f"search_target={salt_minion_startup_states_empty_string.id}"
|
||||
)
|
||||
# Check no job was run
|
||||
assert len(ret.data.keys()) == 0
|
||||
|
||||
|
||||
def test_startup_states_highstate(salt_run_cli, salt_minion_startup_states_highstate):
|
||||
with salt_minion_startup_states_highstate:
|
||||
# Get jobs for this minion
|
||||
ret = salt_run_cli.run(
|
||||
"jobs.list_jobs", f"search_target={salt_minion_startup_states_highstate.id}"
|
||||
)
|
||||
# Check there is exactly one job
|
||||
assert len(ret.data.keys()) == 1
|
||||
# Check that job executes state.highstate
|
||||
job_ret = next(iter(ret.data.values()))
|
||||
assert "Function" in job_ret
|
||||
assert job_ret["Function"] == "state.highstate"
|
||||
assert "Arguments" in job_ret
|
||||
assert job_ret["Arguments"] == []
|
||||
|
||||
|
||||
def test_startup_states_sls(salt_run_cli, salt_minion_startup_states_sls):
|
||||
with salt_minion_startup_states_sls:
|
||||
# Get jobs for this minion
|
||||
ret = salt_run_cli.run(
|
||||
"jobs.list_jobs", f"search_target={salt_minion_startup_states_sls.id}"
|
||||
)
|
||||
# Check there is exactly one job
|
||||
assert len(ret.data.keys()) == 1
|
||||
# Check that job executes state.sls
|
||||
job_ret = next(iter(ret.data.values()))
|
||||
assert "Function" in job_ret
|
||||
assert job_ret["Function"] == "state.sls"
|
||||
assert "Arguments" in job_ret
|
||||
assert job_ret["Arguments"] == [["example-sls"]]
|
||||
|
||||
|
||||
def test_startup_states_top(salt_run_cli, salt_minion_startup_states_top):
|
||||
with salt_minion_startup_states_top:
|
||||
# Get jobs for this minion
|
||||
ret = salt_run_cli.run(
|
||||
"jobs.list_jobs", f"search_target={salt_minion_startup_states_top.id}"
|
||||
)
|
||||
# Check there is exactly one job
|
||||
assert len(ret.data.keys()) == 1
|
||||
# Check that job executes state.top
|
||||
job_ret = next(iter(ret.data.values()))
|
||||
assert "Function" in job_ret
|
||||
assert job_ret["Function"] == "state.top"
|
||||
assert "Arguments" in job_ret
|
||||
assert job_ret["Arguments"] == ["example-top.sls"]
|
Loading…
Add table
Reference in a new issue