Source code for saltfactories.daemons.api
"""
Salt API Factory.
"""
import attr
import pytest
from saltfactories.bases import SaltDaemon
[docs]
@attr.s(kw_only=True, slots=True)
class SaltApi(SaltDaemon):
"""
salt-api daemon factory.
"""
def __attrs_post_init__(self):
"""
Post attrs initialization routines.
"""
if "rest_cherrypy" in self.config:
self.check_ports = [self.config["rest_cherrypy"]["port"]]
elif "rest_tornado" in self.config:
self.check_ports = [self.config["rest_tornado"]["port"]]
else:
msg = (
"The salt-master configuration for this salt-api instance does not seem to have any "
"api properly configured."
)
raise pytest.UsageError(msg)
super().__attrs_post_init__()
@classmethod
def _configure(
cls,
factories_manager, # noqa: ARG003
daemon_id, # noqa: ARG003
root_dir=None, # noqa: ARG003
defaults=None, # noqa: ARG003
overrides=None, # noqa: ARG003
):
msg = "The salt-api daemon is not configurable. It uses the salt-master config that it's attached to."
raise pytest.UsageError(msg)
@classmethod
def _get_verify_config_entries(cls, config): # noqa: ARG003
return []
[docs]
@classmethod
def load_config(cls, config_file, config): # noqa: ARG003
"""
Return the loaded configuration.
"""
msg = (
"The salt-api daemon does not have it's own config file. It uses the salt-master config that "
"it's attached to."
)
raise pytest.UsageError(msg)
[docs]
def get_check_events(self):
"""
Return salt events to check.
Return a list of tuples in the form of `(master_id, event_tag)` check against to ensure the daemon is running
"""
return []