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