Exemplo n.º 1
0
def s3_clients():
    with moto.mock_s3():
        yield {
            'uploads':
            clients.S3Client(bucket_name='uploads-bucket', create_bucket=True),
            'placeholder-photos':
            clients.S3Client(bucket_name='placerholder-photos-bucket',
                             create_bucket=True),
        }
Exemplo n.º 2
0
    'appsync':
    clients.AppSyncClient(),
    'cognito':
    clients.CognitoClient(),
    'dynamo':
    clients.DynamoClient(),
    'dynamo_feed':
    clients.DynamoClient(table_name=DYNAMO_FEED_TABLE),
    'elasticsearch':
    clients.ElasticSearchClient(),
    'pinpoint':
    clients.PinpointClient(),
    'real_dating':
    clients.RealDatingClient(),
    's3_uploads':
    clients.S3Client(S3_UPLOADS_BUCKET),
}

managers = {}
album_manager = managers.get('album') or models.AlbumManager(clients,
                                                             managers=managers)
appstore_manager = managers.get('appstore') or models.AppStoreManager(
    clients, managers=managers)
block_manager = managers.get('block') or models.BlockManager(clients,
                                                             managers=managers)
card_manager = managers.get('card') or models.CardManager(clients,
                                                          managers=managers)
chat_manager = managers.get('chat') or models.ChatManager(clients,
                                                          managers=managers)
chat_message_manager = managers.get(
    'chat_message') or models.ChatMessageManager(clients, managers=managers)
Exemplo n.º 3
0
from . import xray

S3_UPLOADS_BUCKET = os.environ.get('S3_UPLOADS_BUCKET')

logger = logging.getLogger()
xray.patch_all()

secrets_manager_client = clients.SecretsManagerClient()
clients = {
    'appsync': clients.AppSyncClient(),
    'cloudfront': clients.CloudFrontClient(secrets_manager_client.get_cloudfront_key_pair),
    'dynamo': clients.DynamoClient(),
    'mediaconvert': clients.MediaConvertClient(),
    'post_verification': clients.PostVerificationClient(secrets_manager_client.get_post_verification_api_creds),
    's3_uploads': clients.S3Client(S3_UPLOADS_BUCKET),
}

managers = {}
post_manager = managers.get('post') or models.PostManager(clients, managers=managers)


@handler_logging
def image_post_uploaded(event, context):
    # Seems the boto s3 client deals with non-urlencoded keys to objects everywhere, but
    # apparenttly this falls outside that scope. The event emitter passes us a urlencoded path.
    path = urllib.parse.unquote(event['Records'][0]['s3']['object']['key'])

    # we suppress INFO logging, except this message
    with LogLevelContext(logger, logging.INFO):
        logger.info('Handling S3 Object Created (image post uploaded) event', extra={'s3_key': path})
Exemplo n.º 4
0
    clients.CloudFrontClient(secrets_manager_client.get_cloudfront_key_pair),
    'cognito':
    clients.CognitoClient(),
    'dynamo':
    clients.DynamoClient(),
    'facebook':
    clients.FacebookClient(),
    'google':
    clients.GoogleClient(secrets_manager_client.get_google_client_ids),
    'pinpoint':
    clients.PinpointClient(),
    'post_verification':
    clients.PostVerificationClient(
        secrets_manager_client.get_post_verification_api_creds),
    's3_uploads':
    clients.S3Client(S3_UPLOADS_BUCKET),
    's3_placeholder_photos':
    clients.S3Client(S3_PLACEHOLDER_PHOTOS_BUCKET),
}

# shared hash table of all managers, enables inter-manager communication
managers = {}
appstore_manager = managers.get('appstore') or models.AppStoreManager(
    clients, managers=managers)
album_manager = managers.get('album') or models.AlbumManager(clients,
                                                             managers=managers)
block_manager = managers.get('block') or models.BlockManager(clients,
                                                             managers=managers)
card_manager = managers.get('card') or models.CardManager(clients,
                                                          managers=managers)
chat_manager = managers.get('chat') or models.ChatManager(clients,