Source code for spicerack.dbctl

"""dbctl module."""

from typing import Any

from conftool.extensions.dbconfig.config import DbConfig
from conftool.extensions.dbconfig.entities import Instance, Section

from spicerack.confctl import Confctl


[docs] class Dbctl(Confctl): """Extend the Confctl class to support dbctl actions.""" def __init__(self, *args: Any, **kwargs: Any) -> None: """Initialize the instance. Parameters as required by the parent class. """ super().__init__(*args, **kwargs) schema = self._client.schema self._mediawiki_config = DbConfig(schema, Instance(schema), Section(schema)) self._dbconfig_instance = Instance(schema, self._mediawiki_config.check_instance) self._dbconfig_section = Section(schema, self._mediawiki_config.check_section) @property def config(self) -> DbConfig: """Getter for the instance to act like `dbctl config`.""" return self._mediawiki_config @property def instance(self) -> Instance: """Getter for the instance to act like `dbctl instance`.""" return self._dbconfig_instance @property def section(self) -> Section: """Getter for the instance to act like `dbctl section`.""" return self._dbconfig_section