示例#1
0
def init_app(app) -> None:
    """Configure an application instance."""
    config = get_application_config(app)
    config.setdefault('CREDENTIALS_ROLE', 'arxiv-fulltext')
    config.setdefault(
        'CREDENTIALS_URL',
        'http://169.254.169.254/latest/meta-data/iam/security-credentials')
示例#2
0
def init_app(app: object = None) -> None:
    """Set default configuration parameters for an application instance."""
    config = get_application_config(app)
    config.setdefault('CLOUDWATCH_ENDPOINT',
                      'https://monitoring.us-east-1.amazonaws.com')
    config.setdefault('AWS_REGION', 'us-east-1')
    config.setdefault('CLOUDWATCH_VERIFY', 'true')
示例#3
0
def get_session(app: object = None) -> CredentialsSession:
    """Create a new :class:`.CredentialsSession`."""
    config = get_application_config(app)
    if bool(config.get('INSTANCE_CREDENTIALS')):
        role = config.get('CREDENTIALS_ROLE', "arxiv-fulltext")
        endpoint = config.get(
            'CREDENTIALS_URL',
            'http://169.254.169.254/latest/meta-data/iam/security-credentials')
        return InstanceCredentialsSession(endpoint, role, config)
    return PassthroughCredentialsSession('', '', config)
示例#4
0
def get_session(app: object = None) -> MetricsSession:
    """Get a new metrics session."""
    config = get_application_config(app)
    try:
        access_key, secret_key, token = credentials.get_credentials()
    except IOError as e:
        access_key, secret_key, token = None, None, None
        logger.debug('failed to load instance credentials: %s', str(e))
    if access_key is None or secret_key is None:
        access_key = config.get('AWS_ACCESS_KEY_ID', None)
        secret_key = config.get('AWS_SECRET_ACCESS_KEY', None)
        token = config.get('AWS_SESSION_TOKEN', None)
    endpoint_url = config.get('CLOUDWATCH_ENDPOINT', None)
    region_name = config.get('AWS_REGION', 'us-east-1')
    verify = bool(config.get('CLOUDWATCH_VERIFY', 'true'))
    return MetricsSession(endpoint_url,
                          access_key,
                          secret_key,
                          token,
                          region_name,
                          verify=verify)
示例#5
0
def get_session(app: object = None) -> FullTextStoreSession:
    config = get_application_config(app)
    creds = credentials.current_session()
    try:
        access_key, secret_key, token = creds.get_credentials()
    except IOError as e:
        access_key, secret_key, token = None, None, None
        logger.debug('failed to load instance credentials: %s', str(e))
    if access_key is None or secret_key is None:
        access_key = config.get('AWS_ACCESS_KEY_ID', None)
        secret_key = config.get('AWS_SECRET_ACCESS_KEY', None)
        token = config.get('AWS_SESSION_TOKEN', None)

    endpoint_url = config.get('DYNAMODB_ENDPOINT', None)
    region_name = config.get('AWS_REGION', 'us-east-1')
    version = config.get('VERSION', "0.0")
    verify = bool(config.get('DYNAMODB_VERIFY', "true"))
    return FullTextStoreSession(endpoint_url,
                                access_key,
                                secret_key,
                                token,
                                region_name,
                                verify=verify,
                                version=version)
示例#6
0
def get_session(app: object = None) -> RetrievePDFSession:
    """Create a new :class:`.RetrievePDFSession`."""
    config = get_application_config()
    whitelist = config.get('SOURCE_WHITELIST', 'arxiv.org,export.arxiv.org')
    return RetrievePDFSession(whitelist.split(','))
示例#7
0
def init_app(app: object = None) -> None:
    """Configure an application instance."""
    config = get_application_config(app)
    config.setdefault('SOURCE_WHITELIST', 'arxiv.org,export.arxiv.org')
示例#8
0
def get_session(app: object = None) -> RequestExtractionSession:
    """Get a new extraction session."""
    endpoint = get_application_config(app).get('EXTRACTION_ENDPOINT')
    if not endpoint:
        raise RuntimeError('EXTRACTION_ENDPOINT not set')
    return RequestExtractionSession(endpoint)
示例#9
0
def get_session(app: object = None) -> FullTextSession:
    """Generate a new configured :class:`.FullTextSession`."""
    config = get_application_config(app)
    image = config.get('FULLTEXT_DOCKER_IMAGE', 'arxiv/fulltext')
    return FullTextSession(image)
示例#10
0
def init_app(app) -> None:
    """Configure an application instance."""
    config = get_application_config(app)
    config.setdefault('FULLTEXT_DOCKER_IMAGE', 'arxiv/fulltext')