示例#1
0
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')
示例#2
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")
示例#3
0
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)
示例#4
0
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)