Esempio n. 1
0
def test_setup_efm_user():
    pg_user = '******'

    if get_pg_type() == 'EPAS':
        pg_user = '******'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Select * from pg_user where usename = 'efm' and userepl = 't'"
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip()

    assert len(result) > 0, \
        "efm user was not succesfully created"
def test_init_dbserver_data_directory():
    ansible_vars = load_ansible_vars()
    pg_data = ansible_vars['pg_data']
    pg_user = '******'
    if get_pg_type() == 'EPAS':
        pg_user = '******'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "SELECT setting FROM pg_settings WHERE name = 'data_directory'"
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))

        data_directory = cmd.stdout.strip()
        assert host.file(data_directory).linked_to == pg_data, \
            "Postgres data_directory is not linked to '%s'" % pg_data
def test_setup_replication_stat_replication():
    pg_user = '******'

    if get_pg_type() == 'EPAS':
        pg_user = '******'

    host = get_primary()
    rep_count = len(get_standbys())
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Select application_name from pg_stat_replication"
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip().split('\n')

    assert len(result) == rep_count, \
        "Replication was not successful on master"
Esempio n. 4
0
def test_setup_efm_pg_read_all_settings():
    pg_user = '******'

    if get_pg_type() == 'EPAS':
        pg_user = '******'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = r"\du"
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip().replace('\nProfile', "").split('\n')
        efm_index = [idx for idx, role in enumerate(result)
                     if 'efm' in role][0]

    assert 'pg_read_all_settings' in result[efm_index], \
        "EFM role is not a pg_read_all_settings"
def test_setup_replication_slots():
    pg_user = '******'
    pg_group = 'postgres'

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Select * from pg_replication_slots"
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip().split('\n')

    assert len(result) > 0, \
        "Replication did not create replication slots"
def test_setup_pemserver_pemagent():
    pg_user = '******'
    pg_group = 'postgres'

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_pemserver()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Select * from pg_user where usename = 'agent1'"
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip()

    assert len(result) > 0, \
        "pemagent user was not succesfully created"
Esempio n. 7
0
def test_manage_dbserver_create_user():
    ansible_vars = load_ansible_vars()
    pg_user = '******'
    pg_group = 'postgres'
    pg_created_user = ansible_vars['pg_users'][0]['name']

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()
    with host.sudo(pg_user):
        query = "Select * from pg_user WHERE usename='%s'" % pg_created_user
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip()

    assert len(result) > 0, \
        "User was not sucessfully created."
def test_setup_pemserver_creation():
    pg_user = '******'
    pg_group = 'postgres'

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_pemserver()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = r"\list"
        cmd = host.run('psql -At -h %s -c "%s" postgres | grep pem' %
                       (socket_dir, query))
        result = cmd.stdout.strip()

    assert len(result) > 0, \
        "PEM database was not succesfully created"
def test_setup_pemagent_agents():
    pg_user = '******'
    pg_group = 'postgres'
    nodes = [node for node in get_pg_nodes()]

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_pemserver()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Select id from pem.agent"
        cmd = host.run('psql -At -h %s -c "%s" pem' % (socket_dir, query))
        result = cmd.stdout.strip().split('\n')

    # Seeing if number of agents is equal to the number of nodes
    assert len(result) == len(nodes), \
        "Pem agents were created sucessfuly."
Esempio n. 10
0
def test_manage_dbserver_conf_params():
    ansible_vars = load_ansible_vars()
    pg_conf_param = ansible_vars['pg_postgres_conf_params'][0]['name']
    pg_user = '******'
    pg_group = 'postgres'

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Show %s" % pg_conf_param
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip()

    assert len(result) > 0, \
        "Database parameter %s does not exist" % pg_conf_param
Esempio n. 11
0
def test_manage_dbserver_database():
    ansible_vars = load_ansible_vars()
    pg_database = ansible_vars['pg_databases'][0]['name']

    pg_user = '******'
    pg_group = 'postgres'

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Select * from pg_database WHERE datname = '%s'" % pg_database
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip()

    assert len(result) > 0, \
        "Query was not succesfully executed" % pg_database
Esempio n. 12
0
def test_manage_dbserver_pg_extension():
    ansible_vars = load_ansible_vars()
    pg_extension = ansible_vars['pg_extensions'][0]['name']

    pg_user = '******'
    pg_group = 'postgres'

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Select * from pg_extension WHERE extname = '%s'" % pg_extension
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip()

    assert len(result) > 0, \
        "PG extension %s does not exist" % pg_extension
Esempio n. 13
0
def test_manage_dbserver_hba_file():
    pg_user = '******'
    pg_group = 'postgres'

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Show hba_file"
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip()

    cmd = host.run('grep postgres %s' % result)
    result = cmd.stdout.strip()

    assert len(result) > 0, \
        "pg_hba.conf file was not sucessfully modified"
Esempio n. 14
0
def test_manage_dbserver_pg_grant_roles():
    ansible_vars = load_ansible_vars()
    pg_role = ansible_vars['pg_grant_roles'][0]['role']

    pg_user = '******'
    pg_group = 'postgres'

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        query = "Select rolname FROM pg_roles WHERE pg_has_role('%s', oid, 'member') AND rolname = '%s'" % (
            pg_user, pg_role)
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip()

    assert len(result) > 0, \
        "User %s has not been granted the %s role" % (pg_user, pg_role)
def test_setup_replication_stat_wal_receiver():
    pg_user = '******'

    if get_pg_type() == 'EPAS':
        pg_user = '******'

    hosts = get_standbys()
    socket_dir = get_pg_unix_socket_dir()
    res = []

    for host in hosts:
        with host.sudo(pg_user):
            query = "Select slot_name from pg_stat_wal_receiver"
            cmd = host.run('psql -At -h %s -c "%s" postgres' %
                           (socket_dir, query))
            result = cmd.stdout.strip().split('\n')

        if len(result) > 0:
            res.append(result)

    assert len(res) == len(hosts), \
        "Replication was not successful on standby(s)"
Esempio n. 16
0
def test_manage_dbserver_sql_script():
    ansible_vars = load_ansible_vars()
    pg_user = '******'
    pg_group = 'postgres'
    pg_sql_script = ansible_vars['pg_sql_scripts'][0]['file_path']
    pg_script_table = ansible_vars['pg_script_table']

    if get_pg_type() == 'EPAS':
        pg_user = '******'
        pg_group = 'enterprisedb'

    host = get_primary()
    socket_dir = get_pg_unix_socket_dir()

    with host.sudo(pg_user):
        cmd = host.run('cat %s' % pg_sql_script)
        query = cmd.stdout.strip()
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        query = "Select * from pg_tables WHERE tablename = '%s'" % pg_script_table
        cmd = host.run('psql -At -h %s -c "%s" postgres' % (socket_dir, query))
        result = cmd.stdout.strip()

    assert len(result) > 0, \
        "SQL scripts were not succesfully executed"