Source code for ecstask.osp_eventhandler_v2.utilities.sqs_util

import logging
import uuid
from datetime import datetime

from typing import Dict
import traceback
import json
from pymorri.exceptions import MoriException

from pymorri.util.model import SqsMessage

from pymorri.util import aws_utils

logger = logging.getLogger('ecstask.osp_eventhandler_v2')


[docs]def write_messages_to_sqs(queue_name: str, request_data_dict: Dict): """ This method is used to save the request data in to SQS in case of failures. Args: queue_name (str): Name of the queue to save the message. request_data_dict (Dict): Dictionary containing the request data including error details which needs to be inserted into the queue as a message. """ try: logger.info("In write_messages_to_sqs") osp_events_error_sqs_list = [] sqs_msg = { "MessageId": str(uuid.uuid4()), "Message": json.dumps(request_data_dict), "Timestamp": datetime.today().strftime('%Y-%m-%d"T"%H:%M:%S.%f"Z"') } sqs_message = SqsMessage(message_id=sqs_msg['MessageId'], message_body=sqs_msg) osp_events_error_sqs_list.append(sqs_message) logger.info(f"Error SQS messages - {osp_events_error_sqs_list}") aws_utils.send_messages_to_sqs(queue_name, osp_events_error_sqs_list) logger.info("write_messages_to_sqs End") except MoriException as exc: traceback.print_exc() logger.error( f"OSP_EVENT_HANDLER_V2_ALARM Exception occurred while writing OSP Pick task error details to SQS {exc}")