def dss_notification(): body = app.current_request.json_body bundle_uuid = body['match']['bundle_uuid'] bundle_version = body['match']['bundle_version'] subscription_id = body['subscription_id'] event_type = body['event_type'] config = MatrixInfraConfig() hmac_secret_key = config.dss_subscription_hmac_secret_key.encode() HTTPSignatureAuth.verify( requests.Request(url="http://host/dss/notification", method=app.current_request.method, headers=app.current_request.headers), key_resolver=lambda key_id, algorithm: hmac_secret_key) payload = { 'bundle_uuid': bundle_uuid, 'bundle_version': bundle_version, 'event_type': event_type, } queue_url = config.notification_q_url SQSHandler().add_message_to_queue(queue_url, payload) return chalice.Response( status_code=requests.codes.ok, body=f"Received notification from subscription {subscription_id}: " f"{event_type} {bundle_uuid}.{bundle_version}")
def setUp(self): super(TestQueryRunner, self).setUp() self.query_runner = QueryRunner() self.matrix_infra_config.set(self.__class__.TEST_CONFIG) self.query_runner.matrix_infra_config = self.matrix_infra_config self.sqs_handler = SQSHandler() self.sqs.meta.client.purge_queue(QueueUrl="test_query_job_q_name") self.sqs.meta.client.purge_queue( QueueUrl="test_deadletter_query_job_q_name")
def __init__(self, request_id: str): Logging.set_correlation_id(logger, value=request_id) self.request_id = request_id self.request_tracker = RequestTracker(request_id) self.dynamo_handler = DynamoHandler() self.sqs_handler = SQSHandler() self.infra_config = MatrixInfraConfig() self.redshift_config = MatrixRedshiftConfig() self.query_results_bucket = os.environ['MATRIX_QUERY_RESULTS_BUCKET'] self.s3_handler = S3Handler(os.environ['MATRIX_QUERY_BUCKET'])
import uuid from connexion.lifecycle import ConnexionResponse from matrix.common import constants from matrix.common import query_constructor from matrix.common.exceptions import MatrixException from matrix.common.constants import MatrixFormat, MatrixRequestStatus from matrix.common.config import MatrixInfraConfig from matrix.common.aws.lambda_handler import LambdaHandler, LambdaName from matrix.common.aws.redshift_handler import RedshiftHandler, TableName from matrix.common.request.request_tracker import RequestTracker from matrix.common.aws.sqs_handler import SQSHandler lambda_handler = LambdaHandler() sqs_handler = SQSHandler() matrix_infra_config = MatrixInfraConfig() def post_matrix(body: dict): feature = body.get("feature", constants.DEFAULT_FEATURE) fields = body.get("fields", constants.DEFAULT_FIELDS) format_ = body['format'] if 'format' in body else MatrixFormat.LOOM.value expected_formats = [mf.value for mf in MatrixFormat] # Validate input parameters if format_ not in expected_formats: return ({ 'message': "Invalid parameters supplied. "
def __init__(self): self.sqs_handler = SQSHandler() self.s3_handler = S3Handler(os.environ["MATRIX_QUERY_BUCKET"]) self.batch_handler = BatchHandler() self.redshift_handler = RedshiftHandler() self.matrix_infra_config = MatrixInfraConfig()
def setUp(self): super(TestSQSHandler, self).setUp() self.sqs_handler = SQSHandler() self.sqs.meta.client.purge_queue(QueueUrl="test_query_job_q_name")