Initial implementation of "repmgr master unregister"

Also adds "--dry-run" option
This commit is contained in:
Ian Barwick
2017-06-10 23:21:46 +09:00
parent ac9ccce3ef
commit fef184ce9a
6 changed files with 221 additions and 49 deletions

View File

@@ -123,6 +123,26 @@ establish_db_connection_quiet(const char *conninfo)
return _establish_db_connection(conninfo, false, false, true);
}
PGconn
*establish_master_db_connection(PGconn *conn,
const bool exit_on_error)
{
t_node_info master_node_info = T_NODE_INFO_INITIALIZER;
bool master_record_found;
master_record_found = get_master_node_record(conn, &master_node_info);
if (master_record_found == false)
{
return NULL;
}
return establish_db_connection(master_node_info.conninfo,
exit_on_error);
}
PGconn *
establish_db_connection_as_user(const char *conninfo,
const char *user,
@@ -153,6 +173,8 @@ establish_db_connection_as_user(const char *conninfo,
}
PGconn *
establish_db_connection_by_params(const char *keywords[], const char *values[],
const bool exit_on_error)
@@ -1241,6 +1263,19 @@ get_node_record_by_name(PGconn *conn, const char *node_name, t_node_info *node_i
}
bool
get_master_node_record(PGconn *conn, t_node_info *node_info)
{
int master_node_id = get_master_node_id(conn);
if (master_node_id == UNKNOWN_NODE_ID)
{
return false;
}
return get_node_record(conn, master_node_id, node_info);
}
bool
create_node_record(PGconn *conn, char *repmgr_action, t_node_info *node_info)
@@ -1251,6 +1286,7 @@ create_node_record(PGconn *conn, char *repmgr_action, t_node_info *node_info)
return _create_update_node_record(conn, "create", node_info);
}
bool
update_node_record(PGconn *conn, char *repmgr_action, t_node_info *node_info)
{