mirror of https://github.com/Aidaho12/haproxy-wi
parent
f02408155e
commit
afea8cbd1d
|
@ -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()
|
||||
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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])
|
||||
|
|
|
@ -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()
|
||||
|
|
104
app/options.py
104
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')
|
||||
|
|
|
@ -27,11 +27,11 @@
|
|||
<li><a href="#checker_settings" title="Checker {{lang.words.settings}} - Roxy-WI">{{lang.words.settings|title()}}</a></li>
|
||||
</ul>
|
||||
<div id="channels">
|
||||
<table id="checker_table" class="overview">
|
||||
<table id="checker_telegram_table" class="overview-overflow">
|
||||
<caption><i class="fab fa-telegram caption-icon"></i><h3>Telegram {{lang.words.channels}}</h3></caption>
|
||||
<tr class="overviewHead" style="width: 50%;">
|
||||
<td class="padding10 first-collumn" style="width: 25%;">
|
||||
<span title="Token that has given @father_bot">{{lang.words.token|title()}}</span>
|
||||
{{lang.words.token|title()}}
|
||||
</td>
|
||||
<td style="width: 20%;">{{lang.words.channel|title()}}</td>
|
||||
{% if page != "servers.py" %}
|
||||
|
@ -66,20 +66,20 @@
|
|||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
<button title="{{lang.phrases.send_test_mes}}" onclick="checkTelegram({{telegram.id}})">{{lang.words.test|title()}}</button>
|
||||
<button title="{{lang.phrases.send_test_mes}}" onclick="checkReceiver({{telegram.id}}, 'telegram')">{{lang.words.test|title()}}</button>
|
||||
</td>
|
||||
<td>
|
||||
<a class="add" onclick="cloneTelegram({{telegram.id}})" id="clone-{{telegram.id}}" title="{{lang.words.w_copy|title()}} {{lang.words.the}} {{lang.words.settings}} {{telegram.chanel_name}}" style="cursor: pointer;"></a>
|
||||
<a class="add" onclick="cloneReceiver({{telegram.id}}, 'telegram')" id="clone-{{telegram.id}}" title="{{lang.words.w_copy|title()}} {{lang.words.the}} {{lang.words.settings}} {{telegram.chanel_name}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteTelegram({{telegram.id}})" title="{{lang.words.delete|title()}} {{lang.words.channel}} {{telegram.chanel_name}}" style="cursor: pointer;"></a>
|
||||
<a class="delete" onclick="confirmDeleteReceiver({{telegram.id}}, 'telegram')" title="{{lang.words.delete|title()}} {{lang.words.channel}} {{telegram.chanel_name}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br /><span class="add-button" title="{{lang.words.add|title()}} Telegram {{lang.words.channel}}" id="add-telegram-button">+ {{lang.words.add|title()}}</span>
|
||||
<br /><br />
|
||||
<table id="checker_slack_table" class="overview">
|
||||
<table id="checker_slack_table" class="overview-overflow">
|
||||
<caption><i class="fab fa-slack caption-icon"></i><h3>Slack {{lang.words.channels|title()}}</h3></caption>
|
||||
<tr class="overviewHead" style="width: 50%;">
|
||||
<td class="padding10 first-collumn" style="width: 25%;">
|
||||
|
@ -118,20 +118,72 @@
|
|||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
<button title="{{lang.phrases.send_test_mes}}" onclick="checkSlack({{slack.id}})">{{lang.words.test|title()}}</button>
|
||||
<button title="{{lang.phrases.send_test_mes}}" onclick="checkReceiver({{slack.id}}, 'slack')">{{lang.words.test|title()}}</button>
|
||||
</td>
|
||||
<td>
|
||||
<a class="add" onclick="cloneSlack({{slack.id}})" id="clone-{{slack.id}}" title="{{lang.words.w_copy|title()}} {{lang.words.the}} {{lang.words.settings}} {{slack.chanel_name}}" style="cursor: pointer;"></a>
|
||||
<a class="add" onclick="cloneReceiver({{slack.id}}, 'slack')" id="clone-{{slack.id}}" title="{{lang.words.w_copy|title()}} {{lang.words.the}} {{lang.words.settings}} {{slack.chanel_name}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteSlack({{slack.id}})" title="{{lang.words.delete|title()}} {{lang.words.channel}} {{slack.chanel_name}}" style="cursor: pointer;"></a>
|
||||
<a class="delete" onclick="confirmDeleteReceiver({{slack.id}}, 'slack')" title="{{lang.words.delete|title()}} {{lang.words.channel}} {{slack.chanel_name}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br /><span class="add-button" title="{{lang.words.add|title()}} Slack {{lang.words.channel|title()}}" id="add-slack-button">+ {{lang.words.add|title()}}</span>
|
||||
<br /><br />
|
||||
<table class="overview">
|
||||
<table id="checker_pd_table" class="overview-overflow">
|
||||
<caption><i class="fas fa-pager caption-icon"></i><h3>PagerDuty {{lang.words.channels|title()}}</h3></caption>
|
||||
<tr class="overviewHead" style="width: 50%;">
|
||||
<td class="padding10 first-collumn" style="width: 25%;">
|
||||
{{lang.words.key|title()}}
|
||||
</td>
|
||||
<td style="width: 20%;">{{lang.words.name|title()}}</td>
|
||||
{% if page != "servers.py" %}
|
||||
<td style="width: 25%;">{{lang.words.group|title()}}</td>
|
||||
{% endif %}
|
||||
<td style="width: 100%;"></td>
|
||||
<td></td>
|
||||
<td><span onclick="loadchecker()" class="refresh" title="{{lang.words.refresh2|title()}} Slack {{lang.words.channels}}"></span></td>
|
||||
</tr>
|
||||
{% for pd in pds %}
|
||||
<tr id="pd-table-{{pd.id}}" class="{{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn">
|
||||
{% set id = 'pd-token-' + pd.id|string() %}
|
||||
{{ input(id, value=pd.token, size='30') }}
|
||||
</td>
|
||||
<td>
|
||||
{% set id = 'pd-chanel-' + pd.id|string() %}
|
||||
{{ input(id, value=pd.chanel_name, size='30') }}
|
||||
</td>
|
||||
{% if page != "servers.py" %}
|
||||
<td>
|
||||
<select id="pdgroup-{{pd.id}}" name="pdgroup-{{pd.id}}">
|
||||
<option disabled selected>------</option>
|
||||
{% for group in groups %}
|
||||
{% if pd.groups|string() == group.group_id|string() %}
|
||||
<option value="{{ group.group_id }}" selected>{{ group.name }}</option>
|
||||
{% else %}
|
||||
<option value="{{ group.group_id }}">{{ group.name }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
<button title="{{lang.phrases.send_test_mes}}" onclick="checkReceiver({{pd.id}}, 'pd')">{{lang.words.test|title()}}</button>
|
||||
</td>
|
||||
<td>
|
||||
<a class="add" onclick="cloneReceiver({{pd.id}}, 'pd')" id="clone-{{pd.id}}" title="{{lang.words.w_copy|title()}} {{lang.words.the}} {{lang.words.settings}} {{pd.chanel_name}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteReceiver({{pd.id}}, 'pd')" title="{{lang.words.delete|title()}} {{lang.words.channel}} {{pd.chanel_name}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br /><span class="add-button" title="{{lang.words.add|title()}} PagerDuty {{lang.words.channel|title()}}" id="add-pd-button">+ {{lang.words.add|title()}}</span>
|
||||
<br /><br />
|
||||
<table class="overflow">
|
||||
<caption><i class="fas fa-envelope-open-text caption-icon"></i><h3>{{lang.words.test2|title()}} {{lang.words.message}}</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn" style="width: 45%">{{lang.words.email|title()}}</td>
|
||||
|
@ -150,17 +202,19 @@
|
|||
<div id="ajax-telegram"></div>
|
||||
<div class="add-note alert addName alert-info" style="width: inherit; margin-right: 15px;">
|
||||
{{lang.phrases.read_about_parameters}} <a href="https://roxy-wi.org/description/checker" title="Servers description" target="_blank">{{lang.words.here}}</a>,
|
||||
{{lang.phrases.read_howto}} Telegram bot <a href="https://roxy-wi.org/howto/create-telegram-bot" title="How to create Telegram bot and use it with Roxy-WI" target="_blank">{{lang.words.article}}</a>,
|
||||
{{lang.phrases.read_howto}} {{lang.words.use}} Slack APP <a href="https://roxy-wi.org/howto/create-slack-app" title="How to create Slack APP and use it with Roxy-WI" target="_blank">{{lang.words.article}}</a>
|
||||
<a href="https://roxy-wi.org/howto/create-telegram-bot" title="How to create Telegram bot and use it with Roxy-WI" target="_blank">{{lang.phrases.howto_user}} Telegram bot</a>,
|
||||
<a href="https://roxy-wi.org/howto/create-slack-app" title="How to create Slack APP and use it with Roxy-WI" target="_blank">{{lang.phrases.howto_user}} Slack APP</a>,
|
||||
<a href="https://roxy-wi.org/howto/create-pd-integration" title="How to create PagerDuty integration and use it with Roxy-WI" target="_blank">{{lang.phrases.howto_user}} PagerDuty</a>.
|
||||
</div>
|
||||
</div>
|
||||
<div id="checker_settings">
|
||||
<table class="overview checker_settings_table" id="checker_haproxy_table">
|
||||
<table class="overview-overflow checker_settings_table" id="checker_haproxy_table">
|
||||
<caption><i class="fas fa-network-wired caption-icon"></i><h3>HAProxy {{lang.words.servers}}</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} Telegram">Telegram</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} Slack">Slack</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} PagerDuty">PagerDuty</td>
|
||||
<td class="checkbox-head" style="width: 10%;" title="{{lang.words.alert|title()}} {{lang.words.via}} {{lang.words.email}}">{{lang.words.email|title()}}</td>
|
||||
<td class="checkbox-head" style="width: 10%;" title="{{lang.phrases.alert_service_change_status}}">{{lang.words.service|title()}}</td>
|
||||
<td class="checkbox-head" style="width: 10%;" title="{{lang.phrases.alert_backend_change_status}}">{{lang.words.backend|title()}}</td>
|
||||
|
@ -196,6 +250,18 @@
|
|||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td id="haproxy_server_pd-{{s.0}}" title="{{lang.words.alert|title()}} {{lang.words.via}} {{lang.words.this3}} {{lang.words.channel}}">
|
||||
<select id="haproxy_server_pd_channel-{{h.id}}">
|
||||
<option value="0">{{lang.words.disabled|title()}}</option>
|
||||
{% for t in pds %}
|
||||
{% if h.pd_id|int() == t.id|int() %}
|
||||
<option value="{{t.id}}" selected>{{t.chanel_name}}</option>
|
||||
{% else %}
|
||||
<option value="{{t.id}}">{{t.chanel_name}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="checkbox" title="{{lang.words.alert|title()}} {{lang.words.via}} {{lang.words.email}}">
|
||||
{% set id = 'haproxy_server_email-' + h.id|string() %}
|
||||
{% if h.email == 1 %}
|
||||
|
@ -234,12 +300,13 @@
|
|||
{% endfor %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
<table class="overview checker_settings_table" id="checker_nginx_table">
|
||||
<table class="overview-overflow checker_settings_table" id="checker_nginx_table">
|
||||
<caption><i class="fas fa-sitemap caption-icon"></i><h3>NGINX {{lang.words.servers}}</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} Telegram">Telegram</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} Slack">Slack</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} PagerDuty">PagerDuty</td>
|
||||
<td class="checkbox-head" style="width: 10%;" title="{{lang.words.alert|title()}} {{lang.words.via}} {{lang.words.email}}">{{lang.words.email|title()}}</td>
|
||||
<td class="checkbox-head" style="width: 100%;" title={{lang.phrases.alert_service_change_status}}>{{lang.words.service|title()}}</td>
|
||||
<td><span onclick="loadchecker(1)" class="refresh" title="{{lang.words.refresh2|title()}}"></span></td>
|
||||
|
@ -273,6 +340,18 @@
|
|||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td id="nginx_server_pd-{{h.id}}" title="{{lang.words.alert|title()}} {{lang.words.via}} {{lang.words.this3}} {{lang.words.channel}}">
|
||||
<select id="nginx_server_pd_channel-{{h.id}}">
|
||||
<option value="0">{{lang.words.disabled|title()}}</option>
|
||||
{% for t in pds %}
|
||||
{% if h.pd_id|int() == t.id|int() %}
|
||||
<option value="{{t.id}}" selected>{{t.chanel_name}}</option>
|
||||
{% else %}
|
||||
<option value="{{t.id}}">{{t.chanel_name}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="checkbox">
|
||||
{% set id = 'nginx_server_email-' + h.id|string() %}
|
||||
{% if h.email == 1 %}
|
||||
|
@ -295,12 +374,13 @@
|
|||
{% endfor %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
<table class="overview checker_settings_table" id="checker_apache_table">
|
||||
<table class="overview-overflow checker_settings_table" id="checker_apache_table">
|
||||
<caption><i class="fas fa-feather-alt caption-icon"></i><h3>Apache {{lang.words.servers}}</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} Telegram">Telegram</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} Slack">Slack</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} PagerDuty">PagerDuty</td>
|
||||
<td class="checkbox-head" style="width: 10%;">{{lang.words.email|title()}}</td>
|
||||
<td class="checkbox-head" style="width: 100%;" title="{{lang.phrases.alert_service_change_status}}">{{lang.words.service|title()}}</td>
|
||||
<td><span onclick="loadchecker(1)" class="refresh" title="{{lang.words.refresh2|title()}}"></span></td>
|
||||
|
@ -334,6 +414,18 @@
|
|||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td id="apache_server_pd-{{h.id}}" title="{{lang.words.alert|title()}} {{lang.words.via}} {{lang.words.this3}} {{lang.words.channel}}">
|
||||
<select id="apache_server_pd_channel-{{h.id}}">
|
||||
<option value="0">{{lang.words.disabled|title()}}</option>
|
||||
{% for t in pds %}
|
||||
{% if h.pd_id|int() == t.id|int() %}
|
||||
<option value="{{t.id}}" selected>{{t.chanel_name}}</option>
|
||||
{% else %}
|
||||
<option value="{{t.id}}">{{t.chanel_name}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="checkbox">
|
||||
{% set id = 'apache_server_email-' + h.id|string() %}
|
||||
{% if h.email == 1 %}
|
||||
|
@ -356,12 +448,13 @@
|
|||
{% endfor %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
<table class="overview checker_settings_table" id="checker_keepalived_table">
|
||||
<table class="overview-overflow checker_settings_table" id="checker_keepalived_table">
|
||||
<caption><i class="fas fa-cloud caption-icon"></i><h3>Keepalived {{lang.words.servers}}</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} Telegram">Telegram</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} Slack">Slack</td>
|
||||
<td class="first-collumn" title="{{lang.words.alert|title()}} {{lang.words.via}} PagerDuty">PagerDuty</td>
|
||||
<td class="checkbox-head" style="width: 10%;">{{lang.words.email|title()}}</td>
|
||||
<td class="checkbox-head" style="width: 10%;" title="{{lang.phrases.alert_service_change_status}}">{{lang.words.service|title()}}</td>
|
||||
<td class="checkbox-head" style="width: 100%;" title="{{lang.phrases.alert_master_backup}}">{{lang.words.status|title()}}</td>
|
||||
|
@ -396,6 +489,18 @@
|
|||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td id="keepalived_server_pd-{{h.id}}" title="{{lang.words.alert|title()}} {{lang.words.via}} {{lang.words.this3}} {{lang.words.channel}}">
|
||||
<select id="keepalived_server_pd_channel-{{h.id}}">
|
||||
<option value="0">{{lang.words.disabled|title()}}</option>
|
||||
{% for t in pds %}
|
||||
{% if h.pd_id|int() == t.id|int() %}
|
||||
<option value="{{t.id}}" selected>{{t.chanel_name}}</option>
|
||||
{% else %}
|
||||
<option value="{{t.id}}">{{t.chanel_name}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="checkbox">
|
||||
{% set id = 'keepalived_server_email-' + h.id|string() %}
|
||||
{% if h.email == 1 %}
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
{% import 'languages/'+lang|default('en')+'.html' as lang %}
|
||||
{% for c in channels %}
|
||||
<tr style="width: 50%;" id="{{receiver}}-table-{{c.id}}" class="newgroup">
|
||||
<td class="padding10 first-collumn">
|
||||
<input type="text" id="{{receiver}}-token-{{c.id}}" class="form-control" value="{{c.token}}" size="30">
|
||||
<input type="hidden" id="{{receiver}}group-{{c.id}}" name="{{receiver}}group-{{c.id}}">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="{{receiver}}-chanel-{{c.id}}" class="form-control" value="{{c.chanel_name}}" size="30">
|
||||
</td>
|
||||
{% if page != "servers.py" %}
|
||||
<td>
|
||||
<select id="{{receiver}}group-{{c.id}}" name="{{receiver}}group-{{c.id}}">
|
||||
{% for group in groups %}
|
||||
{% if c.groups == group.group_id %}
|
||||
<option value="{{ group.group_id }}" selected>{{ group.name }}</option>
|
||||
{% else %}
|
||||
<option value="{{ group.group_id }}">{{ group.name }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
<button title="{{lang.phrases.send_test_mes}}" onclick="checkReceiver({{c.id}}, '{{receiver}}')">{{lang.words.test|title()}}</button>
|
||||
</td>
|
||||
<td>
|
||||
<a class="add" onclick="cloneReceiver({{c.id}}, '{{receiver}}')" id="clone-{{c.id}}" title="{{lang.words.clone|title()}} {{c.chanel_name}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteReceiver({{c.id}}, '{{receiver}}')" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
|
@ -1,34 +0,0 @@
|
|||
{% import 'languages/'+lang|default('en')+'.html' as lang %}
|
||||
{% for slack in slacks %}
|
||||
<tr style="width: 50%;" id="slack-table-{{slack.id}}" class="newgroup">
|
||||
<td class="padding10 first-collumn">
|
||||
<input type="text" id="slack-token-{{slack.id}}" class="form-control" value="{{slack.token}}" size="30">
|
||||
<input type="hidden" id="slackgroup-{{slack.id}}" name="slackgroup-{{slack.id}}">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="slack-chanel-{{slack.id}}" class="form-control" value="{{slack.chanel_name}}" size="30">
|
||||
</td>
|
||||
{% if page != "servers.py" %}
|
||||
<td>
|
||||
<select id="slackgroup-{{slack.id}}" name="slackgroup-{{slack.id}}">
|
||||
{% for group in groups %}
|
||||
{% if slack.groups == group.group_id %}
|
||||
<option value="{{ group.group_id }}" selected>{{ group.name }}</option>
|
||||
{% else %}
|
||||
<option value="{{ group.group_id }}">{{ group.name }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
<button title="{{lang.phrases.send_test_mes}}" onclick="checkSlack({{slack.id}})">{{lang.words.test|title()}}</button>
|
||||
</td>
|
||||
<td>
|
||||
<a class="add" onclick="cloneSlack({{slack.id}})" id="clone-{{slack.id}}" title="{{lang.words.clone|title()}} {{slack.chanel_name}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteSlack({{slack.id}})" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
|
@ -1,34 +0,0 @@
|
|||
{% import 'languages/'+lang|default('en')+'.html' as lang %}
|
||||
{% for telegram in telegrams %}
|
||||
<tr style="width: 50%;" id="telegram-table-{{telegram.id}}" class="newgroup">
|
||||
<td class="padding10 first-collumn">
|
||||
<input type="text" id="telegram-token-{{telegram.id}}" class="form-control" value="{{telegram.token}}" size="30">
|
||||
<input type="hidden" id="telegramgroup-{{telegram.id}}" name="telegramgroup-{{telegram.id}}">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="telegram-chanel-{{telegram.id}}" class="form-control" value="{{telegram.chanel_name}}" size="30">
|
||||
</td>
|
||||
{% if page != "servers.py" %}
|
||||
<td>
|
||||
<select id="sshgroup-{{telegram.id}}" name="sshgroup-{{telegram.id}}">
|
||||
{% for group in groups %}
|
||||
{% if telegram.groups == group.group_id %}
|
||||
<option value="{{ group.group_id }}" selected>{{ group.name }}</option>
|
||||
{% else %}
|
||||
<option value="{{ group.group_id }}">{{ group.name }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
<button title="{{lang.phrases.send_test_mes}}" onclick="checkTelegram({{telegram.id}})">{{lang.words.test|title()}}</button>
|
||||
</td>
|
||||
<td>
|
||||
<a class="add" onclick="cloneTelegram({{telegram.id}})" id="clone-{{telegram.id}}" title="{{lang.words.clone|title()}} {{telegram.chanel_name}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteTelegram({{telegram.id}})" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
|
@ -225,6 +225,42 @@
|
|||
{% endif %}
|
||||
</table>
|
||||
</div>
|
||||
<div id="pd-add-table" style="display: none;">
|
||||
<table class="overview" id="pd-add-table-overview" title="{{lang.words.add|title()}} {{lang.words.w_a}} {{lang.words.new}} PagerDuty {{lang.words.channel}}">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
<span title="Integration key from Events API V2 integration">{{lang.words.token|title()}}</span>
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ input('pd-token-add', size='30') }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20">
|
||||
{{lang.words.channel|title()}}
|
||||
<span class="need-field">*</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ input('pd-chanel-add') }}
|
||||
</td>
|
||||
</tr>
|
||||
{% if page != "servers.py" %}
|
||||
<tr>
|
||||
<td class="padding20">{{lang.words.group|title()}}</td>
|
||||
<td>
|
||||
<select id="new-pd-group-add" name="new-pd-group-add">
|
||||
<option disabled selected value="0">{{lang.words.select|title()}} {{lang.words.w_a}} {{lang.words.group2}}</option>
|
||||
{% for group in groups %}
|
||||
<option value="{{ group.group_id }}">{{ group.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div>
|
||||
<div id="backup-add-table" title="Add a new backup job " style="display: none;">
|
||||
<table class="overview" id="backup-add-table-overview" title="{{lang.words.add|title()}} {{lang.words.w_a}} {{lang.words.new}} {{lang.words.backup}}">
|
||||
{% include 'include/tr_validate_tips.html' %}
|
||||
|
|
250
inc/users.js
250
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('<option value=' + id + '>' + $('#telegram-chanel-add').val() + '</option>').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('<option value=' + id + '>' + $('#slack-chanel-add').val() + '</option>').selectmenu("refresh");
|
||||
common_ajax_action_after_success(dialog_id, 'newgroup', 'checker_slack_table', data);
|
||||
$('select:regex(id, '+receiver_name+'_channel)').append('<option value=' + id + '>' + $('#'+receiver_name+'-chanel-add').val() + '</option>').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,7 +1503,7 @@ 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({
|
||||
|
@ -1506,35 +1511,12 @@ function confirmDeleteTelegram(id) {
|
|||
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() + "?",
|
||||
title: delete_word + " " + $('#' + reciever_name + '-chanel-' + id).val() + "?",
|
||||
buttons: [{
|
||||
text: delete_word,
|
||||
click: function () {
|
||||
$(this).dialog("close");
|
||||
removeSlack(id);
|
||||
removeReciver(reciever_name, id);
|
||||
}
|
||||
}, {
|
||||
text: cancel_word,
|
||||
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue