"""Application. The API application is a `flask` application. It provides simple features such as registering a url for a specific handlers. """ import boto3 from flask import Flask from opensearchpy import connections as connectionsOpen from owslogger import flask_logger from owsrequest import flask_request from requests_aws4auth import AWS4Auth from conflict_manager import config from conflict_manager.models.aws_http_connection_open\ import AWSHttpConnection as RequestsHttpConnectionOpen app = Flask(config.SERVICE_NAME) flask_logger.setup( app, config.ENVIRONMENT, config.LOGGER_NAME, config.LOGGER_LEVEL, config.SERVICE_NAME, config.SERVICE_VERSION, exclude_paths=[config.HEALTH_CHECK]) try: import uwsgi # noqa uwsgiRunning = True except ImportError: uwsgiRunning = False flask_request.setup( app, config.ENVIRONMENT, uwsgi_cache_enabled=uwsgiRunning, add_request_context=True) if config.OPENSEARCH_HOST: region = 'us-east-1' service = 'es' credentials = boto3.Session().get_credentials() awsauth = AWS4Auth( credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token ) connectionsOpen.create_connection( hosts=[{ 'host': config.OPENSEARCH_HOST, 'port': config.OPENSEARCH_PORT, 'use_ssl': config.OPENSEARCH_USE_SSL }], http_auth=awsauth, connection_class=RequestsHttpConnectionOpen )