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"
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"
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."
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
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
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
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"
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)"
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"