def update_db_v_4_5_1(**kwargs): cursor = conn.cursor() sql = """ select name from role where name = 'superAdmin';""" try: cursor.execute(sql) except Exception as e: out_error(e) else: role = cursor.fetchall() if not role: sql = list() sql.append("update role set name = 'superAdmin' where id = '1';") sql.append( "update role set name = 'admin', `description` = 'Has access everywhere except the Admin area' where id = '2';" ) sql.append("update role set id = '4' where id = '3';") sql.append( "INSERT INTO role (id, name, `description`) values('3', 'editor', 'Has the same as the admin except the Servers page');" ) sql.append("update user set role = 'superAdmin' where role = 'admin';") sql.append("update user set role = 'admin' where role = 'editor';") for i in sql: try: cursor.execute(i) except: pass else: if kwargs.get('silent') != 1: print('DB has been updated to 4.5.0')
def update_db_v_4_5_8_2(**kwargs): groups = '' query = Groups.select() try: query_res = query.execute() except Exception as e: out_error(e) else: groups = query_res for g in groups: try: Setting.insert( param='maxmind_key', value='', section='haproxy', desc= 'License key for downloading to GeoLite2 DB. You can create it on maxmind.com', group=g.group_id).execute() except Exception as e: if kwargs.get('silent') != 1: if (str(e) == 'columns param, group are not unique' or str( e ) == '(1062, "Duplicate entry \'maxmind_key-1\' for key \'param\'")' or str(e) == 'UNIQUE constraint failed: settings.param, settings.group' ): pass else: print("An error occurred:", e) else: print("Updating... groups")
def update_db_v_5_3_0(**kwargs): groups = '' query = Groups.select() try: query_res = query.execute() except Exception as e: out_error(e) else: groups = query_res for g in groups: try: data_source = [ { 'param': 'nginx_container_name', 'value': 'nginx', 'section': 'nginx', 'desc': 'Docker container name for Nginx service', 'group': g.group_id }, { 'param': 'haproxy_container_name', 'value': 'haproxy', 'section': 'haproxy', 'desc': 'Docker container name for HAProxy service', 'group': g.group_id }, ] try: Setting.insert_many(data_source).on_conflict_ignore().execute() except Exception as e: if kwargs.get('silent') != 1: if str(e) == 'columns param, group are not unique': pass else: print("An error occurred:", e) except Exception as e: if kwargs.get('silent') != 1: if (str(e) == 'columns param, group are not unique' or str( e ) == '(1062, "Duplicate entry \'nginx_container_name\' for key \'param\'")' or str(e) == 'UNIQUE constraint failed: settings.param, settings.group' ): pass else: print("An error occurred:", e)
def default_values(): if distro.id() == 'ubuntu': apache_dir = 'apache2' else: apache_dir = 'httpd' data_source = [ { 'param': 'time_zone', 'value': 'UTC', 'section': 'main', 'desc': 'Time Zone', 'group': '1' }, { 'param': 'proxy', 'value': '', 'section': 'main', 'desc': 'IP address and port of the proxy server. Use proto://ip:port', 'group': '1' }, { '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' }, { 'param': 'tmp_config_path', 'value': '/tmp/', 'section': 'main', 'desc': 'Path to the temporary directory. A valid path should be specified as the value of this parameter. The directory must be owned by the user specified in SSH settings', 'group': '1' }, { 'param': 'cert_path', 'value': '/etc/ssl/certs/', 'section': 'main', 'desc': 'Path to SSL dir. Folder owner must be a user which set in the SSH settings. Path must exist', 'group': '1' }, { 'param': 'ssl_local_path', 'value': 'certs', 'section': 'main', 'desc': 'Path to the directory with the saved local SSL certificates. The value of this parameter is specified as a relative path beginning with $HOME_ROXY_WI/app/', 'group': '1' }, { 'param': 'lists_path', 'value': 'lists', 'section': 'main', 'desc': 'Path to the black and the wild list. The value of this paramer should be specified as a relative path beginning with $HOME_ROXY-WI', '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; (0 - no, 1 - yes)', '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': 'apache_log_path', 'value': '/var/log/' + apache_dir + '/', 'section': 'logs', 'desc': 'Path to Apache logs', '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 Ngin', '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/conf.d/', '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': 'ldap_enable', 'value': '0', 'section': 'ldap', 'desc': 'Enable LDAP (1 - yes, 0 - no)', 'group': '1' }, { 'param': 'ldap_server', 'value': '', 'section': 'ldap', 'desc': 'IP address of the LDAP server', 'group': '1' }, { '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: [email protected]', 'group': '1' }, { 'param': 'ldap_password', 'value': '', 'section': 'ldap', 'desc': 'LDAP password', 'group': '1' }, { 'param': 'ldap_base', 'value': '', 'section': 'ldap', 'desc': 'Base domain. Example: dc=domain, dc=com', 'group': '1' }, { 'param': 'ldap_domain', 'value': '', 'section': 'ldap', 'desc': 'LDAP domain for logging in', 'group': '1' }, { 'param': 'ldap_class_search', 'value': 'user', 'section': 'ldap', 'desc': 'Class for searching the user', 'group': '1' }, { 'param': 'ldap_user_attribute', 'value': 'sAMAccountName', 'section': 'ldap', 'desc': 'Attribute to search users by', 'group': '1' }, { 'param': 'ldap_search_field', 'value': 'mail', 'section': 'ldap', 'desc': 'User\'s email address', 'group': '1' }, { 'param': 'ldap_type', 'value': '0', 'section': 'ldap', 'desc': 'Use LDAPS (1 - yes, 0 - no)', 'group': '1' }, ] try: Setting.insert_many(data_source).on_conflict_ignore().execute() except Exception as e: out_error(e) data_source = [{ 'username': '******', 'email': 'admin@localhost', 'password': '******', 'role': 'superAdmin', 'groups': '1' }, { 'username': '******', 'email': 'editor@localhost', 'password': '******', 'role': 'admin', 'groups': '1' }, { 'username': '******', 'email': 'guest@localhost', 'password': '******', 'role': 'guest', 'groups': '1' }] try: User.insert_many(data_source).on_conflict_ignore().execute() except Exception as e: out_error(e) data_source = [{ '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' }, { 'name': 'editor', 'description': 'Has the same rights as the admin but has no access to the Servers page' }, { 'name': 'guest', 'description': 'Read-only access' }] try: Role.insert_many(data_source).on_conflict_ignore().execute() except Exception as e: out_error(e) try: Groups.insert( name='All', description='All servers are included in this group by default' ).on_conflict_ignore().execute() except Exception as e: out_error(e)