2018-09-28 12:04:16 +00:00
#!/usr/bin/env python3
2020-03-27 21:16:04 +00:00
# -*- coding: utf-8 -*-
2020-07-01 20:39:15 +00:00
import os
import sys
2022-09-02 14:12:28 +00:00
import http . cookies
2022-10-29 19:06:45 +00:00
from uuid import UUID
2022-09-02 14:12:28 +00:00
from jinja2 import Environment , FileSystemLoader
2022-05-25 13:55:45 +00:00
2022-11-17 07:34:58 +00:00
import modules . db . sql as sql
2022-12-07 07:47:47 +00:00
import modules . server . ssh as ssh_mod
2022-11-17 07:34:58 +00:00
import modules . common . common as common
2023-03-08 13:15:15 +00:00
import modules . config . add as add_mod
2022-11-17 07:34:58 +00:00
import modules . config . config as config_mod
import modules . roxywi . common as roxywi_common
2022-09-26 09:18:18 +00:00
import modules . roxy_wi_tools as roxy_wi_tools
2022-11-17 07:34:58 +00:00
import modules . server . server as server_mod
import modules . service . common as service_common
import modules . service . installation as service_mod
2022-09-26 09:18:18 +00:00
get_config = roxy_wi_tools . GetConfigVar ( )
2022-11-17 07:34:58 +00:00
time_zone = sql . get_setting ( ' time_zone ' )
get_date = roxy_wi_tools . GetDate ( time_zone )
2018-04-09 10:27:01 +00:00
2022-11-17 07:34:58 +00:00
form = common . form
serv = common . is_ip_or_dns ( form . getvalue ( ' serv ' ) )
2020-07-01 20:39:15 +00:00
act = form . getvalue ( " act " )
2022-10-29 19:06:45 +00:00
token = form . getvalue ( " token " )
2019-10-05 20:41:07 +00:00
2022-05-25 13:55:45 +00:00
if (
form . getvalue ( ' new_metrics ' )
or form . getvalue ( ' new_http_metrics ' )
or form . getvalue ( ' new_waf_metrics ' )
or form . getvalue ( ' new_nginx_metrics ' )
2022-07-03 06:11:34 +00:00
or form . getvalue ( ' new_apache_metrics ' )
2022-05-25 13:55:45 +00:00
or form . getvalue ( ' metrics_hapwi_ram ' )
or form . getvalue ( ' metrics_hapwi_cpu ' )
or form . getvalue ( ' getoption ' )
or form . getvalue ( ' getsavedserver ' )
) :
2020-09-26 17:37:14 +00:00
print ( ' Content-type: application/json \n ' )
2019-10-05 20:41:07 +00:00
else :
2020-09-26 17:37:14 +00:00
print ( ' Content-type: text/html \n ' )
2020-06-06 08:21:22 +00:00
2018-08-28 10:45:09 +00:00
if act == " checkrestart " :
2022-11-17 07:34:58 +00:00
servers = roxywi_common . get_dick_permit ( ip = serv )
2020-09-26 17:37:14 +00:00
for server in servers :
if server != " " :
print ( " ok " )
sys . exit ( )
sys . exit ( )
2020-02-21 18:05:21 +00:00
2022-07-05 19:53:33 +00:00
try :
uuid_obj = UUID ( token , version = 4 )
except ValueError :
print ( ' error: Your token is not valid ' )
sys . exit ( )
2022-08-02 08:53:32 +00:00
except Exception :
print ( ' error: There is no token ' )
sys . exit ( )
2022-07-05 19:53:33 +00:00
if not sql . check_token_exists ( token ) :
print ( ' error: Your token has been expired ' )
sys . exit ( )
2020-07-01 20:39:15 +00:00
2018-10-01 16:51:37 +00:00
if form . getvalue ( ' checkSshConnect ' ) is not None and serv is not None :
2021-08-02 08:19:22 +00:00
try :
2022-11-17 07:34:58 +00:00
print ( server_mod . ssh_command ( serv , [ " ls -1t " ] ) )
2021-08-02 08:19:22 +00:00
except Exception as e :
print ( e )
2020-07-01 20:39:15 +00:00
2023-03-08 13:15:15 +00:00
if form . getvalue ( ' getcerts ' ) is not None and serv is not None :
add_mod . get_ssl_certs ( serv )
2018-07-13 04:28:21 +00:00
if form . getvalue ( ' getcert ' ) is not None and serv is not None :
2023-03-08 13:15:15 +00:00
cert_id = common . checkAjaxInput ( form . getvalue ( ' getcert ' ) )
add_mod . get_ssl_cert ( serv , cert_id )
2021-01-02 16:36:43 +00:00
if form . getvalue ( ' delcert ' ) is not None and serv is not None :
2023-03-08 13:15:15 +00:00
cert_id = common . checkAjaxInput ( form . getvalue ( ' delcert ' ) )
add_mod . del_ssl_cert ( serv , cert_id )
2020-07-01 20:39:15 +00:00
2018-04-26 13:03:48 +00:00
if serv and form . getvalue ( ' ssl_cert ' ) :
2023-03-08 13:15:15 +00:00
ssl_name = common . checkAjaxInput ( form . getvalue ( ' ssl_name ' ) )
ssl_cont = form . getvalue ( ' ssl_cert ' )
add_mod . upload_ssl_cert ( serv , ssl_name , ssl_cont )
2020-07-01 20:39:15 +00:00
2018-09-19 06:22:38 +00:00
if form . getvalue ( ' backend ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . config . runtime as runtime
runtime . show_backends ( serv )
2020-07-01 20:39:15 +00:00
2020-06-06 08:21:22 +00:00
if form . getvalue ( ' ip_select ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . config . runtime as runtime
runtime . show_backends ( serv )
2020-06-06 08:21:22 +00:00
if form . getvalue ( ' ipbackend ' ) is not None and form . getvalue ( ' backend_server ' ) is None :
2022-12-08 19:43:20 +00:00
import modules . config . runtime as runtime
runtime . show_frontend_backend ( )
2020-06-06 08:21:22 +00:00
if form . getvalue ( ' ipbackend ' ) is not None and form . getvalue ( ' backend_server ' ) is not None :
2022-12-08 19:43:20 +00:00
import modules . config . runtime as runtime
runtime . show_server ( )
2020-07-01 20:39:15 +00:00
if form . getvalue ( ' backend_ip ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . config . runtime as runtime
2022-07-08 17:43:13 +00:00
2022-11-17 07:34:58 +00:00
runtime . change_ip_and_port ( )
2020-07-01 20:39:15 +00:00
2020-06-06 08:21:22 +00:00
if form . getvalue ( ' maxconn_select ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . config . runtime as runtime
serv = common . checkAjaxInput ( form . getvalue ( ' maxconn_select ' ) )
runtime . get_backends_from_config ( serv , backends = ' frontend ' )
2020-07-01 20:39:15 +00:00
if form . getvalue ( ' maxconn_frontend ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . config . runtime as runtime
2022-07-08 16:35:07 +00:00
2022-11-17 07:34:58 +00:00
runtime . change_maxconn ( )
2020-06-06 08:21:22 +00:00
if form . getvalue ( ' table_serv_select ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . config . runtime as runtime
print ( runtime . get_all_stick_table ( ) )
2020-07-01 20:39:15 +00:00
2020-06-06 08:21:22 +00:00
if form . getvalue ( ' table_select ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . config . runtime as runtime
2020-09-26 17:37:14 +00:00
2022-11-17 07:34:58 +00:00
runtime . table_select ( )
2020-07-01 20:39:15 +00:00
if form . getvalue ( ' ip_for_delete ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . config . runtime as runtime
2020-08-02 18:24:09 +00:00
2022-12-04 18:43:25 +00:00
runtime . delete_ip_from_stick_table ( )
2020-08-02 18:24:09 +00:00
2020-09-02 04:26:36 +00:00
if form . getvalue ( ' table_for_clear ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . config . runtime as runtime
2020-09-02 04:26:36 +00:00
2022-12-04 18:43:25 +00:00
runtime . clear_stick_table ( )
2020-09-02 04:26:36 +00:00
2020-08-02 18:24:09 +00:00
if form . getvalue ( ' list_serv_select ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . config . runtime as runtime
2020-08-02 18:24:09 +00:00
2022-12-04 18:43:25 +00:00
runtime . list_of_lists ( )
2020-08-02 18:24:09 +00:00
2022-12-04 18:43:25 +00:00
if form . getvalue ( ' list_select_id ' ) is not None :
import modules . config . runtime as runtime
2020-08-02 18:24:09 +00:00
2022-12-04 18:43:25 +00:00
runtime . show_lists ( )
2020-08-02 18:24:09 +00:00
if form . getvalue ( ' list_id_for_delete ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . config . runtime as runtime
2020-08-02 18:24:09 +00:00
2022-12-04 18:43:25 +00:00
runtime . delete_ip_from_list ( )
2021-09-15 05:40:51 +00:00
2020-08-02 18:24:09 +00:00
if form . getvalue ( ' list_ip_for_add ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . config . runtime as runtime
2020-09-15 05:56:43 +00:00
2022-12-04 18:43:25 +00:00
runtime . add_ip_to_list ( )
2020-09-15 05:56:43 +00:00
2022-12-04 18:43:25 +00:00
if form . getvalue ( ' sessions_select ' ) is not None :
import modules . config . runtime as runtime
2020-09-15 05:56:43 +00:00
2022-12-04 18:43:25 +00:00
runtime . select_session ( )
2020-09-15 05:56:43 +00:00
if form . getvalue ( ' sessions_select_show ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . config . runtime as runtime
2020-09-15 05:56:43 +00:00
2022-12-04 18:43:25 +00:00
runtime . show_session ( )
2020-09-15 05:56:43 +00:00
if form . getvalue ( ' session_delete_id ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . config . runtime as runtime
runtime . delete_session ( )
2020-09-15 05:56:43 +00:00
2020-07-01 20:39:15 +00:00
if form . getvalue ( " change_pos " ) is not None :
2022-12-08 19:43:20 +00:00
pos = common . checkAjaxInput ( form . getvalue ( ' change_pos ' ) )
server_id = common . checkAjaxInput ( form . getvalue ( ' pos_server_id ' ) )
2021-10-17 05:57:51 +00:00
sql . update_server_pos ( pos , server_id )
2020-07-01 20:39:15 +00:00
2021-08-08 13:02:00 +00:00
if form . getvalue ( ' show_ip ' ) is not None and serv is not None :
2022-12-22 19:19:43 +00:00
commands = [ ' sudo hostname -i | tr " " " \n " |grep -v " % " ' ]
2022-11-17 07:34:58 +00:00
server_mod . ssh_command ( serv , commands , ip = " 1 " )
2020-07-01 20:39:15 +00:00
2018-05-02 11:11:22 +00:00
if form . getvalue ( ' showif ' ) :
2021-08-08 13:02:00 +00:00
commands = [ " sudo ip link|grep ' UP ' |grep -v ' lo ' | awk ' { print $2} ' |awk -F ' : ' ' { print $1} ' " ]
2022-11-17 07:34:58 +00:00
server_mod . ssh_command ( serv , commands , ip = " 1 " )
2020-07-01 20:39:15 +00:00
2018-05-13 18:07:33 +00:00
if form . getvalue ( ' action_hap ' ) is not None and serv is not None :
2022-12-04 18:43:25 +00:00
import modules . service . action as service_action
2020-09-26 17:37:14 +00:00
2022-12-04 18:43:25 +00:00
action = form . getvalue ( ' action_hap ' )
service_action . action_haproxy ( serv , action )
2020-07-01 20:39:15 +00:00
2020-02-05 08:15:57 +00:00
if form . getvalue ( ' action_nginx ' ) is not None and serv is not None :
2022-12-04 18:43:25 +00:00
import modules . service . action as service_action
2022-04-15 09:49:00 +00:00
2022-12-04 18:43:25 +00:00
action = form . getvalue ( ' action_nginx ' )
service_action . action_nginx ( serv , action )
2021-06-11 15:18:33 +00:00
if form . getvalue ( ' action_keepalived ' ) is not None and serv is not None :
2022-12-04 18:43:25 +00:00
import modules . service . action as service_action
2022-07-05 19:53:33 +00:00
2022-12-04 18:43:25 +00:00
action = form . getvalue ( ' action_keepalived ' )
service_action . action_keepalived ( serv , action )
2020-07-01 20:39:15 +00:00
2018-08-17 11:55:17 +00:00
if form . getvalue ( ' action_waf ' ) is not None and serv is not None :
2022-12-04 18:43:25 +00:00
import modules . service . action as service_action
2022-04-15 09:49:00 +00:00
2022-12-04 18:43:25 +00:00
action = form . getvalue ( ' action_waf ' )
service_action . action_haproxy_waf ( serv , action )
2020-07-01 20:39:15 +00:00
2022-08-02 08:53:32 +00:00
if form . getvalue ( ' action_waf_nginx ' ) is not None and serv is not None :
2022-12-04 18:43:25 +00:00
import modules . service . action as service_action
2022-08-02 08:53:32 +00:00
2022-12-04 18:43:25 +00:00
action = form . getvalue ( ' action_waf_nginx ' )
service_action . action_nginx_waf ( serv , action )
2022-08-02 08:53:32 +00:00
2022-04-15 09:49:00 +00:00
if form . getvalue ( ' action_apache ' ) is not None and serv is not None :
2022-12-04 18:43:25 +00:00
import modules . service . action as service_action
2022-08-15 08:50:29 +00:00
2022-12-04 18:43:25 +00:00
action = form . getvalue ( ' action_apache ' )
service_action . action_apache ( serv , action )
2022-04-15 09:49:00 +00:00
2020-07-01 20:39:15 +00:00
if form . getvalue ( ' action_service ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . roxywi . roxy as roxy
2022-07-05 19:53:33 +00:00
2022-12-04 18:43:25 +00:00
action = common . checkAjaxInput ( form . getvalue ( ' action_service ' ) )
roxy . action_service ( action , serv )
2020-07-01 20:39:15 +00:00
2019-12-27 04:31:09 +00:00
if act == " overviewHapserverBackends " :
2022-12-07 09:27:46 +00:00
service = common . checkAjaxInput ( form . getvalue ( ' service ' ) )
2022-11-17 07:34:58 +00:00
2022-12-07 09:27:46 +00:00
service_common . overview_backends ( serv , service )
2020-07-01 20:39:15 +00:00
2021-04-17 17:38:08 +00:00
if form . getvalue ( ' show_userlists ' ) :
2023-03-08 13:15:15 +00:00
add_mod . show_userlist ( serv )
2021-04-17 17:38:08 +00:00
2019-12-27 04:31:09 +00:00
if act == " overviewHapservers " :
2022-12-07 09:27:46 +00:00
service = common . checkAjaxInput ( form . getvalue ( ' service ' ) )
service_common . get_overview_last_edit ( serv , service )
2020-07-01 20:39:15 +00:00
if act == " overview " :
2022-12-06 18:29:14 +00:00
import modules . roxywi . overview as roxy_overview
2022-04-15 09:49:00 +00:00
2022-12-06 18:29:14 +00:00
roxy_overview . show_overview ( serv )
2020-07-01 20:39:15 +00:00
if act == " overviewwaf " :
2022-12-06 19:37:45 +00:00
import modules . roxywi . waf as roxy_waf
2020-07-01 20:39:15 +00:00
2022-12-06 19:37:45 +00:00
waf_service = common . checkAjaxInput ( form . getvalue ( ' service ' ) )
serv = common . checkAjaxInput ( serv )
roxy_waf . waf_overview ( serv , waf_service )
2020-07-01 20:39:15 +00:00
2020-09-26 17:37:14 +00:00
if act == " overviewServers " :
2022-12-07 09:27:46 +00:00
server_id = common . checkAjaxInput ( form . getvalue ( ' id ' ) )
name = common . checkAjaxInput ( form . getvalue ( ' name ' ) )
service = common . checkAjaxInput ( form . getvalue ( ' service ' ) )
2022-12-07 09:59:39 +00:00
service_common . overview_service ( serv , server_id , name , service )
2020-07-01 20:39:15 +00:00
2023-01-02 20:01:20 +00:00
if act == " overviewServices " :
import modules . roxywi . overview as roxy_overview
roxy_overview . show_services_overview ( )
2020-09-26 17:37:14 +00:00
if form . getvalue ( ' action ' ) :
2022-12-09 15:43:28 +00:00
import modules . service . haproxy as service_haproxy
service_haproxy . stat_page_action ( serv )
2020-07-01 20:39:15 +00:00
2020-09-26 17:37:14 +00:00
if serv is not None and act == " stats " :
2022-12-07 09:59:39 +00:00
service = common . checkAjaxInput ( form . getvalue ( ' service ' ) )
service_common . get_stat_page ( serv , service )
2020-07-01 20:39:15 +00:00
2021-08-08 13:02:00 +00:00
if serv is not None and form . getvalue ( ' show_log ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . roxywi . logs as roxywi_logs
2021-08-15 09:02:12 +00:00
rows = form . getvalue ( ' show_log ' )
2020-09-26 17:37:14 +00:00
waf = form . getvalue ( ' waf ' )
grep = form . getvalue ( ' grep ' )
hour = form . getvalue ( ' hour ' )
minut = form . getvalue ( ' minut ' )
hour1 = form . getvalue ( ' hour1 ' )
minut1 = form . getvalue ( ' minut1 ' )
service = form . getvalue ( ' service ' )
2022-11-17 07:34:58 +00:00
out = roxywi_logs . show_roxy_log ( serv , rows = rows , waf = waf , grep = grep , hour = hour , minut = minut , hour1 = hour1 ,
2020-09-26 17:37:14 +00:00
minut1 = minut1 , service = service )
print ( out )
2020-07-01 20:39:15 +00:00
2018-05-07 19:09:56 +00:00
if serv is not None and form . getvalue ( ' rows1 ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . roxywi . logs as roxywi_logs
2020-09-26 17:37:14 +00:00
rows = form . getvalue ( ' rows1 ' )
grep = form . getvalue ( ' grep ' )
hour = form . getvalue ( ' hour ' )
minut = form . getvalue ( ' minut ' )
hour1 = form . getvalue ( ' hour1 ' )
minut1 = form . getvalue ( ' minut1 ' )
2022-11-17 07:34:58 +00:00
out = roxywi_logs . show_roxy_log ( serv , rows = rows , waf = ' 0 ' , grep = grep , hour = hour , minut = minut , hour1 = hour1 ,
2022-04-15 09:49:00 +00:00
minut1 = minut1 , service = ' apache_internal ' )
2020-09-26 17:37:14 +00:00
print ( out )
2020-07-01 20:39:15 +00:00
2018-05-18 18:09:14 +00:00
if form . getvalue ( ' viewlogs ' ) is not None :
2022-11-17 07:34:58 +00:00
import modules . roxywi . logs as roxywi_logs
2020-09-26 17:37:14 +00:00
viewlog = form . getvalue ( ' viewlogs ' )
rows = form . getvalue ( ' rows ' )
grep = form . getvalue ( ' grep ' )
hour = form . getvalue ( ' hour ' )
minut = form . getvalue ( ' minut ' )
hour1 = form . getvalue ( ' hour1 ' )
minut1 = form . getvalue ( ' minut1 ' )
2022-11-17 07:34:58 +00:00
if roxywi_common . check_user_group ( ) :
out = roxywi_logs . show_roxy_log ( serv = viewlog , rows = rows , waf = ' 0 ' , grep = grep , hour = hour , minut = minut , hour1 = hour1 ,
2020-09-26 17:37:14 +00:00
minut1 = minut1 , service = ' internal ' )
2022-10-17 10:22:58 +00:00
print ( out )
2020-07-01 20:39:15 +00:00
2018-04-11 09:27:57 +00:00
if serv is not None and act == " showMap " :
2022-12-09 15:43:28 +00:00
import modules . service . haproxy as service_haproxy
2020-09-26 17:37:14 +00:00
2022-12-09 15:43:28 +00:00
service_haproxy . show_map ( serv )
2020-07-01 20:39:15 +00:00
2018-04-10 03:58:56 +00:00
if form . getvalue ( ' servaction ' ) is not None :
2022-12-09 15:43:28 +00:00
import modules . service . haproxy as service_haproxy
2022-07-08 16:35:07 +00:00
2022-12-09 15:43:28 +00:00
service_haproxy . runtime_command ( serv )
2020-07-01 20:39:15 +00:00
2020-09-26 17:37:14 +00:00
if act == " showCompareConfigs " :
2022-12-09 20:08:32 +00:00
config_mod . show_compare_config ( serv )
2019-10-21 06:00:16 +00:00
2020-09-26 17:37:14 +00:00
if serv is not None and form . getvalue ( ' right ' ) is not None :
2022-12-09 20:08:32 +00:00
config_mod . compare_config ( )
2020-07-01 20:39:15 +00:00
2020-09-26 17:37:14 +00:00
if serv is not None and act == " configShow " :
2022-12-09 20:08:32 +00:00
config_mod . show_config ( serv )
2020-07-01 20:39:15 +00:00
2022-01-16 13:50:53 +00:00
if act == ' configShowFiles ' :
2022-12-09 20:08:32 +00:00
config_mod . show_config_files ( serv )
2022-01-16 13:50:53 +00:00
2022-03-02 20:09:39 +00:00
if act == ' showRemoteLogFiles ' :
service = form . getvalue ( ' service ' )
2022-10-30 07:55:26 +00:00
log_path = sql . get_setting ( f ' { service } _path_logs ' )
2022-11-17 07:34:58 +00:00
return_files = server_mod . get_remote_files ( serv , log_path , ' log ' )
2022-03-02 20:09:39 +00:00
if ' error: ' in return_files :
print ( return_files )
sys . exit ( )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2022-03-02 20:09:39 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates/ ' ) , autoescape = True )
template = env . get_template ( ' ajax/show_log_files.html ' )
2023-02-13 14:45:45 +00:00
template = template . render ( serv = serv , return_files = return_files , path_dir = log_path , lang = lang )
2022-03-02 20:09:39 +00:00
print ( template )
2020-09-26 17:37:14 +00:00
if form . getvalue ( ' master ' ) :
2022-11-17 07:34:58 +00:00
service_mod . keepalived_master_install ( )
2021-07-01 07:19:23 +00:00
2021-03-04 05:53:27 +00:00
if form . getvalue ( ' master_slave ' ) :
2022-11-17 07:34:58 +00:00
service_mod . keepalived_slave_install ( )
2020-07-01 20:39:15 +00:00
2020-09-26 17:37:14 +00:00
if form . getvalue ( ' masteradd ' ) :
2022-11-17 07:34:58 +00:00
service_mod . keepalived_masteradd ( )
2020-09-26 17:37:14 +00:00
2021-03-05 05:02:52 +00:00
if form . getvalue ( ' masteradd_slave ' ) :
2022-11-17 07:34:58 +00:00
service_mod . keepalived_slaveadd ( )
2020-07-01 20:39:15 +00:00
2021-03-04 05:53:27 +00:00
if form . getvalue ( ' master_slave_hap ' ) :
master = form . getvalue ( ' master_slave_hap ' )
slave = form . getvalue ( ' slave ' )
server = form . getvalue ( ' server ' )
2021-10-04 07:40:59 +00:00
docker = form . getvalue ( ' docker ' )
2021-03-04 05:53:27 +00:00
if server == ' master ' :
2022-11-17 07:34:58 +00:00
service_mod . install_haproxy ( master , server = server , docker = docker )
2021-03-04 05:53:27 +00:00
elif server == ' slave ' :
2022-11-17 07:34:58 +00:00
service_mod . install_haproxy ( slave , server = server , docker = docker )
2021-03-04 05:53:27 +00:00
if form . getvalue ( ' master_slave_nginx ' ) :
master = form . getvalue ( ' master_slave_nginx ' )
slave = form . getvalue ( ' slave ' )
server = form . getvalue ( ' server ' )
2021-10-04 07:40:59 +00:00
docker = form . getvalue ( ' docker ' )
2021-03-04 05:53:27 +00:00
if server == ' master ' :
2023-01-04 08:50:47 +00:00
service_mod . install_service ( master , ' nginx ' , docker , server = server )
2021-03-04 05:53:27 +00:00
elif server == ' slave ' :
2023-01-04 08:50:47 +00:00
service_mod . install_service ( slave , ' nginx ' , docker , server = server )
2021-03-04 05:53:27 +00:00
2020-09-26 17:37:14 +00:00
if form . getvalue ( ' install_grafana ' ) :
2022-11-17 07:34:58 +00:00
service_mod . grafana_install ( )
2020-07-01 20:39:15 +00:00
2020-03-27 21:16:04 +00:00
if form . getvalue ( ' haproxy_exp_install ' ) :
2022-11-17 15:27:26 +00:00
import modules . service . exporter_installation as exp_installation
2020-09-26 17:37:14 +00:00
2022-11-17 10:18:04 +00:00
exp_installation . haproxy_exp_installation ( )
2020-09-26 17:37:14 +00:00
2022-10-17 10:22:58 +00:00
if form . getvalue ( ' nginx_exp_install ' ) or form . getvalue ( ' apache_exp_install ' ) :
2022-11-17 15:27:26 +00:00
import modules . service . exporter_installation as exp_installation
2020-09-26 17:37:14 +00:00
2022-11-17 07:34:58 +00:00
exp_installation . nginx_apache_exp_installation ( )
2020-07-01 20:39:15 +00:00
2021-05-02 03:58:22 +00:00
if form . getvalue ( ' node_exp_install ' ) :
2022-11-17 15:27:26 +00:00
import modules . service . exporter_installation as exp_installation
2021-05-02 03:58:22 +00:00
2023-01-18 07:37:23 +00:00
service = ' node '
exp_installation . node_keepalived_exp_installation ( service )
if form . getvalue ( ' keepalived_exp_install ' ) :
import modules . service . exporter_installation as exp_installation
service = ' keepalived '
exp_installation . node_keepalived_exp_installation ( service )
2021-05-02 03:58:22 +00:00
2020-01-11 21:16:27 +00:00
if form . getvalue ( ' backup ' ) or form . getvalue ( ' deljob ' ) or form . getvalue ( ' backupupdate ' ) :
2023-01-04 08:50:47 +00:00
import modules . service . backup as backup_mod
2020-09-26 17:37:14 +00:00
2023-01-04 08:50:47 +00:00
serv = common . is_ip_or_dns ( form . getvalue ( ' server ' ) )
rpath = common . checkAjaxInput ( form . getvalue ( ' rpath ' ) )
time = common . checkAjaxInput ( form . getvalue ( ' time ' ) )
backup_type = common . checkAjaxInput ( form . getvalue ( ' type ' ) )
rserver = common . checkAjaxInput ( form . getvalue ( ' rserver ' ) )
cred = int ( form . getvalue ( ' cred ' ) )
deljob = common . checkAjaxInput ( form . getvalue ( ' deljob ' ) )
update = common . checkAjaxInput ( form . getvalue ( ' backupupdate ' ) )
description = common . checkAjaxInput ( form . getvalue ( ' description ' ) )
2020-09-26 17:37:14 +00:00
2023-01-04 08:50:47 +00:00
backup_mod . backup ( serv , rpath , time , backup_type , rserver , cred , deljob , update , description )
2020-07-01 20:39:15 +00:00
2022-10-17 10:22:58 +00:00
2022-05-05 18:26:14 +00:00
if form . getvalue ( ' git_backup ' ) :
server_id = form . getvalue ( ' server ' )
service_id = form . getvalue ( ' git_service ' )
git_init = form . getvalue ( ' git_init ' )
repo = form . getvalue ( ' git_repo ' )
branch = form . getvalue ( ' git_branch ' )
period = form . getvalue ( ' time ' )
cred = form . getvalue ( ' cred ' )
deljob = form . getvalue ( ' git_deljob ' )
description = form . getvalue ( ' description ' )
2022-11-17 07:34:58 +00:00
servers = roxywi_common . get_dick_permit ( )
2022-05-05 18:26:14 +00:00
proxy = sql . get_setting ( ' proxy ' )
services = sql . select_services ( )
server_ip = sql . select_server_ip_by_id ( server_id )
service_name = sql . select_service_name_by_id ( service_id ) . lower ( )
service_config_dir = sql . get_setting ( service_name + ' _dir ' )
script = ' git_backup.sh '
2022-10-17 10:22:58 +00:00
proxy_serv = ' '
2022-12-07 07:47:47 +00:00
ssh_settings = ssh_mod . return_ssh_keys_path ( ' localhost ' , id = int ( cred ) )
2022-05-05 18:26:14 +00:00
2022-10-17 10:22:58 +00:00
os . system ( f " cp scripts/ { script } . " )
2022-05-05 18:26:14 +00:00
if proxy is not None and proxy != ' ' and proxy != ' None ' :
proxy_serv = proxy
if repo is None or git_init == ' 0 ' :
repo = ' '
2022-05-06 08:24:51 +00:00
if branch is None or branch == ' 0 ' :
2022-05-05 18:26:14 +00:00
branch = ' main '
2022-05-25 08:42:12 +00:00
commands = [
2023-01-04 08:50:47 +00:00
f " chmod +x { script } && ./ { script } HOST= { server_ip } DELJOB= { deljob } SERVICE= { service_name } INIT= { git_init } "
2022-10-17 10:22:58 +00:00
f " SSH_PORT= { ssh_settings [ ' port ' ] } PERIOD= { period } REPO= { repo } BRANCH= { branch } CONFIG_DIR= { service_config_dir } "
f " PROXY= { proxy_serv } USER= { ssh_settings [ ' user ' ] } KEY= { ssh_settings [ ' key ' ] } "
2022-05-25 08:42:12 +00:00
]
2022-05-05 18:26:14 +00:00
2022-11-17 07:34:58 +00:00
output , error = server_mod . subprocess_execute ( commands [ 0 ] )
2022-05-05 18:26:14 +00:00
2022-05-25 13:55:45 +00:00
for line in output :
2022-05-25 18:40:55 +00:00
if any ( s in line for s in ( " Traceback " , " FAILED " ) ) :
2022-05-05 18:26:14 +00:00
try :
2022-05-25 13:55:45 +00:00
print ( ' error: ' + line )
2022-05-05 18:26:14 +00:00
break
except Exception :
print ( ' error: ' + output )
break
else :
if deljob == ' 0 ' :
2022-05-25 08:42:12 +00:00
if sql . insert_new_git (
2022-09-13 15:04:30 +00:00
server_id = server_id , service_id = service_id , repo = repo , branch = branch ,
period = period , cred = cred , description = description
2022-05-25 08:42:12 +00:00
) :
2022-05-05 18:26:14 +00:00
gits = sql . select_gits ( server_id = server_id , service_id = service_id )
sshs = sql . select_ssh ( )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2022-05-05 18:26:14 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates/ajax ' ) , autoescape = True )
template = env . get_template ( ' new_git.html ' )
2023-02-13 14:45:45 +00:00
template = template . render ( gits = gits , sshs = sshs , servers = servers , services = services , new_add = 1 , lang = lang )
2022-05-05 18:26:14 +00:00
print ( template )
print ( ' success: Git job has been created ' )
2022-11-17 07:34:58 +00:00
roxywi_common . logging (
2022-10-28 21:40:40 +00:00
server_ip , ' A new git job has been created ' , roxywi = 1 , login = 1 ,
2022-05-25 13:55:45 +00:00
keep_history = 1 , service = service_name
)
2022-05-05 18:26:14 +00:00
else :
if sql . delete_git ( form . getvalue ( ' git_backup ' ) ) :
print ( ' Ok ' )
2022-10-17 10:22:58 +00:00
os . remove ( script )
2022-05-05 18:26:14 +00:00
2023-01-02 20:01:20 +00:00
if form . getvalue ( ' install_service ' ) :
server_ip = common . is_ip_or_dns ( form . getvalue ( ' install_service ' ) )
service = common . checkAjaxInput ( form . getvalue ( ' service ' ) )
docker = common . checkAjaxInput ( form . getvalue ( ' docker ' ) )
if service in ( ' nginx ' , ' apache ' ) :
service_mod . install_service ( server_ip , service , docker )
else :
print ( ' warning: wrong service ' )
2020-07-01 20:39:15 +00:00
2018-04-30 06:04:21 +00:00
if form . getvalue ( ' haproxyaddserv ' ) :
2022-11-17 07:34:58 +00:00
service_mod . install_haproxy ( form . getvalue ( ' haproxyaddserv ' ) , syn_flood = form . getvalue ( ' syn_flood ' ) ,
2021-10-04 07:40:59 +00:00
hapver = form . getvalue ( ' hapver ' ) , docker = form . getvalue ( ' docker ' ) )
2020-07-01 20:39:15 +00:00
2018-08-20 06:39:52 +00:00
if form . getvalue ( ' installwaf ' ) :
2022-08-02 08:53:32 +00:00
service = form . getvalue ( ' service ' )
if service == ' haproxy ' :
2022-12-06 07:23:17 +00:00
service_mod . waf_install ( common . checkAjaxInput ( form . getvalue ( ' installwaf ' ) ) )
2022-08-02 08:53:32 +00:00
else :
2022-12-06 07:23:17 +00:00
service_mod . waf_nginx_install ( common . checkAjaxInput ( form . getvalue ( ' installwaf ' ) ) )
2022-11-17 07:34:58 +00:00
if form . getvalue ( ' geoip_install ' ) :
service_mod . geoip_installation ( )
2020-07-01 20:39:15 +00:00
2022-06-15 07:34:20 +00:00
if form . getvalue ( ' update_roxy_wi ' ) :
2022-11-17 07:34:58 +00:00
import modules . roxywi . roxy as roxy
2020-09-26 17:37:14 +00:00
service = form . getvalue ( ' service ' )
2021-07-23 06:09:44 +00:00
services = [ ' roxy-wi-checker ' ,
' roxy-wi ' ,
' roxy-wi-keep_alive ' ,
' roxy-wi-smon ' ,
' roxy-wi-metrics ' ,
2022-06-15 11:55:17 +00:00
' roxy-wi-portscanner ' ,
2022-09-16 09:41:51 +00:00
' roxy-wi-socket ' ,
' roxy-wi-prometheus-exporter ' ]
2020-09-26 17:37:14 +00:00
if service not in services :
2022-10-17 10:22:58 +00:00
print ( f ' error: { service } is not part of Roxy-WI ' )
2020-09-26 17:37:14 +00:00
sys . exit ( )
2022-11-17 07:34:58 +00:00
roxy . update_roxy_wi ( service )
2020-07-01 20:39:15 +00:00
2018-08-20 06:39:52 +00:00
if form . getvalue ( ' metrics_waf ' ) :
2022-12-06 19:37:45 +00:00
metrics_waf = common . checkAjaxInput ( form . getvalue ( ' metrics_waf ' ) )
sql . update_waf_metrics_enable ( metrics_waf , form . getvalue ( ' enable ' ) )
2020-07-01 20:39:15 +00:00
2018-08-06 16:18:12 +00:00
if form . getvalue ( ' table_metrics ' ) :
2022-08-15 08:50:29 +00:00
service = form . getvalue ( ' service ' )
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2022-11-17 07:34:58 +00:00
group_id = roxywi_common . get_user_group ( id = 1 )
2022-08-15 08:50:29 +00:00
if service in ( ' nginx ' , ' apache ' ) :
2022-11-17 07:34:58 +00:00
metrics = sql . select_service_table_metrics ( service , group_id )
2022-08-15 08:50:29 +00:00
else :
2022-11-17 07:34:58 +00:00
metrics = sql . select_table_metrics ( group_id )
2020-07-01 20:39:15 +00:00
2023-02-13 14:45:45 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates/ ' ) , autoescape = True )
template = env . get_template ( ' ajax/table_metrics.html ' )
2018-08-06 16:18:12 +00:00
2023-02-13 14:45:45 +00:00
template = template . render ( table_stat = metrics , service = service , lang = lang )
2020-09-26 17:37:14 +00:00
print ( template )
2020-07-01 20:39:15 +00:00
if form . getvalue ( ' metrics_hapwi_ram ' ) :
2023-01-24 07:34:14 +00:00
import modules . roxywi . metrics as metric
metrics_type = common . checkAjaxInput ( form . getvalue ( ' ip ' ) )
2020-07-01 20:39:15 +00:00
2023-01-24 07:34:14 +00:00
metric . show_ram_metrics ( metrics_type )
2020-07-01 20:39:15 +00:00
2020-05-10 06:17:07 +00:00
if form . getvalue ( ' metrics_hapwi_cpu ' ) :
2023-01-24 07:34:14 +00:00
import modules . roxywi . metrics as metric
2020-07-01 20:39:15 +00:00
2023-01-24 07:34:14 +00:00
metrics_type = common . checkAjaxInput ( form . getvalue ( ' ip ' ) )
2020-07-01 20:39:15 +00:00
2023-01-24 07:34:14 +00:00
metric . show_cpu_metrics ( metrics_type )
2020-07-01 20:39:15 +00:00
2019-10-05 20:41:07 +00:00
if form . getvalue ( ' new_metrics ' ) :
2023-01-24 07:34:14 +00:00
import modules . roxywi . metrics as metric
server_ip = common . is_ip_or_dns ( form . getvalue ( ' server ' ) )
hostname = sql . get_hostname_by_server_ip ( server_ip )
time_range = common . checkAjaxInput ( form . getvalue ( ' time_range ' ) )
metric . haproxy_metrics ( server_ip , hostname , time_range )
2020-07-01 20:39:15 +00:00
2021-04-17 17:38:08 +00:00
if form . getvalue ( ' new_http_metrics ' ) :
2023-01-24 07:34:14 +00:00
import modules . roxywi . metrics as metric
server_ip = common . is_ip_or_dns ( form . getvalue ( ' server ' ) )
hostname = sql . get_hostname_by_server_ip ( server_ip )
2022-12-06 07:23:17 +00:00
time_range = common . checkAjaxInput ( form . getvalue ( ' time_range ' ) )
2023-01-24 07:34:14 +00:00
metric . haproxy_http_metrics ( server_ip , hostname , time_range )
2021-04-17 17:38:08 +00:00
2022-07-03 06:11:34 +00:00
if any ( ( form . getvalue ( ' new_nginx_metrics ' ) , form . getvalue ( ' new_apache_metrics ' ) , form . getvalue ( ' new_waf_metrics ' ) ) ) :
2023-01-24 07:34:14 +00:00
import modules . roxywi . metrics as metric
server_ip = common . is_ip_or_dns ( form . getvalue ( ' server ' ) )
hostname = sql . get_hostname_by_server_ip ( server_ip )
2022-12-06 07:23:17 +00:00
time_range = common . checkAjaxInput ( form . getvalue ( ' time_range ' ) )
2022-07-25 08:48:11 +00:00
service = ' '
2022-07-03 06:11:34 +00:00
if form . getvalue ( ' new_nginx_metrics ' ) :
2022-07-25 08:48:11 +00:00
service = ' nginx '
2022-07-03 06:11:34 +00:00
elif form . getvalue ( ' new_apache_metrics ' ) :
2022-07-25 08:48:11 +00:00
service = ' apache '
2022-07-03 06:11:34 +00:00
elif form . getvalue ( ' new_waf_metrics ' ) :
2022-07-25 08:48:11 +00:00
service = ' waf '
2023-01-24 07:34:14 +00:00
metric . service_metrics ( server_ip , hostname , service , time_range )
2021-08-15 09:02:12 +00:00
2018-08-08 12:06:23 +00:00
if form . getvalue ( ' get_hap_v ' ) :
2022-12-06 07:23:17 +00:00
print ( service_common . check_haproxy_version ( serv ) )
2020-07-01 20:39:15 +00:00
2023-01-02 20:01:20 +00:00
if form . getvalue ( ' get_service_v ' ) :
service = common . checkAjaxInput ( form . getvalue ( ' get_service_v ' ) )
server_ip = common . is_ip_or_dns ( serv )
2022-01-18 11:59:04 +00:00
2023-01-02 20:01:20 +00:00
service_common . show_service_version ( server_ip , service )
2022-01-18 11:59:04 +00:00
if form . getvalue ( ' get_keepalived_v ' ) :
2022-02-16 14:13:16 +00:00
cmd = [ " sudo /usr/sbin/keepalived -v 2>&1|head -1|awk ' { print $2} ' " ]
2022-11-17 07:34:58 +00:00
print ( server_mod . ssh_command ( serv , cmd ) )
2020-03-27 21:16:04 +00:00
if form . getvalue ( ' get_exporter_v ' ) :
2022-11-17 07:34:58 +00:00
print ( service_common . get_exp_version ( serv , form . getvalue ( ' get_exporter_v ' ) ) )
2020-07-01 20:39:15 +00:00
2018-08-09 12:11:10 +00:00
if form . getvalue ( ' bwlists ' ) :
2022-11-17 07:34:58 +00:00
color = common . checkAjaxInput ( form . getvalue ( ' color ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' group ' ) )
bwlists = common . checkAjaxInput ( form . getvalue ( ' bwlists ' ) )
2022-10-17 10:22:58 +00:00
2023-03-08 13:15:15 +00:00
add_mod . get_bwlist ( color , group , bwlists )
2020-07-01 20:39:15 +00:00
2018-08-09 12:11:10 +00:00
if form . getvalue ( ' bwlists_create ' ) :
2023-03-08 13:15:15 +00:00
list_name = common . checkAjaxInput ( form . getvalue ( ' bwlists_create ' ) )
2022-11-17 07:34:58 +00:00
color = common . checkAjaxInput ( form . getvalue ( ' color ' ) )
2023-03-08 13:15:15 +00:00
group = common . checkAjaxInput ( form . getvalue ( ' group ' ) )
2023-03-08 13:21:16 +00:00
add_mod . create_bwlist ( serv , list_name , color , group )
2020-07-01 20:39:15 +00:00
2018-08-09 12:11:10 +00:00
if form . getvalue ( ' bwlists_save ' ) :
2022-11-17 07:34:58 +00:00
color = common . checkAjaxInput ( form . getvalue ( ' color ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' group ' ) )
bwlists_save = common . checkAjaxInput ( form . getvalue ( ' bwlists_save ' ) )
2023-03-08 13:15:15 +00:00
list_con = form . getvalue ( ' bwlists_content ' )
action = common . checkAjaxInput ( form . getvalue ( ' bwlists_restart ' ) )
2020-09-26 17:37:14 +00:00
2023-03-08 13:15:15 +00:00
add_mod . save_bwlist ( bwlists_save , list_con , color , group , serv , action )
2020-07-01 20:39:15 +00:00
2020-12-04 03:51:31 +00:00
if form . getvalue ( ' bwlists_delete ' ) :
2022-12-06 07:23:17 +00:00
color = common . checkAjaxInput ( form . getvalue ( ' color ' ) )
2023-03-08 13:15:15 +00:00
list_name = common . checkAjaxInput ( form . getvalue ( ' bwlists_delete ' ) )
2022-12-06 07:23:17 +00:00
group = common . checkAjaxInput ( form . getvalue ( ' group ' ) )
2020-12-04 03:51:31 +00:00
2023-03-08 13:15:15 +00:00
add_mod . delete_bwlist ( list_name , color , group , serv )
2020-12-04 03:51:31 +00:00
2018-08-09 12:11:10 +00:00
if form . getvalue ( ' get_lists ' ) :
2022-11-17 07:34:58 +00:00
group = common . checkAjaxInput ( form . getvalue ( ' group ' ) )
color = common . checkAjaxInput ( form . getvalue ( ' color ' ) )
2023-03-08 13:15:15 +00:00
add_mod . get_bwlists_for_autocomplete ( color , group )
2020-07-01 20:39:15 +00:00
2018-11-08 08:49:03 +00:00
if form . getvalue ( ' get_ldap_email ' ) :
2023-03-08 13:15:15 +00:00
import modules . roxywi . user as roxywi_user
2020-09-26 17:37:14 +00:00
2023-03-08 13:15:15 +00:00
roxywi_user . get_ldap_email ( )
2019-09-10 05:44:02 +00:00
if form . getvalue ( ' change_waf_mode ' ) :
2022-12-06 19:37:45 +00:00
import modules . roxywi . waf as roxy_waf
2022-08-02 08:53:32 +00:00
2023-03-08 13:15:15 +00:00
roxy_waf . change_waf_mode ( )
2020-07-01 20:39:15 +00:00
2023-03-08 13:15:15 +00:00
error_mess = roxywi_common . return_error_message ( )
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' newuser ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . roxywi . user as roxywi_user
2020-09-26 17:37:14 +00:00
2022-12-22 19:19:43 +00:00
email = common . checkAjaxInput ( form . getvalue ( ' newemail ' ) )
password = common . checkAjaxInput ( form . getvalue ( ' newpassword ' ) )
role = common . checkAjaxInput ( form . getvalue ( ' newrole ' ) )
new_user = common . checkAjaxInput ( form . getvalue ( ' newusername ' ) )
page = common . checkAjaxInput ( form . getvalue ( ' page ' ) )
activeuser = common . checkAjaxInput ( form . getvalue ( ' activeuser ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' newgroupuser ' ) )
2023-02-14 16:46:41 +00:00
lang = roxywi_common . get_user_lang ( )
2022-12-22 19:19:43 +00:00
if roxywi_user . create_user ( new_user , email , password , role , activeuser , group ) :
env = Environment ( loader = FileSystemLoader ( ' templates/ ' ) , autoescape = True )
template = env . get_template ( ' ajax/new_user.html ' )
template = template . render ( users = sql . select_users ( user = new_user ) ,
groups = sql . select_groups ( ) ,
page = page ,
roles = sql . select_roles ( ) ,
2023-02-14 16:46:41 +00:00
adding = 1 ,
lang = lang )
2022-12-22 19:19:43 +00:00
print ( template )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' userdel ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . roxywi . user as roxywi_user
roxywi_user . delete_user ( )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' updateuser ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . roxywi . user as roxywi_user
2020-09-26 17:37:14 +00:00
2022-12-04 18:43:25 +00:00
roxywi_user . update_user ( )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' updatepassowrd ' ) is not None :
2022-12-04 18:43:25 +00:00
import modules . roxywi . user as roxywi_user
2022-08-02 08:53:32 +00:00
2022-12-04 18:43:25 +00:00
roxywi_user . update_user_password ( )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' newserver ' ) is not None :
2022-12-06 19:37:45 +00:00
hostname = common . checkAjaxInput ( form . getvalue ( ' servername ' ) )
2023-01-24 07:34:14 +00:00
ip = common . is_ip_or_dns ( form . getvalue ( ' newip ' ) )
2022-12-06 19:37:45 +00:00
group = common . checkAjaxInput ( form . getvalue ( ' newservergroup ' ) )
scan_server = common . checkAjaxInput ( form . getvalue ( ' scan_server ' ) )
typeip = common . checkAjaxInput ( form . getvalue ( ' typeip ' ) )
haproxy = common . checkAjaxInput ( form . getvalue ( ' haproxy ' ) )
nginx = common . checkAjaxInput ( form . getvalue ( ' nginx ' ) )
apache = common . checkAjaxInput ( form . getvalue ( ' apache ' ) )
firewall = common . checkAjaxInput ( form . getvalue ( ' firewall ' ) )
enable = common . checkAjaxInput ( form . getvalue ( ' enable ' ) )
master = common . checkAjaxInput ( form . getvalue ( ' slave ' ) )
cred = common . checkAjaxInput ( form . getvalue ( ' cred ' ) )
page = common . checkAjaxInput ( form . getvalue ( ' page ' ) )
2020-09-26 17:37:14 +00:00
page = page . split ( " # " ) [ 0 ]
2022-12-06 19:37:45 +00:00
port = common . checkAjaxInput ( form . getvalue ( ' newport ' ) )
desc = common . checkAjaxInput ( form . getvalue ( ' desc ' ) )
2023-02-14 16:46:41 +00:00
lang = roxywi_common . get_user_lang ( )
2020-09-26 17:37:14 +00:00
2021-09-15 05:40:51 +00:00
if ip == ' ' :
print ( ' error: IP or DNS name is not valid ' )
sys . exit ( )
2022-09-28 06:38:53 +00:00
try :
2022-12-22 19:19:43 +00:00
if server_mod . create_server ( hostname , ip , group , typeip , enable , master , cred , port , desc , haproxy , nginx , apache , firewall , scan_server ) :
2022-09-28 06:38:53 +00:00
try :
2022-11-17 07:34:58 +00:00
user_subscription = roxywi_common . return_user_status ( )
2022-09-28 06:38:53 +00:00
except Exception as e :
2022-11-17 07:34:58 +00:00
user_subscription = roxywi_common . return_unsubscribed_user_status ( )
roxywi_common . logging ( ' Roxy-WI server ' , f ' Cannot get a user plan: { e } ' , roxywi = 1 )
2022-09-28 06:38:53 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates/ ' ) , autoescape = True )
template = env . get_template ( ' ajax/new_server.html ' )
template = template . render ( groups = sql . select_groups ( ) ,
servers = sql . select_servers ( server = ip ) ,
masters = sql . select_servers ( get_master_servers = 1 ) ,
sshs = sql . select_ssh ( group = group ) ,
page = page ,
2022-11-17 07:34:58 +00:00
user_status = user_subscription [ ' user_status ' ] ,
user_plan = user_subscription [ ' user_plan ' ] ,
2023-02-14 16:46:41 +00:00
adding = 1 ,
lang = lang )
2022-09-28 06:38:53 +00:00
print ( template )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ip , f ' A new server { hostname } has been created ' , roxywi = 1 , login = 1 ,
2022-09-28 06:38:53 +00:00
keep_history = 1 , service = ' server ' )
except Exception as e :
print ( e )
2020-07-01 20:39:15 +00:00
2020-02-05 08:15:57 +00:00
if form . getvalue ( ' updatehapwiserver ' ) is not None :
2020-11-16 12:31:52 +00:00
hapwi_id = form . getvalue ( ' updatehapwiserver ' )
2020-09-26 17:37:14 +00:00
active = form . getvalue ( ' active ' )
name = form . getvalue ( ' name ' )
alert = form . getvalue ( ' alert_en ' )
metrics = form . getvalue ( ' metrics ' )
2021-10-18 14:13:18 +00:00
service = form . getvalue ( ' service_name ' )
sql . update_hapwi_server ( hapwi_id , alert , metrics , active , service )
server_ip = sql . select_server_ip_by_id ( hapwi_id )
2023-01-24 07:34:14 +00:00
roxywi_common . logging ( server_ip , f ' The server { name } has been updated ' , roxywi = 1 , login = 1 , keep_history = 1 ,
2022-09-13 15:04:30 +00:00
service = service )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' updateserver ' ) is not None :
2020-09-26 17:37:14 +00:00
name = form . getvalue ( ' updateserver ' )
group = form . getvalue ( ' servergroup ' )
typeip = form . getvalue ( ' typeip ' )
haproxy = form . getvalue ( ' haproxy ' )
nginx = form . getvalue ( ' nginx ' )
2022-04-15 09:49:00 +00:00
apache = form . getvalue ( ' apache ' )
2020-11-18 04:45:34 +00:00
firewall = form . getvalue ( ' firewall ' )
2020-09-26 17:37:14 +00:00
enable = form . getvalue ( ' enable ' )
master = form . getvalue ( ' slave ' )
2020-11-16 12:31:52 +00:00
serv_id = form . getvalue ( ' id ' )
2020-09-26 17:37:14 +00:00
cred = form . getvalue ( ' cred ' )
port = form . getvalue ( ' port ' )
2021-05-16 05:27:47 +00:00
protected = form . getvalue ( ' protected ' )
2020-09-26 17:37:14 +00:00
desc = form . getvalue ( ' desc ' )
if name is None or port is None :
print ( error_mess )
else :
2022-09-13 15:04:30 +00:00
sql . update_server ( name , group , typeip , enable , master , serv_id , cred , port , desc , haproxy , nginx , apache ,
firewall , protected )
2023-01-24 07:34:14 +00:00
roxywi_common . logging ( f ' the server { name } ' , ' has been updated ' , roxywi = 1 , login = 1 )
2021-10-26 18:07:56 +00:00
server_ip = sql . select_server_ip_by_id ( serv_id )
2023-01-24 07:34:14 +00:00
roxywi_common . logging ( server_ip , f ' The server { name } has been update ' , roxywi = 1 , login = 1 ,
2021-10-26 18:07:56 +00:00
keep_history = 1 , service = ' server ' )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' serverdel ' ) is not None :
2022-12-06 18:29:14 +00:00
server_id = common . checkAjaxInput ( form . getvalue ( ' serverdel ' ) )
2023-03-08 13:15:15 +00:00
server_mod . delete_server ( server_id )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' newgroup ' ) is not None :
2022-12-06 18:29:14 +00:00
newgroup = common . checkAjaxInput ( form . getvalue ( ' groupname ' ) )
desc = common . checkAjaxInput ( form . getvalue ( ' newdesc ' ) )
2020-09-26 17:37:14 +00:00
if newgroup is None :
print ( error_mess )
else :
if sql . add_group ( newgroup , desc ) :
env = Environment ( loader = FileSystemLoader ( ' templates/ajax/ ' ) , autoescape = True )
template = env . get_template ( ' /new_group.html ' )
2020-01-18 23:50:43 +00:00
2020-09-26 17:37:14 +00:00
output_from_parsed_template = template . render ( groups = sql . select_groups ( group = newgroup ) )
print ( output_from_parsed_template )
2022-12-06 07:23:17 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , f ' A new group { newgroup } has been created ' , roxywi = 1 , login = 1 )
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' groupdel ' ) is not None :
2023-03-08 13:15:15 +00:00
import modules . roxywi . group as group_mod
group_id = common . checkAjaxInput ( form . getvalue ( ' groupdel ' ) )
group_mod . delete_group ( group_id )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' updategroup ' ) is not None :
2023-03-08 13:15:15 +00:00
import modules . roxywi . group as group_mod
2022-12-06 18:29:14 +00:00
name = common . checkAjaxInput ( form . getvalue ( ' updategroup ' ) )
2023-03-08 13:15:15 +00:00
desc = common . checkAjaxInput ( form . getvalue ( ' descript ' ) )
2022-12-06 18:29:14 +00:00
group_id = common . checkAjaxInput ( form . getvalue ( ' id ' ) )
2023-03-08 13:15:15 +00:00
group_mod . update_group ( group_id , name , desc )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' new_ssh ' ) :
2022-12-07 07:16:07 +00:00
ssh_mod . create_ssh_cred ( )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' sshdel ' ) is not None :
2022-12-07 07:16:07 +00:00
ssh_mod . delete_ssh_key ( )
2020-09-26 17:37:14 +00:00
2022-12-07 07:16:07 +00:00
if form . getvalue ( ' updatessh ' ) :
ssh_mod . update_ssh_key ( )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' ssh_cert ' ) :
2022-12-22 19:19:43 +00:00
user_group = roxywi_common . get_user_group ( )
name = common . checkAjaxInput ( form . getvalue ( ' name ' ) )
key = form . getvalue ( ' ssh_cert ' )
2022-12-23 10:29:41 +00:00
ssh_mod . upload_ssh_key ( name , user_group , key )
2020-07-01 20:39:15 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' newtelegram ' ) :
2022-12-06 21:11:41 +00:00
import modules . alerting . alerting as alerting
2022-12-06 21:04:53 +00:00
2022-12-06 18:29:14 +00:00
token = common . checkAjaxInput ( form . getvalue ( ' newtelegram ' ) )
channel = common . checkAjaxInput ( form . getvalue ( ' chanel ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' telegramgroup ' ) )
page = common . checkAjaxInput ( form . getvalue ( ' page ' ) )
2020-09-26 17:37:14 +00:00
page = page . split ( " # " ) [ 0 ]
2022-12-06 21:04:53 +00:00
alerting . add_telegram_channel ( token , channel , group , page )
2020-07-01 20:39:15 +00:00
2021-04-17 17:38:08 +00:00
if form . getvalue ( ' newslack ' ) :
2022-12-06 21:04:53 +00:00
import modules . alerting . alerting as alerting
2022-12-06 18:29:14 +00:00
token = common . checkAjaxInput ( form . getvalue ( ' newslack ' ) )
channel = common . checkAjaxInput ( form . getvalue ( ' chanel ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' slackgroup ' ) )
page = common . checkAjaxInput ( form . getvalue ( ' page ' ) )
2021-04-17 17:38:08 +00:00
page = page . split ( " # " ) [ 0 ]
2022-12-06 21:04:53 +00:00
alerting . add_slack_channel ( token , channel , group , page )
2021-04-17 17:38:08 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' telegramdel ' ) is not None :
2022-12-06 21:04:53 +00:00
import modules . alerting . alerting as alerting
channel_id = common . checkAjaxInput ( form . getvalue ( ' telegramdel ' ) )
2022-12-08 19:43:20 +00:00
alerting . delete_telegram_channel ( channel_id )
2020-07-01 20:39:15 +00:00
2021-04-17 17:38:08 +00:00
if form . getvalue ( ' slackdel ' ) is not None :
2022-12-06 21:04:53 +00:00
import modules . alerting . alerting as alerting
channel_id = common . checkAjaxInput ( form . getvalue ( ' slackdel ' ) )
2022-12-08 19:43:20 +00:00
alerting . delete_slack_channel ( channel_id )
2021-04-17 17:38:08 +00:00
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' updatetoken ' ) is not None :
2022-12-09 12:14:05 +00:00
import modules . alerting . alerting as alerting
2022-12-06 18:29:14 +00:00
token = common . checkAjaxInput ( form . getvalue ( ' updatetoken ' ) )
channel = common . checkAjaxInput ( form . getvalue ( ' updategchanel ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' updatetelegramgroup ' ) )
user_id = common . checkAjaxInput ( form . getvalue ( ' id ' ) )
2022-12-09 12:14:05 +00:00
alerting . update_telegram ( token , channel , group , user_id )
2021-04-17 17:38:08 +00:00
if form . getvalue ( ' update_slack_token ' ) is not None :
2022-12-09 12:14:05 +00:00
import modules . alerting . alerting as alerting
2022-12-06 18:29:14 +00:00
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 ' ) )
2022-12-09 12:14:05 +00:00
alerting . update_slack ( )
2020-01-18 23:50:43 +00:00
if form . getvalue ( ' updatesettings ' ) is not None :
2022-12-06 18:29:14 +00:00
settings = common . checkAjaxInput ( form . getvalue ( ' updatesettings ' ) )
val = common . checkAjaxInput ( form . getvalue ( ' val ' ) )
2022-11-17 07:34:58 +00:00
user_group = roxywi_common . get_user_group ( id = 1 )
if sql . update_setting ( settings , val , user_group ) :
roxywi_common . logging ( ' Roxy-WI server ' , f ' The { settings } setting has been changed to: { val } ' , roxywi = 1 ,
2022-09-13 15:04:30 +00:00
login = 1 )
2020-09-26 17:37:14 +00:00
print ( " Ok " )
2020-05-10 06:17:07 +00:00
2021-08-15 09:02:12 +00:00
if form . getvalue ( ' getuserservices ' ) :
2022-12-09 12:14:05 +00:00
import modules . roxywi . user as roxy_user
roxy_user . get_user_services ( )
2021-08-15 09:02:12 +00:00
2023-03-03 20:03:41 +00:00
if act == ' show_user_group_and_role ' :
import modules . roxywi . user as roxy_user
roxy_user . show_user_groups_and_roles ( )
if act == ' save_user_group_and_role ' :
2022-12-09 12:14:05 +00:00
import modules . roxywi . user as roxy_user
2020-07-01 20:39:15 +00:00
2023-03-03 20:03:41 +00:00
roxy_user . save_user_group_and_role ( )
2021-08-15 09:02:12 +00:00
if form . getvalue ( ' changeUserServicesId ' ) is not None :
2022-12-09 12:14:05 +00:00
import modules . roxywi . user as roxy_user
2021-08-15 09:02:12 +00:00
2022-12-09 12:14:05 +00:00
roxy_user . change_user_services ( )
2020-07-01 20:39:15 +00:00
2021-01-02 16:36:43 +00:00
if form . getvalue ( ' changeUserCurrentGroupId ' ) is not None :
2022-12-09 12:14:05 +00:00
import modules . roxywi . user as roxy_user
2021-01-02 16:36:43 +00:00
2022-12-09 12:14:05 +00:00
roxy_user . change_user_active_group ( )
2021-01-02 16:36:43 +00:00
2020-05-10 06:17:07 +00:00
if form . getvalue ( ' getcurrentusergroup ' ) is not None :
2022-12-09 12:14:05 +00:00
import modules . roxywi . user as roxy_user
2020-09-26 17:37:14 +00:00
cookie = http . cookies . SimpleCookie ( os . environ . get ( " HTTP_COOKIE " ) )
user_id = cookie . get ( ' uuid ' )
group = cookie . get ( ' group ' )
2022-12-09 12:14:05 +00:00
roxy_user . get_user_active_group ( user_id , group )
2020-07-15 04:16:31 +00:00
2020-09-26 17:37:14 +00:00
if form . getvalue ( ' newsmon ' ) is not None :
2022-11-17 07:34:58 +00:00
user_group = roxywi_common . get_user_group ( id = 1 )
2022-12-06 18:29:14 +00:00
server = common . checkAjaxInput ( form . getvalue ( ' newsmon ' ) )
port = common . checkAjaxInput ( form . getvalue ( ' newsmonport ' ) )
enable = common . checkAjaxInput ( form . getvalue ( ' newsmonenable ' ) )
http = common . checkAjaxInput ( form . getvalue ( ' newsmonproto ' ) )
uri = common . checkAjaxInput ( form . getvalue ( ' newsmonuri ' ) )
body = common . checkAjaxInput ( form . getvalue ( ' newsmonbody ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' newsmongroup ' ) )
desc = common . checkAjaxInput ( form . getvalue ( ' newsmondescription ' ) )
telegram = common . checkAjaxInput ( form . getvalue ( ' newsmontelegram ' ) )
slack = common . checkAjaxInput ( form . getvalue ( ' newsmonslack ' ) )
2020-09-26 17:37:14 +00:00
try :
port = int ( port )
2020-11-02 17:01:08 +00:00
except Exception :
2020-09-26 17:37:14 +00:00
print ( ' SMON error: port must number ' )
sys . exit ( )
if port > 65535 or port < 0 :
print ( ' SMON error: port must be 0-65535 ' )
sys . exit ( )
if port == 80 and http == ' https ' :
print ( ' SMON error: Cannot be HTTPS with 80 port ' )
sys . exit ( )
if port == 443 and http == ' http ' :
print ( ' SMON error: Cannot be HTTP with 443 port ' )
sys . exit ( )
2022-02-16 07:46:30 +00:00
last_id = sql . insert_smon ( server , port , enable , http , uri , body , group , desc , telegram , slack , user_group )
2021-08-23 10:25:00 +00:00
if last_id :
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2020-09-26 17:37:14 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates ' ) , autoescape = True )
template = env . get_template ( ' ajax/show_new_smon.html ' )
template = template . render (
2021-08-23 10:25:00 +00:00
smon = sql . select_smon_by_id ( last_id ) ,
2022-02-16 07:46:30 +00:00
telegrams = sql . get_user_telegram_by_group ( user_group ) ,
2023-02-13 14:45:45 +00:00
slacks = sql . get_user_slack_by_group ( user_group ) ,
lang = lang
)
2020-09-26 17:37:14 +00:00
print ( template )
2023-02-13 14:45:45 +00:00
roxywi_common . logging ( ' SMON ' , f ' Has been add a new server { server } to SMON ' , roxywi = 1 , login = 1 )
2020-07-15 04:16:31 +00:00
if form . getvalue ( ' smondel ' ) is not None :
2022-11-17 07:34:58 +00:00
user_group = roxywi_common . get_user_group ( id = 1 )
2022-12-06 18:29:14 +00:00
smon_id = common . checkAjaxInput ( form . getvalue ( ' smondel ' ) )
2020-07-15 04:16:31 +00:00
2022-11-17 07:34:58 +00:00
if roxywi_common . check_user_group ( ) :
2022-09-28 06:38:53 +00:00
try :
if sql . delete_smon ( smon_id , user_group ) :
print ( ' Ok ' )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' SMON ' , ' Has been delete server from SMON ' , roxywi = 1 , login = 1 )
2022-09-28 06:38:53 +00:00
except Exception as e :
print ( e )
2020-07-15 04:16:31 +00:00
if form . getvalue ( ' showsmon ' ) is not None :
2022-11-17 07:34:58 +00:00
user_group = roxywi_common . get_user_group ( id = 1 )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2022-12-06 18:29:14 +00:00
sort = common . checkAjaxInput ( form . getvalue ( ' sort ' ) )
2020-09-26 17:37:14 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates ' ) , autoescape = True )
template = env . get_template ( ' ajax/smon_dashboard.html ' )
2023-02-13 14:45:45 +00:00
template = template . render ( smon = sql . smon_list ( user_group ) , sort = sort , lang = lang , update = 1 )
2020-09-26 17:37:14 +00:00
print ( template )
2020-07-15 04:16:31 +00:00
if form . getvalue ( ' updateSmonIp ' ) is not None :
2022-12-06 18:29:14 +00:00
smon_id = common . checkAjaxInput ( form . getvalue ( ' id ' ) )
ip = common . checkAjaxInput ( form . getvalue ( ' updateSmonIp ' ) )
port = common . checkAjaxInput ( form . getvalue ( ' updateSmonPort ' ) )
en = common . checkAjaxInput ( form . getvalue ( ' updateSmonEn ' ) )
http = common . checkAjaxInput ( form . getvalue ( ' updateSmonHttp ' ) )
body = common . checkAjaxInput ( form . getvalue ( ' updateSmonBody ' ) )
telegram = common . checkAjaxInput ( form . getvalue ( ' updateSmonTelegram ' ) )
slack = common . checkAjaxInput ( form . getvalue ( ' updateSmonSlack ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' updateSmonGroup ' ) )
desc = common . checkAjaxInput ( form . getvalue ( ' updateSmonDesc ' ) )
2020-09-26 17:37:14 +00:00
try :
port = int ( port )
2020-11-02 17:01:08 +00:00
except Exception :
2020-09-26 17:37:14 +00:00
print ( ' SMON error: port must number ' )
sys . exit ( )
if port > 65535 or port < 0 :
print ( ' SMON error: port must be 0-65535 ' )
sys . exit ( )
if port == 80 and http == ' https ' :
print ( ' SMON error: Cannot be https with 80 port ' )
sys . exit ( )
if port == 443 and http == ' http ' :
print ( ' SMON error: Cannot be HTTP with 443 port ' )
sys . exit ( )
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2022-09-28 06:38:53 +00:00
try :
if sql . update_smon ( smon_id , ip , port , body , telegram , slack , group , desc , en ) :
print ( " Ok " )
2023-02-13 14:45:45 +00:00
roxywi_common . logging ( ' SMON ' , f ' Has been update the server { ip } to SMON ' , roxywi = 1 , login = 1 )
2022-09-28 06:38:53 +00:00
except Exception as e :
print ( e )
2020-07-15 04:16:31 +00:00
if form . getvalue ( ' showBytes ' ) is not None :
2022-12-25 09:12:13 +00:00
import modules . roxywi . overview as roxywi_overview
server_ip = common . is_ip_or_dns ( form . getvalue ( ' showBytes ' ) )
roxywi_overview . show_haproxy_binout ( server_ip )
2020-09-02 04:26:36 +00:00
2020-12-04 03:51:31 +00:00
if form . getvalue ( ' nginxConnections ' ) :
2022-12-25 09:12:13 +00:00
import modules . roxywi . overview as roxywi_overview
server_ip = common . is_ip_or_dns ( form . getvalue ( ' nginxConnections ' ) )
roxywi_overview . show_nginx_connections ( server_ip )
2022-10-17 10:22:58 +00:00
if form . getvalue ( ' apachekBytes ' ) :
2022-12-25 09:12:13 +00:00
import modules . roxywi . overview as roxywi_overview
server_ip = common . is_ip_or_dns ( form . getvalue ( ' apachekBytes ' ) )
roxywi_overview . show_apache_bytes ( server_ip )
2020-12-04 03:51:31 +00:00
2023-01-17 18:23:53 +00:00
if form . getvalue ( ' keepalivedBecameMaster ' ) :
import modules . roxywi . overview as roxywi_overview
server_ip = common . is_ip_or_dns ( form . getvalue ( ' keepalivedBecameMaster ' ) )
roxywi_overview . keepalived_became_master ( server_ip )
2020-09-02 04:26:36 +00:00
if form . getvalue ( ' waf_rule_id ' ) :
2022-12-06 19:37:45 +00:00
import modules . roxywi . waf as roxy_waf
2020-09-26 17:37:14 +00:00
2022-12-06 19:37:45 +00:00
roxy_waf . switch_waf_rule ( serv )
2020-09-15 05:56:43 +00:00
2022-08-02 08:53:32 +00:00
if form . getvalue ( ' new_waf_rule ' ) :
2022-12-06 19:37:45 +00:00
import modules . roxywi . waf as roxy_waf
2022-08-02 08:53:32 +00:00
2022-12-06 19:37:45 +00:00
roxy_waf . create_waf_rule ( serv )
2022-08-02 08:53:32 +00:00
2020-09-15 05:56:43 +00:00
if form . getvalue ( ' lets_domain ' ) :
2022-12-06 18:29:14 +00:00
lets_domain = common . checkAjaxInput ( form . getvalue ( ' lets_domain ' ) )
lets_email = common . checkAjaxInput ( form . getvalue ( ' lets_email ' ) )
2020-09-26 17:37:14 +00:00
2023-03-08 13:21:16 +00:00
add_mod . get_le_cert ( serv , lets_domain , lets_email )
2020-10-09 15:56:16 +00:00
if form . getvalue ( ' uploadovpn ' ) :
2022-11-17 07:34:58 +00:00
name = common . checkAjaxInput ( form . getvalue ( ' ovpnname ' ) )
2020-10-09 15:56:16 +00:00
2022-12-06 18:29:14 +00:00
ovpn_file = f " { os . path . dirname ( ' /tmp/ ' ) } / { name } .ovpn "
2020-10-09 15:56:16 +00:00
try :
with open ( ovpn_file , " w " ) as conf :
conf . write ( form . getvalue ( ' uploadovpn ' ) )
except IOError as e :
print ( str ( e ) )
print ( ' error: Can \' t save ovpn file ' )
else :
print ( ' success: ovpn file has been saved </div> ' )
try :
cmd = ' sudo openvpn3 config-import --config %s --persistent ' % ovpn_file
2022-11-17 07:34:58 +00:00
server_mod . subprocess_execute ( cmd )
2020-10-09 15:56:16 +00:00
except IOError as e :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , e . args [ 0 ] , roxywi = 1 )
2020-10-09 15:56:16 +00:00
try :
cmd = ' sudo cp %s /etc/openvpn3/ %s .conf ' % ( ovpn_file , name )
2022-11-17 07:34:58 +00:00
server_mod . subprocess_execute ( cmd )
2020-10-09 15:56:16 +00:00
except IOError as e :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , e . args [ 0 ] , roxywi = 1 )
2020-10-09 15:56:16 +00:00
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( " Roxy-WI server " , " has been uploaded a new ovpn file %s " % ovpn_file , roxywi = 1 , login = 1 )
2020-10-09 15:56:16 +00:00
if form . getvalue ( ' openvpndel ' ) is not None :
2022-11-17 07:34:58 +00:00
openvpndel = common . checkAjaxInput ( form . getvalue ( ' openvpndel ' ) )
2020-10-09 15:56:16 +00:00
2022-12-06 18:29:14 +00:00
cmd = f ' sudo openvpn3 config-remove --config /tmp/ { openvpndel } .ovpn --force '
2020-10-09 15:56:16 +00:00
try :
2022-11-17 07:34:58 +00:00
server_mod . subprocess_execute ( cmd )
2020-10-09 15:56:16 +00:00
print ( " Ok " )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( openvpndel , ' has deleted the ovpn file ' , roxywi = 1 , login = 1 )
2020-10-09 15:56:16 +00:00
except IOError as e :
print ( e . args [ 0 ] )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , e . args [ 0 ] , roxywi = 1 )
2020-10-09 15:56:16 +00:00
if form . getvalue ( ' actionvpn ' ) is not None :
2022-11-17 07:34:58 +00:00
openvpn = common . checkAjaxInput ( form . getvalue ( ' openvpnprofile ' ) )
action = common . checkAjaxInput ( form . getvalue ( ' actionvpn ' ) )
2020-10-09 15:56:16 +00:00
if action == ' start ' :
cmd = ' sudo openvpn3 session-start --config /tmp/ %s .ovpn ' % openvpn
elif action == ' restart ' :
cmd = ' sudo openvpn3 session-manage --config /tmp/ %s .ovpn --restart ' % openvpn
elif action == ' disconnect ' :
cmd = ' sudo openvpn3 session-manage --config /tmp/ %s .ovpn --disconnect ' % openvpn
try :
2022-11-17 07:34:58 +00:00
server_mod . subprocess_execute ( cmd )
2020-10-09 15:56:16 +00:00
print ( " success: The " + openvpn + " has been " + action + " ed " )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( openvpn , ' has ' + action + ' the ovpn session ' , roxywi = 1 , login = 1 )
2020-10-09 15:56:16 +00:00
except IOError as e :
print ( e . args [ 0 ] )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , e . args [ 0 ] , roxywi = 1 )
2020-11-02 17:01:08 +00:00
if form . getvalue ( ' scan_ports ' ) is not None :
2022-11-17 07:34:58 +00:00
serv_id = common . checkAjaxInput ( form . getvalue ( ' scan_ports ' ) )
2020-11-02 17:01:08 +00:00
server = sql . select_servers ( id = serv_id )
2021-12-03 10:39:15 +00:00
ip = ' '
2020-11-02 17:01:08 +00:00
for s in server :
ip = s [ 2 ]
cmd = " sudo nmap -sS %s |grep -E ' ^[[:digit:]] ' |sed ' s/ */ /g ' " % ip
2021-01-10 04:48:18 +00:00
cmd1 = " sudo nmap -sS %s |head -5|tail -2 " % ip
2020-11-02 17:01:08 +00:00
2022-11-17 07:34:58 +00:00
stdout , stderr = server_mod . subprocess_execute ( cmd )
stdout1 , stderr1 = server_mod . subprocess_execute ( cmd1 )
2020-11-02 17:01:08 +00:00
if stderr != ' ' :
print ( stderr )
else :
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2020-11-02 17:01:08 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates ' ) , autoescape = True )
template = env . get_template ( ' ajax/scan_ports.html ' )
2023-02-13 14:45:45 +00:00
template = template . render ( ports = stdout , info = stdout1 , lang = lang )
2020-11-02 17:01:08 +00:00
print ( template )
2020-12-04 03:51:31 +00:00
if form . getvalue ( ' viewFirewallRules ' ) is not None :
2022-12-07 13:49:42 +00:00
server_mod . show_firewalld_rules ( )
2020-12-26 09:08:17 +00:00
if form . getvalue ( ' geoipserv ' ) is not None :
2022-12-06 18:29:14 +00:00
serv = common . checkAjaxInput ( form . getvalue ( ' geoipserv ' ) )
service = common . checkAjaxInput ( form . getvalue ( ' geoip_service ' ) )
2022-10-07 14:40:45 +00:00
if service in ( ' haproxy ' , ' nginx ' ) :
2022-11-17 07:34:58 +00:00
service_dir = common . return_nice_path ( sql . get_setting ( f ' { service } _dir ' ) )
2020-12-26 09:08:17 +00:00
2022-12-07 13:49:42 +00:00
cmd = [ f " ls { service_dir } geoip/ " ]
2022-11-17 07:34:58 +00:00
print ( server_mod . ssh_command ( serv , cmd ) )
2022-10-07 14:40:45 +00:00
else :
print ( ' warning: select a server and service first ' )
2021-01-09 15:42:08 +00:00
2021-04-03 04:10:37 +00:00
if form . getvalue ( ' nettools_icmp_server_from ' ) :
2023-03-08 13:15:15 +00:00
import modules . roxywi . nettools as nettools
2021-11-02 20:57:54 +00:00
2023-03-08 13:15:15 +00:00
nettools . ping_from_server ( )
2021-04-03 04:10:37 +00:00
if form . getvalue ( ' nettools_telnet_server_from ' ) :
2023-03-08 13:15:15 +00:00
import modules . roxywi . nettools as nettools
2021-11-02 20:57:54 +00:00
2023-03-08 13:15:15 +00:00
nettools . telnet_from_server ( )
2021-04-03 04:10:37 +00:00
if form . getvalue ( ' nettools_nslookup_server_from ' ) :
2023-03-08 13:15:15 +00:00
import modules . roxywi . nettools as nettools
2021-04-03 04:10:37 +00:00
2023-03-08 13:15:15 +00:00
nettools . nslookup_from_server ( )
2021-04-03 04:10:37 +00:00
if form . getvalue ( ' portscanner_history_server_id ' ) :
2022-12-06 18:29:14 +00:00
server_id = common . checkAjaxInput ( form . getvalue ( ' portscanner_history_server_id ' ) )
enabled = common . checkAjaxInput ( form . getvalue ( ' portscanner_enabled ' ) )
notify = common . checkAjaxInput ( form . getvalue ( ' portscanner_notify ' ) )
history = common . checkAjaxInput ( form . getvalue ( ' portscanner_history ' ) )
2022-10-30 07:42:15 +00:00
user_group_id = [ server [ 3 ] for server in sql . select_servers ( id = server_id ) ]
2021-04-03 04:10:37 +00:00
2022-09-28 06:38:53 +00:00
try :
2022-11-17 07:34:58 +00:00
if sql . insert_port_scanner_settings ( server_id , user_group_id [ 0 ] , enabled , notify , history ) :
2021-04-03 04:10:37 +00:00
print ( ' ok ' )
2022-09-28 06:38:53 +00:00
else :
2022-11-17 07:34:58 +00:00
if sql . update_port_scanner_settings ( server_id , user_group_id [ 0 ] , enabled , notify , history ) :
2022-09-28 06:38:53 +00:00
print ( ' ok ' )
except Exception as e :
print ( e )
2021-04-03 04:10:37 +00:00
2021-01-22 04:01:08 +00:00
if form . getvalue ( ' show_versions ' ) :
2022-11-17 07:34:58 +00:00
import modules . roxywi . roxy as roxy
2021-01-22 04:01:08 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates ' ) )
template = env . get_template ( ' ajax/check_version.html ' )
2022-11-17 07:34:58 +00:00
template = template . render ( versions = roxy . versions ( ) )
2021-02-03 19:25:37 +00:00
print ( template )
if form . getvalue ( ' get_group_name_by_id ' ) :
print ( sql . get_group_name_by_id ( form . getvalue ( ' get_group_name_by_id ' ) ) )
2021-02-15 06:10:00 +00:00
2022-08-02 08:53:32 +00:00
if any ( ( form . getvalue ( ' do_new_name ' ) , form . getvalue ( ' aws_new_name ' ) , form . getvalue ( ' gcore_new_name ' ) ) ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2021-02-15 06:10:00 +00:00
is_add = False
if form . getvalue ( ' do_new_name ' ) :
2022-12-06 18:29:14 +00:00
provider_name = common . checkAjaxInput ( form . getvalue ( ' do_new_name ' ) )
provider_group = common . checkAjaxInput ( form . getvalue ( ' do_new_group ' ) )
provider_token = common . checkAjaxInput ( form . getvalue ( ' do_new_token ' ) )
2021-02-15 06:10:00 +00:00
if sql . add_provider_do ( provider_name , provider_group , provider_token ) :
is_add = True
elif form . getvalue ( ' aws_new_name ' ) :
2022-12-06 18:29:14 +00:00
provider_name = common . checkAjaxInput ( form . getvalue ( ' aws_new_name ' ) )
provider_group = common . checkAjaxInput ( form . getvalue ( ' aws_new_group ' ) )
provider_token = common . checkAjaxInput ( form . getvalue ( ' aws_new_key ' ) )
provider_secret = common . checkAjaxInput ( form . getvalue ( ' aws_new_secret ' ) )
2021-02-15 06:10:00 +00:00
if sql . add_provider_aws ( provider_name , provider_group , provider_token , provider_secret ) :
is_add = True
2021-03-16 14:38:12 +00:00
elif form . getvalue ( ' gcore_new_name ' ) :
2022-12-06 18:29:14 +00:00
provider_name = common . checkAjaxInput ( form . getvalue ( ' gcore_new_name ' ) )
provider_group = common . checkAjaxInput ( form . getvalue ( ' gcore_new_group ' ) )
provider_token = common . checkAjaxInput ( form . getvalue ( ' gcore_new_user ' ) )
provider_pass = common . checkAjaxInput ( form . getvalue ( ' gcore_new_pass ' ) )
2021-03-16 14:38:12 +00:00
if sql . add_provider_gcore ( provider_name , provider_group , provider_token , provider_pass ) :
is_add = True
2021-02-15 06:10:00 +00:00
if is_add :
cookie = http . cookies . SimpleCookie ( os . environ . get ( " HTTP_COOKIE " ) )
user_uuid = cookie . get ( ' uuid ' )
2023-03-03 20:03:41 +00:00
group_id = cookie . get ( ' group ' )
group_id = int ( group_id . value )
role_id = sql . get_user_role_by_uuid ( user_uuid . value , group_id )
2022-08-02 08:53:32 +00:00
params = sql . select_provisioning_params ( )
providers = sql . select_providers ( provider_group , key = provider_token )
2021-02-15 06:10:00 +00:00
if role_id == 1 :
groups = sql . select_groups ( )
else :
groups = ' '
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2021-02-15 06:10:00 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates ' ) , autoescape = True )
template = env . get_template ( ' ajax/provisioning/providers.html ' )
2022-09-13 15:04:30 +00:00
template = template . render ( providers = providers , role = role_id , groups = groups , user_group = provider_group ,
2023-02-13 14:45:45 +00:00
adding = 1 , params = params , lang = lang )
2021-02-15 06:10:00 +00:00
print ( template )
if form . getvalue ( ' providerdel ' ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2022-09-28 06:38:53 +00:00
try :
2022-12-06 19:37:45 +00:00
if sql . delete_provider ( common . checkAjaxInput ( form . getvalue ( ' providerdel ' ) ) ) :
2022-09-28 06:38:53 +00:00
print ( ' Ok ' )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , ' Provider has been deleted ' , provisioning = 1 )
2022-09-28 06:38:53 +00:00
except Exception as e :
print ( e )
2021-02-15 06:10:00 +00:00
2021-03-16 14:38:12 +00:00
if form . getvalue ( ' awsinit ' ) or form . getvalue ( ' doinit ' ) or form . getvalue ( ' gcoreinitserver ' ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2021-02-23 04:50:23 +00:00
cmd = ' cd scripts/terraform/ && sudo terraform init -upgrade -no-color '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
2022-05-25 13:55:45 +00:00
print ( ' error: ' + stderr )
2021-02-15 06:10:00 +00:00
else :
if " Terraform initialized in an empty directory " in output [ 0 ] :
print ( ' error: There is not need modules ' )
elif " mkdir .terraform: permission denied " in output [ 0 ] :
print ( ' error: Cannot init. Check permission to folder ' )
print ( output [ 0 ] )
if form . getvalue ( ' awsvars ' ) or form . getvalue ( ' awseditvars ' ) :
if form . getvalue ( ' awsvars ' ) :
2022-12-06 18:29:14 +00:00
awsvars = common . checkAjaxInput ( form . getvalue ( ' awsvars ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' aws_create_group ' ) )
provider = common . checkAjaxInput ( form . getvalue ( ' aws_create_provider ' ) )
region = common . checkAjaxInput ( form . getvalue ( ' aws_create_regions ' ) )
size = common . checkAjaxInput ( form . getvalue ( ' aws_create_size ' ) )
oss = common . checkAjaxInput ( form . getvalue ( ' aws_create_oss ' ) )
ssh_name = common . checkAjaxInput ( form . getvalue ( ' aws_create_ssh_name ' ) )
volume_size = common . checkAjaxInput ( form . getvalue ( ' aws_create_volume_size ' ) )
volume_type = common . checkAjaxInput ( form . getvalue ( ' aws_create_volume_type ' ) )
delete_on_termination = common . checkAjaxInput ( form . getvalue ( ' aws_create_delete_on_termination ' ) )
floating_ip = common . checkAjaxInput ( form . getvalue ( ' aws_create_floating_net ' ) )
firewall = common . checkAjaxInput ( form . getvalue ( ' aws_create_firewall ' ) )
public_ip = common . checkAjaxInput ( form . getvalue ( ' aws_create_public_ip ' ) )
2021-02-15 06:10:00 +00:00
elif form . getvalue ( ' awseditvars ' ) :
2022-12-06 18:29:14 +00:00
awsvars = common . checkAjaxInput ( form . getvalue ( ' awseditvars ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' aws_editing_group ' ) )
provider = common . checkAjaxInput ( form . getvalue ( ' aws_editing_provider ' ) )
region = common . checkAjaxInput ( form . getvalue ( ' aws_editing_regions ' ) )
size = common . checkAjaxInput ( form . getvalue ( ' aws_editing_size ' ) )
oss = common . checkAjaxInput ( form . getvalue ( ' aws_editing_oss ' ) )
ssh_name = common . checkAjaxInput ( form . getvalue ( ' aws_editing_ssh_name ' ) )
volume_size = common . checkAjaxInput ( form . getvalue ( ' aws_editing_volume_size ' ) )
volume_type = common . checkAjaxInput ( form . getvalue ( ' aws_editing_volume_type ' ) )
delete_on_termination = common . checkAjaxInput ( form . getvalue ( ' aws_editing_delete_on_termination ' ) )
floating_ip = common . checkAjaxInput ( form . getvalue ( ' aws_editing_floating_net ' ) )
firewall = common . checkAjaxInput ( form . getvalue ( ' aws_editing_firewall ' ) )
public_ip = common . checkAjaxInput ( form . getvalue ( ' aws_editing_public_ip ' ) )
2021-02-15 06:10:00 +00:00
aws_key , aws_secret = sql . select_aws_provider ( provider )
2022-10-29 19:06:45 +00:00
cmd = f ' cd scripts/terraform/ && sudo ansible-playbook var_generator.yml -i inventory -e " region= { region } ' \
f ' group= { group } size= { size } os= { oss } floating_ip= { floating_ip } volume_size= { volume_size } server_name= { awsvars } ' \
f ' AWS_ACCESS_KEY= { aws_key } AWS_SECRET_KEY= { aws_secret } firewall= { firewall } public_ip= { public_ip } ' \
f ' ssh_name= { ssh_name } delete_on_termination= { delete_on_termination } volume_type= { volume_type } cloud=aws " '
2021-02-15 06:10:00 +00:00
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
print ( ' error: ' + stderr )
else :
print ( ' ok ' )
2022-03-02 20:09:39 +00:00
2021-02-15 06:10:00 +00:00
if form . getvalue ( ' dovars ' ) or form . getvalue ( ' doeditvars ' ) :
if form . getvalue ( ' dovars ' ) :
dovars = form . getvalue ( ' dovars ' )
group = form . getvalue ( ' do_create_group ' )
provider = form . getvalue ( ' do_create_provider ' )
region = form . getvalue ( ' do_create_regions ' )
size = form . getvalue ( ' do_create_size ' )
oss = form . getvalue ( ' do_create_oss ' )
ssh_name = form . getvalue ( ' do_create_ssh_name ' )
ssh_ids = form . getvalue ( ' do_create_ssh_ids ' )
backup = form . getvalue ( ' do_create_backup ' )
privet_net = form . getvalue ( ' do_create_private_net ' )
floating_ip = form . getvalue ( ' do_create_floating_net ' )
monitoring = form . getvalue ( ' do_create_monitoring ' )
firewall = form . getvalue ( ' do_create_firewall ' )
elif form . getvalue ( ' doeditvars ' ) :
dovars = form . getvalue ( ' doeditvars ' )
group = form . getvalue ( ' do_edit_group ' )
provider = form . getvalue ( ' do_edit_provider ' )
region = form . getvalue ( ' do_edit_regions ' )
size = form . getvalue ( ' do_edit_size ' )
oss = form . getvalue ( ' do_edit_oss ' )
ssh_name = form . getvalue ( ' do_edit_ssh_name ' )
ssh_ids = form . getvalue ( ' do_edit_ssh_ids ' )
backup = form . getvalue ( ' do_edit_backup ' )
privet_net = form . getvalue ( ' do_edit_private_net ' )
floating_ip = form . getvalue ( ' do_edit_floating_net ' )
monitoring = form . getvalue ( ' do_edit_monitoring ' )
firewall = form . getvalue ( ' do_edit_firewall ' )
token = sql . select_do_provider ( provider )
2022-10-29 19:06:45 +00:00
cmd = f ' cd scripts/terraform/ && sudo ansible-playbook var_generator.yml -i inventory -e " region= { region } ' \
f ' group= { group } size= { size } os= { oss } floating_ip= { floating_ip } ssh_ids= { ssh_ids } server_name= { dovars } ' \
f ' token= { token } backup= { backup } monitoring= { monitoring } privet_net= { privet_net } firewall= { firewall } ' \
f ' floating_ip= { floating_ip } ssh_name= { ssh_name } cloud=do " '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
2022-10-29 19:06:45 +00:00
print ( f ' error: { stderr } ' )
2021-02-15 06:10:00 +00:00
else :
print ( cmd )
print ( output )
if form . getvalue ( ' dovalidate ' ) or form . getvalue ( ' doeditvalidate ' ) :
if form . getvalue ( ' dovalidate ' ) :
workspace = form . getvalue ( ' dovalidate ' )
group = form . getvalue ( ' do_create_group ' )
elif form . getvalue ( ' doeditvalidate ' ) :
workspace = form . getvalue ( ' doeditvalidate ' )
group = form . getvalue ( ' do_edit_group ' )
2022-10-29 19:06:45 +00:00
cmd = f ' cd scripts/terraform/ && sudo terraform plan -no-color -input=false -target=module.do_module -var-file vars/ { workspace } _ { group } _do.tfvars '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
2022-10-29 19:06:45 +00:00
print ( f ' error: { stderr } ' )
2021-02-15 06:10:00 +00:00
else :
print ( ' ok ' )
2022-03-02 20:09:39 +00:00
2021-02-15 06:10:00 +00:00
if form . getvalue ( ' doworkspace ' ) :
workspace = form . getvalue ( ' doworkspace ' )
group = form . getvalue ( ' do_create_group ' )
provider = form . getvalue ( ' do_create_provider ' )
region = form . getvalue ( ' do_create_regions ' )
size = form . getvalue ( ' do_create_size ' )
oss = form . getvalue ( ' do_create_oss ' )
ssh_name = form . getvalue ( ' do_create_ssh_name ' )
ssh_ids = form . getvalue ( ' do_create_ssh_ids ' )
backup = form . getvalue ( ' do_create_backup ' )
privet_net = form . getvalue ( ' do_create_private_net ' )
floating_ip = form . getvalue ( ' do_create_floating_net ' )
monitoring = form . getvalue ( ' do_create_monitoring ' )
firewall = form . getvalue ( ' do_create_firewall ' )
cmd = ' cd scripts/terraform/ && sudo terraform workspace new ' + workspace + ' _ ' + group + ' _do '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
stderr = stderr . strip ( )
stderr = repr ( stderr )
stderr = stderr . replace ( " ' " , " " )
stderr = stderr . replace ( " \' " , " " )
sql . update_provisioning_server_status ( ' Error ' , group , workspace , provider )
sql . update_provisioning_server_error ( stderr , group , workspace , provider )
print ( ' error: ' + stderr )
else :
2022-05-25 08:42:12 +00:00
if sql . add_server_do (
region , size , privet_net , floating_ip , ssh_ids , ssh_name , workspace , oss , firewall , monitoring ,
backup , provider , group , ' Creating '
) :
2022-11-17 07:34:58 +00:00
user_params = roxywi_common . get_users_params ( )
2021-02-15 06:10:00 +00:00
new_server = sql . select_provisioned_servers ( new = workspace , group = group , type = ' do ' )
2022-08-02 08:53:32 +00:00
params = sql . select_provisioning_params ( )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2021-02-15 06:10:00 +00:00
2021-03-16 14:38:12 +00:00
env = Environment ( extensions = [ " jinja2.ext.do " ] , loader = FileSystemLoader ( ' templates ' ) )
2021-02-15 06:10:00 +00:00
template = env . get_template ( ' ajax/provisioning/provisioned_servers.html ' )
2022-05-25 08:42:12 +00:00
template = template . render (
2023-02-13 14:45:45 +00:00
servers = new_server , groups = sql . select_groups ( ) , user_group = group , lang = lang ,
2022-11-17 07:34:58 +00:00
providers = sql . select_providers ( group ) , role = user_params [ ' role ' ] , adding = 1 , params = params
2022-05-25 08:42:12 +00:00
)
2021-02-15 06:10:00 +00:00
print ( template )
if form . getvalue ( ' doeditworkspace ' ) :
workspace = form . getvalue ( ' doeditworkspace ' )
group = form . getvalue ( ' do_edit_group ' )
provider = form . getvalue ( ' do_edit_provider ' )
region = form . getvalue ( ' do_edit_regions ' )
size = form . getvalue ( ' do_edit_size ' )
oss = form . getvalue ( ' do_edit_oss ' )
ssh_name = form . getvalue ( ' do_edit_ssh_name ' )
ssh_ids = form . getvalue ( ' do_edit_ssh_ids ' )
backup = form . getvalue ( ' do_edit_backup ' )
privet_net = form . getvalue ( ' do_edit_private_net ' )
floating_ip = form . getvalue ( ' do_edit_floating_net ' )
monitoring = form . getvalue ( ' do_edit_monitoring ' )
firewall = form . getvalue ( ' do_edit_firewall ' )
server_id = form . getvalue ( ' server_id ' )
2022-09-28 06:38:53 +00:00
try :
if sql . update_server_do (
size , privet_net , floating_ip , ssh_ids , ssh_name , oss , firewall , monitoring , backup , provider ,
group , ' Creating ' , server_id
) :
2021-02-15 06:10:00 +00:00
2022-09-28 06:38:53 +00:00
cmd = ' cd scripts/terraform/ && sudo terraform workspace select ' + workspace + ' _ ' + group + ' _do '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
2022-09-28 06:38:53 +00:00
if stderr != ' ' :
stderr = stderr . strip ( )
stderr = repr ( stderr )
stderr = stderr . replace ( " ' " , " " )
stderr = stderr . replace ( " \' " , " " )
sql . update_provisioning_server_status ( ' Error ' , group , workspace , provider )
sql . update_provisioning_server_error ( stderr , group , workspace , provider )
print ( ' error: ' + stderr )
else :
print ( cmd )
print ( output )
except Exception as e :
print ( e )
2021-02-15 06:10:00 +00:00
if form . getvalue ( ' awsvalidate ' ) or form . getvalue ( ' awseditvalidate ' ) :
if form . getvalue ( ' awsvalidate ' ) :
workspace = form . getvalue ( ' awsvalidate ' )
group = form . getvalue ( ' aws_create_group ' )
elif form . getvalue ( ' awseditvalidate ' ) :
workspace = form . getvalue ( ' awseditvalidate ' )
group = form . getvalue ( ' aws_edit_group ' )
2022-10-30 17:22:05 +00:00
cmd = f ' cd scripts/terraform/ && sudo terraform plan -no-color -input=false -target=module.aws_module -var-file vars/ { workspace } _ { group } _aws.tfvars '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
print ( ' error: ' + stderr )
else :
print ( ' ok ' )
if form . getvalue ( ' awsworkspace ' ) :
workspace = form . getvalue ( ' awsworkspace ' )
group = form . getvalue ( ' aws_create_group ' )
provider = form . getvalue ( ' aws_create_provider ' )
region = form . getvalue ( ' aws_create_regions ' )
size = form . getvalue ( ' aws_create_size ' )
oss = form . getvalue ( ' aws_create_oss ' )
ssh_name = form . getvalue ( ' aws_create_ssh_name ' )
volume_size = form . getvalue ( ' aws_create_volume_size ' )
2021-03-16 14:38:12 +00:00
volume_type = form . getvalue ( ' aws_create_volume_type ' )
2021-02-15 06:10:00 +00:00
delete_on_termination = form . getvalue ( ' aws_create_delete_on_termination ' )
floating_ip = form . getvalue ( ' aws_create_floating_net ' )
firewall = form . getvalue ( ' aws_create_firewall ' )
public_ip = form . getvalue ( ' aws_create_public_ip ' )
2022-10-30 17:22:05 +00:00
cmd = f ' cd scripts/terraform/ && sudo terraform workspace new { workspace } _ { group } _aws '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
stderr = stderr . strip ( )
stderr = repr ( stderr )
stderr = stderr . replace ( " ' " , " " )
stderr = stderr . replace ( " \' " , " " )
sql . update_provisioning_server_status ( ' Error ' , group , workspace , provider )
sql . update_provisioning_server_error ( stderr , group , workspace , provider )
print ( ' error: ' + stderr )
else :
2022-09-28 06:38:53 +00:00
try :
if sql . add_server_aws (
region , size , public_ip , floating_ip , volume_size , ssh_name , workspace , oss , firewall ,
provider , group , ' Creating ' , delete_on_termination , volume_type
) :
2022-11-17 07:34:58 +00:00
user_params = roxywi_common . get_users_params ( )
2022-09-28 06:38:53 +00:00
new_server = sql . select_provisioned_servers ( new = workspace , group = group , type = ' aws ' )
params = sql . select_provisioning_params ( )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2021-02-15 06:10:00 +00:00
2022-09-28 06:38:53 +00:00
env = Environment ( extensions = [ " jinja2.ext.do " ] , loader = FileSystemLoader ( ' templates ' ) )
template = env . get_template ( ' ajax/provisioning/provisioned_servers.html ' )
template = template . render (
2023-02-13 14:45:45 +00:00
servers = new_server , groups = sql . select_groups ( ) , user_group = group , lang = lang ,
2022-11-17 07:34:58 +00:00
providers = sql . select_providers ( group ) , role = user_params [ ' role ' ] , adding = 1 , params = params
2022-09-28 06:38:53 +00:00
)
print ( template )
except Exception as e :
print ( e )
2021-02-15 06:10:00 +00:00
if form . getvalue ( ' awseditworkspace ' ) :
workspace = form . getvalue ( ' awseditworkspace ' )
group = form . getvalue ( ' aws_editing_group ' )
provider = form . getvalue ( ' aws_editing_provider ' )
region = form . getvalue ( ' aws_editing_regions ' )
size = form . getvalue ( ' aws_editing_size ' )
oss = form . getvalue ( ' aws_editing_oss ' )
ssh_name = form . getvalue ( ' aws_editing_ssh_name ' )
volume_size = form . getvalue ( ' aws_editing_volume_size ' )
2021-03-16 14:38:12 +00:00
volume_type = form . getvalue ( ' aws_editing_volume_type ' )
2021-02-15 06:10:00 +00:00
delete_on_termination = form . getvalue ( ' aws_editing_delete_on_termination ' )
floating_ip = form . getvalue ( ' aws_editing_floating_net ' )
firewall = form . getvalue ( ' aws_editing_firewall ' )
public_ip = form . getvalue ( ' aws_editing_public_ip ' )
server_id = form . getvalue ( ' server_id ' )
2022-09-28 06:38:53 +00:00
try :
if sql . update_server_aws (
region , size , public_ip , floating_ip , volume_size , ssh_name , workspace , oss , firewall ,
provider , group , ' Editing ' , server_id , delete_on_termination , volume_type
) :
2021-02-15 06:10:00 +00:00
2022-09-28 06:38:53 +00:00
try :
2022-10-30 17:22:05 +00:00
cmd = f ' cd scripts/terraform/ && sudo terraform workspace select { workspace } _ { group } _aws '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2022-09-28 06:38:53 +00:00
except Exception as e :
print ( ' error: ' + str ( e ) )
2022-03-02 20:09:39 +00:00
2022-09-28 06:38:53 +00:00
if stderr != ' ' :
stderr = stderr . strip ( )
stderr = repr ( stderr )
stderr = stderr . replace ( " ' " , " " )
stderr = stderr . replace ( " \' " , " " )
sql . update_provisioning_server_error ( stderr , group , workspace , provider )
print ( ' error: ' + stderr )
else :
print ( ' ok ' )
except Exception as e :
print ( e )
2021-02-15 06:10:00 +00:00
2021-03-16 14:38:12 +00:00
if (
2022-09-13 15:04:30 +00:00
form . getvalue ( ' awsprovisining ' )
or form . getvalue ( ' awseditingprovisining ' )
or form . getvalue ( ' doprovisining ' )
or form . getvalue ( ' doeditprovisining ' )
or form . getvalue ( ' gcoreprovisining ' )
or form . getvalue ( ' gcoreeditgprovisining ' )
2022-05-22 20:54:47 +00:00
) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2022-05-22 20:54:47 +00:00
2021-02-15 06:10:00 +00:00
if form . getvalue ( ' awsprovisining ' ) :
workspace = form . getvalue ( ' awsprovisining ' )
group = form . getvalue ( ' aws_create_group ' )
provider_id = form . getvalue ( ' aws_create_provider ' )
action = ' created '
cloud = ' aws '
state_name = ' aws_instance '
elif form . getvalue ( ' awseditingprovisining ' ) :
workspace = form . getvalue ( ' awseditingprovisining ' )
group = form . getvalue ( ' aws_edit_group ' )
provider_id = form . getvalue ( ' aws_edit_provider ' )
action = ' modified '
cloud = ' aws '
state_name = ' aws_instance '
elif form . getvalue ( ' doprovisining ' ) :
workspace = form . getvalue ( ' doprovisining ' )
group = form . getvalue ( ' do_create_group ' )
provider_id = form . getvalue ( ' do_create_provider ' )
action = ' created '
cloud = ' do '
state_name = ' digitalocean_droplet '
elif form . getvalue ( ' doeditprovisining ' ) :
workspace = form . getvalue ( ' doeditprovisining ' )
group = form . getvalue ( ' do_edit_group ' )
provider_id = form . getvalue ( ' do_edit_provider ' )
action = ' modified '
cloud = ' do '
state_name = ' digitalocean_droplet '
2021-03-16 14:38:12 +00:00
elif form . getvalue ( ' gcoreprovisining ' ) :
workspace = form . getvalue ( ' gcoreprovisining ' )
group = form . getvalue ( ' gcore_create_group ' )
provider_id = form . getvalue ( ' gcore_create_provider ' )
action = ' created '
cloud = ' gcore '
state_name = ' gcore_instance '
elif form . getvalue ( ' gcoreeditgprovisining ' ) :
workspace = form . getvalue ( ' gcoreeditgprovisining ' )
group = form . getvalue ( ' gcore_edit_group ' )
provider_id = form . getvalue ( ' gcore_edit_provider ' )
action = ' modified '
cloud = ' gcore '
state_name = ' gcore_instance '
2021-02-15 06:10:00 +00:00
2022-10-30 07:42:15 +00:00
tfvars = f ' { workspace } _ { group } _ { cloud } .tfvars '
cmd = f ' cd scripts/terraform/ && sudo terraform apply -auto-approve -no-color -input=false -target=module. { cloud } _module -var-file vars/ { tfvars } '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
stderr = stderr . strip ( )
stderr = repr ( stderr )
stderr = stderr . replace ( " ' " , " " )
stderr = stderr . replace ( " \' " , " " )
sql . update_provisioning_server_status ( ' Error ' , group , workspace , provider_id )
sql . update_provisioning_server_error ( stderr , group , workspace , provider_id )
2022-05-25 13:55:45 +00:00
print ( ' error: ' + stderr )
2021-02-15 06:10:00 +00:00
else :
if cloud == ' aws ' :
cmd = ' cd scripts/terraform/ && sudo terraform state show module.aws_module.aws_eip.floating_ip[0]|grep -Eo " [0-9] { 1,3} \ .[0-9] { 1,3} \ .[0-9] { 1,3} \ .[0-9] { 1,3} " '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
cmd = ' cd scripts/terraform/ && sudo terraform state show module. ' + cloud + ' _module. ' + state_name + ' .hapwi|grep -Eo " [0-9] { 1,3} \ .[0-9] { 1,3} \ .[0-9] { 1,3} \ .[0-9] { 1,3} " '
else :
cmd = ' cd scripts/terraform/ && sudo terraform state show module. ' + cloud + ' _module. ' + state_name + ' .hapwi|grep -Eo " [0-9] { 1,3} \ .[0-9] { 1,3} \ .[0-9] { 1,3} \ .[0-9] { 1,3} " '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
ips = ' '
for ip in output :
ips + = ip
ips + = ' '
2022-08-02 08:53:32 +00:00
if cloud == ' gcore ' :
ips = ips . split ( ' ' ) [ 0 ]
2021-02-15 06:10:00 +00:00
print ( ips )
2022-09-28 06:38:53 +00:00
try :
sql . update_provisioning_server_status ( ' Created ' , group , workspace , provider_id , update_ip = ips )
except Exception as e :
print ( e )
2021-03-16 14:38:12 +00:00
if cloud == ' gcore ' :
cmd = ' cd scripts/terraform/ && sudo terraform state show module.gcore_module.gcore_instance.hapwi|grep " name " |grep -v -e " _name \ |name_ " |head -1 |awk -F " \\ \" " \' { print $2} \' '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2022-05-25 13:55:45 +00:00
print ( ' : ' + output [ 0 ] )
2022-09-28 06:38:53 +00:00
try :
sql . update_provisioning_server_gcore_name ( workspace , output [ 0 ] , group , provider_id )
except Exception as e :
print ( e )
2021-03-16 14:38:12 +00:00
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , f ' Server { workspace } has been { action } ' , provisioning = 1 )
2021-02-15 06:10:00 +00:00
if form . getvalue ( ' provisiningdestroyserver ' ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2021-02-15 06:10:00 +00:00
server_id = form . getvalue ( ' provisiningdestroyserver ' )
workspace = form . getvalue ( ' servername ' )
group = form . getvalue ( ' group ' )
cloud_type = form . getvalue ( ' type ' )
provider_id = form . getvalue ( ' provider_id ' )
2022-10-30 07:55:26 +00:00
tf_workspace = f ' { workspace } _ { group } _ { cloud_type } '
2021-02-15 06:10:00 +00:00
2022-10-30 07:42:15 +00:00
cmd = f ' cd scripts/terraform/ && sudo terraform init -upgrade -no-color && sudo terraform workspace select { tf_workspace } '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
stderr = stderr . strip ( )
stderr = repr ( stderr )
stderr = stderr . replace ( " ' " , " " )
stderr = stderr . replace ( " \' " , " " )
sql . update_provisioning_server_status ( ' Error ' , group , workspace , provider_id )
sql . update_provisioning_server_error ( stderr , group , workspace , provider_id )
print ( ' error: ' + stderr )
else :
2022-10-30 07:42:15 +00:00
cmd = f ' cd scripts/terraform/ && sudo terraform destroy -auto-approve -no-color -target=module. { cloud_type } _module -var-file vars/ { tf_workspace } .tfvars '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
if stderr != ' ' :
2022-10-30 07:42:15 +00:00
print ( f ' error: { stderr } ' )
2021-02-15 06:10:00 +00:00
else :
2022-10-30 07:42:15 +00:00
cmd = f ' cd scripts/terraform/ && sudo terraform workspace select default && sudo terraform workspace delete -force { tf_workspace } '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-02-15 06:10:00 +00:00
print ( ' ok ' )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , ' Server has been destroyed ' , provisioning = 1 )
2022-09-28 06:38:53 +00:00
try :
sql . delete_provisioned_servers ( server_id )
except Exception as e :
print ( e )
2021-02-15 06:10:00 +00:00
2021-03-16 14:38:12 +00:00
if form . getvalue ( ' gcorevars ' ) or form . getvalue ( ' gcoreeditvars ' ) :
if form . getvalue ( ' gcorevars ' ) :
gcorevars = form . getvalue ( ' gcorevars ' )
group = form . getvalue ( ' gcore_create_group ' )
provider = form . getvalue ( ' gcore_create_provider ' )
region = form . getvalue ( ' gcore_create_regions ' )
project = form . getvalue ( ' gcore_create_project ' )
size = form . getvalue ( ' gcore_create_size ' )
oss = form . getvalue ( ' gcore_create_oss ' )
ssh_name = form . getvalue ( ' gcore_create_ssh_name ' )
volume_size = form . getvalue ( ' gcore_create_volume_size ' )
volume_type = form . getvalue ( ' gcore_create_volume_type ' )
delete_on_termination = form . getvalue ( ' gcore_create_delete_on_termination ' )
network_name = form . getvalue ( ' gcore_create_network_name ' )
firewall = form . getvalue ( ' gcore_create_firewall ' )
network_type = form . getvalue ( ' gcore_create_network_type ' )
elif form . getvalue ( ' gcoreeditvars ' ) :
gcorevars = form . getvalue ( ' gcoreeditvars ' )
group = form . getvalue ( ' gcore_edit_group ' )
provider = form . getvalue ( ' gcore_edit_provider ' )
region = form . getvalue ( ' gcore_edit_regions ' )
project = form . getvalue ( ' gcore_edit_project ' )
size = form . getvalue ( ' gcore_edit_size ' )
oss = form . getvalue ( ' gcore_edit_oss ' )
ssh_name = form . getvalue ( ' gcore_edit_ssh_name ' )
volume_size = form . getvalue ( ' gcore_edit_volume_size ' )
volume_type = form . getvalue ( ' gcore_edit_volume_type ' )
delete_on_termination = form . getvalue ( ' gcore_edit_delete_on_termination ' )
network_name = form . getvalue ( ' gcore_edit_network_name ' )
firewall = form . getvalue ( ' gcore_edit_firewall ' )
network_type = form . getvalue ( ' gcore_edit_network_type ' )
2022-09-28 06:38:53 +00:00
try :
gcore_user , gcore_pass = sql . select_gcore_provider ( provider )
except Exception as e :
print ( e )
2021-03-16 14:38:12 +00:00
cmd = ' cd scripts/terraform/ && sudo ansible-playbook var_generator.yml -i inventory -e " region= {} ' \
' group= {} size= {} os= {} network_name= {} volume_size= {} server_name= {} username= {} ' \
' pass= {} firewall= {} network_type= {} ssh_name= {} delete_on_termination= {} project= {} volume_type= {} ' \
' cloud=gcore " ' . format ( region , group , size , oss , network_name , volume_size , gcorevars , gcore_user , gcore_pass ,
firewall , network_type , ssh_name , delete_on_termination , project , volume_type )
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-03-16 14:38:12 +00:00
if stderr != ' ' :
2022-10-30 07:42:15 +00:00
print ( f ' error: { stderr } ' )
2021-03-16 14:38:12 +00:00
else :
print ( ' ok ' )
if form . getvalue ( ' gcorevalidate ' ) or form . getvalue ( ' gcoreeditvalidate ' ) :
if form . getvalue ( ' gcorevalidate ' ) :
workspace = form . getvalue ( ' gcorevalidate ' )
group = form . getvalue ( ' gcore_create_group ' )
elif form . getvalue ( ' gcoreeditvalidate ' ) :
workspace = form . getvalue ( ' gcoreeditvalidate ' )
group = form . getvalue ( ' gcore_edit_group ' )
2022-10-30 07:42:15 +00:00
cmd = f ' cd scripts/terraform/ && sudo terraform plan -no-color -input=false -target=module.gcore_module -var-file vars/ { workspace } _ { group } _gcore.tfvars '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-03-16 14:38:12 +00:00
if stderr != ' ' :
2022-10-30 07:42:15 +00:00
print ( f ' error: { stderr } ' )
2021-03-16 14:38:12 +00:00
else :
print ( ' ok ' )
if form . getvalue ( ' gcoreworkspace ' ) :
workspace = form . getvalue ( ' gcoreworkspace ' )
group = form . getvalue ( ' gcore_create_group ' )
provider = form . getvalue ( ' gcore_create_provider ' )
region = form . getvalue ( ' gcore_create_regions ' )
project = form . getvalue ( ' gcore_create_project ' )
size = form . getvalue ( ' gcore_create_size ' )
oss = form . getvalue ( ' gcore_create_oss ' )
ssh_name = form . getvalue ( ' gcore_create_ssh_name ' )
volume_size = form . getvalue ( ' gcore_create_volume_size ' )
volume_type = form . getvalue ( ' gcore_create_volume_type ' )
delete_on_termination = form . getvalue ( ' gcore_create_delete_on_termination ' )
network_type = form . getvalue ( ' gcore_create_network_type ' )
firewall = form . getvalue ( ' gcore_create_firewall ' )
network_name = form . getvalue ( ' gcore_create_network_name ' )
cmd = ' cd scripts/terraform/ && sudo terraform workspace new ' + workspace + ' _ ' + group + ' _gcore '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2021-03-16 14:38:12 +00:00
if stderr != ' ' :
stderr = stderr . strip ( )
stderr = repr ( stderr )
stderr = stderr . replace ( " ' " , " " )
stderr = stderr . replace ( " \' " , " " )
sql . update_provisioning_server_status ( ' Error ' , group , workspace , provider )
sql . update_provisioning_server_error ( stderr , group , workspace , provider )
print ( ' error: ' + stderr )
else :
2022-09-28 06:38:53 +00:00
try :
if sql . add_server_gcore (
project , region , size , network_type , network_name , volume_size , ssh_name , workspace , oss , firewall ,
provider , group , ' Creating ' , delete_on_termination , volume_type
) :
2022-11-17 07:34:58 +00:00
user_params = roxywi_common . get_users_params ( )
2022-09-28 06:38:53 +00:00
new_server = sql . select_provisioned_servers ( new = workspace , group = group , type = ' gcore ' )
params = sql . select_provisioning_params ( )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2021-03-16 14:38:12 +00:00
2022-09-28 06:38:53 +00:00
env = Environment ( extensions = [ " jinja2.ext.do " ] , loader = FileSystemLoader ( ' templates ' ) )
template = env . get_template ( ' ajax/provisioning/provisioned_servers.html ' )
template = template . render ( servers = new_server ,
groups = sql . select_groups ( ) ,
user_group = group ,
providers = sql . select_providers ( group ) ,
2022-11-17 07:34:58 +00:00
role = user_params [ ' role ' ] ,
2022-09-28 06:38:53 +00:00
adding = 1 ,
2023-02-13 14:45:45 +00:00
params = params ,
lang = lang )
2022-09-28 06:38:53 +00:00
print ( template )
except Exception as e :
print ( e )
2021-03-16 14:38:12 +00:00
if form . getvalue ( ' gcoreeditworkspace ' ) :
workspace = form . getvalue ( ' gcoreeditworkspace ' )
group = form . getvalue ( ' gcore_edit_group ' )
provider = form . getvalue ( ' gcore_edit_provider ' )
region = form . getvalue ( ' gcore_edit_regions ' )
project = form . getvalue ( ' gcore_edit_project ' )
size = form . getvalue ( ' gcore_edit_size ' )
oss = form . getvalue ( ' gcore_edit_oss ' )
ssh_name = form . getvalue ( ' gcore_edit_ssh_name ' )
volume_size = form . getvalue ( ' gcore_edit_volume_size ' )
volume_type = form . getvalue ( ' gcore_edit_volume_type ' )
delete_on_termination = form . getvalue ( ' gcore_edit_delete_on_termination ' )
network_type = form . getvalue ( ' gcore_edit_network_type ' )
firewall = form . getvalue ( ' gcore_edit_firewall ' )
network_name = form . getvalue ( ' gcore_edit_network_name ' )
server_id = form . getvalue ( ' server_id ' )
2022-09-28 06:38:53 +00:00
try :
if sql . update_server_gcore (
region , size , network_type , network_name , volume_size , ssh_name , workspace , oss , firewall ,
provider , group , ' Editing ' , server_id , delete_on_termination , volume_type , project
) :
2021-03-16 14:38:12 +00:00
2022-09-28 06:38:53 +00:00
try :
cmd = ' cd scripts/terraform/ && sudo terraform workspace select ' + workspace + ' _ ' + group + ' _gcore '
2022-11-17 07:34:58 +00:00
output , stderr = server_mod . subprocess_execute ( cmd )
2022-09-28 06:38:53 +00:00
except Exception as e :
print ( ' error: ' + str ( e ) )
2021-03-16 14:38:12 +00:00
2022-09-28 06:38:53 +00:00
if stderr != ' ' :
stderr = stderr . strip ( )
stderr = repr ( stderr )
stderr = stderr . replace ( " ' " , " " )
stderr = stderr . replace ( " \' " , " " )
sql . update_provisioning_server_error ( stderr , group , workspace , provider )
print ( ' error: ' + stderr )
else :
print ( ' ok ' )
except Exception as e :
print ( e )
2021-03-16 14:38:12 +00:00
2021-02-15 06:10:00 +00:00
if form . getvalue ( ' editAwsServer ' ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2021-02-15 06:10:00 +00:00
server_id = form . getvalue ( ' editAwsServer ' )
user_group = form . getvalue ( ' editAwsGroup ' )
2022-08-02 08:53:32 +00:00
params = sql . select_provisioning_params ( )
providers = sql . select_providers ( int ( user_group ) )
server = sql . select_gcore_server ( server_id = server_id )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2021-03-16 14:38:12 +00:00
env = Environment ( extensions = [ " jinja2.ext.do " ] , loader = FileSystemLoader ( ' templates ' ) )
2021-02-15 06:10:00 +00:00
template = env . get_template ( ' ajax/provisioning/aws_edit_dialog.html ' )
2023-02-13 14:45:45 +00:00
template = template . render ( server = server , providers = providers , params = params , lang = lang )
2021-03-16 14:38:12 +00:00
print ( template )
if form . getvalue ( ' editGcoreServer ' ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2021-03-16 14:38:12 +00:00
server_id = form . getvalue ( ' editGcoreServer ' )
user_group = form . getvalue ( ' editGcoreGroup ' )
2022-08-02 08:53:32 +00:00
params = sql . select_provisioning_params ( )
providers = sql . select_providers ( int ( user_group ) )
server = sql . select_gcore_server ( server_id = server_id )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2021-03-16 14:38:12 +00:00
env = Environment ( extensions = [ " jinja2.ext.do " ] , loader = FileSystemLoader ( ' templates ' ) )
template = env . get_template ( ' ajax/provisioning/gcore_edit_dialog.html ' )
2023-02-13 14:45:45 +00:00
template = template . render ( server = server , providers = providers , params = params , lang = lang )
2021-02-15 06:10:00 +00:00
print ( template )
if form . getvalue ( ' editDoServer ' ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2021-02-15 06:10:00 +00:00
server_id = form . getvalue ( ' editDoServer ' )
user_group = form . getvalue ( ' editDoGroup ' )
2022-08-02 08:53:32 +00:00
params = sql . select_provisioning_params ( )
providers = sql . select_providers ( int ( user_group ) )
server = sql . select_do_server ( server_id = server_id )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2021-03-16 14:38:12 +00:00
env = Environment ( extensions = [ " jinja2.ext.do " ] , loader = FileSystemLoader ( ' templates ' ) )
2021-02-15 06:10:00 +00:00
template = env . get_template ( ' ajax/provisioning/do_edit_dialog.html ' )
2023-02-13 14:45:45 +00:00
template = template . render ( server = server , providers = providers , params = params , lang = lang )
2021-02-15 06:10:00 +00:00
print ( template )
if form . getvalue ( ' edit_do_provider ' ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2021-02-15 06:10:00 +00:00
provider_id = form . getvalue ( ' edit_do_provider ' )
new_name = form . getvalue ( ' edit_do_provider_name ' )
new_token = form . getvalue ( ' edit_do_provider_token ' )
2022-09-28 06:38:53 +00:00
try :
if sql . update_do_provider ( new_name , new_token , provider_id ) :
print ( ' ok ' )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , f ' Provider has been renamed. New name is { new_name } ' , provisioning = 1 )
2022-09-28 06:38:53 +00:00
except Exception as e :
print ( e )
2021-02-15 06:10:00 +00:00
2021-03-16 14:38:12 +00:00
if form . getvalue ( ' edit_gcore_provider ' ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2021-03-16 14:38:12 +00:00
provider_id = form . getvalue ( ' edit_gcore_provider ' )
new_name = form . getvalue ( ' edit_gcore_provider_name ' )
new_user = form . getvalue ( ' edit_gcore_provider_user ' )
new_pass = form . getvalue ( ' edit_gcore_provider_pass ' )
2022-09-28 06:38:53 +00:00
try :
if sql . update_gcore_provider ( new_name , new_user , new_pass , provider_id ) :
print ( ' ok ' )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , f ' Provider has been renamed. New name is { new_name } ' , provisioning = 1 )
2022-09-28 06:38:53 +00:00
except Exception as e :
print ( e )
2021-03-16 14:38:12 +00:00
2021-02-15 06:10:00 +00:00
if form . getvalue ( ' edit_aws_provider ' ) :
2022-11-17 07:34:58 +00:00
roxywi_common . check_user_group ( )
2021-02-15 06:10:00 +00:00
provider_id = form . getvalue ( ' edit_aws_provider ' )
new_name = form . getvalue ( ' edit_aws_provider_name ' )
new_key = form . getvalue ( ' edit_aws_provider_key ' )
new_secret = form . getvalue ( ' edit_aws_provider_secret ' )
2022-09-28 06:38:53 +00:00
try :
if sql . update_aws_provider ( new_name , new_key , new_secret , provider_id ) :
print ( ' ok ' )
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( ' Roxy-WI server ' , f ' Provider has been renamed. New name is { new_name } ' , provisioning = 1 )
2022-09-28 06:38:53 +00:00
except Exception as e :
print ( e )
2021-02-20 07:47:33 +00:00
2021-02-23 04:50:23 +00:00
if form . getvalue ( ' loadservices ' ) :
2022-11-17 07:34:58 +00:00
from modules . roxywi . roxy import get_services_status
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2021-02-20 07:47:33 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates ' ) )
2021-02-23 04:50:23 +00:00
template = env . get_template ( ' ajax/load_services.html ' )
2022-09-28 06:38:53 +00:00
try :
2022-11-17 07:34:58 +00:00
services = get_services_status ( )
2022-09-28 06:38:53 +00:00
except Exception as e :
print ( e )
2021-02-20 07:47:33 +00:00
2023-02-13 14:45:45 +00:00
template = template . render ( services = services , lang = lang )
2021-02-23 04:50:23 +00:00
print ( template )
if form . getvalue ( ' loadchecker ' ) :
2022-11-17 07:34:58 +00:00
from modules . roxywi . roxy import get_services_status
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2022-06-02 09:08:37 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates ' ) , autoescape = True )
2021-02-23 04:50:23 +00:00
template = env . get_template ( ' ajax/load_telegram.html ' )
2022-11-17 07:34:58 +00:00
services = get_services_status ( )
2021-02-23 04:50:23 +00:00
groups = sql . select_groups ( )
page = form . getvalue ( ' page ' )
2022-06-15 07:34:20 +00:00
2022-04-29 10:28:48 +00:00
try :
2022-11-17 07:34:58 +00:00
user_subscription = roxywi_common . return_user_status ( )
2022-04-29 10:28:48 +00:00
except Exception as e :
2022-11-17 07:34:58 +00:00
user_subscription = roxywi_common . return_unsubscribed_user_status ( )
roxywi_common . logging ( ' Roxy-WI server ' , f ' Cannot get a user plan: { e } ' , roxywi = 1 )
if user_subscription [ ' user_status ' ] :
2022-06-15 07:34:20 +00:00
haproxy_settings = sql . select_checker_settings ( 1 )
nginx_settings = sql . select_checker_settings ( 2 )
keepalived_settings = sql . select_checker_settings ( 3 )
apache_settings = sql . select_checker_settings ( 4 )
2022-04-29 10:28:48 +00:00
if page == ' servers.py ' :
2022-11-17 07:34:58 +00:00
user_group = roxywi_common . get_user_group ( id = 1 )
2022-04-29 10:28:48 +00:00
telegrams = sql . get_user_telegram_by_group ( user_group )
slacks = sql . get_user_slack_by_group ( user_group )
2022-11-17 07:34:58 +00:00
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 )
keepalived_servers = roxywi_common . get_dick_permit ( keepalived = 1 , only_group = 1 )
2022-04-29 10:28:48 +00:00
else :
telegrams = sql . select_telegram ( )
slacks = sql . select_slack ( )
2022-11-17 07:34:58 +00:00
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 )
keepalived_servers = roxywi_common . get_dick_permit ( keepalived = 1 )
2021-02-23 04:50:23 +00:00
else :
2022-04-29 10:28:48 +00:00
telegrams = ' '
slacks = ' '
2021-02-23 04:50:23 +00:00
template = template . render ( services = services ,
telegrams = telegrams ,
groups = groups ,
2021-04-17 17:38:08 +00:00
slacks = slacks ,
2022-11-17 10:18:04 +00:00
user_status = user_subscription [ ' user_status ' ] ,
user_plan = user_subscription [ ' user_plan ' ] ,
2022-06-15 07:34:20 +00:00
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 ,
2023-02-13 14:45:45 +00:00
page = page ,
lang = lang )
2021-02-23 04:50:23 +00:00
print ( template )
2021-02-25 04:43:29 +00:00
if form . getvalue ( ' load_update_hapwi ' ) :
2022-11-17 07:34:58 +00:00
import modules . roxywi . roxy as roxy
2021-02-23 04:50:23 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates ' ) )
2022-12-24 11:13:10 +00:00
template = env . get_template ( ' ajax/load_updateroxywi.html ' )
2021-02-23 04:50:23 +00:00
2022-11-17 07:34:58 +00:00
versions = roxy . versions ( )
checker_ver = roxy . check_new_version ( ' checker ' )
smon_ver = roxy . check_new_version ( ' smon ' )
metrics_ver = roxy . check_new_version ( ' metrics ' )
keep_ver = roxy . check_new_version ( ' keep_alive ' )
portscanner_ver = roxy . check_new_version ( ' portscanner ' )
socket_ver = roxy . check_new_version ( ' socket ' )
prometheus_exp_ver = roxy . check_new_version ( ' prometheus-exporter ' )
services = roxy . get_services_status ( )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2021-02-20 07:47:33 +00:00
template = template . render ( services = services ,
versions = versions ,
checker_ver = checker_ver ,
smon_ver = smon_ver ,
metrics_ver = metrics_ver ,
2021-04-17 17:38:08 +00:00
portscanner_ver = portscanner_ver ,
2022-03-15 09:51:03 +00:00
socket_ver = socket_ver ,
2022-09-16 09:31:54 +00:00
prometheus_exp_ver = prometheus_exp_ver ,
2023-02-13 14:45:45 +00:00
keep_ver = keep_ver ,
lang = lang )
2021-02-20 07:47:33 +00:00
print ( template )
if form . getvalue ( ' loadopenvpn ' ) :
2021-09-02 08:07:24 +00:00
import distro
2022-09-13 15:04:30 +00:00
2021-02-20 07:47:33 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates ' ) )
template = env . get_template ( ' ajax/load_openvpn.html ' )
openvpn_configs = ' '
openvpn_sess = ' '
openvpn = ' '
2021-12-04 08:17:33 +00:00
if distro . id ( ) == ' ubuntu ' :
2022-11-17 07:34:58 +00:00
stdout , stderr = server_mod . subprocess_execute ( " apt show openvpn3 2>&1|grep E: " )
2021-12-04 08:17:33 +00:00
elif distro . id ( ) == ' centos ' or distro . id ( ) == ' rhel ' :
2022-11-17 07:34:58 +00:00
stdout , stderr = server_mod . subprocess_execute ( " rpm --query openvpn3-client " )
2021-12-04 08:17:33 +00:00
if (
2022-09-13 15:04:30 +00:00
( stdout [ 0 ] != ' package openvpn3-client is not installed ' and stderr != ' /bin/sh: rpm: command not found ' )
and stdout [ 0 ] != ' E: No packages found '
2022-05-22 20:54:47 +00:00
) :
2021-12-04 08:17:33 +00:00
cmd = " sudo openvpn3 configs-list |grep -E ' ovpn|(^|[^0-9])[0-9] {4} ($|[^0-9]) ' |grep -v net|awk -F \" \" ' { print $1} ' |awk ' ORS=NR % 2? \" \" : \" \\ n \" ' "
2022-11-17 07:34:58 +00:00
openvpn_configs , stderr = server_mod . subprocess_execute ( cmd )
2021-12-04 08:17:33 +00:00
cmd = " sudo openvpn3 sessions-list|grep -E ' Config|Status ' |awk -F \" : \" ' { print $2} ' |awk ' ORS=NR % 2? \" \" : \" \\ n \" ' | sed ' s/^ //g ' "
2022-11-17 07:34:58 +00:00
openvpn_sess , stderr = server_mod . subprocess_execute ( cmd )
2021-12-04 08:17:33 +00:00
openvpn = stdout [ 0 ]
2021-02-20 07:47:33 +00:00
template = template . render ( openvpn = openvpn ,
openvpn_sess = openvpn_sess ,
openvpn_configs = openvpn_configs )
print ( template )
2021-03-17 17:19:06 +00:00
if form . getvalue ( ' check_telegram ' ) :
2022-11-17 07:34:58 +00:00
import modules . alerting . alerting as alerting
2021-03-17 17:19:06 +00:00
telegram_id = form . getvalue ( ' check_telegram ' )
2021-06-02 07:28:07 +00:00
mess = ' Test message from Roxy-WI '
2022-11-17 07:34:58 +00:00
alerting . telegram_send_mess ( mess , telegram_channel_id = telegram_id )
2021-04-17 17:38:08 +00:00
if form . getvalue ( ' check_slack ' ) :
2022-11-17 07:34:58 +00:00
import modules . alerting . alerting as alerting
2021-04-17 17:38:08 +00:00
slack_id = form . getvalue ( ' check_slack ' )
2021-06-02 07:28:07 +00:00
mess = ' Test message from Roxy-WI '
2022-11-17 07:34:58 +00:00
alerting . slack_send_mess ( mess , slack_channel_id = slack_id )
2021-08-02 08:19:22 +00:00
2022-06-15 07:34:20 +00:00
if form . getvalue ( ' check_rabbitmq_alert ' ) :
2022-11-17 07:34:58 +00:00
import modules . alerting . alerting as alerting
2022-12-06 21:04:53 +00:00
alerting . check_rabbit_alert ( )
2022-06-15 07:34:20 +00:00
if form . getvalue ( ' check_email_alert ' ) :
2022-11-17 07:34:58 +00:00
import modules . alerting . alerting as alerting
2022-12-06 21:04:53 +00:00
alerting . check_email_alert ( )
2022-06-15 07:34:20 +00:00
2021-08-02 08:19:22 +00:00
if form . getvalue ( ' getoption ' ) :
group = form . getvalue ( ' getoption ' )
term = form . getvalue ( ' term ' )
2023-03-08 13:15:15 +00:00
add_mod . get_saved_option ( group , term )
2021-08-02 08:19:22 +00:00
if form . getvalue ( ' newtoption ' ) :
2023-03-08 13:15:15 +00:00
option = common . checkAjaxInput ( form . getvalue ( ' newtoption ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' newoptiongroup ' ) )
2021-08-02 08:19:22 +00:00
if option is None or group is None :
print ( error_mess )
else :
2023-03-08 13:15:15 +00:00
add_mod . create_saved_option ( option , group )
2021-08-02 08:19:22 +00:00
if form . getvalue ( ' updateoption ' ) is not None :
2023-03-08 13:15:15 +00:00
option = common . checkAjaxInput ( form . getvalue ( ' updateoption ' ) )
option_id = common . checkAjaxInput ( form . getvalue ( ' id ' ) )
2021-08-02 08:19:22 +00:00
if option is None or option_id is None :
print ( error_mess )
else :
sql . update_options ( option , option_id )
if form . getvalue ( ' optiondel ' ) is not None :
2023-03-08 13:15:15 +00:00
if sql . delete_option ( common . checkAjaxInput ( form . getvalue ( ' optiondel ' ) ) ) :
2021-08-02 08:19:22 +00:00
print ( " Ok " )
if form . getvalue ( ' getsavedserver ' ) :
2023-03-08 13:15:15 +00:00
group = common . checkAjaxInput ( form . getvalue ( ' getsavedserver ' ) )
term = common . checkAjaxInput ( form . getvalue ( ' term ' ) )
2022-09-02 14:12:28 +00:00
2023-03-08 13:15:15 +00:00
add_mod . get_saved_servers ( group , term )
2021-08-02 08:19:22 +00:00
if form . getvalue ( ' newsavedserver ' ) :
2023-03-08 13:15:15 +00:00
server = common . checkAjaxInput ( form . getvalue ( ' newsavedserver ' ) )
desc = common . checkAjaxInput ( form . getvalue ( ' newsavedserverdesc ' ) )
group = common . checkAjaxInput ( form . getvalue ( ' newsavedservergroup ' ) )
if server is None or group is None :
2021-08-02 08:19:22 +00:00
print ( error_mess )
else :
2023-03-08 13:15:15 +00:00
add_mod . create_saved_server ( server , group , desc )
2021-08-02 08:19:22 +00:00
if form . getvalue ( ' updatesavedserver ' ) is not None :
savedserver = form . getvalue ( ' updatesavedserver ' )
description = form . getvalue ( ' description ' )
savedserver_id = form . getvalue ( ' id ' )
if savedserver is None or savedserver_id is None :
print ( error_mess )
else :
sql . update_savedserver ( savedserver , description , savedserver_id )
if form . getvalue ( ' savedserverdel ' ) is not None :
2022-12-06 18:29:14 +00:00
if sql . delete_savedserver ( common . checkAjaxInput ( form . getvalue ( ' savedserverdel ' ) ) ) :
2021-08-02 08:19:22 +00:00
print ( " Ok " )
2021-09-15 05:40:51 +00:00
if form . getvalue ( ' show_users_ovw ' ) is not None :
2022-12-06 18:29:14 +00:00
import modules . roxywi . overview as roxywi_overview
2021-09-15 05:40:51 +00:00
2022-12-06 18:29:14 +00:00
roxywi_overview . user_ovw ( )
2021-09-15 05:40:51 +00:00
if form . getvalue ( ' serverSettings ' ) is not None :
2022-12-06 19:37:45 +00:00
server_id = common . checkAjaxInput ( form . getvalue ( ' serverSettings ' ) )
service = common . checkAjaxInput ( form . getvalue ( ' serverSettingsService ' ) )
2021-09-15 05:40:51 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates/ ' ) , autoescape = True )
template = env . get_template ( ' ajax/show_service_settings.html ' )
template = template . render ( settings = sql . select_service_settings ( server_id , service ) , service = service )
print ( template )
if form . getvalue ( ' serverSettingsSave ' ) is not None :
2022-12-06 19:37:45 +00:00
server_id = common . checkAjaxInput ( form . getvalue ( ' serverSettingsSave ' ) )
service = common . checkAjaxInput ( form . getvalue ( ' serverSettingsService ' ) )
haproxy_enterprise = common . checkAjaxInput ( form . getvalue ( ' serverSettingsEnterprise ' ) )
haproxy_dockerized = common . checkAjaxInput ( form . getvalue ( ' serverSettingshaproxy_dockerized ' ) )
nginx_dockerized = common . checkAjaxInput ( form . getvalue ( ' serverSettingsnginx_dockerized ' ) )
apache_dockerized = common . checkAjaxInput ( form . getvalue ( ' serverSettingsapache_dockerized ' ) )
haproxy_restart = common . checkAjaxInput ( form . getvalue ( ' serverSettingsHaproxyrestart ' ) )
nginx_restart = common . checkAjaxInput ( form . getvalue ( ' serverSettingsNginxrestart ' ) )
apache_restart = common . checkAjaxInput ( form . getvalue ( ' serverSettingsApache_restart ' ) )
2021-10-03 18:46:19 +00:00
server_ip = sql . select_server_ip_by_id ( server_id )
2021-09-15 05:40:51 +00:00
if service == ' haproxy ' :
if sql . insert_or_update_service_setting ( server_id , service , ' haproxy_enterprise ' , haproxy_enterprise ) :
print ( ' Ok ' )
2021-10-03 18:46:19 +00:00
if haproxy_enterprise == ' 1 ' :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Service has been flagged as an Enterprise version ' , roxywi = 1 , login = 1 ,
2021-10-03 18:46:19 +00:00
keep_history = 1 , service = service )
else :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Service has been flagged as a community version ' , roxywi = 1 , login = 1 ,
2021-10-03 18:46:19 +00:00
keep_history = 1 , service = service )
if sql . insert_or_update_service_setting ( server_id , service , ' dockerized ' , haproxy_dockerized ) :
print ( ' Ok ' )
if haproxy_dockerized == ' 1 ' :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Service has been flagged as a dockerized ' , roxywi = 1 , login = 1 ,
2021-10-03 18:46:19 +00:00
keep_history = 1 , service = service )
else :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Service has been flagged as a system service ' , roxywi = 1 , login = 1 ,
2021-10-03 18:46:19 +00:00
keep_history = 1 , service = service )
2022-08-15 08:50:29 +00:00
if sql . insert_or_update_service_setting ( server_id , service , ' restart ' , haproxy_restart ) :
print ( ' Ok ' )
if haproxy_restart == ' 1 ' :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Restart option is disabled for this service ' , roxywi = 1 , login = 1 ,
2022-08-15 08:50:29 +00:00
keep_history = 1 , service = service )
else :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Restart option is disabled for this service ' , roxywi = 1 , login = 1 ,
2022-08-15 08:50:29 +00:00
keep_history = 1 , service = service )
2021-10-03 18:46:19 +00:00
if service == ' nginx ' :
if sql . insert_or_update_service_setting ( server_id , service , ' dockerized ' , nginx_dockerized ) :
print ( ' Ok ' )
if nginx_dockerized :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Service has been flagged as a dockerized ' , roxywi = 1 , login = 1 ,
2021-10-03 18:46:19 +00:00
keep_history = 1 , service = service )
else :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Service has been flagged as a system service ' , roxywi = 1 , login = 1 ,
2021-10-03 18:46:19 +00:00
keep_history = 1 , service = service )
2022-08-17 04:44:08 +00:00
if sql . insert_or_update_service_setting ( server_id , service , ' restart ' , nginx_restart ) :
2022-08-15 08:50:29 +00:00
print ( ' Ok ' )
if nginx_restart == ' 1 ' :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Restart option is disabled for this service ' , roxywi = 1 , login = 1 ,
2022-08-15 08:50:29 +00:00
keep_history = 1 , service = service )
else :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Restart option is disabled for this service ' , roxywi = 1 , login = 1 ,
2022-08-15 08:50:29 +00:00
keep_history = 1 , service = service )
2021-10-17 05:57:51 +00:00
2022-04-15 09:49:00 +00:00
if service == ' apache ' :
if sql . insert_or_update_service_setting ( server_id , service , ' dockerized ' , apache_dockerized ) :
print ( ' Ok ' )
if apache_dockerized :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Service has been flagged as a dockerized ' , roxywi = 1 , login = 1 ,
2022-04-15 09:49:00 +00:00
keep_history = 1 , service = service )
else :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Service has been flagged as a system service ' , roxywi = 1 , login = 1 ,
2022-04-15 09:49:00 +00:00
keep_history = 1 , service = service )
2022-08-17 04:44:08 +00:00
if sql . insert_or_update_service_setting ( server_id , service , ' restart ' , apache_restart ) :
2022-08-15 08:50:29 +00:00
print ( ' Ok ' )
if apache_restart == ' 1 ' :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Restart option is disabled for this service ' , roxywi = 1 , login = 1 ,
2022-08-15 08:50:29 +00:00
keep_history = 1 , service = service )
else :
2022-11-17 07:34:58 +00:00
roxywi_common . logging ( server_ip , ' Restart option is disabled for this service ' , roxywi = 1 , login = 1 ,
2022-08-15 08:50:29 +00:00
keep_history = 1 , service = service )
2022-04-15 09:49:00 +00:00
2021-10-17 05:57:51 +00:00
if act == ' showListOfVersion ' :
2022-12-06 18:29:14 +00:00
service = common . checkAjaxInput ( form . getvalue ( ' service ' ) )
configver = common . checkAjaxInput ( form . getvalue ( ' configver ' ) )
for_delver = common . checkAjaxInput ( form . getvalue ( ' for_delver ' ) )
style = common . checkAjaxInput ( form . getvalue ( ' style ' ) )
2022-04-06 12:32:04 +00:00
users = sql . select_users ( )
2022-08-15 08:50:29 +00:00
service_desc = sql . select_service ( service )
2023-02-13 14:45:45 +00:00
lang = roxywi_common . get_user_lang ( )
2022-04-06 12:32:04 +00:00
2022-08-15 08:50:29 +00:00
if service in ( ' haproxy ' , ' nginx ' , ' keepalived ' , ' apache ' ) :
2022-09-03 10:14:43 +00:00
configs = sql . select_config_version ( serv , service_desc . slug )
2022-08-15 08:50:29 +00:00
action = f ' versions.py?service= { service_desc . slug } '
if service in ( ' haproxy ' , ' nginx ' , ' apache ' ) :
2022-09-26 09:18:18 +00:00
configs_dir = get_config . get_config_var ( ' configs ' , f ' { service_desc . service } _save_configs_dir ' )
2022-08-15 08:50:29 +00:00
else :
2022-09-26 09:18:18 +00:00
configs_dir = get_config . get_config_var ( ' configs ' , ' kp_save_configs_dir ' )
2022-08-15 08:50:29 +00:00
if service == ' haproxy ' :
2022-11-17 07:34:58 +00:00
files = roxywi_common . get_files ( )
2022-08-15 08:50:29 +00:00
else :
2022-11-17 07:34:58 +00:00
files = roxywi_common . get_files ( configs_dir , ' conf ' )
2021-10-17 05:57:51 +00:00
env = Environment ( loader = FileSystemLoader ( ' templates/ ' ) , autoescape = True ,
extensions = [ " jinja2.ext.loopcontrols " , " jinja2.ext.do " ] )
template = env . get_template ( ' ajax/show_list_version.html ' )
template = template . render ( serv = serv ,
service = service ,
action = action ,
return_files = files ,
configver = configver ,
for_delver = for_delver ,
configs = configs ,
2022-04-06 12:32:04 +00:00
users = users ,
2023-02-13 14:45:45 +00:00
style = style ,
lang = lang )
2021-12-03 10:39:15 +00:00
print ( template )
if act == ' getSystemInfo ' :
2022-12-01 06:52:24 +00:00
server_mod . show_system_info ( )
2021-12-03 10:39:15 +00:00
if act == ' updateSystemInfo ' :
2022-12-01 06:52:24 +00:00
server_mod . update_system_info ( )
2022-03-02 20:09:39 +00:00
2023-01-24 07:34:14 +00:00
if act == ' server_is_up ' :
server_ip = common . is_ip_or_dns ( form . getvalue ( ' server_is_up ' ) )
server_mod . server_is_up ( server_ip )
2022-03-02 20:09:39 +00:00
if act == ' findInConfigs ' :
server_ip = serv
2022-11-17 07:34:58 +00:00
server_ip = common . is_ip_or_dns ( server_ip )
2022-03-02 20:09:39 +00:00
finding_words = form . getvalue ( ' words ' )
service = form . getvalue ( ' service ' )
log_path = sql . get_setting ( service + ' _dir ' )
2022-11-17 07:34:58 +00:00
log_path = common . return_nice_path ( log_path )
2022-09-25 18:20:46 +00:00
commands = [ f ' sudo grep " { finding_words } " { log_path } */*.conf -C 2 -Rn ' ]
2022-11-17 07:34:58 +00:00
return_find = server_mod . ssh_command ( server_ip , commands , raw = 1 )
return_find = config_mod . show_finding_in_config ( return_find , grep = finding_words )
2022-03-02 20:09:39 +00:00
if ' error: ' in return_find :
print ( return_find )
sys . exit ( )
print ( return_find )
2022-04-15 09:49:00 +00:00
if act == ' check_service ' :
2023-03-08 13:15:15 +00:00
import modules . service . action as service_action
2022-09-02 14:12:28 +00:00
2022-04-15 09:49:00 +00:00
cookie = http . cookies . SimpleCookie ( os . environ . get ( " HTTP_COOKIE " ) )
user_uuid = cookie . get ( ' uuid ' )
2022-11-17 07:34:58 +00:00
server_id = common . checkAjaxInput ( form . getvalue ( ' server_id ' ) )
service = common . checkAjaxInput ( form . getvalue ( ' service ' ) )
2022-04-15 09:49:00 +00:00
2023-03-08 13:15:15 +00:00
service_action . check_service ( serv , user_uuid , service )
2022-04-24 07:08:45 +00:00
if form . getvalue ( ' show_sub_ovw ' ) :
2022-12-06 18:29:14 +00:00
import modules . roxywi . overview as roxywi_overview
roxywi_overview . show_sub_ovw ( )
2022-06-15 07:34:20 +00:00
if form . getvalue ( ' updateHaproxyCheckerSettings ' ) :
setting_id = form . getvalue ( ' updateHaproxyCheckerSettings ' )
email = form . getvalue ( ' email ' )
service_alert = form . getvalue ( ' server ' )
backend_alert = form . getvalue ( ' backend ' )
maxconn_alert = form . getvalue ( ' maxconn ' )
telegram_id = form . getvalue ( ' telegram_id ' )
slack_id = form . getvalue ( ' slack_id ' )
if sql . update_haproxy_checker_settings ( email , telegram_id , slack_id , service_alert , backend_alert ,
2022-06-15 20:02:55 +00:00
maxconn_alert , setting_id ) :
2022-06-15 07:34:20 +00:00
print ( ' ok ' )
else :
print ( ' error: Cannot update Checker settings ' )
if form . getvalue ( ' updateKeepalivedCheckerSettings ' ) :
setting_id = form . getvalue ( ' updateKeepalivedCheckerSettings ' )
email = form . getvalue ( ' email ' )
service_alert = form . getvalue ( ' server ' )
backend_alert = form . getvalue ( ' backend ' )
telegram_id = form . getvalue ( ' telegram_id ' )
slack_id = form . getvalue ( ' slack_id ' )
if sql . update_keepalived_checker_settings ( email , telegram_id , slack_id , service_alert , backend_alert , setting_id ) :
print ( ' ok ' )
else :
print ( ' error: Cannot update Checker settings ' )
if form . getvalue ( ' updateServiceCheckerSettings ' ) :
setting_id = form . getvalue ( ' updateServiceCheckerSettings ' )
email = form . getvalue ( ' email ' )
service_alert = form . getvalue ( ' server ' )
telegram_id = form . getvalue ( ' telegram_id ' )
slack_id = form . getvalue ( ' slack_id ' )
if sql . update_service_checker_settings ( email , telegram_id , slack_id , service_alert , setting_id ) :
print ( ' ok ' )
else :
print ( ' error: Cannot update Checker settings ' )