2018-04-16 07:01:44 +00:00
#!/usr/bin/env python3
2021-08-30 09:37:47 +00:00
import distro
2022-09-25 18:20:46 +00:00
2022-11-17 07:34:58 +00:00
from modules . db . db_model import *
2021-08-02 08:19:22 +00:00
def default_values ( ) :
2021-08-30 09:37:47 +00:00
if distro . id ( ) == ' ubuntu ' :
apache_dir = ' apache2 '
else :
apache_dir = ' httpd '
2021-08-02 08:19:22 +00:00
data_source = [
{ ' param ' : ' time_zone ' , ' value ' : ' UTC ' , ' section ' : ' main ' , ' desc ' : ' Time Zone ' , ' group ' : ' 1 ' } ,
2021-08-06 04:46:05 +00:00
{ ' param ' : ' proxy ' , ' value ' : ' ' , ' section ' : ' main ' , ' desc ' : ' IP address and port of the proxy server. Use proto://ip:port ' , ' group ' : ' 1 ' } ,
2023-03-12 11:18:03 +00:00
{ ' param ' : ' session_ttl ' , ' value ' : ' 5 ' , ' section ' : ' main ' , ' desc ' : ' TTL for a user session (in days) ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' token_ttl ' , ' value ' : ' 5 ' , ' section ' : ' main ' , ' desc ' : ' TTL for a user token (in days) ' , ' group ' : ' 1 ' } ,
2021-08-02 08:19:22 +00:00
{ ' param ' : ' tmp_config_path ' , ' value ' : ' /tmp/ ' , ' section ' : ' main ' ,
2022-05-23 19:55:08 +00:00
' desc ' : ' Path to the temporary directory. A valid path should be specified as the value of this parameter. '
2023-03-12 11:18:03 +00:00
' The directory must be owned by the user specified in SSH settings ' , ' group ' : ' 1 ' } ,
2021-08-02 08:19:22 +00:00
{ ' param ' : ' cert_path ' , ' value ' : ' /etc/ssl/certs/ ' , ' section ' : ' main ' ,
2023-03-12 11:18:03 +00:00
' desc ' : ' Path to SSL dir. Folder owner must be a user which set in the SSH settings. Path must exist ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' maxmind_key ' , ' value ' : ' ' , ' section ' : ' main ' , ' desc ' : ' License key for downloading GeoIP DB. You can create it on maxmind.com ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' haproxy_path_logs ' , ' value ' : ' /var/log/haproxy/ ' , ' section ' : ' haproxy ' , ' desc ' : ' The path for HAProxy logs ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' syslog_server_enable ' , ' value ' : ' 0 ' , ' section ' : ' logs ' , ' desc ' : ' Enable getting logs from a syslog server ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' syslog_server ' , ' value ' : ' ' , ' section ' : ' logs ' , ' desc ' : ' IP address of the syslog_server ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' log_time_storage ' , ' value ' : ' 14 ' , ' section ' : ' logs ' , ' desc ' : ' Retention period for user activity logs (in days) ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' stats_user ' , ' value ' : ' admin ' , ' section ' : ' haproxy ' , ' desc ' : ' Username for accessing HAProxy stats page ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' stats_password ' , ' value ' : ' password ' , ' section ' : ' haproxy ' , ' desc ' : ' Password for accessing HAProxy stats page ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' stats_port ' , ' value ' : ' 8085 ' , ' section ' : ' haproxy ' , ' desc ' : ' Port for HAProxy stats page ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' stats_page ' , ' value ' : ' stats ' , ' section ' : ' haproxy ' , ' desc ' : ' URI for HAProxy stats page ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' haproxy_dir ' , ' value ' : ' /etc/haproxy ' , ' section ' : ' haproxy ' , ' desc ' : ' Path to the HAProxy directory ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' haproxy_config_path ' , ' value ' : ' /etc/haproxy/haproxy.cfg ' , ' section ' : ' haproxy ' , ' desc ' : ' Path to the HAProxy configuration file ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' server_state_file ' , ' value ' : ' /etc/haproxy/haproxy.state ' , ' section ' : ' haproxy ' , ' desc ' : ' Path to the HAProxy state file ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' haproxy_sock ' , ' value ' : ' /var/run/haproxy.sock ' , ' section ' : ' haproxy ' , ' desc ' : ' Socket port for HAProxy ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' haproxy_sock_port ' , ' value ' : ' 1999 ' , ' section ' : ' haproxy ' , ' desc ' : ' HAProxy sock port ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' haproxy_container_name ' , ' value ' : ' haproxy ' , ' section ' : ' haproxy ' , ' desc ' : ' Docker container name for HAProxy service ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' apache_log_path ' , ' value ' : f ' /var/log/ { apache_dir } / ' , ' section ' : ' logs ' , ' desc ' : ' Path to Apache logs. Apache service for Roxy-WI ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' nginx_path_logs ' , ' value ' : ' /var/log/nginx/ ' , ' section ' : ' nginx ' , ' desc ' : ' The path for NGINX logs ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' nginx_stats_user ' , ' value ' : ' admin ' , ' section ' : ' nginx ' , ' desc ' : ' Username for accessing NGINX stats page ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' nginx_stats_password ' , ' value ' : ' password ' , ' section ' : ' nginx ' , ' desc ' : ' Password for Stats web page NGINX ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' nginx_stats_port ' , ' value ' : ' 8086 ' , ' section ' : ' nginx ' , ' desc ' : ' Stats port for web page NGINX ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' nginx_stats_page ' , ' value ' : ' stats ' , ' section ' : ' nginx ' , ' desc ' : ' URI Stats for web page NGINX ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' nginx_dir ' , ' value ' : ' /etc/nginx/ ' , ' section ' : ' nginx ' , ' desc ' : ' Path to the NGINX directory with config files ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' nginx_config_path ' , ' value ' : ' /etc/nginx/nginx.conf ' , ' section ' : ' nginx ' , ' desc ' : ' Path to the main NGINX configuration file ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' nginx_container_name ' , ' value ' : ' nginx ' , ' section ' : ' nginx ' , ' desc ' : ' Docker container name for NGINX service ' , ' group ' : ' 1 ' } ,
2022-06-15 07:34:20 +00:00
{ ' param ' : ' ldap_enable ' , ' value ' : ' 0 ' , ' section ' : ' ldap ' , ' desc ' : ' Enable LDAP ' , ' group ' : ' 1 ' } ,
2021-08-06 04:46:05 +00:00
{ ' param ' : ' ldap_server ' , ' value ' : ' ' , ' section ' : ' ldap ' , ' desc ' : ' IP address of the LDAP server ' , ' group ' : ' 1 ' } ,
2023-03-12 11:18:03 +00:00
{ ' param ' : ' ldap_port ' , ' value ' : ' 389 ' , ' section ' : ' ldap ' , ' desc ' : ' LDAP port (port 389 or 636 is used by default) ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' ldap_user ' , ' value ' : ' ' , ' section ' : ' ldap ' , ' desc ' : ' LDAP username. Format: user@domain.com ' , ' group ' : ' 1 ' } ,
2021-11-09 11:01:49 +00:00
{ ' param ' : ' ldap_password ' , ' value ' : ' ' , ' section ' : ' ldap ' , ' desc ' : ' LDAP password ' , ' group ' : ' 1 ' } ,
2023-03-12 11:18:03 +00:00
{ ' param ' : ' ldap_base ' , ' value ' : ' ' , ' section ' : ' ldap ' , ' desc ' : ' Base domain. Example: dc=domain, dc=com ' , ' group ' : ' 1 ' } ,
2021-11-09 11:01:49 +00:00
{ ' param ' : ' ldap_domain ' , ' value ' : ' ' , ' section ' : ' ldap ' , ' desc ' : ' LDAP domain for logging in ' , ' group ' : ' 1 ' } ,
2023-03-12 11:18:03 +00:00
{ ' param ' : ' ldap_class_search ' , ' value ' : ' user ' , ' section ' : ' ldap ' , ' desc ' : ' Class for searching the user ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' ldap_user_attribute ' , ' value ' : ' userPrincipalName ' , ' section ' : ' ldap ' , ' desc ' : ' Attribute to search users by ' , ' group ' : ' 1 ' } ,
2021-11-09 11:01:49 +00:00
{ ' param ' : ' ldap_search_field ' , ' value ' : ' mail ' , ' section ' : ' ldap ' , ' desc ' : ' User \' s email address ' , ' group ' : ' 1 ' } ,
2022-06-15 07:34:20 +00:00
{ ' param ' : ' ldap_type ' , ' value ' : ' 0 ' , ' section ' : ' ldap ' , ' desc ' : ' Use LDAPS ' , ' group ' : ' 1 ' } ,
2023-03-12 11:18:03 +00:00
{ ' param ' : ' smon_check_interval ' , ' value ' : ' 1 ' , ' section ' : ' monitoring ' , ' desc ' : ' Check interval for SMON (in minutes) ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' port_scan_interval ' , ' value ' : ' 5 ' , ' section ' : ' monitoring ' , ' desc ' : ' Check interval for Port scanner (in minutes) ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' portscanner_keep_history_range ' , ' value ' : ' 14 ' , ' section ' : ' monitoring ' , ' desc ' : ' Retention period for Port scanner history ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' smon_keep_history_range ' , ' value ' : ' 14 ' , ' section ' : ' monitoring ' , ' desc ' : ' Retention period for SMON history ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' checker_keep_history_range ' , ' value ' : ' 14 ' , ' section ' : ' monitoring ' , ' desc ' : ' Retention period for Checker history ' , ' group ' : ' 1 ' } ,
2023-05-03 05:46:32 +00:00
{ ' param ' : ' action_keep_history_range ' , ' value ' : ' 30 ' , ' section ' : ' monitoring ' , ' desc ' : ' Retention period for Action history ' , ' group ' : ' 1 ' } ,
2023-03-12 11:18:03 +00:00
{ ' param ' : ' checker_maxconn_threshold ' , ' value ' : ' 90 ' , ' section ' : ' monitoring ' , ' desc ' : ' Threshold value for alerting, in % ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' checker_check_interval ' , ' value ' : ' 1 ' , ' section ' : ' monitoring ' , ' desc ' : ' Check interval for Checker (in minutes) ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' smon_ssl_expire_warning_alert ' , ' value ' : ' 14 ' , ' section ' : ' monitoring ' , ' desc ' : ' Warning alert about a SSL certificate expiration (in days) ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' smon_ssl_expire_critical_alert ' , ' value ' : ' 7 ' , ' section ' : ' monitoring ' , ' desc ' : ' Critical alert about a SSL certificate expiration (in days) ' , ' group ' : ' 1 ' } ,
2022-03-15 09:51:03 +00:00
{ ' param ' : ' rabbitmq_host ' , ' value ' : ' 127.0.0.1 ' , ' section ' : ' rabbitmq ' , ' desc ' : ' RabbitMQ-server host ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' rabbitmq_port ' , ' value ' : ' 5672 ' , ' section ' : ' rabbitmq ' , ' desc ' : ' RabbitMQ-server port ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' rabbitmq_port ' , ' value ' : ' 5672 ' , ' section ' : ' rabbitmq ' , ' desc ' : ' RabbitMQ-server port ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' rabbitmq_vhost ' , ' value ' : ' / ' , ' section ' : ' rabbitmq ' , ' desc ' : ' RabbitMQ-server vhost ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' rabbitmq_queue ' , ' value ' : ' roxy-wi ' , ' section ' : ' rabbitmq ' , ' desc ' : ' RabbitMQ-server queue ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' rabbitmq_user ' , ' value ' : ' roxy-wi ' , ' section ' : ' rabbitmq ' , ' desc ' : ' RabbitMQ-server user ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' rabbitmq_password ' , ' value ' : ' roxy-wi123 ' , ' section ' : ' rabbitmq ' , ' desc ' : ' RabbitMQ-server user password ' , ' group ' : ' 1 ' } ,
2023-03-12 11:18:03 +00:00
{ ' param ' : ' apache_path_logs ' , ' value ' : ' /var/log/httpd/ ' , ' section ' : ' apache ' , ' desc ' : ' The path for Apache logs ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' apache_stats_user ' , ' value ' : ' admin ' , ' section ' : ' apache ' , ' desc ' : ' Username for accessing Apache stats page ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' apache_stats_password ' , ' value ' : ' password ' , ' section ' : ' apache ' , ' desc ' : ' Password for Apache stats webpage ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' apache_stats_port ' , ' value ' : ' 8087 ' , ' section ' : ' apache ' , ' desc ' : ' Stats port for webpage Apache ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' apache_stats_page ' , ' value ' : ' stats ' , ' section ' : ' apache ' , ' desc ' : ' URI Stats for webpage Apache ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' apache_dir ' , ' value ' : ' /etc/httpd/ ' , ' section ' : ' apache ' , ' desc ' : ' Path to the Apache directory with config files ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' apache_config_path ' , ' value ' : ' /etc/httpd/conf/httpd.conf ' , ' section ' : ' apache ' , ' desc ' : ' Path to the main Apache configuration file ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' apache_container_name ' , ' value ' : ' apache ' , ' section ' : ' apache ' , ' desc ' : ' Docker container name for Apache service ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' keepalived_config_path ' , ' value ' : ' /etc/keepalived/keepalived.conf ' , ' section ' : ' keepalived ' , ' desc ' : ' Path to the main Keepalived configuration file ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' keepalived_path_logs ' , ' value ' : ' /var/log/keepalived/ ' , ' section ' : ' keepalived ' , ' desc ' : ' The path for Keepalived logs ' , ' group ' : ' 1 ' } ,
2022-06-15 07:34:20 +00:00
{ ' param ' : ' mail_ssl ' , ' value ' : ' 0 ' , ' section ' : ' mail ' , ' desc ' : ' Enable TLS ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' mail_from ' , ' value ' : ' ' , ' section ' : ' mail ' , ' desc ' : ' Address of sender ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' mail_smtp_host ' , ' value ' : ' ' , ' section ' : ' mail ' , ' desc ' : ' SMTP server address ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' mail_smtp_port ' , ' value ' : ' 25 ' , ' section ' : ' mail ' , ' desc ' : ' SMTP server port ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' mail_smtp_user ' , ' value ' : ' ' , ' section ' : ' mail ' , ' desc ' : ' User for auth ' , ' group ' : ' 1 ' } ,
{ ' param ' : ' mail_smtp_password ' , ' value ' : ' ' , ' section ' : ' mail ' , ' desc ' : ' Password for auth ' , ' group ' : ' 1 ' } ,
2021-08-02 08:19:22 +00:00
]
try :
Setting . insert_many ( data_source ) . on_conflict_ignore ( ) . execute ( )
except Exception as e :
2022-03-23 06:27:33 +00:00
print ( str ( e ) )
2018-04-19 05:22:44 +00:00
2021-08-02 08:19:22 +00:00
data_source = [
2023-03-03 20:03:41 +00:00
{ ' username ' : ' admin ' , ' email ' : ' admin@localhost ' , ' password ' : ' 21232f297a57a5a743894a0e4a801fc3 ' , ' role ' : ' 1 ' , ' groups ' : ' 1 ' } ,
{ ' username ' : ' editor ' , ' email ' : ' editor@localhost ' , ' password ' : ' 5aee9dbd2a188839105073571bee1b1f ' , ' role ' : ' 2 ' , ' groups ' : ' 1 ' } ,
{ ' username ' : ' guest ' , ' email ' : ' guest@localhost ' , ' password ' : ' 084e0343a0486ff05530df6c705c8bb4 ' , ' role ' : ' 4 ' , ' groups ' : ' 1 ' }
2021-08-02 08:19:22 +00:00
]
try :
2022-03-23 06:27:33 +00:00
if Role . get ( Role . name == ' superAdmin ' ) . role_id == 1 :
create_users = False
2022-03-23 06:40:19 +00:00
else :
create_users = True
2022-03-23 06:27:33 +00:00
except Exception :
2022-03-23 06:40:19 +00:00
create_users = True
2022-03-23 06:27:33 +00:00
try :
if create_users :
2022-03-22 20:23:28 +00:00
User . insert_many ( data_source ) . on_conflict_ignore ( ) . execute ( )
2021-08-02 08:19:22 +00:00
except Exception as e :
2022-03-23 06:27:33 +00:00
print ( str ( e ) )
2020-10-16 12:33:53 +00:00
2023-03-04 07:42:26 +00:00
data_source = [
2023-03-13 19:33:04 +00:00
{ ' user_id ' : ' 1 ' , ' user_group_id ' : ' 1 ' , ' user_role_id ' : ' 1 ' } ,
{ ' user_id ' : ' 2 ' , ' user_group_id ' : ' 1 ' , ' user_role_id ' : ' 2 ' } ,
{ ' user_id ' : ' 3 ' , ' user_group_id ' : ' 1 ' , ' user_role_id ' : ' 4 ' }
2023-03-04 07:42:26 +00:00
]
try :
if create_users :
UserGroups . insert_many ( data_source ) . on_conflict_ignore ( ) . execute ( )
except Exception as e :
print ( str ( e ) )
2021-08-02 08:19:22 +00:00
data_source = [
2021-08-31 08:31:55 +00:00
{ ' name ' : ' superAdmin ' , ' description ' : ' Has the highest level of administrative permissions and controls the actions of all other users ' } ,
{ ' name ' : ' admin ' , ' description ' : ' Has access everywhere except the Admin area ' } ,
2022-03-23 07:00:14 +00:00
{ ' name ' : ' user ' , ' description ' : ' Has the same rights as the admin but has no access to the Servers page ' } ,
2021-08-02 08:19:22 +00:00
{ ' name ' : ' guest ' , ' description ' : ' Read-only access ' }
]
2020-10-16 12:33:53 +00:00
2018-05-01 06:28:19 +00:00
try :
2021-08-02 08:19:22 +00:00
Role . insert_many ( data_source ) . on_conflict_ignore ( ) . execute ( )
except Exception as e :
2022-03-23 06:27:33 +00:00
print ( str ( e ) )
2021-02-15 06:10:00 +00:00
2021-08-02 08:19:22 +00:00
try :
2022-04-29 10:28:48 +00:00
Groups . insert ( name = ' Default ' , description = ' All servers are included in this group by default ' , group_id = 1 ) . on_conflict_ignore ( ) . execute ( )
2021-08-02 08:19:22 +00:00
except Exception as e :
2022-03-23 06:27:33 +00:00
print ( str ( e ) )
2021-02-15 06:10:00 +00:00
2022-04-20 08:08:36 +00:00
data_source = [
2022-08-15 08:50:29 +00:00
{ ' service_id ' : 1 , ' service ' : ' HAProxy ' , ' slug ' : ' haproxy ' } ,
{ ' service_id ' : 2 , ' service ' : ' NGINX ' , ' slug ' : ' nginx ' } ,
{ ' service_id ' : 3 , ' service ' : ' Keepalived ' , ' slug ' : ' keepalived ' } ,
{ ' service_id ' : 4 , ' service ' : ' Apache ' , ' slug ' : ' apache ' } ,
2023-12-16 07:15:59 +00:00
{ ' service_id ' : 5 , ' service ' : ' HA cluster ' , ' slug ' : ' cluster ' } ,
2022-04-20 08:08:36 +00:00
]
try :
Services . insert_many ( data_source ) . on_conflict_ignore ( ) . execute ( )
2022-08-15 08:50:29 +00:00
except Exception :
Services . drop_table ( )
Services . create_table ( )
try :
Services . insert_many ( data_source ) . on_conflict_ignore ( ) . execute ( )
except Exception as e :
print ( str ( e ) )
2022-04-20 08:08:36 +00:00
2022-03-22 20:23:28 +00:00
data_source = [
{ ' code ' : ' RW ' , ' name ' : ' Rwanda ' } ,
{ ' code ' : ' SO ' , ' name ' : ' Somalia ' } ,
{ ' code ' : ' YE ' , ' name ' : ' Yemen ' } ,
{ ' code ' : ' IQ ' , ' name ' : ' Iraq ' } ,
{ ' code ' : ' SA ' , ' name ' : ' Saudi Arabia ' } ,
{ ' code ' : ' IR ' , ' name ' : ' Iran ' } ,
{ ' code ' : ' CY ' , ' name ' : ' Cyprus ' } ,
{ ' code ' : ' TZ ' , ' name ' : ' Tanzania ' } ,
{ ' code ' : ' SY ' , ' name ' : ' Syria ' } ,
{ ' code ' : ' AM ' , ' name ' : ' Armenia ' } ,
{ ' code ' : ' KE ' , ' name ' : ' Kenya ' } ,
{ ' code ' : ' CD ' , ' name ' : ' DR Congo ' } ,
{ ' code ' : ' DJ ' , ' name ' : ' Djibouti ' } ,
{ ' code ' : ' UG ' , ' name ' : ' Uganda ' } ,
{ ' code ' : ' CF ' , ' name ' : ' Central African Republic ' } ,
{ ' code ' : ' SC ' , ' name ' : ' Seychelles ' } ,
{ ' code ' : ' JO ' , ' name ' : ' Hashemite Kingdom of Jordan ' } ,
{ ' code ' : ' LB ' , ' name ' : ' Lebanon ' } ,
{ ' code ' : ' KW ' , ' name ' : ' Kuwait ' } ,
{ ' code ' : ' OM ' , ' name ' : ' Oman ' } ,
{ ' code ' : ' QA ' , ' name ' : ' Qatar ' } ,
{ ' code ' : ' BH ' , ' name ' : ' Bahrain ' } ,
{ ' code ' : ' AE ' , ' name ' : ' United Arab Emirates ' } ,
{ ' code ' : ' IL ' , ' name ' : ' Israel ' } ,
{ ' code ' : ' TR ' , ' name ' : ' Turkey ' } ,
{ ' code ' : ' ET ' , ' name ' : ' Ethiopia ' } ,
{ ' code ' : ' ER ' , ' name ' : ' Eritrea ' } ,
{ ' code ' : ' EG ' , ' name ' : ' Egypt ' } ,
{ ' code ' : ' SD ' , ' name ' : ' Sudan ' } ,
{ ' code ' : ' GR ' , ' name ' : ' Greece ' } ,
{ ' code ' : ' BI ' , ' name ' : ' Burundi ' } ,
{ ' code ' : ' EE ' , ' name ' : ' Estonia ' } ,
{ ' code ' : ' LV ' , ' name ' : ' Latvia ' } ,
{ ' code ' : ' AZ ' , ' name ' : ' Azerbaijan ' } ,
{ ' code ' : ' LT ' , ' name ' : ' Republic of Lithuania ' } ,
{ ' code ' : ' SJ ' , ' name ' : ' Svalbard and Jan Mayen ' } ,
{ ' code ' : ' GE ' , ' name ' : ' Georgia ' } ,
{ ' code ' : ' MD ' , ' name ' : ' Republic of Moldova ' } ,
{ ' code ' : ' BY ' , ' name ' : ' Belarus ' } ,
{ ' code ' : ' FI ' , ' name ' : ' Finland ' } ,
{ ' code ' : ' AX ' , ' name ' : ' Åland ' } ,
{ ' code ' : ' UA ' , ' name ' : ' Ukraine ' } ,
{ ' code ' : ' MK ' , ' name ' : ' North Macedonia ' } ,
{ ' code ' : ' HU ' , ' name ' : ' Hungary ' } ,
{ ' code ' : ' BG ' , ' name ' : ' Bulgaria ' } ,
{ ' code ' : ' AL ' , ' name ' : ' Albania ' } ,
{ ' code ' : ' PL ' , ' name ' : ' Poland ' } ,
{ ' code ' : ' RO ' , ' name ' : ' Romania ' } ,
{ ' code ' : ' XK ' , ' name ' : ' Kosovo ' } ,
{ ' code ' : ' ZW ' , ' name ' : ' Zimbabwe ' } ,
{ ' code ' : ' ZM ' , ' name ' : ' Zambia ' } ,
{ ' code ' : ' KM ' , ' name ' : ' Comoros ' } ,
{ ' code ' : ' MW ' , ' name ' : ' Malawi ' } ,
{ ' code ' : ' LS ' , ' name ' : ' Lesotho ' } ,
{ ' code ' : ' BW ' , ' name ' : ' Botswana ' } ,
{ ' code ' : ' MU ' , ' name ' : ' Mauritius ' } ,
{ ' code ' : ' SZ ' , ' name ' : ' Eswatini ' } ,
{ ' code ' : ' RE ' , ' name ' : ' Réunion ' } ,
{ ' code ' : ' ZA ' , ' name ' : ' South Africa ' } ,
{ ' code ' : ' YT ' , ' name ' : ' Mayotte ' } ,
{ ' code ' : ' MZ ' , ' name ' : ' Mozambique ' } ,
{ ' code ' : ' MG ' , ' name ' : ' Madagascar ' } ,
{ ' code ' : ' AF ' , ' name ' : ' Afghanistan ' } ,
{ ' code ' : ' PK ' , ' name ' : ' Pakistan ' } ,
{ ' code ' : ' BD ' , ' name ' : ' Bangladesh ' } ,
{ ' code ' : ' TM ' , ' name ' : ' Turkmenistan ' } ,
{ ' code ' : ' TJ ' , ' name ' : ' Tajikistan ' } ,
{ ' code ' : ' LK ' , ' name ' : ' Sri Lanka ' } ,
{ ' code ' : ' BT ' , ' name ' : ' Bhutan ' } ,
{ ' code ' : ' IN ' , ' name ' : ' India ' } ,
{ ' code ' : ' MV ' , ' name ' : ' Maldives ' } ,
{ ' code ' : ' IO ' , ' name ' : ' British Indian Ocean Territory ' } ,
{ ' code ' : ' NP ' , ' name ' : ' Nepal ' } ,
{ ' code ' : ' MM ' , ' name ' : ' Myanmar ' } ,
{ ' code ' : ' UZ ' , ' name ' : ' Uzbekistan ' } ,
{ ' code ' : ' KZ ' , ' name ' : ' Kazakhstan ' } ,
{ ' code ' : ' KG ' , ' name ' : ' Kyrgyzstan ' } ,
{ ' code ' : ' TF ' , ' name ' : ' French Southern Territories ' } ,
{ ' code ' : ' HM ' , ' name ' : ' Heard Island and McDonald Islands ' } ,
{ ' code ' : ' CC ' , ' name ' : ' Cocos [Keeling] Islands ' } ,
{ ' code ' : ' PW ' , ' name ' : ' Palau ' } ,
{ ' code ' : ' VN ' , ' name ' : ' Vietnam ' } ,
{ ' code ' : ' TH ' , ' name ' : ' Thailand ' } ,
{ ' code ' : ' ID ' , ' name ' : ' Indonesia ' } ,
{ ' code ' : ' LA ' , ' name ' : ' Laos ' } ,
{ ' code ' : ' TW ' , ' name ' : ' Taiwan ' } ,
{ ' code ' : ' PH ' , ' name ' : ' Philippines ' } ,
{ ' code ' : ' MY ' , ' name ' : ' Malaysia ' } ,
{ ' code ' : ' CN ' , ' name ' : ' China ' } ,
{ ' code ' : ' HK ' , ' name ' : ' Hong Kong ' } ,
{ ' code ' : ' BN ' , ' name ' : ' Brunei ' } ,
{ ' code ' : ' MO ' , ' name ' : ' Macao ' } ,
{ ' code ' : ' KH ' , ' name ' : ' Cambodia ' } ,
{ ' code ' : ' KR ' , ' name ' : ' South Korea ' } ,
{ ' code ' : ' JP ' , ' name ' : ' Japan ' } ,
{ ' code ' : ' KP ' , ' name ' : ' North Korea ' } ,
{ ' code ' : ' SG ' , ' name ' : ' Singapore ' } ,
{ ' code ' : ' CK ' , ' name ' : ' Cook Islands ' } ,
{ ' code ' : ' TL ' , ' name ' : ' East Timor ' } ,
{ ' code ' : ' RU ' , ' name ' : ' Russia ' } ,
{ ' code ' : ' MN ' , ' name ' : ' Mongolia ' } ,
{ ' code ' : ' AU ' , ' name ' : ' Australia ' } ,
{ ' code ' : ' CX ' , ' name ' : ' Christmas Island ' } ,
{ ' code ' : ' MH ' , ' name ' : ' Marshall Islands ' } ,
{ ' code ' : ' FM ' , ' name ' : ' Federated States of Micronesia ' } ,
{ ' code ' : ' PG ' , ' name ' : ' Papua New Guinea ' } ,
{ ' code ' : ' SB ' , ' name ' : ' Solomon Islands ' } ,
{ ' code ' : ' TV ' , ' name ' : ' Tuvalu ' } ,
{ ' code ' : ' NR ' , ' name ' : ' Nauru ' } ,
{ ' code ' : ' VU ' , ' name ' : ' Vanuatu ' } ,
{ ' code ' : ' NC ' , ' name ' : ' New Caledonia ' } ,
{ ' code ' : ' NF ' , ' name ' : ' Norfolk Island ' } ,
{ ' code ' : ' NZ ' , ' name ' : ' New Zealand ' } ,
{ ' code ' : ' FJ ' , ' name ' : ' Fiji ' } ,
{ ' code ' : ' LY ' , ' name ' : ' Libya ' } ,
{ ' code ' : ' CM ' , ' name ' : ' Cameroon ' } ,
{ ' code ' : ' SN ' , ' name ' : ' Senegal ' } ,
{ ' code ' : ' CG ' , ' name ' : ' Congo Republic ' } ,
{ ' code ' : ' PT ' , ' name ' : ' Portugal ' } ,
{ ' code ' : ' LR ' , ' name ' : ' Liberia ' } ,
{ ' code ' : ' CI ' , ' name ' : ' Ivory Coast ' } ,
{ ' code ' : ' GH ' , ' name ' : ' Ghana ' } ,
{ ' code ' : ' GQ ' , ' name ' : ' Equatorial Guinea ' } ,
{ ' code ' : ' NG ' , ' name ' : ' Nigeria ' } ,
{ ' code ' : ' BF ' , ' name ' : ' Burkina Faso ' } ,
{ ' code ' : ' TG ' , ' name ' : ' Togo ' } ,
{ ' code ' : ' GW ' , ' name ' : ' Guinea-Bissau ' } ,
{ ' code ' : ' MR ' , ' name ' : ' Mauritania ' } ,
{ ' code ' : ' BJ ' , ' name ' : ' Benin ' } ,
{ ' code ' : ' GA ' , ' name ' : ' Gabon ' } ,
{ ' code ' : ' SL ' , ' name ' : ' Sierra Leone ' } ,
{ ' code ' : ' ST ' , ' name ' : ' São Tomé and Príncipe ' } ,
{ ' code ' : ' GI ' , ' name ' : ' Gibraltar ' } ,
{ ' code ' : ' GM ' , ' name ' : ' Gambia ' } ,
{ ' code ' : ' GN ' , ' name ' : ' Guinea ' } ,
{ ' code ' : ' TD ' , ' name ' : ' Chad ' } ,
{ ' code ' : ' NE ' , ' name ' : ' Niger ' } ,
{ ' code ' : ' ML ' , ' name ' : ' Mali ' } ,
{ ' code ' : ' EH ' , ' name ' : ' Western Sahara ' } ,
{ ' code ' : ' TN ' , ' name ' : ' Tunisia ' } ,
{ ' code ' : ' ES ' , ' name ' : ' Spain ' } ,
{ ' code ' : ' MA ' , ' name ' : ' Morocco ' } ,
{ ' code ' : ' MT ' , ' name ' : ' Malta ' } ,
{ ' code ' : ' DZ ' , ' name ' : ' Algeria ' } ,
{ ' code ' : ' FO ' , ' name ' : ' Faroe Islands ' } ,
{ ' code ' : ' DK ' , ' name ' : ' Denmark ' } ,
{ ' code ' : ' IS ' , ' name ' : ' Iceland ' } ,
{ ' code ' : ' GB ' , ' name ' : ' United Kingdom ' } ,
{ ' code ' : ' CH ' , ' name ' : ' Switzerland ' } ,
{ ' code ' : ' SE ' , ' name ' : ' Sweden ' } ,
{ ' code ' : ' NL ' , ' name ' : ' Netherlands ' } ,
{ ' code ' : ' AT ' , ' name ' : ' Austria ' } ,
{ ' code ' : ' BE ' , ' name ' : ' Belgium ' } ,
{ ' code ' : ' DE ' , ' name ' : ' Germany ' } ,
{ ' code ' : ' LU ' , ' name ' : ' Luxembourg ' } ,
{ ' code ' : ' IE ' , ' name ' : ' Ireland ' } ,
{ ' code ' : ' MC ' , ' name ' : ' Monaco ' } ,
{ ' code ' : ' FR ' , ' name ' : ' France ' } ,
{ ' code ' : ' AD ' , ' name ' : ' Andorra ' } ,
{ ' code ' : ' LI ' , ' name ' : ' Liechtenstein ' } ,
{ ' code ' : ' JE ' , ' name ' : ' Jersey ' } ,
{ ' code ' : ' IM ' , ' name ' : ' Isle of Man ' } ,
{ ' code ' : ' GG ' , ' name ' : ' Guernsey ' } ,
{ ' code ' : ' SK ' , ' name ' : ' Slovakia ' } ,
{ ' code ' : ' CZ ' , ' name ' : ' Czechia ' } ,
{ ' code ' : ' NO ' , ' name ' : ' Norway ' } ,
{ ' code ' : ' VA ' , ' name ' : ' Vatican City ' } ,
{ ' code ' : ' SM ' , ' name ' : ' San Marino ' } ,
{ ' code ' : ' IT ' , ' name ' : ' Italy ' } ,
{ ' code ' : ' SI ' , ' name ' : ' Slovenia ' } ,
{ ' code ' : ' ME ' , ' name ' : ' Montenegro ' } ,
{ ' code ' : ' HR ' , ' name ' : ' Croatia ' } ,
{ ' code ' : ' BA ' , ' name ' : ' Bosnia and Herzegovina ' } ,
{ ' code ' : ' AO ' , ' name ' : ' Angola ' } ,
{ ' code ' : ' NA ' , ' name ' : ' Namibia ' } ,
{ ' code ' : ' SH ' , ' name ' : ' Saint Helena ' } ,
{ ' code ' : ' BV ' , ' name ' : ' Bouvet Island ' } ,
{ ' code ' : ' BB ' , ' name ' : ' Barbados ' } ,
{ ' code ' : ' CV ' , ' name ' : ' Cabo Verde ' } ,
{ ' code ' : ' GY ' , ' name ' : ' Guyana ' } ,
{ ' code ' : ' GF ' , ' name ' : ' French Guiana ' } ,
{ ' code ' : ' SR ' , ' name ' : ' Suriname ' } ,
{ ' code ' : ' PM ' , ' name ' : ' Saint Pierre and Miquelon ' } ,
{ ' code ' : ' GL ' , ' name ' : ' Greenland ' } ,
{ ' code ' : ' PY ' , ' name ' : ' Paraguay ' } ,
{ ' code ' : ' UY ' , ' name ' : ' Uruguay ' } ,
{ ' code ' : ' BR ' , ' name ' : ' Brazil ' } ,
{ ' code ' : ' FK ' , ' name ' : ' Falkland Islands ' } ,
{ ' code ' : ' GS ' , ' name ' : ' South Georgia and the South Sandwich Islands ' } ,
{ ' code ' : ' JM ' , ' name ' : ' Jamaica ' } ,
{ ' code ' : ' DO ' , ' name ' : ' Dominican Republic ' } ,
{ ' code ' : ' CU ' , ' name ' : ' Cuba ' } ,
{ ' code ' : ' MQ ' , ' name ' : ' Martinique ' } ,
{ ' code ' : ' BS ' , ' name ' : ' Bahamas ' } ,
{ ' code ' : ' BM ' , ' name ' : ' Bermuda ' } ,
{ ' code ' : ' AI ' , ' name ' : ' Anguilla ' } ,
{ ' code ' : ' TT ' , ' name ' : ' Trinidad and Tobago ' } ,
{ ' code ' : ' KN ' , ' name ' : ' St Kitts and Nevis ' } ,
{ ' code ' : ' DM ' , ' name ' : ' Dominica ' } ,
{ ' code ' : ' AG ' , ' name ' : ' Antigua and Barbuda ' } ,
{ ' code ' : ' LC ' , ' name ' : ' Saint Lucia ' } ,
{ ' code ' : ' TC ' , ' name ' : ' Turks and Caicos Islands ' } ,
{ ' code ' : ' AW ' , ' name ' : ' Aruba ' } ,
{ ' code ' : ' VG ' , ' name ' : ' British Virgin Islands ' } ,
{ ' code ' : ' VC ' , ' name ' : ' Saint Vincent and the Grenadines ' } ,
{ ' code ' : ' MS ' , ' name ' : ' Montserrat ' } ,
{ ' code ' : ' MF ' , ' name ' : ' Saint Martin ' } ,
{ ' code ' : ' BL ' , ' name ' : ' Saint Barthélemy ' } ,
{ ' code ' : ' GP ' , ' name ' : ' Guadeloupe ' } ,
{ ' code ' : ' GD ' , ' name ' : ' Grenada ' } ,
{ ' code ' : ' KY ' , ' name ' : ' Cayman Islands ' } ,
{ ' code ' : ' BZ ' , ' name ' : ' Belize ' } ,
{ ' code ' : ' SV ' , ' name ' : ' El Salvador ' } ,
{ ' code ' : ' GT ' , ' name ' : ' Guatemala ' } ,
{ ' code ' : ' HN ' , ' name ' : ' Honduras ' } ,
{ ' code ' : ' NI ' , ' name ' : ' Nicaragua ' } ,
{ ' code ' : ' CR ' , ' name ' : ' Costa Rica ' } ,
{ ' code ' : ' VE ' , ' name ' : ' Venezuela ' } ,
{ ' code ' : ' EC ' , ' name ' : ' Ecuador ' } ,
{ ' code ' : ' CO ' , ' name ' : ' Colombia ' } ,
{ ' code ' : ' PA ' , ' name ' : ' Panama ' } ,
{ ' code ' : ' HT ' , ' name ' : ' Haiti ' } ,
{ ' code ' : ' AR ' , ' name ' : ' Argentina ' } ,
{ ' code ' : ' CL ' , ' name ' : ' Chile ' } ,
{ ' code ' : ' BO ' , ' name ' : ' Bolivia ' } ,
{ ' code ' : ' PE ' , ' name ' : ' Peru ' } ,
{ ' code ' : ' MX ' , ' name ' : ' Mexico ' } ,
{ ' code ' : ' PF ' , ' name ' : ' French Polynesia ' } ,
{ ' code ' : ' PN ' , ' name ' : ' Pitcairn Islands ' } ,
{ ' code ' : ' KI ' , ' name ' : ' Kiribati ' } ,
{ ' code ' : ' TK ' , ' name ' : ' Tokelau ' } ,
{ ' code ' : ' TO ' , ' name ' : ' Tonga ' } ,
{ ' code ' : ' WF ' , ' name ' : ' Wallis and Futuna ' } ,
{ ' code ' : ' WS ' , ' name ' : ' Samoa ' } ,
{ ' code ' : ' NU ' , ' name ' : ' Niue ' } ,
{ ' code ' : ' MP ' , ' name ' : ' Northern Mariana Islands ' } ,
{ ' code ' : ' GU ' , ' name ' : ' Guam ' } ,
{ ' code ' : ' PR ' , ' name ' : ' Puerto Rico ' } ,
{ ' code ' : ' VI ' , ' name ' : ' U.S. Virgin Islands ' } ,
{ ' code ' : ' UM ' , ' name ' : ' U.S. Minor Outlying Islands ' } ,
{ ' code ' : ' AS ' , ' name ' : ' American Samoa ' } ,
{ ' code ' : ' CA ' , ' name ' : ' Canada ' } ,
{ ' code ' : ' US ' , ' name ' : ' United States ' } ,
{ ' code ' : ' PS ' , ' name ' : ' Palestine ' } ,
{ ' code ' : ' RS ' , ' name ' : ' Serbia ' } ,
{ ' code ' : ' AQ ' , ' name ' : ' Antarctica ' } ,
{ ' code ' : ' SX ' , ' name ' : ' Sint Maarten ' } ,
{ ' code ' : ' CW ' , ' name ' : ' Curaçao ' } ,
{ ' code ' : ' BQ ' , ' name ' : ' Bonaire ' } ,
{ ' code ' : ' SS ' , ' name ' : ' South Sudan ' }
]
try :
GeoipCodes . insert_many ( data_source ) . on_conflict_ignore ( ) . execute ( )
except Exception as e :
2022-03-23 06:27:33 +00:00
print ( str ( e ) )
2022-03-22 20:23:28 +00:00
2023-10-16 10:12:36 +00:00
data_source = [
{ ' name ' : ' roxy-wi-metrics ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 0 ' , ' is_roxy ' : 1 , ' desc ' : ' ' } ,
{ ' name ' : ' roxy-wi-checker ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 0 ' , ' is_roxy ' : 1 , ' desc ' : ' ' } ,
{ ' name ' : ' roxy-wi-keep_alive ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 0 ' , ' is_roxy ' : 1 , ' desc ' : ' ' } ,
{ ' name ' : ' roxy-wi-portscanner ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 0 ' , ' is_roxy ' : 1 , ' desc ' : ' ' } ,
{ ' name ' : ' roxy-wi-socket ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 0 ' , ' is_roxy ' : 1 , ' desc ' : ' ' } ,
{ ' name ' : ' roxy-wi-prometheus-exporter ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 0 ' , ' is_roxy ' : 1 , ' desc ' : ' ' } ,
{ ' name ' : ' roxy-wi-smon ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 0 ' , ' is_roxy ' : 1 , ' desc ' : ' ' } ,
{ ' name ' : ' prometheus ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 1.0 ' , ' is_roxy ' : 0 , ' desc ' : ' Prometheus service ' } ,
{ ' name ' : ' grafana-server ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 1.0 ' , ' is_roxy ' : 0 , ' desc ' : ' Grafana service ' } ,
{ ' name ' : ' fail2ban ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 1.0 ' , ' is_roxy ' : 0 , ' desc ' : ' Fail2ban service ' } ,
{ ' name ' : ' rabbitmq-server ' , ' current_version ' : ' 1.0 ' , ' new_version ' : ' 1.0 ' , ' is_roxy ' : 0 , ' desc ' : ' Rabbitmq service ' } ,
]
try :
RoxyTool . insert_many ( data_source ) . on_conflict_ignore ( ) . execute ( )
except Exception as e :
print ( str ( e ) )
2022-09-26 09:18:18 +00:00
2022-09-25 19:58:32 +00:00
# Needs for insert version in first time
def update_db_v_3_4_5_22 ( ) :
try :
Version . insert ( version = ' 3.4.5.2 ' ) . execute ( )
except Exception as e :
print ( ' Cannot insert version %s ' % e )
2021-08-02 08:19:22 +00:00
2022-03-22 07:52:50 +00:00
# Needs for updating user_group. Do not delete
2022-09-25 18:20:46 +00:00
def update_db_v_4_3_0 ( ) :
2022-03-22 07:52:50 +00:00
try :
2022-05-23 19:55:08 +00:00
UserGroups . insert_from (
User . select ( User . user_id , User . groups ) , fields = [ UserGroups . user_id , UserGroups . user_group_id ]
) . on_conflict_ignore ( ) . execute ( )
2022-03-22 07:52:50 +00:00
except Exception as e :
2022-09-25 18:20:46 +00:00
if e . args [ 0 ] == ' duplicate column name: haproxy ' or str ( e ) == ' (1060, " Duplicate column name \' haproxy \' " ) ' :
print ( ' Updating... go to version 4.3.1 ' )
else :
print ( " An error occurred: " , e )
2021-05-16 05:27:47 +00:00
2023-01-17 18:23:53 +00:00
def update_db_v_6_3_4 ( ) :
cursor = conn . cursor ( )
sql = list ( )
sql . append ( " alter table smon add column ssl_expire_warning_alert integer default 0 " )
sql . append ( " alter table smon add column ssl_expire_critical_alert integer default 0 " )
for i in sql :
try :
cursor . execute ( i )
2023-01-18 07:37:23 +00:00
except Exception :
2023-01-17 18:23:53 +00:00
pass
else :
print ( ' Updating... DB has been updated to version 6.3.4.0 ' )
2023-01-24 07:34:14 +00:00
def update_db_v_6_3_5 ( ) :
cursor = conn . cursor ( )
sql = list ( )
sql . append ( " ALTER TABLE `action_history` ADD COLUMN server_ip varchar(64); " )
sql . append ( " ALTER TABLE `action_history` ADD COLUMN hostname varchar(64); " )
for i in sql :
try :
cursor . execute ( i )
except Exception :
pass
else :
print ( " Updating... DB has been updated to version 6.3.5.0 " )
2023-03-03 20:03:41 +00:00
def update_db_v_6_3_6 ( ) :
cursor = conn . cursor ( )
sql = list ( )
sql . append ( " ALTER TABLE `user_groups` ADD COLUMN user_role_id integer; " )
if mysql_enable == ' 1 ' :
sql . append ( " update user_groups u_g inner join user as u on u_g.user_id = u.id inner join role as r on r.name = u.role set user_role_id = r.id where u_g.user_role_id is NULL; " )
sql . append ( " update user u inner join role as r on r.name = u.role set u.role = r.id; " )
else :
sql . append ( " update user_groups as u_g set user_role_id = (select r.id from role as r inner join user as u on u.role = r.name where u_g.user_id = u.id) where user_role_id is null; " )
sql . append ( " update user as u set role = (select r.id from role as r where r.name = u.role); " )
for i in sql :
try :
cursor . execute ( i )
except Exception :
pass
else :
print ( " Updating... DB has been updated to version 6.3.6.0 " )
2023-03-19 15:51:58 +00:00
def update_db_v_6_3_8 ( ) :
cursor = conn . cursor ( )
sql = """
ALTER TABLE ` smon ` ADD COLUMN ssl_expire_date varchar ( 64 ) ;
"""
try :
cursor . execute ( sql )
except Exception as e :
if e . args [ 0 ] == ' duplicate column name: ssl_expire_date ' or str ( e ) == ' (1060, " Duplicate column name \' ssl_expire_date \' " ) ' :
print ( ' Updating... DB has been updated to version 6.3.8 ' )
else :
print ( " An error occurred: " , e )
else :
print ( " Updating... DB has been updated to version 6.3.8 " )
2023-04-15 21:26:54 +00:00
def update_db_v_6_3_9 ( ) :
cursor = conn . cursor ( )
sql = """
ALTER TABLE ` checker_setting ` ADD COLUMN pd_id integer default 0 ;
"""
try :
cursor . execute ( sql )
except Exception as e :
if e . args [ 0 ] == ' duplicate column name: pd_id ' or str ( e ) == ' (1060, " Duplicate column name \' pd_id \' " ) ' :
print ( ' Updating... DB has been updated to version 6.3.9 ' )
else :
print ( " An error occurred: " , e )
else :
print ( " Updating... DB has been updated to version 6.3.9 " )
2023-05-03 05:46:32 +00:00
def update_db_v_6_3_11 ( ) :
cursor = conn . cursor ( )
sql = """
ALTER TABLE ` smon ` ADD COLUMN pd_channel_id integer default 0 ;
"""
try :
cursor . execute ( sql )
except Exception as e :
if e . args [ 0 ] == ' duplicate column name: pd_channel_id ' or str ( e ) == ' (1060, " Duplicate column name \' pd_channel_id \' " ) ' :
print ( ' Updating... DB has been updated to version 6.3.11 ' )
else :
print ( " An error occurred: " , e )
else :
print ( " Updating... DB has been updated to version 6.3.11 " )
2023-06-03 15:04:22 +00:00
def update_db_v_6_3_13 ( ) :
cursor = conn . cursor ( )
sql = """
ALTER TABLE ` smon ` ADD COLUMN check_type VARCHAR ( 64 ) DEFAULT ' tcp ' ;
"""
try :
cursor . execute ( sql )
except Exception as e :
if e . args [ 0 ] == ' duplicate column name: check_type ' or str ( e ) == ' (1060, " Duplicate column name \' check_type \' " ) ' :
print ( ' Updating... DB has been updated to version 6.3.13 ' )
else :
print ( " An error occurred: " , e )
else :
print ( " Updating... DB has been updated to version 6.3.13 " )
def update_db_v_6_3_13_1 ( ) :
try :
SmonTcpCheck . insert_from (
SMON . select ( SMON . id , SMON . ip , SMON . port ) . where (
( SMON . http == ' ' ) & ( SMON . check_type == ' tcp ' )
) , fields = [ SmonTcpCheck . smon_id , SmonTcpCheck . ip , SmonTcpCheck . port ]
) . on_conflict_ignore ( ) . execute ( )
except Exception as e :
2023-06-16 03:51:26 +00:00
if e . args [ 0 ] == ' no such column: t1.name ' or str ( e ) == ' type object \' SMON \' has no attribute \' ip \' ' :
2023-06-03 15:04:22 +00:00
print ( ' Updating... DB has been updated to version 6.3.13-1 ' )
else :
print ( " An error occurred: " , e )
def update_db_v_6_3_13_2 ( ) :
query = SMON . select ( ) . where ( SMON . http != ' ' )
try :
query_res = query . execute ( )
except Exception as e :
print ( " An error occurred: " , e )
else :
for i in query_res :
try :
proto = i . http . split ( ' : ' ) [ 0 ]
uri = i . http . split ( ' : ' ) [ 1 ]
except Exception :
proto = ' '
uri = ' '
url = f ' { proto } :// { i . name } : { i . port } { uri } '
SmonHttpCheck . insert ( smon_id = i . id , url = url , body = i . body ) . on_conflict_ignore ( ) . execute ( )
def update_db_v_6_3_13_3 ( ) :
try :
SmonPingCheck . insert_from (
SMON . select ( SMON . id , SMON . ip ) . where ( SMON . check_type == ' ping ' ) , fields = [ SmonPingCheck . smon_id , SmonPingCheck . ip ]
) . on_conflict_ignore ( ) . execute ( )
except Exception as e :
if e . args [ 0 ] == ' duplicate column name: haproxy ' or str ( e ) == ' type object \' SMON \' has no attribute \' ip \' ' :
print ( ' Updating... DB has been updated to version 6.3.13-2 ' )
else :
print ( " An error occurred: " , e )
def update_db_v_6_3_13_4 ( ) :
try :
migrate (
migrator . alter_column_type ( ' smon ' , ' time_state ' , DateTimeField ( ) ) ,
migrator . rename_column ( ' smon ' , ' ip ' , ' name ' ) ,
migrator . drop_column ( ' smon ' , ' script ' , cascade = False ) ,
migrator . drop_column ( ' smon ' , ' http_status ' , cascade = False ) ,
)
except Exception as e :
if e . args [ 0 ] == ' duplicate column name: check_type ' or str ( e ) == ' (1091, " Can \' t DROP COLUMN `script`; check that it exists " ) ' :
print ( ' Updating... DB has been updated to version 6.3.13-3 ' )
elif e . args [ 0 ] == ' duplicate column name: check_type ' or str ( e ) == ' (1091, " Can \' t DROP COLUMN `http_status`; check that it exists " ) ' :
print ( ' Updating... DB has been updated to version 6.3.13-3 ' )
2023-07-03 09:15:39 +00:00
elif e . args [ 0 ] == ' table smon__tmp__ has no column named UNIQUE ' or str ( e ) == " ' bool ' object has no attribute ' sql ' " :
2023-06-03 15:04:22 +00:00
print ( ' Updating... DB has been updated to version 6.3.13-3 ' )
else :
print ( " An error occurred: " , e )
def update_db_v_6_3_13_5 ( ) :
try :
SMON . update ( check_type = ' http ' ) . where ( SMON . http != ' ' ) . execute ( )
except Exception :
print ( " An error occurred: " , e )
2023-08-03 06:56:25 +00:00
def update_db_v_6_3_17 ( ) :
try :
Setting . delete ( ) . where ( Setting . param == ' lists_path ' ) . execute ( )
except Exception as e :
print ( " An error occurred: " , e )
else :
print ( " Updating... DB has been updated to version 6.3.17 " )
2023-08-17 11:37:08 +00:00
def update_db_v_6_3_18 ( ) :
try :
Setting . delete ( ) . where ( Setting . param == ' ssl_local_path ' ) . execute ( )
except Exception as e :
print ( " An error occurred: " , e )
else :
print ( " Updating... DB has been updated to version 6.3.18 " )
2021-02-04 04:41:23 +00:00
def update_ver ( ) :
2021-02-15 06:10:00 +00:00
try :
2024-01-17 09:40:38 +00:00
Version . update ( version = ' 7.1.1.0 ' ) . execute ( )
2022-05-23 19:55:08 +00:00
except Exception :
2019-09-14 08:13:45 +00:00
print ( ' Cannot update version ' )
2021-09-02 08:07:24 +00:00
2021-02-15 06:10:00 +00:00
2022-09-26 09:18:18 +00:00
def check_ver ( ) :
try :
ver = Version . get ( )
except Exception as e :
print ( str ( e ) )
else :
return ver . version
2021-08-02 08:19:22 +00:00
def update_all ( ) :
2022-09-25 19:58:32 +00:00
if check_ver ( ) is None :
update_db_v_3_4_5_22 ( )
2022-03-22 07:52:50 +00:00
update_db_v_4_3_0 ( )
2023-01-17 18:23:53 +00:00
update_db_v_6_3_4 ( )
2023-01-24 07:34:14 +00:00
update_db_v_6_3_5 ( )
2023-03-03 20:03:41 +00:00
update_db_v_6_3_6 ( )
2023-03-19 15:51:58 +00:00
update_db_v_6_3_8 ( )
2023-04-15 21:26:54 +00:00
update_db_v_6_3_9 ( )
2023-05-03 05:46:32 +00:00
update_db_v_6_3_11 ( )
2023-06-03 15:04:22 +00:00
update_db_v_6_3_13 ( )
update_db_v_6_3_13_1 ( )
update_db_v_6_3_13_2 ( )
update_db_v_6_3_13_3 ( )
update_db_v_6_3_13_4 ( )
update_db_v_6_3_13_5 ( )
2023-08-03 06:56:25 +00:00
update_db_v_6_3_17 ( )
2023-08-17 11:37:08 +00:00
update_db_v_6_3_18 ( )
2019-09-27 21:53:25 +00:00
update_ver ( )
2021-02-15 06:10:00 +00:00
2018-09-01 10:43:25 +00:00
if __name__ == " __main__ " :
2021-08-02 08:19:22 +00:00
create_tables ( )
default_values ( )
2018-09-01 10:43:25 +00:00
update_all ( )