Compare commits

...

2 Commits

Author SHA1 Message Date
178ba5451d fix: make os header optional
Some checks failed
ci / docker (push) Failing after 47s
2024-11-23 23:22:14 +01:00
14612016af feat: add opensearch support 2024-11-23 23:15:31 +01:00

View File

@@ -20,7 +20,7 @@ import sqlalchemy
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.sql.expression import func
OPENSEARCH_HEADER_SEPERATOR = ","
HOST = "icinga.atlantishq.de"
app = flask.Flask("Signal Notification Gateway")
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///sqlite.db"
@@ -357,13 +357,30 @@ def smart_send_to_clients(path=None):
- supported struct of type "ICINGA|ZABBIX|GENERIC" (see docs) in field "data"
'''
instructions = flask.request.json
if flask.request.headers.get("opensearch"):
users = instructions.get("users")
groups = instructions.get("groups")
message = instructions.get("msg")
title = instructions.get("title")
method = instructions.get("method")
instructions = {}
users = flask.request.headers.get("opensearch-users")
groups = flask.request.headers.get("opensearch-groups")
if groups and OPENSEARCH_HEADER_SEPERATOR in groups:
groups = groups.split(OPENSEARCH_HEADER_SEPERATOR)
if users and OPENSEARCH_HEADER_SEPERATOR in users:
users = users.split(OPENSEARCH_HEADER_SEPERATOR)
message = flask.request.get_data(as_text=True)
title = "Opensearch Alert"
method = None
else:
instructions = flask.request.json
users = instructions.get("users")
groups = instructions.get("groups")
message = instructions.get("msg")
title = instructions.get("title")
method = instructions.get("method")
if app.config["DOWNTIME"] > datetime.datetime.now():
print("Ignoring because of Downtime:", title, message, users, file=sys.stderr)