417 lines
32 KiB
Plaintext
417 lines
32 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 58,
|
|
"id": "1786cbf0",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Generated 10 notifications\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from unittest.mock import MagicMock\n",
|
|
"from orchestrator.activities.mongo_db import MongoDB\n",
|
|
"from orchestrator.utils.connectors_config import build_mongodb_config\n",
|
|
"import random\n",
|
|
"from datetime import datetime, timezone\n",
|
|
"import json\n",
|
|
"\n",
|
|
"word_list = [\n",
|
|
" 'lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur',\n",
|
|
" 'adipiscing', 'elit', 'sed', 'do', 'eiusmod', 'tempor',\n",
|
|
" 'incididunt', 'ut', 'labore', 'et', 'dolore', 'magna', 'aliqua'\n",
|
|
" ]\n",
|
|
"\n",
|
|
"config = build_mongodb_config()\n",
|
|
"\n",
|
|
"mongo_db = MongoDB(\n",
|
|
" connection_string=config['connection_string'],\n",
|
|
" database_name=config['database_name'],\n",
|
|
" ttl_index_seconds=config['ttl_index_seconds'],\n",
|
|
" logger=MagicMock(),\n",
|
|
" notification_handler=MagicMock()\n",
|
|
")\n",
|
|
"\n",
|
|
"AMOUT = 10\n",
|
|
"\n",
|
|
"notification_ids = [\n",
|
|
" \"TAG_node<tag>:<name>_LISTENNING_STOPPED\",\n",
|
|
" \"OPC_<event>__<server>\",\n",
|
|
" \"REPORT_PARTITION_MANAGER\",\n",
|
|
" \"<random_id>\"\n",
|
|
"]\n",
|
|
"\n",
|
|
"notifications = []\n",
|
|
"\n",
|
|
"for _ in range(AMOUT):\n",
|
|
" # Choose random notification ID and fill in placeholders\n",
|
|
" notification_id = random.choice(notification_ids)\n",
|
|
" \n",
|
|
" if \"<tag>\" in notification_id:\n",
|
|
" notification_id = notification_id.replace(\"<tag>\", str(random.randint(1,100)))\n",
|
|
" if \"<name>\" in notification_id:\n",
|
|
" notification_id = notification_id.replace(\"<name>\", f\"tag_{random.randint(1,100)}\")\n",
|
|
" if \"<event>\" in notification_id:\n",
|
|
" events = [\"LISTENNING_STOPPED\", \"CONNECTION_RETRY\", \"LISTENNING_BACK\", \"SUBSCRIPTION\", \"QUEUE_RETRIEVE\"]\n",
|
|
" notification_id = notification_id.replace(\"<event>\", random.choice(events))\n",
|
|
" if \"<server>\" in notification_id:\n",
|
|
" notification_id = notification_id.replace(\"<server>\", f\"server_{random.randint(1,10)}\")\n",
|
|
" if \"<random_id>\" in notification_id:\n",
|
|
" notification_id = notification_id.replace(\"<random_id>\", \"_\".join(random.choices(word_list, k=random.randint(3,5))).upper())\n",
|
|
"\n",
|
|
" notification = {\n",
|
|
" \"project\": \"sientia-laborious\",\n",
|
|
" \"pipeline\": \"_\".join(random.choices(word_list, k=random.randint(2,4))), \n",
|
|
" \"trigger\": \"_\".join(random.choices(word_list, k=random.randint(3,6))),\n",
|
|
" \"model_name\": \" \".join(random.choices(word_list, k=random.randint(2,4))),\n",
|
|
" \"model_id\": str(random.randint(1,100)),\n",
|
|
" \"block\": \"_\".join(random.choices(word_list, k=random.randint(2,4))),\n",
|
|
" \"level\": random.choice([\"INFO\", \"WARNING\", \"ERROR\"]),\n",
|
|
" \"message\": \" \".join(random.choices(word_list, k=random.randint(5,10))),\n",
|
|
" \"attachment_content\": \" \".join(random.choices(word_list, k=random.randint(20,30))),\n",
|
|
" \"notification_id\": notification_id,\n",
|
|
" \"timestamp\": datetime.now(timezone.utc)\n",
|
|
" }\n",
|
|
" \n",
|
|
" notifications.append(notification)\n",
|
|
"\n",
|
|
"print(f\"Generated {len(notifications)} notifications\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 59,
|
|
"id": "8a67c90d",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"{'WARNING': {'section_name': 'Warnings detected:', 'models': [{'model_name': 'amet sed consectetur', 'events': [{'project': 'sientia-laborious', 'pipeline': 'elit_adipiscing_magna', 'trigger': 'eiusmod_do_incididunt_dolor_aliqua', 'model_name': 'amet sed consectetur', 'model_id': '8', 'block': 'do_amet_sit', 'level': 'WARNING', 'message': 'aliqua lorem elit magna eiusmod', 'attachment_content': 'sit ut consectetur dolore ut ipsum eiusmod tempor incididunt sit dolore elit aliqua amet amet aliqua magna dolore ut amet lorem aliqua dolore eiusmod', 'notification_id': 'OPC_CONNECTION_RETRY__server_9', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121908, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'sit dolor lorem', 'events': [{'project': 'sientia-laborious', 'pipeline': 'consectetur_adipiscing_incididunt', 'trigger': 'labore_ut_amet_dolor', 'model_name': 'sit dolor lorem', 'model_id': '44', 'block': 'adipiscing_amet_aliqua_eiusmod', 'level': 'WARNING', 'message': 'consectetur elit incididunt dolore magna ut sit sit adipiscing', 'attachment_content': 'lorem ipsum elit eiusmod do lorem et do do eiusmod eiusmod dolore eiusmod lorem consectetur amet ipsum eiusmod dolor dolore aliqua adipiscing dolore magna ut', 'notification_id': 'OPC_LISTENNING_BACK__server_5', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121982, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'ut labore ipsum ut', 'events': [{'project': 'sientia-laborious', 'pipeline': 'lorem_elit', 'trigger': 'magna_sed_tempor_labore', 'model_name': 'ut labore ipsum ut', 'model_id': '99', 'block': 'sed_dolor_do', 'level': 'WARNING', 'message': 'magna magna incididunt ut incididunt incididunt consectetur', 'attachment_content': 'sed lorem ut amet labore incididunt tempor incididunt do lorem aliqua dolore adipiscing labore labore tempor sit eiusmod tempor aliqua dolor ut sed incididunt adipiscing', 'notification_id': 'OPC_QUEUE_RETRIEVE__server_2', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 122025, tzinfo=datetime.timezone.utc)}]}]}, 'ERROR': {'section_name': 'Errors detected:', 'models': [{'model_name': 'ut elit et eiusmod', 'events': [{'project': 'sientia-laborious', 'pipeline': 'do_magna_aliqua_aliqua', 'trigger': 'dolore_sit_sed', 'model_name': 'ut elit et eiusmod', 'model_id': '20', 'block': 'do_magna', 'level': 'ERROR', 'message': 'dolor aliqua labore labore eiusmod do', 'attachment_content': 'eiusmod sed magna amet tempor labore magna adipiscing incididunt tempor ipsum ipsum aliqua magna tempor do tempor consectetur amet aliqua lorem sed lorem ut consectetur', 'notification_id': 'REPORT_PARTITION_MANAGER', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121924, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'dolore aliqua eiusmod eiusmod', 'events': [{'project': 'sientia-laborious', 'pipeline': 'aliqua_dolor_elit', 'trigger': 'consectetur_incididunt_adipiscing', 'model_name': 'dolore aliqua eiusmod eiusmod', 'model_id': '97', 'block': 'consectetur_magna_do', 'level': 'ERROR', 'message': 'lorem eiusmod et aliqua aliqua sit', 'attachment_content': 'amet lorem labore amet eiusmod do do sit adipiscing ut adipiscing sed sed do ipsum tempor incididunt dolor sed et ipsum amet incididunt sed', 'notification_id': 'REPORT_PARTITION_MANAGER', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121953, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'incididunt eiusmod amet eiusmod', 'events': [{'project': 'sientia-laborious', 'pipeline': 'ipsum_et', 'trigger': 'elit_amet_lorem_dolore_elit', 'model_name': 'incididunt eiusmod amet eiusmod', 'model_id': '31', 'block': 'amet_tempor_tempor', 'level': 'ERROR', 'message': 'ut dolor consectetur amet elit do elit', 'attachment_content': 'amet ut adipiscing lorem adipiscing ut et amet adipiscing incididunt elit magna et aliqua incididunt lorem incididunt lorem incididunt eiusmod sit amet tempor lorem', 'notification_id': 'ELIT_ALIQUA_TEMPOR', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 122040, tzinfo=datetime.timezone.utc)}]}]}, 'INFO': {'section_name': 'Infos detected:', 'models': [{'model_name': 'do magna', 'events': [{'project': 'sientia-laborious', 'pipeline': 'tempor_amet', 'trigger': 'incididunt_adipiscing_incididunt_eiusmod_incididunt_tempor', 'model_name': 'do magna', 'model_id': '29', 'block': 'incididunt_ipsum', 'level': 'INFO', 'message': 'sit labore consectetur labore magna labore eiusmod ipsum', 'attachment_content': 'ipsum amet et ipsum lorem consectetur incididunt dolore consectetur et elit eiusmod elit do eiusmod amet consectetur adipiscing adipiscing lorem eiusmod magna dolor eiusmod sit eiusmod lorem amet magna consectetur', 'notification_id': 'OPC_SUBSCRIPTION__server_4', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121940, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'amet adipiscing ut', 'events': [{'project': 'sientia-laborious', 'pipeline': 'aliqua_dolore_adipiscing_adipiscing', 'trigger': 'ut_incididunt_ut_et_tempor_incididunt', 'model_name': 'amet adipiscing ut', 'model_id': '28', 'block': 'do_sed', 'level': 'INFO', 'message': 'consectetur elit amet dolor incididunt dolor dolor labore adipiscing', 'attachment_content': 'do incididunt aliqua tempor dolor sed lorem elit consectetur et tempor labore elit sed elit dolor sed amet ipsum do eiusmod aliqua adipiscing et sit', 'notification_id': 'TAG_node56:tag_30_LISTENNING_STOPPED', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121968, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'sed lorem et lorem', 'events': [{'project': 'sientia-laborious', 'pipeline': 'do_ipsum_consectetur_ut', 'trigger': 'dolore_incididunt_consectetur_et', 'model_name': 'sed lorem et lorem', 'model_id': '82', 'block': 'tempor_incididunt', 'level': 'INFO', 'message': 'lorem tempor eiusmod dolore tempor aliqua amet sed', 'attachment_content': 'sed dolore amet ut eiusmod aliqua sed dolore incididunt consectetur adipiscing et elit magna consectetur ipsum ipsum ipsum dolor eiusmod do', 'notification_id': 'REPORT_PARTITION_MANAGER', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121994, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'eiusmod elit incididunt', 'events': [{'project': 'sientia-laborious', 'pipeline': 'sit_dolore', 'trigger': 'eiusmod_sed_amet_ut', 'model_name': 'eiusmod elit incididunt', 'model_id': '85', 'block': 'amet_incididunt', 'level': 'INFO', 'message': 'do consectetur incididunt magna dolore et et elit incididunt', 'attachment_content': 'tempor eiusmod sit elit consectetur ut consectetur eiusmod labore labore consectetur ut eiusmod sit dolor ipsum sit do et amet lorem lorem et do ut magna dolor', 'notification_id': 'REPORT_PARTITION_MANAGER', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 122010, tzinfo=datetime.timezone.utc)}]}]}}\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from orchestrator.utils.email_builder import EmailBuilder\n",
|
|
"from unittest.mock import MagicMock\n",
|
|
"\n",
|
|
"\n",
|
|
"email_builder = EmailBuilder(logger=MagicMock())\n",
|
|
"\n",
|
|
"\n",
|
|
"general_events = {}\n",
|
|
"\n",
|
|
"for report in notifications:\n",
|
|
"\n",
|
|
" level = report['level']\n",
|
|
" model_name = report['model_name']\n",
|
|
"\n",
|
|
" if level not in general_events:\n",
|
|
" general_events[level] = {\n",
|
|
" 'section_name': f'{level.capitalize()}s detected:',\n",
|
|
" 'models': {}\n",
|
|
" }\n",
|
|
"\n",
|
|
" if model_name not in general_events[level]['models']:\n",
|
|
" general_events[level]['models'][model_name] = {\n",
|
|
" 'model_name': model_name,\n",
|
|
" 'events': []\n",
|
|
" }\n",
|
|
"\n",
|
|
" general_events[level]['models'][model_name]['events'].append(\n",
|
|
" report)\n",
|
|
"\n",
|
|
"for _type, content in general_events.items():\n",
|
|
" content['models'] = list(content['models'].values())\n",
|
|
"\n",
|
|
"print(general_events)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 60,
|
|
"id": "6944697a",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[{'model_name': 'ut elit et eiusmod', 'events': [{'project': 'sientia-laborious', 'pipeline': 'do_magna_aliqua_aliqua', 'trigger': 'dolore_sit_sed', 'model_name': 'ut elit et eiusmod', 'model_id': '20', 'block': 'do_magna', 'level': 'ERROR', 'message': 'dolor aliqua labore labore eiusmod do', 'attachment_content': 'eiusmod sed magna amet tempor labore magna adipiscing incididunt tempor ipsum ipsum aliqua magna tempor do tempor consectetur amet aliqua lorem sed lorem ut consectetur', 'notification_id': 'REPORT_PARTITION_MANAGER', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121924, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'dolore aliqua eiusmod eiusmod', 'events': [{'project': 'sientia-laborious', 'pipeline': 'aliqua_dolor_elit', 'trigger': 'consectetur_incididunt_adipiscing', 'model_name': 'dolore aliqua eiusmod eiusmod', 'model_id': '97', 'block': 'consectetur_magna_do', 'level': 'ERROR', 'message': 'lorem eiusmod et aliqua aliqua sit', 'attachment_content': 'amet lorem labore amet eiusmod do do sit adipiscing ut adipiscing sed sed do ipsum tempor incididunt dolor sed et ipsum amet incididunt sed', 'notification_id': 'REPORT_PARTITION_MANAGER', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121953, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'incididunt eiusmod amet eiusmod', 'events': [{'project': 'sientia-laborious', 'pipeline': 'ipsum_et', 'trigger': 'elit_amet_lorem_dolore_elit', 'model_name': 'incididunt eiusmod amet eiusmod', 'model_id': '31', 'block': 'amet_tempor_tempor', 'level': 'ERROR', 'message': 'ut dolor consectetur amet elit do elit', 'attachment_content': 'amet ut adipiscing lorem adipiscing ut et amet adipiscing incididunt elit magna et aliqua incididunt lorem incididunt lorem incididunt eiusmod sit amet tempor lorem', 'notification_id': 'ELIT_ALIQUA_TEMPOR', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 122040, tzinfo=datetime.timezone.utc)}]}]\n",
|
|
"[{'model_name': 'amet sed consectetur', 'events': [{'project': 'sientia-laborious', 'pipeline': 'elit_adipiscing_magna', 'trigger': 'eiusmod_do_incididunt_dolor_aliqua', 'model_name': 'amet sed consectetur', 'model_id': '8', 'block': 'do_amet_sit', 'level': 'WARNING', 'message': 'aliqua lorem elit magna eiusmod', 'attachment_content': 'sit ut consectetur dolore ut ipsum eiusmod tempor incididunt sit dolore elit aliqua amet amet aliqua magna dolore ut amet lorem aliqua dolore eiusmod', 'notification_id': 'OPC_CONNECTION_RETRY__server_9', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121908, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'sit dolor lorem', 'events': [{'project': 'sientia-laborious', 'pipeline': 'consectetur_adipiscing_incididunt', 'trigger': 'labore_ut_amet_dolor', 'model_name': 'sit dolor lorem', 'model_id': '44', 'block': 'adipiscing_amet_aliqua_eiusmod', 'level': 'WARNING', 'message': 'consectetur elit incididunt dolore magna ut sit sit adipiscing', 'attachment_content': 'lorem ipsum elit eiusmod do lorem et do do eiusmod eiusmod dolore eiusmod lorem consectetur amet ipsum eiusmod dolor dolore aliqua adipiscing dolore magna ut', 'notification_id': 'OPC_LISTENNING_BACK__server_5', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121982, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'ut labore ipsum ut', 'events': [{'project': 'sientia-laborious', 'pipeline': 'lorem_elit', 'trigger': 'magna_sed_tempor_labore', 'model_name': 'ut labore ipsum ut', 'model_id': '99', 'block': 'sed_dolor_do', 'level': 'WARNING', 'message': 'magna magna incididunt ut incididunt incididunt consectetur', 'attachment_content': 'sed lorem ut amet labore incididunt tempor incididunt do lorem aliqua dolore adipiscing labore labore tempor sit eiusmod tempor aliqua dolor ut sed incididunt adipiscing', 'notification_id': 'OPC_QUEUE_RETRIEVE__server_2', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 122025, tzinfo=datetime.timezone.utc)}]}]\n",
|
|
"[{'model_name': 'do magna', 'events': [{'project': 'sientia-laborious', 'pipeline': 'tempor_amet', 'trigger': 'incididunt_adipiscing_incididunt_eiusmod_incididunt_tempor', 'model_name': 'do magna', 'model_id': '29', 'block': 'incididunt_ipsum', 'level': 'INFO', 'message': 'sit labore consectetur labore magna labore eiusmod ipsum', 'attachment_content': 'ipsum amet et ipsum lorem consectetur incididunt dolore consectetur et elit eiusmod elit do eiusmod amet consectetur adipiscing adipiscing lorem eiusmod magna dolor eiusmod sit eiusmod lorem amet magna consectetur', 'notification_id': 'OPC_SUBSCRIPTION__server_4', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121940, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'amet adipiscing ut', 'events': [{'project': 'sientia-laborious', 'pipeline': 'aliqua_dolore_adipiscing_adipiscing', 'trigger': 'ut_incididunt_ut_et_tempor_incididunt', 'model_name': 'amet adipiscing ut', 'model_id': '28', 'block': 'do_sed', 'level': 'INFO', 'message': 'consectetur elit amet dolor incididunt dolor dolor labore adipiscing', 'attachment_content': 'do incididunt aliqua tempor dolor sed lorem elit consectetur et tempor labore elit sed elit dolor sed amet ipsum do eiusmod aliqua adipiscing et sit', 'notification_id': 'TAG_node56:tag_30_LISTENNING_STOPPED', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121968, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'sed lorem et lorem', 'events': [{'project': 'sientia-laborious', 'pipeline': 'do_ipsum_consectetur_ut', 'trigger': 'dolore_incididunt_consectetur_et', 'model_name': 'sed lorem et lorem', 'model_id': '82', 'block': 'tempor_incididunt', 'level': 'INFO', 'message': 'lorem tempor eiusmod dolore tempor aliqua amet sed', 'attachment_content': 'sed dolore amet ut eiusmod aliqua sed dolore incididunt consectetur adipiscing et elit magna consectetur ipsum ipsum ipsum dolor eiusmod do', 'notification_id': 'REPORT_PARTITION_MANAGER', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121994, tzinfo=datetime.timezone.utc)}]}, {'model_name': 'eiusmod elit incididunt', 'events': [{'project': 'sientia-laborious', 'pipeline': 'sit_dolore', 'trigger': 'eiusmod_sed_amet_ut', 'model_name': 'eiusmod elit incididunt', 'model_id': '85', 'block': 'amet_incididunt', 'level': 'INFO', 'message': 'do consectetur incididunt magna dolore et et elit incididunt', 'attachment_content': 'tempor eiusmod sit elit consectetur ut consectetur eiusmod labore labore consectetur ut eiusmod sit dolor ipsum sit do et amet lorem lorem et do ut magna dolor', 'notification_id': 'REPORT_PARTITION_MANAGER', 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 122010, tzinfo=datetime.timezone.utc)}]}]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"error_models = general_events.get('ERROR', {}).get('', [])\n",
|
|
"warning_models = general_events.get('WARNING', {}).get('models', [])\n",
|
|
"info_models = general_events.get('INFO', {}).get('models', [])\n",
|
|
"mail_type = 'Alerts'\n",
|
|
"\n",
|
|
"print(error_models)\n",
|
|
"print(warning_models)\n",
|
|
"print(info_models)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 61,
|
|
"id": "02e7dabf",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"'<h3>Errors detected:</h3>\\n\\n<h4>Model: <span>ut elit et eiusmod</span></h4>\\n<table>\\n <thead>\\n <tr>\\n <th>Notification ID</th>\\n <th>Schedule</th>\\n <th>Block</th>\\n <th>Timestamp</th>\\n <th>Message</th>\\n </tr>\\n </thead>\\n <tbody>\\n \\n <tr>\\n <td>REPORT_PARTITION_MANAGER</td>\\n <td>dolore_sit_sed</td>\\n <td>do_magna</td>\\n <td>2025-07-29 12:21:45.121924+00:00</td>\\n <td>dolor aliqua labore labore eiusmod do</td>\\n </tr>\\n \\n </tbody>\\n</table>\\n\\n<h4>Model: <span>dolore aliqua eiusmod eiusmod</span></h4>\\n<table>\\n <thead>\\n <tr>\\n <th>Notification ID</th>\\n <th>Schedule</th>\\n <th>Block</th>\\n <th>Timestamp</th>\\n <th>Message</th>\\n </tr>\\n </thead>\\n <tbody>\\n \\n <tr>\\n <td>REPORT_PARTITION_MANAGER</td>\\n <td>consectetur_incididunt_adipiscing</td>\\n <td>consectetur_magna_do</td>\\n <td>2025-07-29 12:21:45.121953+00:00</td>\\n <td>lorem eiusmod et aliqua aliqua sit</td>\\n </tr>\\n \\n </tbody>\\n</table>\\n\\n<h4>Model: <span>incididunt eiusmod amet eiusmod</span></h4>\\n<table>\\n <thead>\\n <tr>\\n <th>Notification ID</th>\\n <th>Schedule</th>\\n <th>Block</th>\\n <th>Timestamp</th>\\n <th>Message</th>\\n </tr>\\n </thead>\\n <tbody>\\n \\n <tr>\\n <td>ELIT_ALIQUA_TEMPOR</td>\\n <td>elit_amet_lorem_dolore_elit</td>\\n <td>amet_tempor_tempor</td>\\n <td>2025-07-29 12:21:45.122040+00:00</td>\\n <td>ut dolor consectetur amet elit do elit</td>\\n </tr>\\n \\n </tbody>\\n</table>\\n'"
|
|
]
|
|
},
|
|
"execution_count": 61,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"email_builder.replace_parameters(email_builder.general_template,\n",
|
|
" general_events.get('ERROR', {})) if general_events else ''"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 62,
|
|
"id": "bebde0ea",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'mail_type': 'Alerts',\n",
|
|
" 'error_events': '<h3></h3>\\n',\n",
|
|
" 'warning_events': '<h3></h3>\\n',\n",
|
|
" 'info_events': '<h3></h3>\\n'}"
|
|
]
|
|
},
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"d = {\n",
|
|
" 'mail_type': mail_type,\n",
|
|
" 'error_events': email_builder.replace_parameters(email_builder.general_template,\n",
|
|
" error_models) if error_models else '',\n",
|
|
" 'warning_events': email_builder.replace_parameters(email_builder.general_template,\n",
|
|
" warning_models) if warning_models else '',\n",
|
|
" 'info_events': email_builder.replace_parameters(email_builder.general_template,\n",
|
|
" info_models) if info_models else '',\n",
|
|
"}\n",
|
|
"\n",
|
|
"d"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 63,
|
|
"id": "c1467b72",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from orchestrator.utils.email_builder import EmailBuilder\n",
|
|
"from unittest.mock import MagicMock\n",
|
|
"\n",
|
|
"\n",
|
|
"email_builder = EmailBuilder(logger=MagicMock())\n",
|
|
"\n",
|
|
"html = email_builder.build_email(notifications, \"Alerts\")\n",
|
|
"\n",
|
|
"with open('email.html', 'w') as file:\n",
|
|
" file.write(html)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 64,
|
|
"id": "ffd7be77",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[{'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'elit_adipiscing_magna',\n",
|
|
" 'trigger': 'eiusmod_do_incididunt_dolor_aliqua',\n",
|
|
" 'model_name': 'amet sed consectetur',\n",
|
|
" 'model_id': '8',\n",
|
|
" 'block': 'do_amet_sit',\n",
|
|
" 'level': 'WARNING',\n",
|
|
" 'message': 'aliqua lorem elit magna eiusmod',\n",
|
|
" 'attachment_content': 'sit ut consectetur dolore ut ipsum eiusmod tempor incididunt sit dolore elit aliqua amet amet aliqua magna dolore ut amet lorem aliqua dolore eiusmod',\n",
|
|
" 'notification_id': 'OPC_CONNECTION_RETRY__server_9',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121908, tzinfo=datetime.timezone.utc)},\n",
|
|
" {'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'do_magna_aliqua_aliqua',\n",
|
|
" 'trigger': 'dolore_sit_sed',\n",
|
|
" 'model_name': 'ut elit et eiusmod',\n",
|
|
" 'model_id': '20',\n",
|
|
" 'block': 'do_magna',\n",
|
|
" 'level': 'ERROR',\n",
|
|
" 'message': 'dolor aliqua labore labore eiusmod do',\n",
|
|
" 'attachment_content': 'eiusmod sed magna amet tempor labore magna adipiscing incididunt tempor ipsum ipsum aliqua magna tempor do tempor consectetur amet aliqua lorem sed lorem ut consectetur',\n",
|
|
" 'notification_id': 'REPORT_PARTITION_MANAGER',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121924, tzinfo=datetime.timezone.utc)},\n",
|
|
" {'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'tempor_amet',\n",
|
|
" 'trigger': 'incididunt_adipiscing_incididunt_eiusmod_incididunt_tempor',\n",
|
|
" 'model_name': 'do magna',\n",
|
|
" 'model_id': '29',\n",
|
|
" 'block': 'incididunt_ipsum',\n",
|
|
" 'level': 'INFO',\n",
|
|
" 'message': 'sit labore consectetur labore magna labore eiusmod ipsum',\n",
|
|
" 'attachment_content': 'ipsum amet et ipsum lorem consectetur incididunt dolore consectetur et elit eiusmod elit do eiusmod amet consectetur adipiscing adipiscing lorem eiusmod magna dolor eiusmod sit eiusmod lorem amet magna consectetur',\n",
|
|
" 'notification_id': 'OPC_SUBSCRIPTION__server_4',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121940, tzinfo=datetime.timezone.utc)},\n",
|
|
" {'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'aliqua_dolor_elit',\n",
|
|
" 'trigger': 'consectetur_incididunt_adipiscing',\n",
|
|
" 'model_name': 'dolore aliqua eiusmod eiusmod',\n",
|
|
" 'model_id': '97',\n",
|
|
" 'block': 'consectetur_magna_do',\n",
|
|
" 'level': 'ERROR',\n",
|
|
" 'message': 'lorem eiusmod et aliqua aliqua sit',\n",
|
|
" 'attachment_content': 'amet lorem labore amet eiusmod do do sit adipiscing ut adipiscing sed sed do ipsum tempor incididunt dolor sed et ipsum amet incididunt sed',\n",
|
|
" 'notification_id': 'REPORT_PARTITION_MANAGER',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121953, tzinfo=datetime.timezone.utc)},\n",
|
|
" {'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'aliqua_dolore_adipiscing_adipiscing',\n",
|
|
" 'trigger': 'ut_incididunt_ut_et_tempor_incididunt',\n",
|
|
" 'model_name': 'amet adipiscing ut',\n",
|
|
" 'model_id': '28',\n",
|
|
" 'block': 'do_sed',\n",
|
|
" 'level': 'INFO',\n",
|
|
" 'message': 'consectetur elit amet dolor incididunt dolor dolor labore adipiscing',\n",
|
|
" 'attachment_content': 'do incididunt aliqua tempor dolor sed lorem elit consectetur et tempor labore elit sed elit dolor sed amet ipsum do eiusmod aliqua adipiscing et sit',\n",
|
|
" 'notification_id': 'TAG_node56:tag_30_LISTENNING_STOPPED',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121968, tzinfo=datetime.timezone.utc)},\n",
|
|
" {'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'consectetur_adipiscing_incididunt',\n",
|
|
" 'trigger': 'labore_ut_amet_dolor',\n",
|
|
" 'model_name': 'sit dolor lorem',\n",
|
|
" 'model_id': '44',\n",
|
|
" 'block': 'adipiscing_amet_aliqua_eiusmod',\n",
|
|
" 'level': 'WARNING',\n",
|
|
" 'message': 'consectetur elit incididunt dolore magna ut sit sit adipiscing',\n",
|
|
" 'attachment_content': 'lorem ipsum elit eiusmod do lorem et do do eiusmod eiusmod dolore eiusmod lorem consectetur amet ipsum eiusmod dolor dolore aliqua adipiscing dolore magna ut',\n",
|
|
" 'notification_id': 'OPC_LISTENNING_BACK__server_5',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121982, tzinfo=datetime.timezone.utc)},\n",
|
|
" {'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'do_ipsum_consectetur_ut',\n",
|
|
" 'trigger': 'dolore_incididunt_consectetur_et',\n",
|
|
" 'model_name': 'sed lorem et lorem',\n",
|
|
" 'model_id': '82',\n",
|
|
" 'block': 'tempor_incididunt',\n",
|
|
" 'level': 'INFO',\n",
|
|
" 'message': 'lorem tempor eiusmod dolore tempor aliqua amet sed',\n",
|
|
" 'attachment_content': 'sed dolore amet ut eiusmod aliqua sed dolore incididunt consectetur adipiscing et elit magna consectetur ipsum ipsum ipsum dolor eiusmod do',\n",
|
|
" 'notification_id': 'REPORT_PARTITION_MANAGER',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 121994, tzinfo=datetime.timezone.utc)},\n",
|
|
" {'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'sit_dolore',\n",
|
|
" 'trigger': 'eiusmod_sed_amet_ut',\n",
|
|
" 'model_name': 'eiusmod elit incididunt',\n",
|
|
" 'model_id': '85',\n",
|
|
" 'block': 'amet_incididunt',\n",
|
|
" 'level': 'INFO',\n",
|
|
" 'message': 'do consectetur incididunt magna dolore et et elit incididunt',\n",
|
|
" 'attachment_content': 'tempor eiusmod sit elit consectetur ut consectetur eiusmod labore labore consectetur ut eiusmod sit dolor ipsum sit do et amet lorem lorem et do ut magna dolor',\n",
|
|
" 'notification_id': 'REPORT_PARTITION_MANAGER',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 122010, tzinfo=datetime.timezone.utc)},\n",
|
|
" {'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'lorem_elit',\n",
|
|
" 'trigger': 'magna_sed_tempor_labore',\n",
|
|
" 'model_name': 'ut labore ipsum ut',\n",
|
|
" 'model_id': '99',\n",
|
|
" 'block': 'sed_dolor_do',\n",
|
|
" 'level': 'WARNING',\n",
|
|
" 'message': 'magna magna incididunt ut incididunt incididunt consectetur',\n",
|
|
" 'attachment_content': 'sed lorem ut amet labore incididunt tempor incididunt do lorem aliqua dolore adipiscing labore labore tempor sit eiusmod tempor aliqua dolor ut sed incididunt adipiscing',\n",
|
|
" 'notification_id': 'OPC_QUEUE_RETRIEVE__server_2',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 122025, tzinfo=datetime.timezone.utc)},\n",
|
|
" {'project': 'sientia-laborious',\n",
|
|
" 'pipeline': 'ipsum_et',\n",
|
|
" 'trigger': 'elit_amet_lorem_dolore_elit',\n",
|
|
" 'model_name': 'incididunt eiusmod amet eiusmod',\n",
|
|
" 'model_id': '31',\n",
|
|
" 'block': 'amet_tempor_tempor',\n",
|
|
" 'level': 'ERROR',\n",
|
|
" 'message': 'ut dolor consectetur amet elit do elit',\n",
|
|
" 'attachment_content': 'amet ut adipiscing lorem adipiscing ut et amet adipiscing incididunt elit magna et aliqua incididunt lorem incididunt lorem incididunt eiusmod sit amet tempor lorem',\n",
|
|
" 'notification_id': 'ELIT_ALIQUA_TEMPOR',\n",
|
|
" 'timestamp': datetime.datetime(2025, 7, 29, 12, 21, 45, 122040, tzinfo=datetime.timezone.utc)}]"
|
|
]
|
|
},
|
|
"execution_count": 64,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"notifications"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 65,
|
|
"id": "55aed216",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"InsertManyResult([ObjectId('6888bcd90ccc3300e4a6c2e5'), ObjectId('6888bcd90ccc3300e4a6c2e6'), ObjectId('6888bcd90ccc3300e4a6c2e7'), ObjectId('6888bcd90ccc3300e4a6c2e8'), ObjectId('6888bcd90ccc3300e4a6c2e9'), ObjectId('6888bcd90ccc3300e4a6c2ea'), ObjectId('6888bcd90ccc3300e4a6c2eb'), ObjectId('6888bcd90ccc3300e4a6c2ec'), ObjectId('6888bcd90ccc3300e4a6c2ed'), ObjectId('6888bcd90ccc3300e4a6c2ee')], acknowledged=True)"
|
|
]
|
|
},
|
|
"execution_count": 65,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"mongo_db.database['notification_queue'].insert_many(notifications)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "venv",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.11.13"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|