mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-25 16:16:29 +00:00
Add is_server_available_quiet()
For use in cases where the caller collates node availability information and doesn't want to prematurely emit log output.
This commit is contained in:
23
dbutils.c
23
dbutils.c
@@ -43,6 +43,8 @@ int bdr_version_num = UNKNOWN_BDR_VERSION_NUM;
|
|||||||
static void log_db_error(PGconn *conn, const char *query_text, const char *fmt,...)
|
static void log_db_error(PGconn *conn, const char *query_text, const char *fmt,...)
|
||||||
__attribute__((format(PG_PRINTF_ATTRIBUTE, 3, 4)));
|
__attribute__((format(PG_PRINTF_ATTRIBUTE, 3, 4)));
|
||||||
|
|
||||||
|
static bool _is_server_available(const char *conninfo, bool quiet);
|
||||||
|
|
||||||
static PGconn *_establish_db_connection(const char *conninfo,
|
static PGconn *_establish_db_connection(const char *conninfo,
|
||||||
const bool exit_on_error,
|
const bool exit_on_error,
|
||||||
const bool log_notice,
|
const bool log_notice,
|
||||||
@@ -4312,6 +4314,20 @@ wait_connection_availability(PGconn *conn, int timeout)
|
|||||||
|
|
||||||
bool
|
bool
|
||||||
is_server_available(const char *conninfo)
|
is_server_available(const char *conninfo)
|
||||||
|
{
|
||||||
|
return _is_server_available(conninfo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
is_server_available_quiet(const char *conninfo)
|
||||||
|
{
|
||||||
|
return _is_server_available(conninfo, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static bool
|
||||||
|
_is_server_available(const char *conninfo, bool quiet)
|
||||||
{
|
{
|
||||||
PGPing status = PQping(conninfo);
|
PGPing status = PQping(conninfo);
|
||||||
|
|
||||||
@@ -4319,8 +4335,11 @@ is_server_available(const char *conninfo)
|
|||||||
if (status == PQPING_OK)
|
if (status == PQPING_OK)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
log_warning(_("unable to ping \"%s\""), conninfo);
|
if (quiet == false)
|
||||||
log_detail(_("PQping() returned \"%s\""), print_pqping_status(status));
|
{
|
||||||
|
log_warning(_("unable to ping \"%s\""), conninfo);
|
||||||
|
log_detail(_("PQping() returned \"%s\""), print_pqping_status(status));
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -518,6 +518,7 @@ int wait_connection_availability(PGconn *conn, int timeout);
|
|||||||
|
|
||||||
/* node availability functions */
|
/* node availability functions */
|
||||||
bool is_server_available(const char *conninfo);
|
bool is_server_available(const char *conninfo);
|
||||||
|
bool is_server_available_quiet(const char *conninfo);
|
||||||
bool is_server_available_params(t_conninfo_param_list *param_list);
|
bool is_server_available_params(t_conninfo_param_list *param_list);
|
||||||
ExecStatusType connection_ping(PGconn *conn);
|
ExecStatusType connection_ping(PGconn *conn);
|
||||||
ExecStatusType connection_ping_reconnect(PGconn *conn);
|
ExecStatusType connection_ping_reconnect(PGconn *conn);
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ do_cluster_show(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* check if node is reachable, but just not letting us in */
|
/* check if node is reachable, but just not letting us in */
|
||||||
if (is_server_available(cell->node_info->conninfo))
|
if (is_server_available_quiet(cell->node_info->conninfo))
|
||||||
cell->node_info->node_status = NODE_STATUS_REJECTED;
|
cell->node_info->node_status = NODE_STATUS_REJECTED;
|
||||||
else
|
else
|
||||||
cell->node_info->node_status = NODE_STATUS_DOWN;
|
cell->node_info->node_status = NODE_STATUS_DOWN;
|
||||||
|
|||||||
Reference in New Issue
Block a user