"""Helper functions for labelcopy_loader.""" import logging import sys from botocore.exceptions import ClientError from owslogger import logger from secrets_manager.python_ext import PythonSecretsManager from sme_labelcopy_loader import config def get_secret(secret_name): """Get secret value from SWFSecretsManager. For dev environment it loads value from environ instead of secrets manager. Args: secret_name: key name for the secret Returns: secrets value or None if secrets not created """ secrets_manager_client = PythonSecretsManager( environment=config.ENV, service_name=config.service_name) try: return secrets_manager_client.get_cred(secret_name) except ClientError as e: # The secret is empty if e.response['Error']['Code'] == 'ResourceNotFoundException': return None else: raise e def get_logger(): """Return logger adapter. Returns: If LOGGER_DSN is set, returns an instance of owslogger's Logger class. Else returns a logger that prints to stdout """ if config.ENV.lower() != 'dev': # return ows logger return logger.setup( environment=config.ENV, logger_name=config.service_name, logger_level=logging.DEBUG, service_name=config.service_name, service_version='1.0.0') else: # return stream adapter to stdout logging.basicConfig( stream=sys.stdout, level=logging.INFO, format='%(asctime)s %(name)s %(levelname)s %(message)s' ) return logging