modular_sdk/utils/operation_mode/abstract.py (19 lines of code) (raw):
from abc import ABC, abstractmethod
from modular_sdk.commons import ModularException, RESPONSE_BAD_REQUEST_CODE
ALLOWED_MODES = ["LIVE", "MAINTENANCE", "TESTING"]
class AbstractOperationModeDescriber(ABC):
@abstractmethod
def get_mode(self, component_name):
pass
class AbstractOperationModeManager(AbstractOperationModeDescriber):
@abstractmethod
def set_mode(self, mode, component_name, applied_by, description, meta):
pass
@abstractmethod
def check_mode(self, mode):
if mode not in ALLOWED_MODES:
raise ModularException(
code=RESPONSE_BAD_REQUEST_CODE,
content=f"Wrong mode '{mode}' selected. Allowed modes are: "
f"'{ALLOWED_MODES}'"
)