 |
pacemaker
2.0.5-ba59be7122
Scalable High-Availability cluster resource manager
|
Go to the documentation of this file.
23 typedef struct pacemakerd_api_private_s {
28 static const char *pacemakerd_state_str[] = {
47 if (pcmk__str_eq(state, pacemakerd_state_str[i],
pcmk__str_none)) {
60 return pacemakerd_state_str[state];
69 struct pacemakerd_api_private_s *
private = NULL;
71 api->
api_data = calloc(1,
sizeof(
struct pacemakerd_api_private_s));
82 private->client_uuid = pcmk__getpid_s();
90 free(((
struct pacemakerd_api_private_s *)
data)->client_uuid);
98 struct pacemakerd_api_private_s *
private = NULL;
112 struct pacemakerd_api_private_s *
private = NULL;
128 if (command == NULL) {
140 xmlNode *msg_data = NULL;
144 const char *value = NULL;
145 long long value_ll = 0;
149 crm_debug(
"Unrecognizable pacemakerd message: invalid message type '%s'",
156 crm_debug(
"Unrecognizable pacemakerd message: no reference");
162 if ((value == NULL) || strcmp(value,
CRM_OP_PING)) {
180 reply_data.
data.
ping.last_good = (time_t) value_ll;
217 private->client_uuid);
222 crm_debug(
"Couldn't ping pacemakerd: %s rc=%d",
G_GNUC_INTERNAL int pcmk__send_ipc_request(pcmk_ipc_api_t *api, xmlNode *request)
int crm_element_value_ll(const xmlNode *data, const char *name, long long *dest)
Retrieve the long long integer value of an XML attribute.
enum pcmk_pacemakerd_api_reply reply_type
union pcmk_pacemakerd_api_reply_t::@4 data
@ pcmk_pacemakerd_state_max
#define XML_PING_ATTR_PACEMAKERDSTATE_INIT
int pcmk_pacemakerd_api_ping(pcmk_ipc_api_t *api, const char *ipc_name)
enum pcmk_pacemakerd_state pcmk_pacemakerd_api_daemon_state_text2enum(const char *state)
#define XML_PING_ATTR_PACEMAKERDSTATE_STARTINGDAEMONS
#define XML_PING_ATTR_PACEMAKERDSTATE
#define CRM_CHECK(expr, failure_action)
#define XML_PING_ATTR_PACEMAKERDSTATE_RUNNING
void(* free_data)(void *api_data)
void free_xml(xmlNode *child)
#define XML_ATTR_RESPONSE
Wrappers for and extensions to libxml2.
#define XML_PING_ATTR_SYSFROM
int(* new_data)(pcmk_ipc_api_t *api)
#define XML_PING_ATTR_PACEMAKERDSTATE_WAITPING
const char * pcmk_pacemakerd_api_daemon_state_enum2text(enum pcmk_pacemakerd_state state)
@ pcmk_pacemakerd_reply_unknown
#define create_request(task, xml_data, host_to, sys_to, sys_from, uuid_from)
struct pacemakerd_api_private_s pacemakerd_api_private_t
const char * pcmk_rc_str(int rc)
Get a user-friendly description of a return code.
#define crm_debug(fmt, args...)
xmlNode * get_message_xml(xmlNode *msg, const char *field)
bool(* reply_expected)(pcmk_ipc_api_t *api, xmlNode *request)
#define XML_PING_ATTR_STATUS
const char * crm_element_value(const xmlNode *data, const char *name)
Retrieve the value of an XML attribute.
@ pcmk_pacemakerd_state_init
IPC interface to Pacemaker daemons.
#define XML_ATTR_REFERENCE
#define XML_PING_ATTR_PACEMAKERDSTATE_SHUTTINGDOWN
IPC commands for Pacemakerd.
struct pcmk_pacemakerd_api_reply_t::@4::@5 ping
G_GNUC_INTERNAL void pcmk__call_ipc_callback(pcmk_ipc_api_t *api, enum pcmk_ipc_event event_type, crm_exit_t status, void *event_data)
enum crm_exit_e crm_exit_t
@ pcmk_pacemakerd_reply_ping
pcmk__ipc_methods_t * pcmk__pacemakerd_api_methods()
@ pcmk_ipc_event_reply
Daemon's reply to client IPC request.
void(* dispatch)(pcmk_ipc_api_t *api, xmlNode *msg)
int(* post_connect)(pcmk_ipc_api_t *api)
void(* post_disconnect)(pcmk_ipc_api_t *api)
#define XML_PING_ATTR_PACEMAKERDSTATE_SHUTDOWNCOMPLETE
@ pcmk_pacemakerd_state_invalid