def SendNotification(EMail, PList, dt1, strlink): config = CipherConfig.load('parameters.yaml') Bus_settings = config['Notification']['AzureMessageBus'] MessageBody_settings = config['Notification']['MessageBody'] if Bus_settings['SharedAccessKeyValue'] != None and \ Bus_settings['ServiceNamespace'] != None: Address_list = [EMail] ServiceNameSpace = Bus_settings['ServiceNamespace'] sbs = ServiceBusService(ServiceNameSpace, shared_access_key_name = Bus_settings['SharedAccessKeyName'], shared_access_key_value = Bus_settings['SharedAccessKeyValue'] ) message = { 'EmailType' : 0, 'Subject' : 'Status on ' + dt1, 'FromAddress' : MessageBody_settings['FromAddress'], 'ReplyTo' : '', 'FromName' : MessageBody_settings['FromName'] + ' ' + CipherConfig.Country + '-' + CipherConfig.Environment, 'ToAddresses' : Address_list, 'Message' : 'Processes completed with Alert(s) in the last hour\n\n' + PList + strlink, 'CcAddresses': [], 'BccAddresses': [], 'Metadata': { "TaskName": "This is a test message"} } json = CipherData.toJson(message) msg = Message(json) sbs.send_queue_message(Bus_settings['QueueName'], msg) return
def process_request(queue_name): """ Endpoint to publish messages to Azure service bus :param queue_name: name of queue to publish messages to :return: """ input_data = request.get_json() bus_service = ServiceBusService( service_namespace=SERVICE_NAMESPACE, shared_access_key_name=request.headers.get('sas-token-name'), shared_access_key_value=request.headers.get('sas-token')) for index, input_entity in enumerate(input_data): data: str = json.dumps(input_entity[PAYLOAD_KEY] if PAYLOAD_KEY else input_entity).encode("utf-8") msg = Message(data) try: bus_service.send_queue_message(queue_name, msg) logging.info("Entity %s sent successfully", input_entity["_id"]) except Exception as e: logging.error(e) abort(500) return Response()