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:
Ian Barwick
2019-04-01 12:24:57 +09:00
parent 1906ea89bd
commit 83e492d4ef
3 changed files with 23 additions and 3 deletions

View File

@@ -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;
}