mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-22 22:56: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,...)
|
||||
__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,
|
||||
const bool exit_on_error,
|
||||
const bool log_notice,
|
||||
@@ -4312,6 +4314,20 @@ wait_connection_availability(PGconn *conn, int timeout)
|
||||
|
||||
bool
|
||||
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);
|
||||
|
||||
@@ -4319,8 +4335,11 @@ is_server_available(const char *conninfo)
|
||||
if (status == PQPING_OK)
|
||||
return true;
|
||||
|
||||
log_warning(_("unable to ping \"%s\""), conninfo);
|
||||
log_detail(_("PQping() returned \"%s\""), print_pqping_status(status));
|
||||
if (quiet == false)
|
||||
{
|
||||
log_warning(_("unable to ping \"%s\""), conninfo);
|
||||
log_detail(_("PQping() returned \"%s\""), print_pqping_status(status));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -518,6 +518,7 @@ int wait_connection_availability(PGconn *conn, int timeout);
|
||||
|
||||
/* node availability functions */
|
||||
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);
|
||||
ExecStatusType connection_ping(PGconn *conn);
|
||||
ExecStatusType connection_ping_reconnect(PGconn *conn);
|
||||
|
||||
@@ -156,7 +156,7 @@ do_cluster_show(void)
|
||||
else
|
||||
{
|
||||
/* 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;
|
||||
else
|
||||
cell->node_info->node_status = NODE_STATUS_DOWN;
|
||||
|
||||
Reference in New Issue
Block a user