mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-25 16:16:29 +00:00
Make t_node_info generally available
And have it include all the fields from the repl_nodes table.
This commit is contained in:
41
dbutils.h
41
dbutils.h
@@ -20,10 +20,51 @@
|
|||||||
#ifndef _REPMGR_DBUTILS_H_
|
#ifndef _REPMGR_DBUTILS_H_
|
||||||
#define _REPMGR_DBUTILS_H_
|
#define _REPMGR_DBUTILS_H_
|
||||||
|
|
||||||
|
#include "access/xlogdefs.h"
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "strutil.h"
|
#include "strutil.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
UNKNOWN = 0,
|
||||||
|
MASTER,
|
||||||
|
STANDBY,
|
||||||
|
WITNESS
|
||||||
|
} t_server_type;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Struct to store node information
|
||||||
|
*/
|
||||||
|
typedef struct s_node_info
|
||||||
|
{
|
||||||
|
int node_id;
|
||||||
|
int upstream_node_id;
|
||||||
|
t_server_type type;
|
||||||
|
char name[MAXLEN];
|
||||||
|
char conninfo_str[MAXLEN];
|
||||||
|
char slot_name[MAXLEN];
|
||||||
|
int priority;
|
||||||
|
bool active;
|
||||||
|
bool is_ready;
|
||||||
|
bool is_visible;
|
||||||
|
XLogRecPtr xlog_location;
|
||||||
|
} t_node_info;
|
||||||
|
|
||||||
|
|
||||||
|
#define T_NODE_INFO_INITIALIZER { \
|
||||||
|
NODE_NOT_FOUND, \
|
||||||
|
NO_UPSTREAM_NODE, \
|
||||||
|
UNKNOWN, \
|
||||||
|
"", \
|
||||||
|
"", \
|
||||||
|
"", \
|
||||||
|
DEFAULT_PRIORITY, \
|
||||||
|
true, \
|
||||||
|
false, \
|
||||||
|
false, \
|
||||||
|
InvalidXLogRecPtr \
|
||||||
|
}
|
||||||
|
|
||||||
PGconn *establish_db_connection(const char *conninfo,
|
PGconn *establish_db_connection(const char *conninfo,
|
||||||
const bool exit_on_error);
|
const bool exit_on_error);
|
||||||
|
|||||||
7
repmgr.h
7
repmgr.h
@@ -50,13 +50,6 @@
|
|||||||
#define NO_UPSTREAM_NODE -1
|
#define NO_UPSTREAM_NODE -1
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
UNKNOWN = 0,
|
|
||||||
MASTER,
|
|
||||||
STANDBY,
|
|
||||||
WITNESS
|
|
||||||
} t_server_type;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Run time options type */
|
/* Run time options type */
|
||||||
|
|||||||
22
repmgrd.c
22
repmgrd.c
@@ -41,22 +41,6 @@
|
|||||||
#include "access/xlogdefs.h"
|
#include "access/xlogdefs.h"
|
||||||
#include "pqexpbuffer.h"
|
#include "pqexpbuffer.h"
|
||||||
|
|
||||||
/*
|
|
||||||
* Struct to store node information
|
|
||||||
*/
|
|
||||||
typedef struct s_node_info
|
|
||||||
{
|
|
||||||
int node_id;
|
|
||||||
int upstream_node_id;
|
|
||||||
char conninfo_str[MAXLEN];
|
|
||||||
XLogRecPtr xlog_location;
|
|
||||||
t_server_type type;
|
|
||||||
bool is_ready;
|
|
||||||
bool is_visible;
|
|
||||||
char slot_name[MAXLEN];
|
|
||||||
bool active;
|
|
||||||
} t_node_info;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Local info */
|
/* Local info */
|
||||||
@@ -1097,10 +1081,10 @@ do_master_failover(void)
|
|||||||
t_node_info nodes[FAILOVER_NODES_MAX_CHECK];
|
t_node_info nodes[FAILOVER_NODES_MAX_CHECK];
|
||||||
|
|
||||||
/* Store details of the failed node here */
|
/* Store details of the failed node here */
|
||||||
t_node_info failed_master = {-1, NO_UPSTREAM_NODE, "", InvalidXLogRecPtr, UNKNOWN, false, false};
|
t_node_info failed_master = T_NODE_INFO_INITIALIZER;
|
||||||
|
|
||||||
/* Store details of the best candidate for promotion to master here */
|
/* Store details of the best candidate for promotion to master here */
|
||||||
t_node_info best_candidate = {-1, NO_UPSTREAM_NODE, "", InvalidXLogRecPtr, UNKNOWN, false, false};
|
t_node_info best_candidate = T_NODE_INFO_INITIALIZER;
|
||||||
|
|
||||||
/* get a list of standby nodes, including myself */
|
/* get a list of standby nodes, including myself */
|
||||||
sprintf(sqlquery,
|
sprintf(sqlquery,
|
||||||
@@ -2286,7 +2270,7 @@ get_node_info(PGconn *conn, char *cluster, int node_id)
|
|||||||
{
|
{
|
||||||
PGresult *res;
|
PGresult *res;
|
||||||
|
|
||||||
t_node_info node_info = { NODE_NOT_FOUND, NO_UPSTREAM_NODE, "", InvalidXLogRecPtr, UNKNOWN, false, false};
|
t_node_info node_info = T_NODE_INFO_INITIALIZER;
|
||||||
|
|
||||||
res = get_node_record(conn, cluster, node_id);
|
res = get_node_record(conn, cluster, node_id);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user