Prevent multiple nodes being registered with the same name.

Fixes GitHub #192.
This commit is contained in:
Ian Barwick
2016-06-24 09:25:41 +09:00
parent a2b5ba595a
commit 3fac975de6
3 changed files with 73 additions and 4 deletions

View File

@@ -1127,8 +1127,9 @@ do_standby_register(void)
PGconn *master_conn;
int ret;
bool record_created;
t_node_info node_record;
int node_result;
log_info(_("connecting to standby database\n"));
conn = establish_db_connection(options.conninfo, true);
@@ -1185,6 +1186,28 @@ do_standby_register(void)
}
}
/*
* Check that an active node with the same node_name doesn't exist already
*/
node_result = get_node_record_by_name(master_conn,
options.cluster_name,
options.node_name,
&node_record);
if (node_result)
{
if (node_record.active == true)
{
log_err(_("Node %i exists already with node_name \"%s\""),
node_record.node_id,
options.node_name);
PQfinish(master_conn);
PQfinish(conn);
exit(ERR_BAD_CONFIG);
}
}
record_created = create_node_record(master_conn,
"standby register",
options.node,