Source code for ecstask.productavailability.utilities.app_configuration

import json
import logging
import os

from ecstask.productavailability.exceptions.configuration_exception import FlaskConfigurationFileNotFoundError
from pymorri.util.config_reader_2 import ConfigReader2
from pymorri.util.ssm import SSM

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.setLevel(level=logging.DEBUG)


[docs]class ApplicationConfiguration:
[docs] def load_configuration(self): """ Args: path (String): The path to the config file of the application Returns: config (JSON): Json object of the config file Raises: FlaskConfigurationFileNotFoundError """ try: config_creds = SSM('storepick_config_service').get_ssm_credentials() ENV = os.environ.get("ENV") if ENV != "dev" and ENV != "sit" and ENV != "prd" and ENV != "uat": config_file_name = "storepick-aui-productavailability-service-feat.json" else: config_file_name = "storepick-aui-productavailability-service.json" logger.debug("Config File Name " + config_file_name) config_service = ConfigReader2(config_creds) return config_service.load_config(config_file_name) except Exception as e: log_msg = "Application can not start as the application configuration file is missing." \ " \n Error: {0}".format(str(e)) logging.fatal(log_msg) raise FlaskConfigurationFileNotFoundError
[docs] def init(self): """ Initialize global variables """ config_details = self.load_configuration() return config_details
[docs] def rds_ssm(self): """ Initialize global variables """ local_credential = os.environ.get("local_cred") if local_credential: local_credential = os.environ.get("local_cred") return json.loads(local_credential) config_creds = SSM('storepick_aui_service_secret').get_ssm_credentials() return config_creds