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}")