modular_sdk/utils/operation_mode/generic.py (46 lines of code) (raw):

import datetime from modular_sdk.commons import ModularException, RESPONSE_RESOURCE_NOT_FOUND_CODE from modular_sdk.models.operation_mode import OperationMode from modular_sdk.utils.operation_mode.abstract import AbstractOperationModeDescriber from modular_sdk.services.environment_service import EnvironmentService class ModularOperationModeManagerService(AbstractOperationModeDescriber): def __init__(self, environment_service: EnvironmentService = None): if not environment_service: self.environment_service = EnvironmentService() else: self.environment_service = environment_service def get_mode(self, application_name: str = None) -> dict: if not application_name: application_name = self.environment_service.application() if not application_name: raise ModularException( code=RESPONSE_RESOURCE_NOT_FOUND_CODE, content="Missing environment variable 'application_name'" ) app = self.get_application(application_name=application_name) if not app: raise ModularException( code=RESPONSE_RESOURCE_NOT_FOUND_CODE, content=f"No such component: '{application_name}'" ) result = { "code": 200, "items": [{"application": app.application, "mode": app.mode}], "warnings": [] } return result @staticmethod def create(name: str, applied_by: str, mode: str, description: str = None, meta: dict = None, white_list: list = None) -> OperationMode: application = OperationMode( application=name, mode=mode, applied_by=applied_by, description=description, meta=meta, testing_white_list=white_list, last_update_date=datetime.datetime.utcnow() ) return application @staticmethod def get_application(application_name: str) -> OperationMode: return OperationMode.get_nullable(hash_key=application_name) @staticmethod def save(application: OperationMode) -> None: application.save()