diff --git a/app/create_db.py b/app/create_db.py
index ef5bf612..8f2be1e8 100644
--- a/app/create_db.py
+++ b/app/create_db.py
@@ -795,6 +795,22 @@ def update_db_v_6_3_8():
print("Updating... DB has been updated to version 6.3.8")
+def update_db_v_6_3_9():
+ cursor = conn.cursor()
+ sql = """
+ ALTER TABLE `checker_setting` ADD COLUMN pd_id integer default 0;
+ """
+ try:
+ cursor.execute(sql)
+ except Exception as e:
+ if e.args[0] == 'duplicate column name: pd_id' or str(e) == '(1060, "Duplicate column name \'pd_id\'")':
+ print('Updating... DB has been updated to version 6.3.9')
+ else:
+ print("An error occurred:", e)
+ else:
+ print("Updating... DB has been updated to version 6.3.9")
+
+
def update_ver():
try:
Version.update(version='6.3.10.0').execute()
@@ -825,6 +841,7 @@ def update_all():
update_db_v_6_3_5()
update_db_v_6_3_6()
update_db_v_6_3_8()
+ update_db_v_6_3_9()
update_ver()
diff --git a/app/modules/alerting/alerting.py b/app/modules/alerting/alerting.py
index 7c1fecd4..bdc1c8cb 100644
--- a/app/modules/alerting/alerting.py
+++ b/app/modules/alerting/alerting.py
@@ -54,22 +54,34 @@ def alert_routing(
for setting in checker_settings:
if alert_type == 'service' and setting.service_alert:
- telegram_send_mess(mes, level, telegram_channel_id=setting.telegram_id)
- slack_send_mess(mes, level, slack_channel_id=setting.slack_id)
+ try:
+ telegram_send_mess(mes, level, channel_id=setting.telegram_id)
+ slack_send_mess(mes, level, channel_id=setting.slack_id)
+ pd_send_mess(mes, level, server_ip, service_id, alert_type, channel_id=setting.pd_id)
+ except Exception as e:
+ roxywi_common.logging('Roxy-WI server', f'error: unable to send message: {e}', roxywi=1)
if setting.email:
send_email_to_server_group(subject, mes, level, group_id)
if alert_type == 'backend' and setting.backend_alert:
- telegram_send_mess(mes, level, telegram_channel_id=setting.telegram_id)
- slack_send_mess(mes, level, slack_channel_id=setting.slack_id)
+ try:
+ telegram_send_mess(mes, level, channel_id=setting.telegram_id)
+ slack_send_mess(mes, level, channel_id=setting.slack_id)
+ pd_send_mess(mes, level, server_ip, service_id, alert_type, channel_id=setting.pd_id)
+ except Exception as e:
+ roxywi_common.logging('Roxy-WI server', f'error: unable to send message: {e}', roxywi=1)
if setting.email:
send_email_to_server_group(subject, mes, level, group_id)
if alert_type == 'maxconn' and setting.maxconn_alert:
- telegram_send_mess(mes, level, telegram_channel_id=setting.telegram_id)
- slack_send_mess(mes, level, slack_channel_id=setting.slack_id)
+ try:
+ telegram_send_mess(mes, level, channel_id=setting.telegram_id)
+ slack_send_mess(mes, level, channel_id=setting.slack_id)
+ pd_send_mess(mes, level, server_ip, service_id, alert_type, channel_id=setting.pd_id)
+ except Exception as e:
+ roxywi_common.logging('Roxy-WI server', f'error: unable to send message: {e}', roxywi=1)
if setting.email:
send_email_to_server_group(subject, mes, level, group_id)
@@ -122,11 +134,11 @@ def telegram_send_mess(mess, level, **kwargs):
token_bot = ''
channel_name = ''
- if kwargs.get('telegram_channel_id') == 0:
+ if kwargs.get('channel_id') == 0:
return
- if kwargs.get('telegram_channel_id'):
- telegrams = sql.get_telegram_by_id(kwargs.get('telegram_channel_id'))
+ if kwargs.get('channel_id'):
+ telegrams = sql.get_telegram_by_id(kwargs.get('channel_id'))
else:
telegrams = sql.get_telegram_by_ip(kwargs.get('ip'))
@@ -147,6 +159,7 @@ def telegram_send_mess(mess, level, **kwargs):
bot.send_message(chat_id=channel_name, text=f'{level}: {mess}')
except Exception as e:
roxywi_common.logging('Roxy-WI server', str(e), roxywi=1)
+ raise Exception(f'error: {e}')
def slack_send_mess(mess, level, **kwargs):
@@ -155,11 +168,11 @@ def slack_send_mess(mess, level, **kwargs):
slack_token = ''
channel_name = ''
- if kwargs.get('slack_channel_id') == 0:
+ if kwargs.get('channel_id') == 0:
return
- if kwargs.get('slack_channel_id'):
- slacks = sql.get_slack_by_id(kwargs.get('slack_channel_id'))
+ if kwargs.get('channel_id'):
+ slacks = sql.get_slack_by_id(kwargs.get('channel_id'))
else:
slacks = sql.get_slack_by_ip(kwargs.get('ip'))
@@ -179,6 +192,51 @@ def slack_send_mess(mess, level, **kwargs):
client.chat_postMessage(channel=f'#{channel_name}', text=f'{level}: {mess}')
except SlackApiError as e:
roxywi_common.logging('Roxy-WI server', str(e), roxywi=1)
+ raise Exception(f'error: {e}')
+
+
+def pd_send_mess(mess, level, server_ip=None, service_id=None, alert_type=None, **kwargs):
+ import pdpyras
+
+ token = ''
+
+ if kwargs.get('channel_id') == 0:
+ return
+
+ if kwargs.get('channel_id'):
+ try:
+ pds = sql.get_pd_by_id(kwargs.get('channel_id'))
+ except Exception as e:
+ print(e)
+ else:
+ try:
+ pds = sql.get_pd_by_ip(kwargs.get('ip'))
+ except Exception as e:
+ print(e)
+
+ for pd in pds:
+ token = pd.token
+
+ try:
+ proxy = sql.get_setting('proxy')
+ session = pdpyras.EventsAPISession(token)
+ dedup_key = f'{server_ip} {service_id} {alert_type}'
+ except Exception as e:
+ roxywi_common.logging('Roxy-WI server', str(e), roxywi=1)
+ raise Exception(f'error: {e}')
+
+ if proxy is not None and proxy != '' and proxy != 'None':
+ proxies = dict(https=proxy, http=proxy)
+ session.proxies.update(proxies)
+
+ try:
+ if level == 'info':
+ session.resolve(dedup_key)
+ else:
+ session.trigger(mess, 'Roxy-WI', dedup_key=dedup_key, severity=level, custom_details={'server': server_ip, 'alert': mess})
+ except Exception as e:
+ roxywi_common.logging('Roxy-WI server', str(e), roxywi=1)
+ raise Exception(f'error: {e}')
def check_rabbit_alert() -> None:
@@ -228,11 +286,12 @@ def add_telegram_channel(token: str, channel: str, group: str, page: str) -> Non
else:
if sql.insert_new_telegram(token, channel, group):
lang = roxywi_common.get_user_lang()
+ channels = sql.select_telegram(token=token)
+ groups = sql.select_groups()
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
- template = env.get_template('ajax/new_telegram.html')
- output_from_parsed_template = template.render(groups=sql.select_groups(), lang=lang,
- telegrams=sql.select_telegram(token=token), page=page)
- print(output_from_parsed_template)
+ template = env.get_template('ajax/new_receiver.html')
+ parsed_template = template.render(groups=groups, lang=lang, channels=channels, page=page, receiver='telegram')
+ print(parsed_template)
roxywi_common.logging('Roxy-WI server', f'A new Telegram channel {channel} has been created ', roxywi=1, login=1)
@@ -242,30 +301,56 @@ def add_slack_channel(token: str, channel: str, group: str, page: str) -> None:
else:
if sql.insert_new_slack(token, channel, group):
lang = roxywi_common.get_user_lang()
+ channels = sql.select_slack(token=token)
+ groups = sql.select_groups()
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
- template = env.get_template('ajax/new_slack.html')
- output_from_parsed_template = template.render(groups=sql.select_groups(), lang=lang,
- slacks=sql.select_slack(token=token), page=page)
- print(output_from_parsed_template)
+ template = env.get_template('ajax/new_receiver.html')
+ parsed_template = template.render(groups=groups, lang=lang, channels=channels, page=page, receiver='slack')
+ print(parsed_template)
roxywi_common.logging('Roxy-WI server', f'A new Slack channel {channel} has been created ', roxywi=1, login=1)
+def add_pd_channel(token: str, channel: str, group: str, page: str) -> None:
+ if token is None or channel is None or group is None:
+ print(error_mess)
+ else:
+ if sql.insert_new_pd(token, channel, group):
+ lang = roxywi_common.get_user_lang()
+ env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
+ template = env.get_template('ajax/new_receiver.html')
+ parsed_template = template.render(groups=sql.select_groups(), lang=lang, channels=sql.select_pd(token=token), page=page, receiver='pd')
+ print(parsed_template)
+ roxywi_common.logging('Roxy-WI server', f'A new PagerDuty channel {channel} has been created ', roxywi=1, login=1)
+
+
def delete_telegram_channel(channel_id) -> None:
telegram = sql.select_telegram(id=channel_id)
+ channel_name = ''
for t in telegram:
- telegram_name = t.token
+ channel_name = t.token
if sql.delete_telegram(channel_id):
print("Ok")
- roxywi_common.logging('Roxy-WI server', f'The Telegram channel {telegram_name} has been deleted ', roxywi=1, login=1)
+ roxywi_common.logging('Roxy-WI server', f'The Telegram channel {channel_name} has been deleted ', roxywi=1, login=1)
def delete_slack_channel(channel_id) -> None:
slack = sql.select_slack(id=channel_id)
+ channel_name = ''
for t in slack:
- slack_name = t.chanel_name
+ channel_name = t.chanel_name
if sql.delete_slack(channel_id):
print("Ok")
- roxywi_common.logging('Roxy-WI server', f'The Slack channel {slack_name} has been deleted ', roxywi=1, login=1)
+ roxywi_common.logging('Roxy-WI server', f'The Slack channel {channel_name} has been deleted ', roxywi=1, login=1)
+
+
+def delete_pd_channel(channel_id) -> None:
+ pd = sql.select_pd(id=channel_id)
+ channel_name = ''
+ for t in pd:
+ channel_name = t.chanel_name
+ if sql.delete_pd(channel_id):
+ print("Ok")
+ roxywi_common.logging('Roxy-WI server', f'The PageDuty channel {channel_name} has been deleted ', roxywi=1, login=1)
def update_telegram(token: str, channel: str, group: str, user_id: int) -> None:
@@ -276,3 +361,54 @@ def update_telegram(token: str, channel: str, group: str, user_id: int) -> None:
def update_slack(token: str, channel: str, group: str, user_id: int) -> None:
sql.update_slack(token, channel, group, user_id)
roxywi_common.logging(f'group {group}', f'The Slack token has been updated for channel: {channel}', roxywi=1, login=1)
+
+
+def update_pd(token: str, channel: str, group: str, user_id: int) -> None:
+ sql.update_pd(token, channel, group, user_id)
+ roxywi_common.logging(f'group {group}', f'The PagerDuty token has been updated for channel: {channel}', roxywi=1, login=1)
+
+
+def delete_receiver_channel(channel_id: int, receiver_name: str) -> None:
+ delete_functions = {
+ "telegram": delete_telegram_channel,
+ "slack": delete_slack_channel,
+ "pd": delete_pd_channel,
+ }
+ delete_functions[receiver_name](channel_id)
+
+
+def add_receiver_channel(receiver_name: str, token: str, channel: str, group: id, page: str) -> None:
+ add_functions = {
+ "telegram": add_telegram_channel,
+ "slack": add_slack_channel,
+ "pd": add_pd_channel,
+ }
+ add_functions[receiver_name](token, channel, group, page)
+
+
+def update_receiver_channel(receiver_name: str, token: str, channel: str, group: id, user_id: int) -> None:
+ update_functions = {
+ "telegram": update_telegram,
+ "slack": update_slack,
+ "pd": update_pd,
+ }
+ update_functions[receiver_name](token, channel, group, user_id)
+
+
+def check_receiver(channel_id: int, receiver_name: str) -> None:
+ functions = {
+ "telegram": telegram_send_mess,
+ "slack": slack_send_mess,
+ "pd": pd_send_mess,
+ }
+ mess = 'Test message from Roxy-WI'
+
+ if receiver_name == 'pd':
+ level = 'warning'
+ else:
+ level = 'info'
+
+ try:
+ functions[receiver_name](mess, level, channel_id=channel_id)
+ except Exception as e:
+ print(e)
diff --git a/app/modules/db/db_model.py b/app/modules/db/db_model.py
index 3d023a7c..ec102582 100644
--- a/app/modules/db/db_model.py
+++ b/app/modules/db/db_model.py
@@ -103,6 +103,16 @@ class Slack(BaseModel):
table_name = 'slack'
+class PD(BaseModel):
+ id = AutoField()
+ token = CharField()
+ chanel_name = CharField()
+ groups = IntegerField()
+
+ class Meta:
+ table_name = 'pd'
+
+
class UUID(BaseModel):
user_id = IntegerField()
uuid = CharField()
@@ -554,6 +564,7 @@ class CheckerSetting(BaseModel):
service_alert = IntegerField(constraints=[SQL('DEFAULT 1')])
backend_alert = IntegerField(constraints=[SQL('DEFAULT 1')])
maxconn_alert = IntegerField(constraints=[SQL('DEFAULT 1')])
+ pd_id = IntegerField(constraints=[SQL('DEFAULT 0')])
class Meta:
table_name = 'checker_setting'
@@ -597,4 +608,4 @@ def create_tables():
PortScannerSettings, PortScannerPorts, PortScannerHistory, ProvidersCreds, ServiceSetting,
ProvisionedServers, MetricsHttpStatus, SMON, WafRules, Alerts, GeoipCodes, NginxMetrics,
SystemInfo, Services, UserName, GitSetting, CheckerSetting, ApacheMetrics, ProvisionParam,
- WafNginx, ServiceStatus, KeepaliveRestart])
+ WafNginx, ServiceStatus, KeepaliveRestart, PD])
diff --git a/app/modules/db/sql.py b/app/modules/db/sql.py
index b00b184c..fb29baa0 100755
--- a/app/modules/db/sql.py
+++ b/app/modules/db/sql.py
@@ -836,6 +836,36 @@ def get_slack_by_id(slack_id):
return query_res
+def get_user_pd_by_group(group):
+ query = PD.select().where(PD.groups == group)
+ try:
+ query_res = query.execute()
+ except Exception as e:
+ out_error(e)
+ else:
+ return query_res
+
+
+def get_pd_by_ip(ip):
+ query = PD.select().join(Server, on=(Server.groups == PD.groups)).where(Server.ip == ip)
+ try:
+ query_res = query.execute()
+ except Exception as e:
+ out_error(e)
+ else:
+ return query_res
+
+
+def get_pd_by_id(pd_id):
+ query = PD.select().where(PD.id == pd_id)
+ try:
+ query_res = query.execute()
+ except Exception as e:
+ out_error(e)
+ else:
+ return query_res
+
+
def get_dick_permit(**kwargs):
if kwargs.get('username'):
grp = kwargs.get('group_id')
@@ -1146,6 +1176,53 @@ def update_slack(token, chanel, group, slack_id):
return True
+def delete_pd(pd_id):
+ query = PD.delete().where(PD.id == pd_id)
+ try:
+ query.execute()
+ except Exception as e:
+ out_error(e)
+ return False
+ else:
+ return True
+
+
+def select_pd(**kwargs):
+ if kwargs.get('token'):
+ query = PD.select().where(PD.token == kwargs.get('token'))
+ elif kwargs.get('id'):
+ query = PD.select().where(PD.id == kwargs.get('id'))
+ else:
+ query = PD.select()
+ try:
+ query_res = query.execute()
+ except Exception as e:
+ out_error(e)
+ else:
+ return query_res
+
+
+def insert_new_pd(token, chanel, group):
+ try:
+ PD.insert(token=token, chanel_name=chanel, groups=group).execute()
+ except Exception as e:
+ out_error(e)
+ return False
+ else:
+ return True
+
+
+def update_pd(token, chanel, group, pd_id):
+ query_update = PD.update(token=token, chanel_name=chanel, groups=group).where(PD.id == pd_id)
+ try:
+ query_update.execute()
+ except Exception as e:
+ out_error(e)
+ return False
+ else:
+ return True
+
+
def insert_new_option(saved_option, group):
try:
Option.insert(options=saved_option, groups=group).execute()
@@ -3761,11 +3838,11 @@ def insert_new_checker_setting_for_server(server_ip: str) -> None:
def update_haproxy_checker_settings(
- email: int, telegram_id: int, slack_id: int, service_alert: int, backend_alert: int,
+ email: int, telegram_id: int, slack_id: int, pd_id: int, service_alert: int, backend_alert: int,
maxconn_alert: int, setting_id: int
) -> bool:
settings_update = CheckerSetting.update(
- email=email, telegram_id=telegram_id, slack_id=slack_id, service_alert=service_alert,
+ email=email, telegram_id=telegram_id, slack_id=slack_id, pd_id=pd_id, service_alert=service_alert,
backend_alert=backend_alert, maxconn_alert=maxconn_alert
).where(CheckerSetting.id == setting_id)
try:
@@ -3777,11 +3854,11 @@ def update_haproxy_checker_settings(
def update_keepalived_checker_settings(
- email: int, telegram_id: int, slack_id: int, service_alert: int, backend_alert: int,
+ email: int, telegram_id: int, slack_id: int, pd_id: int, service_alert: int, backend_alert: int,
setting_id: int
) -> bool:
settings_update = CheckerSetting.update(
- email=email, telegram_id=telegram_id, slack_id=slack_id,
+ email=email, telegram_id=telegram_id, slack_id=slack_id, pd_id=pd_id,
service_alert=service_alert, backend_alert=backend_alert
).where(CheckerSetting.id == setting_id)
try:
@@ -3793,10 +3870,10 @@ def update_keepalived_checker_settings(
def update_service_checker_settings(
- email: int, telegram_id: int, slack_id: int, service_alert: int, setting_id: int
+ email: int, telegram_id: int, slack_id: int, pd_id: int, service_alert: int, setting_id: int
) -> bool:
settings_update = CheckerSetting.update(
- email=email, telegram_id=telegram_id, slack_id=slack_id, service_alert=service_alert
+ email=email, telegram_id=telegram_id, slack_id=slack_id, pd_id=pd_id, service_alert=service_alert
).where(CheckerSetting.id == setting_id)
try:
settings_update.execute()
diff --git a/app/options.py b/app/options.py
index ee615d93..0f73e59b 100644
--- a/app/options.py
+++ b/app/options.py
@@ -858,61 +858,36 @@ if form.getvalue('ssh_cert'):
ssh_mod.upload_ssh_key(name, user_group, key)
-if form.getvalue('newtelegram'):
+if form.getvalue('new_receiver'):
import modules.alerting.alerting as alerting
- token = common.checkAjaxInput(form.getvalue('newtelegram'))
+ token = common.checkAjaxInput(form.getvalue('new_receiver'))
+ receiver_name = common.checkAjaxInput(form.getvalue('receiver_name'))
channel = common.checkAjaxInput(form.getvalue('chanel'))
- group = common.checkAjaxInput(form.getvalue('telegramgroup'))
+ group = common.checkAjaxInput(form.getvalue('group_receiver'))
page = common.checkAjaxInput(form.getvalue('page'))
page = page.split("#")[0]
- alerting.add_telegram_channel(token, channel, group, page)
+ alerting.add_receiver_channel(receiver_name, token, channel, group, page)
-if form.getvalue('newslack'):
+if form.getvalue('receiver_del') is not None:
import modules.alerting.alerting as alerting
- token = common.checkAjaxInput(form.getvalue('newslack'))
- channel = common.checkAjaxInput(form.getvalue('chanel'))
- group = common.checkAjaxInput(form.getvalue('slackgroup'))
- page = common.checkAjaxInput(form.getvalue('page'))
- page = page.split("#")[0]
+ channel_id = common.checkAjaxInput(form.getvalue('receiver_del'))
+ receiver_name = common.checkAjaxInput(form.getvalue('receiver_name'))
- alerting.add_slack_channel(token, channel, group, page)
+ alerting.delete_receiver_channel(channel_id, receiver_name)
-if form.getvalue('telegramdel') is not None:
+if form.getvalue('update_receiver_token') is not None:
import modules.alerting.alerting as alerting
- channel_id = common.checkAjaxInput(form.getvalue('telegramdel'))
-
- alerting.delete_telegram_channel(channel_id)
-
-if form.getvalue('slackdel') is not None:
- import modules.alerting.alerting as alerting
-
- channel_id = common.checkAjaxInput(form.getvalue('slackdel'))
-
- alerting.delete_slack_channel(channel_id)
-
-if form.getvalue('updatetoken') is not None:
- import modules.alerting.alerting as alerting
-
- token = common.checkAjaxInput(form.getvalue('updatetoken'))
- channel = common.checkAjaxInput(form.getvalue('updategchanel'))
- group = common.checkAjaxInput(form.getvalue('updatetelegramgroup'))
+ receiver_name = common.checkAjaxInput(form.getvalue('receiver_name'))
+ token = common.checkAjaxInput(form.getvalue('update_receiver_token'))
+ channel = common.checkAjaxInput(form.getvalue('update_receiver_channel'))
+ group = common.checkAjaxInput(form.getvalue('update_receiver_group'))
user_id = common.checkAjaxInput(form.getvalue('id'))
- alerting.update_telegram(token, channel, group, user_id)
-
-if form.getvalue('update_slack_token') is not None:
- import modules.alerting.alerting as alerting
-
- token = common.checkAjaxInput(form.getvalue('update_slack_token'))
- channel = common.checkAjaxInput(form.getvalue('updategchanel'))
- group = common.checkAjaxInput(form.getvalue('updateslackgroup'))
- user_id = common.checkAjaxInput(form.getvalue('id'))
-
- alerting.update_slack()
+ alerting.update_receiver_channel(receiver_name, token, channel, group, user_id)
if form.getvalue('updatesettings') is not None:
settings = common.checkAjaxInput(form.getvalue('updatesettings'))
@@ -2003,6 +1978,7 @@ if form.getvalue('loadchecker'):
user_group = roxywi_common.get_user_group(id=1)
telegrams = sql.get_user_telegram_by_group(user_group)
slacks = sql.get_user_slack_by_group(user_group)
+ pds = sql.get_user_pd_by_group(user_group)
haproxy_servers = roxywi_common.get_dick_permit(haproxy=1, only_group=1)
nginx_servers = roxywi_common.get_dick_permit(nginx=1, only_group=1)
apache_servers = roxywi_common.get_dick_permit(apache=1, only_group=1)
@@ -2010,6 +1986,7 @@ if form.getvalue('loadchecker'):
else:
telegrams = sql.select_telegram()
slacks = sql.select_slack()
+ pds = sql.select_pd()
haproxy_servers = roxywi_common.get_dick_permit(haproxy=1)
nginx_servers = roxywi_common.get_dick_permit(nginx=1)
apache_servers = roxywi_common.get_dick_permit(apache=1)
@@ -2017,23 +1994,13 @@ if form.getvalue('loadchecker'):
else:
telegrams = ''
slacks = ''
+ pds = ''
- template = template.render(services=services,
- telegrams=telegrams,
- groups=groups,
- slacks=slacks,
- user_status=user_subscription['user_status'],
- user_plan=user_subscription['user_plan'],
- haproxy_servers=haproxy_servers,
- nginx_servers=nginx_servers,
- apache_servers=apache_servers,
- keepalived_servers=keepalived_servers,
- haproxy_settings=haproxy_settings,
- nginx_settings=nginx_settings,
- keepalived_settings=keepalived_settings,
- apache_settings=apache_settings,
- page=page,
- lang=lang)
+ template = template.render(services=services, telegrams=telegrams, pds=pds, groups=groups, slacks=slacks,
+ user_status=user_subscription['user_status'], user_plan=user_subscription['user_plan'],
+ haproxy_servers=haproxy_servers, nginx_servers=nginx_servers, apache_servers=apache_servers,
+ keepalived_servers=keepalived_servers, haproxy_settings=haproxy_settings, nginx_settings=nginx_settings,
+ keepalived_settings=keepalived_settings, apache_settings=apache_settings, page=page, lang=lang)
print(template)
if form.getvalue('load_update_hapwi'):
@@ -2094,19 +2061,12 @@ if form.getvalue('loadopenvpn'):
openvpn_configs=openvpn_configs)
print(template)
-if form.getvalue('check_telegram'):
+if form.getvalue('check_receiver'):
import modules.alerting.alerting as alerting
- telegram_id = form.getvalue('check_telegram')
- mess = 'Test message from Roxy-WI'
- alerting.telegram_send_mess(mess, telegram_channel_id=telegram_id)
-
-if form.getvalue('check_slack'):
- import modules.alerting.alerting as alerting
-
- slack_id = form.getvalue('check_slack')
- mess = 'Test message from Roxy-WI'
- alerting.slack_send_mess(mess, slack_channel_id=slack_id)
+ channel_id = form.getvalue('receiver_channel_id')
+ receiver_name = form.getvalue('receiver_name')
+ alerting.check_receiver(channel_id, receiver_name)
if form.getvalue('check_rabbitmq_alert'):
import modules.alerting.alerting as alerting
@@ -2347,9 +2307,9 @@ if form.getvalue('updateHaproxyCheckerSettings'):
maxconn_alert = form.getvalue('maxconn')
telegram_id = form.getvalue('telegram_id')
slack_id = form.getvalue('slack_id')
+ pd_id = form.getvalue('pd_id')
- if sql.update_haproxy_checker_settings(email, telegram_id, slack_id, service_alert, backend_alert,
- maxconn_alert, setting_id):
+ if sql.update_haproxy_checker_settings(email, telegram_id, slack_id, pd_id, service_alert, backend_alert, maxconn_alert, setting_id):
print('ok')
else:
print('error: Cannot update Checker settings')
@@ -2361,8 +2321,9 @@ if form.getvalue('updateKeepalivedCheckerSettings'):
backend_alert = form.getvalue('backend')
telegram_id = form.getvalue('telegram_id')
slack_id = form.getvalue('slack_id')
+ pd_id = form.getvalue('pd_id')
- if sql.update_keepalived_checker_settings(email, telegram_id, slack_id, service_alert, backend_alert, setting_id):
+ if sql.update_keepalived_checker_settings(email, telegram_id, slack_id, pd_id, service_alert, backend_alert, setting_id):
print('ok')
else:
print('error: Cannot update Checker settings')
@@ -2373,8 +2334,9 @@ if form.getvalue('updateServiceCheckerSettings'):
service_alert = form.getvalue('server')
telegram_id = form.getvalue('telegram_id')
slack_id = form.getvalue('slack_id')
+ pd_id = form.getvalue('pd_id')
- if sql.update_service_checker_settings(email, telegram_id, slack_id, service_alert, setting_id):
+ if sql.update_service_checker_settings(email, telegram_id, slack_id, pd_id, service_alert, setting_id):
print('ok')
else:
print('error: Cannot update Checker settings')
diff --git a/app/templates/ajax/load_telegram.html b/app/templates/ajax/load_telegram.html
index bc98588a..fa73f1bc 100644
--- a/app/templates/ajax/load_telegram.html
+++ b/app/templates/ajax/load_telegram.html
@@ -27,11 +27,11 @@
{{lang.words.settings|title()}}
-
+
Telegram {{lang.words.channels}}
- {{lang.words.token|title()}}
+ {{lang.words.token|title()}}
{{lang.words.channel|title()}}
{% if page != "servers.py" %}
@@ -66,20 +66,20 @@
{% endif %}
- {{lang.words.test|title()}}
+ {{lang.words.test|title()}}
-
+
-
+
{% endfor %}
+ {{lang.words.add|title()}}
-
+
Slack {{lang.words.channels|title()}}
@@ -118,20 +118,72 @@
{% endif %}
- {{lang.words.test|title()}}
+ {{lang.words.test|title()}}
-
+
-
+
{% endfor %}
+ {{lang.words.add|title()}}
-
+
+ PagerDuty {{lang.words.channels|title()}}
+
+
+ {{lang.words.key|title()}}
+
+ {{lang.words.name|title()}}
+ {% if page != "servers.py" %}
+ {{lang.words.group|title()}}
+ {% endif %}
+
+
+
+
+ {% for pd in pds %}
+
+
+ {% set id = 'pd-token-' + pd.id|string() %}
+ {{ input(id, value=pd.token, size='30') }}
+
+
+ {% set id = 'pd-chanel-' + pd.id|string() %}
+ {{ input(id, value=pd.chanel_name, size='30') }}
+
+ {% if page != "servers.py" %}
+
+
+ ------
+ {% for group in groups %}
+ {% if pd.groups|string() == group.group_id|string() %}
+ {{ group.name }}
+ {% else %}
+ {{ group.name }}
+ {% endif %}
+ {% endfor %}
+
+
+ {% endif %}
+
+ {{lang.words.test|title()}}
+
+
+
+
+
+
+
+
+ {% endfor %}
+
+ + {{lang.words.add|title()}}
+
+
{{lang.words.test2|title()}} {{lang.words.message}}
{{lang.words.email|title()}}
@@ -150,17 +202,19 @@
-
+
HAProxy {{lang.words.servers}}
{{lang.words.server|title()}}
Telegram
Slack
+ PagerDuty
{{lang.words.email|title()}}
{{lang.words.service|title()}}
{{lang.words.backend|title()}}
@@ -196,6 +250,18 @@
{% endfor %}
+
+
+ {{lang.words.disabled|title()}}
+ {% for t in pds %}
+ {% if h.pd_id|int() == t.id|int() %}
+ {{t.chanel_name}}
+ {% else %}
+ {{t.chanel_name}}
+ {% endif %}
+ {% endfor %}
+
+
{% set id = 'haproxy_server_email-' + h.id|string() %}
{% if h.email == 1 %}
@@ -234,12 +300,13 @@
{% endfor %}
{% endfor %}
-
+
NGINX {{lang.words.servers}}
{{lang.words.server|title()}}
Telegram
Slack
+ PagerDuty
{{lang.words.email|title()}}
{{lang.words.service|title()}}
@@ -273,6 +340,18 @@
{% endfor %}
+
+
+ {{lang.words.disabled|title()}}
+ {% for t in pds %}
+ {% if h.pd_id|int() == t.id|int() %}
+ {{t.chanel_name}}
+ {% else %}
+ {{t.chanel_name}}
+ {% endif %}
+ {% endfor %}
+
+
{% set id = 'nginx_server_email-' + h.id|string() %}
{% if h.email == 1 %}
@@ -295,12 +374,13 @@
{% endfor %}
{% endfor %}
-
+
Apache {{lang.words.servers}}
{{lang.words.server|title()}}
Telegram
Slack
+ PagerDuty
{{lang.words.email|title()}}
{{lang.words.service|title()}}
@@ -334,6 +414,18 @@
{% endfor %}
+
+
+ {{lang.words.disabled|title()}}
+ {% for t in pds %}
+ {% if h.pd_id|int() == t.id|int() %}
+ {{t.chanel_name}}
+ {% else %}
+ {{t.chanel_name}}
+ {% endif %}
+ {% endfor %}
+
+
{% set id = 'apache_server_email-' + h.id|string() %}
{% if h.email == 1 %}
@@ -356,12 +448,13 @@
{% endfor %}
{% endfor %}
-
+
Keepalived {{lang.words.servers}}
{{lang.words.server|title()}}
Telegram
Slack
+ PagerDuty
{{lang.words.email|title()}}
{{lang.words.service|title()}}
{{lang.words.status|title()}}
@@ -396,6 +489,18 @@
{% endfor %}
+
+
+ {{lang.words.disabled|title()}}
+ {% for t in pds %}
+ {% if h.pd_id|int() == t.id|int() %}
+ {{t.chanel_name}}
+ {% else %}
+ {{t.chanel_name}}
+ {% endif %}
+ {% endfor %}
+
+
{% set id = 'keepalived_server_email-' + h.id|string() %}
{% if h.email == 1 %}
diff --git a/app/templates/ajax/new_receiver.html b/app/templates/ajax/new_receiver.html
new file mode 100644
index 00000000..f4f6e3e9
--- /dev/null
+++ b/app/templates/ajax/new_receiver.html
@@ -0,0 +1,34 @@
+{% import 'languages/'+lang|default('en')+'.html' as lang %}
+{% for c in channels %}
+
+
+
+
+
+
+
+
+ {% if page != "servers.py" %}
+
+
+ {% for group in groups %}
+ {% if c.groups == group.group_id %}
+ {{ group.name }}
+ {% else %}
+ {{ group.name }}
+ {% endif %}
+ {% endfor %}
+
+
+ {% endif %}
+
+ {{lang.words.test|title()}}
+
+
+
+
+
+
+
+
+{% endfor %}
diff --git a/app/templates/ajax/new_slack.html b/app/templates/ajax/new_slack.html
deleted file mode 100644
index 208400a3..00000000
--- a/app/templates/ajax/new_slack.html
+++ /dev/null
@@ -1,34 +0,0 @@
-{% import 'languages/'+lang|default('en')+'.html' as lang %}
-{% for slack in slacks %}
-
-
-
-
-
-
-
-
- {% if page != "servers.py" %}
-
-
- {% for group in groups %}
- {% if slack.groups == group.group_id %}
- {{ group.name }}
- {% else %}
- {{ group.name }}
- {% endif %}
- {% endfor %}
-
-
- {% endif %}
-
- {{lang.words.test|title()}}
-
-
-
-
-
-
-
-
-{% endfor %}
diff --git a/app/templates/ajax/new_telegram.html b/app/templates/ajax/new_telegram.html
deleted file mode 100644
index 0b52900f..00000000
--- a/app/templates/ajax/new_telegram.html
+++ /dev/null
@@ -1,34 +0,0 @@
-{% import 'languages/'+lang|default('en')+'.html' as lang %}
-{% for telegram in telegrams %}
-
-
-
-
-
-
-
-
- {% if page != "servers.py" %}
-
-
- {% for group in groups %}
- {% if telegram.groups == group.group_id %}
- {{ group.name }}
- {% else %}
- {{ group.name }}
- {% endif %}
- {% endfor %}
-
-
- {% endif %}
-
- {{lang.words.test|title()}}
-
-
-
-
-
-
-
-
-{% endfor %}
\ No newline at end of file
diff --git a/app/templates/include/admins_dialogs.html b/app/templates/include/admins_dialogs.html
index a8862aab..f629b803 100644
--- a/app/templates/include/admins_dialogs.html
+++ b/app/templates/include/admins_dialogs.html
@@ -225,6 +225,42 @@
{% endif %}
+
+
+ {% include 'include/tr_validate_tips.html' %}
+
+
+ {{lang.words.token|title()}}
+ *
+
+
+ {{ input('pd-token-add', size='30') }}
+
+
+
+
+ {{lang.words.channel|title()}}
+ *
+
+
+ {{ input('pd-chanel-add') }}
+
+
+ {% if page != "servers.py" %}
+
+ {{lang.words.group|title()}}
+
+
+ {{lang.words.select|title()}} {{lang.words.w_a}} {{lang.words.group2}}
+ {% for group in groups %}
+ {{ group.name }}
+ {% endfor %}
+
+
+
+ {% endif %}
+
+
{% include 'include/tr_validate_tips.html' %}
diff --git a/inc/users.js b/inc/users.js
index 1f873cc6..7acea1d3 100644
--- a/inc/users.js
+++ b/inc/users.js
@@ -528,6 +528,9 @@ $( function() {
$('#add-slack-button').click(function() {
addSlackDialog.dialog('open');
});
+ $('#add-pd-button').click(function() {
+ addPDDialog.dialog('open');
+ });
var telegram_tabel_title = $( "#telegram-add-table-overview" ).attr('title');
var addTelegramDialog = $( "#telegram-add-table" ).dialog({
autoOpen: false,
@@ -547,7 +550,7 @@ $( function() {
buttons: [{
text: add_word,
click: function () {
- addTelegram(this);
+ addRecevier(this, 'telegram');
}
}, {
text: cancel_word,
@@ -576,7 +579,36 @@ $( function() {
buttons: [{
text: add_word,
click: function () {
- addSlack(this);
+ addRecevier(this, 'slack');
+ }
+ }, {
+ text: cancel_word,
+ click: function () {
+ $(this).dialog("close");
+ clearTips();
+ }
+ }]
+ });
+ var pd_tabel_title = $( "#pd-add-table-overview" ).attr('title');
+ var addPDDialog = $( "#pd-add-table" ).dialog({
+ autoOpen: false,
+ resizable: false,
+ height: "auto",
+ width: 600,
+ modal: true,
+ title: pd_tabel_title,
+ show: {
+ effect: "fade",
+ duration: 200
+ },
+ hide: {
+ effect: "fade",
+ duration: 200
+ },
+ buttons: [{
+ text: add_word,
+ click: function () {
+ addRecevier(this, 'pd');
}
}, {
text: cancel_word,
@@ -740,21 +772,29 @@ $( function() {
} else {
$('#ssh_pass').css('display', 'block');
}
- $( "#checker_table input" ).change(function() {
+ $( "#checker_telegram_table input" ).change(function() {
var id = $(this).attr('id').split('-');
- updateTelegram(id[2])
+ updateReceiver(id[2], 'telegram')
});
- $( "#checker_table select" ).on('selectmenuchange',function() {
+ $( "#checker_telegram_table select" ).on('selectmenuchange',function() {
var id = $(this).attr('id').split('-');
- updateTelegram(id[1])
+ updateReceiver(id[1], 'telegram')
});
$( "#checker_slack_table input" ).change(function() {
var id = $(this).attr('id').split('-');
- updateSlack(id[2])
+ updateReceiver(id[2], 'slack')
});
$( "#checker_slack_table select" ).on('selectmenuchange',function() {
var id = $(this).attr('id').split('-');
- updateSlack(id[1])
+ updateReceiver(id[1], 'slack')
+ });
+ $( "#checker_pd_table input" ).change(function() {
+ var id = $(this).attr('id').split('-');
+ updateReceiver(id[2], 'pd')
+ });
+ $( "#checker_pd_table select" ).on('selectmenuchange',function() {
+ var id = $(this).attr('id').split('-');
+ updateReceiver(id[1], 'pd')
});
$( "#ajax-backup-table input" ).change(function() {
var id = $(this).attr('id').split('-');
@@ -1204,21 +1244,22 @@ function getGroupNameById(group_id) {
});
return group_name;
}
-function addTelegram(dialog_id) {
+function addRecevier(dialog_id, receiver_name) {
var valid = true;
toastr.clear();
- allFields = $( [] ).add( $('#telegram-token-add') ).add( $('#telegram-chanel-add') )
+ allFields = $( [] ).add( $('#'+receiver_name+'-token-add') ).add( $('#'+receiver_name+'-chanel-add') );
allFields.removeClass( "ui-state-error" );
- valid = valid && checkLength( $('#telegram-token-add'), "token", 1 );
- valid = valid && checkLength( $('#telegram-chanel-add'), "channel name", 1 );
+ valid = valid && checkLength( $('#'+receiver_name+'-token-add'), "token", 1 );
+ valid = valid && checkLength( $('#'+receiver_name+'-chanel-add'), "channel name", 1 );
if(valid) {
toastr.clear();
$.ajax( {
url: "options.py",
data: {
- newtelegram: $('#telegram-token-add').val(),
- chanel: $('#telegram-chanel-add').val(),
- telegramgroup: $('#new-telegram-group-add').val(),
+ new_receiver: $('#'+receiver_name+'-token-add').val(),
+ receiver_name: receiver_name,
+ chanel: $('#'+receiver_name+'-chanel-add').val(),
+ group_receiver: $('#new-'+receiver_name+'-group-add').val(),
page: cur_url[0].split('#')[0],
token: $('#token').val()
},
@@ -1227,47 +1268,11 @@ function addTelegram(dialog_id) {
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
- var getId = new RegExp('telegram-table-[0-9]+');
+ var getId = new RegExp(receiver_name+'-table-[0-9]+');
var id = data.match(getId) + '';
id = id.split('-').pop();
- $('select:regex(id, telegram_channel)').append('' + $('#telegram-chanel-add').val() + ' ').selectmenu("refresh");
- common_ajax_action_after_success(dialog_id, 'newgroup', 'checker_table', data);
- $( "input[type=submit], button" ).button();
- $( "input[type=checkbox]" ).checkboxradio();
- $( "select" ).selectmenu();
- }
- }
- } );
- }
-}
-function addSlack(dialog_id) {
- var valid = true;
- toastr.clear();
- allFields = $( [] ).add( $('#slack-token-add') ).add( $('#slack-chanel-add') );
- allFields.removeClass( "ui-state-error" );
- valid = valid && checkLength( $('#slack-token-add'), "token", 1 );
- valid = valid && checkLength( $('#slack-chanel-add'), "channel name", 1 );
- if(valid) {
- toastr.clear();
- $.ajax( {
- url: "options.py",
- data: {
- newslack: $('#slack-token-add').val(),
- chanel: $('#slack-chanel-add').val(),
- slackgroup: $('#new-slack-group-add').val(),
- page: cur_url[0].split('#')[0],
- token: $('#token').val()
- },
- type: "POST",
- success: function( data ) {
- if (data.indexOf('error:') != '-1') {
- toastr.error(data);
- } else {
- var getId = new RegExp('slack-table-[0-9]+');
- var id = data.match(getId) + '';
- id = id.split('-').pop();
- $('select:regex(id, slack_channel)').append('' + $('#slack-chanel-add').val() + ' ').selectmenu("refresh");
- common_ajax_action_after_success(dialog_id, 'newgroup', 'checker_slack_table', data);
+ $('select:regex(id, '+receiver_name+'_channel)').append('' + $('#'+receiver_name+'-chanel-add').val() + ' ').selectmenu("refresh");
+ common_ajax_action_after_success(dialog_id, 'newgroup', 'checker_'+receiver_name+'_table', data);
$( "input[type=submit], button" ).button();
$( "input[type=checkbox]" ).checkboxradio();
$( "select" ).selectmenu();
@@ -1498,51 +1503,28 @@ function confirmDeleteSsh(id) {
}]
});
}
-function confirmDeleteTelegram(id) {
+function confirmDeleteReceiver(id, reciever_name) {
var delete_word = $('#translate').attr('data-delete');
var cancel_word = $('#translate').attr('data-cancel');
$( "#dialog-confirm" ).dialog({
- resizable: false,
- height: "auto",
- width: 400,
- modal: true,
- title: delete_word + " " +$('#telegram-chanel-'+id).val() + "?",
- buttons: [{
- text: delete_word,
- click: function() {
- $(this).dialog("close");
- removeTelegram(id);
- }
- }, {
- text: cancel_word,
- click: function () {
- $(this).dialog("close");
- }
- }]
- });
-}
-function confirmDeleteSlack(id) {
- var delete_word = $('#translate').attr('data-delete');
- var cancel_word = $('#translate').attr('data-cancel');
- $( "#dialog-confirm" ).dialog({
- resizable: false,
- height: "auto",
- width: 400,
- modal: true,
- title: delete_word + " " +$('#slack-chanel-'+id).val() + "?",
- buttons: [{
- text: delete_word,
- click: function () {
- $(this).dialog("close");
- removeSlack(id);
- }
- }, {
- text: cancel_word,
- click: function () {
- $(this).dialog("close");
- }
- }]
- });
+ resizable: false,
+ height: "auto",
+ width: 400,
+ modal: true,
+ title: delete_word + " " + $('#' + reciever_name + '-chanel-' + id).val() + "?",
+ buttons: [{
+ text: delete_word,
+ click: function () {
+ $(this).dialog("close");
+ removeReciver(reciever_name, id);
+ }
+ }, {
+ text: cancel_word,
+ click: function () {
+ $(this).dialog("close");
+ }
+ }]
+ });
}
function confirmDeleteBackup(id) {
var delete_word = $('#translate').attr('data-delete');
@@ -1646,15 +1628,10 @@ function cloneUser(id) {
$('#new-group').selectmenu("refresh");
}
}
-function cloneTelegram(id) {
- $( "#add-telegram-button" ).trigger( "click" );
- $('#telegram-token-add').val($('#telegram-token-'+id).val())
- $('#telegram-chanel-add').val($('#telegram-chanel-'+id).val())
-}
-function cloneSlack(id) {
- $( "#slack" ).trigger( "click" );
- $('#slack').val($('#slack-token-'+id).val())
- $('#slack').val($('#slack-chanel-'+id).val())
+function cloneReceiver(id, reciever_name) {
+ $('#add-'+reciever_name+'-button').trigger( "click" );
+ $('#'+reciever_name+'-token-add').val($('#'+reciever_name+'-token-'+id).val());
+ $('#'+reciever_name+'-chanel-add').val($('#'+reciever_name+'-chanel-'+id).val());
}
function cloneBackup(id) {
$( "#add-backup-button" ).trigger( "click" );
@@ -1750,38 +1727,20 @@ function removeSsh(id) {
}
} );
}
-function removeTelegram(id) {
- $("#telegram-table-"+id).css("background-color", "#f2dede");
+function removeReciver(receiver_name, receiver_id) {
+ $("#"+receiver_name+"-table-"+receiver_id).css("background-color", "#f2dede");
$.ajax( {
url: "options.py",
data: {
- telegramdel: id,
+ receiver_del: receiver_id,
+ receiver_name: receiver_name,
token: $('#token').val()
},
type: "POST",
success: function( data ) {
data = data.replace(/\s+/g,' ');
if(data == "Ok ") {
- $("#telegram-table-"+id).remove();
- } else if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') {
- toastr.error(data);
- }
- }
- } );
-}
-function removeSlack(id) {
- $("#slack-table-"+id).css("background-color", "#f2dede");
- $.ajax( {
- url: "options.py",
- data: {
- slackdel: id,
- token: $('#token').val()
- },
- type: "POST",
- success: function( data ) {
- data = data.replace(/\s+/g,' ');
- if(data == "Ok ") {
- $("#slack-table-"+id).remove();
+ $("#"+receiver_name+"-table-"+receiver_id).remove();
} else if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') {
toastr.error(data);
}
@@ -2025,14 +1984,15 @@ function updateSSH(id) {
}
} );
}
-function updateTelegram(id) {
+function updateReceiver(id, receiver_name) {
toastr.clear();
$.ajax( {
url: "options.py",
data: {
- updatetoken: $('#telegram-token-'+id).val(),
- updategchanel: $('#telegram-chanel-'+id).val(),
- updatetelegramgroup: $('#telegramgroup-'+id).val(),
+ receiver_name: receiver_name,
+ update_receiver_token: $('#'+receiver_name+'-token-'+id).val(),
+ update_receiver_channel: $('#'+receiver_name+'-chanel-'+id).val(),
+ update_receiver_group: $('#'+receiver_name+'group-'+id).val(),
id: id,
token: $('#token').val()
},
@@ -2043,35 +2003,9 @@ function updateTelegram(id) {
toastr.error(data);
} else {
toastr.clear();
- $("#telegram-table-"+id).addClass( "update", 1000 );
+ $("#"+receiver_name+"-table-"+id).addClass( "update", 1000 );
setTimeout(function() {
- $( "#telegram-table-"+id ).removeClass( "update" );
- }, 2500 );
- }
- }
- } );
-}
-function updateSlack(id) {
- toastr.clear();
- $.ajax( {
- url: "options.py",
- data: {
- update_slack_token: $('#slack-token-'+id).val(),
- updategchanel: $('#slack-chanel-'+id).val(),
- updateslackgroup: $('#slackgroup-'+id).val(),
- id: id,
- token: $('#token').val()
- },
- type: "POST",
- success: function( data ) {
- data = data.replace(/\s+/g,' ');
- if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') {
- toastr.error(data);
- } else {
- toastr.clear();
- $("#slack-table-"+id).addClass( "update", 1000 );
- setTimeout(function() {
- $( "#slack-table-"+id ).removeClass( "update" );
+ $( "#"+receiver_name+"-table-"+id ).removeClass( "update" );
}, 2500 );
}
}
@@ -2679,29 +2613,13 @@ function loadopenvpn() {
}
} );
}
-function checkTelegram(telegram_id) {
+function checkReceiver(channel_id, receiver_name) {
$.ajax({
url: "options.py",
data: {
- check_telegram: telegram_id,
- token: $('#token').val()
- },
- type: "POST",
- success: function (data) {
- data = data.replace(/\s+/g, ' ');
- if (data.indexOf('error:') != '-1' || data.indexOf('error_code') != '-1') {
- toastr.error(data);
- } else {
- toastr.success('Test message has been sent');
- }
- }
- } );
-}
-function checkSlack(slack_id) {
- $.ajax({
- url: "options.py",
- data: {
- check_slack: slack_id,
+ check_receiver: 1,
+ receiver_channel_id: channel_id,
+ receiver_name: receiver_name,
token: $('#token').val()
},
type: "POST",
@@ -2802,6 +2720,7 @@ function updateHaproxyCheckerSettings(id) {
maxconn: maxconn,
telegram_id: $('#haproxy_server_telegram_channel-'+id+' option:selected' ).val(),
slack_id: $('#haproxy_server_slack_channel-'+id+' option:selected').val(),
+ pd_id: $('#haproxy_server_pd_channel-'+id+' option:selected').val(),
token: $('#token').val()
},
type: "POST",
@@ -2833,7 +2752,6 @@ function updateKeepalivedCheckerSettings(id) {
if ($('#keepalived_server_backend-'+id).is(':checked')) {
backend = '1';
}
-
$.ajax( {
url: "options.py",
data: {
@@ -2843,6 +2761,7 @@ function updateKeepalivedCheckerSettings(id) {
backend: backend,
telegram_id: $('#keepalived_server_telegram_channel-'+id+' option:selected' ).val(),
slack_id: $('#keepalived_server_slack_channel-'+id+' option:selected').val(),
+ pd_id: $('#keepalived_server_pd_channel-'+id+' option:selected').val(),
token: $('#token').val()
},
type: "POST",
@@ -2878,6 +2797,7 @@ function updateServiceCheckerSettings(id, service_name) {
server: server,
telegram_id: $('#'+service_name+'_server_telegram_channel-'+id+' option:selected' ).val(),
slack_id: $('#'+service_name+'_server_slack_channel-'+id+' option:selected').val(),
+ pd_id: $('#'+service_name+'_server_pd_channel-'+id+' option:selected').val(),
token: $('#token').val()
},
type: "POST",