Refactor codebase to by DRY
This commit is contained in:
parent
c925079e8b
commit
83a526c533
13 changed files with 320 additions and 131 deletions
|
|
@ -1,7 +1,10 @@
|
|||
import json
|
||||
from typing import Any, Tuple
|
||||
from typing import Any, List, Tuple
|
||||
|
||||
from fastapi import Request
|
||||
|
||||
from ops_bot.common import COLOR_ALARM, COLOR_UNKNOWN
|
||||
from ops_bot.config import RoutingKey
|
||||
|
||||
|
||||
def urgency_color(urgency: str) -> str:
|
||||
|
|
@ -11,7 +14,11 @@ def urgency_color(urgency: str) -> str:
|
|||
return COLOR_UNKNOWN
|
||||
|
||||
|
||||
def parse_pagerduty_event(payload: Any) -> Tuple[str, str]:
|
||||
async def parse_pagerduty_event(
|
||||
route: RoutingKey,
|
||||
payload: Any,
|
||||
request: Request,
|
||||
) -> List[Tuple[str, str]]:
|
||||
"""
|
||||
Parses a pagerduty webhook v3 event into a human readable message.
|
||||
Returns a tuple where the first item is plain text, and the second item is matrix html formatted text
|
||||
|
|
@ -37,12 +44,14 @@ def parse_pagerduty_event(payload: Any) -> Tuple[str, str]:
|
|||
else:
|
||||
color = urgency_color(urgency)
|
||||
formatted = f"<strong><font color={color}>{header_str}</font></strong> on {service_name}: [{title}]({url})"
|
||||
return plain, formatted
|
||||
return [(plain, formatted)]
|
||||
|
||||
payload_str = json.dumps(payload, sort_keys=True, indent=2)
|
||||
return (
|
||||
"unhandled",
|
||||
f"""**unhandled pager duty event** (this may or may not be a critical problem, please look carefully)
|
||||
return [
|
||||
(
|
||||
"unhandled",
|
||||
f"""**unhandled pager duty event** (this may or may not be a critical problem, please look carefully)
|
||||
<pre><code class="language-json">{payload_str}</code></pre>
|
||||
""",
|
||||
)
|
||||
)
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue