123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import logging
- import os
- import shutil
- import pytest
- log = logging.getLogger(__name__)
- @pytest.fixture(scope="package", autouse=True)
- def skip_on_tcp_transport(request):
- if request.config.getoption("--transport") == "tcp":
- pytest.skip("Multimaster under the TPC transport is not working. See #59053")
- @pytest.fixture(scope="package")
- def salt_mm_master_1(request, salt_factories):
- config_defaults = {
- "open_mode": True,
- "transport": request.config.getoption("--transport"),
- }
- factory = salt_factories.get_salt_master_daemon(
- "mm-master-1",
- config_defaults=config_defaults,
- extra_cli_arguments_after_first_start_failure=["--log-level=debug"],
- )
- with factory.started(start_timeout=120):
- yield factory
- @pytest.fixture(scope="package")
- def mm_master_1_salt_cli(salt_mm_master_1):
- return salt_mm_master_1.get_salt_cli(default_timeout=120)
- @pytest.fixture(scope="package")
- def salt_mm_master_2(salt_factories, salt_mm_master_1):
- config_defaults = {
- "open_mode": True,
- "transport": salt_mm_master_1.config["transport"],
- }
- factory = salt_factories.get_salt_master_daemon(
- "mm-master-2",
- config_defaults=config_defaults,
- extra_cli_arguments_after_first_start_failure=["--log-level=debug"],
- )
- # The secondary salt master depends on the primarily salt master fixture
- # because we need to clone the keys
- for keyfile in ("master.pem", "master.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=120):
- yield factory
- @pytest.fixture(scope="package")
- def mm_master_2_salt_cli(salt_mm_master_2):
- return salt_mm_master_2.get_salt_cli(default_timeout=120)
- @pytest.fixture(scope="package")
- def salt_mm_minion_1(salt_mm_master_1, salt_mm_master_2):
- 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": [
- "localhost:{}".format(mm_master_1_port),
- "localhost:{}".format(mm_master_2_port),
- ],
- "test.foo": "baz",
- }
- factory = salt_mm_master_1.get_salt_minion_daemon(
- "mm-minion-1",
- config_defaults=config_defaults,
- config_overrides=config_overrides,
- extra_cli_arguments_after_first_start_failure=["--log-level=debug"],
- )
- with factory.started(start_timeout=120):
- yield factory
- @pytest.fixture(scope="package")
- def salt_mm_minion_2(salt_mm_master_1, salt_mm_master_2):
- 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": [
- "localhost:{}".format(mm_master_1_port),
- "localhost:{}".format(mm_master_2_port),
- ],
- "test.foo": "baz",
- }
- factory = salt_mm_master_2.get_salt_minion_daemon(
- "mm-minion-2",
- config_defaults=config_defaults,
- config_overrides=config_overrides,
- extra_cli_arguments_after_first_start_failure=["--log-level=debug"],
- )
- with factory.started(start_timeout=120):
- yield factory
|