pacemaker 2.1.8-2.1.8
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
lrmd_internal.h
Go to the documentation of this file.
1/*
2 * Copyright 2015-2023 the Pacemaker project contributors
3 *
4 * The version control history for this file may have further details.
5 *
6 * This source code is licensed under the GNU Lesser General Public License
7 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
8 */
9
10#ifndef LRMD_INTERNAL__H
11#define LRMD_INTERNAL__H
12
13#include <stdint.h> // uint32_t
14#include <glib.h> // GList, GHashTable, gpointer
15#include <libxml/tree.h> // xmlNode
16#include <crm/common/ipc.h> // crm_ipc_t
17#include <crm/common/mainloop.h> // mainloop_io_t, ipc_client_callbacks
18#include <crm/common/output_internal.h> // pcmk__output_t
19#include <crm/common/remote_internal.h> // pcmk__remote_t
20#include <crm/lrmd.h> // lrmd_t, lrmd_event_data_t, lrmd_rsc_info_t
21
22int lrmd__new(lrmd_t **api, const char *nodename, const char *server, int port);
23
24int lrmd_send_attribute_alert(lrmd_t *lrmd, const GList *alert_list,
25 const char *node, uint32_t nodeid,
26 const char *attr_name, const char *attr_value);
27int lrmd_send_node_alert(lrmd_t *lrmd, const GList *alert_list,
28 const char *node, uint32_t nodeid, const char *state);
29int lrmd_send_fencing_alert(lrmd_t *lrmd, const GList *alert_list,
30 const char *target, const char *task,
31 const char *desc, int op_rc);
32int lrmd_send_resource_alert(lrmd_t *lrmd, const GList *alert_list,
33 const char *node, const lrmd_event_data_t *op);
34
35int lrmd__remote_send_xml(pcmk__remote_t *session, xmlNode *msg, uint32_t id,
36 const char *msg_type);
37
39 void (*callback)(int pid,
41 void *user_data),
42 void *user_data);
43
45 int op_status, const char *exit_reason);
46
48
49time_t lrmd__uptime(lrmd_t *lrmd);
50const char *lrmd__node_start_state(lrmd_t *lrmd);
51
52/* Shared functions for IPC proxy back end */
53
66
68 struct ipc_client_callbacks *proxy_callbacks,
69 const char *node_name, const char *session_id,
70 const char *channel);
71
72int lrmd__validate_remote_settings(lrmd_t *lrmd, GHashTable *hash);
73void remote_proxy_cb(lrmd_t *lrmd, const char *node_name, xmlNode *msg);
76
77int remote_proxy_dispatch(const char *buffer, ssize_t length,
78 gpointer userdata);
79void remote_proxy_disconnected(gpointer data);
80void remote_proxy_free(gpointer data);
81
82void remote_proxy_relay_event(remote_proxy_t *proxy, xmlNode *msg);
83void remote_proxy_relay_response(remote_proxy_t *proxy, xmlNode *msg,
84 int msg_id);
85
87
88#ifdef HAVE_GNUTLS_GNUTLS_H
89int lrmd__init_remote_key(gnutls_datum_t *key);
90#endif
91
92#endif
char data[0]
Definition cpg.c:10
uint32_t pid
Definition cpg.c:1
IPC interface to Pacemaker daemons.
struct crm_ipc_s crm_ipc_t
Definition ipc.h:184
Resource agent executor.
int lrmd__metadata_async(const lrmd_rsc_info_t *rsc, void(*callback)(int pid, const pcmk__action_result_t *result, void *user_data), void *user_data)
int lrmd_send_resource_alert(lrmd_t *lrmd, const GList *alert_list, const char *node, const lrmd_event_data_t *op)
remote_proxy_t * remote_proxy_new(lrmd_t *lrmd, struct ipc_client_callbacks *proxy_callbacks, const char *node_name, const char *session_id, const char *channel)
void remote_proxy_cb(lrmd_t *lrmd, const char *node_name, xmlNode *msg)
int lrmd_send_attribute_alert(lrmd_t *lrmd, const GList *alert_list, const char *node, uint32_t nodeid, const char *attr_name, const char *attr_value)
int lrmd__remote_send_xml(pcmk__remote_t *session, xmlNode *msg, uint32_t id, const char *msg_type)
void remote_proxy_nack_shutdown(lrmd_t *lrmd)
int lrmd_send_node_alert(lrmd_t *lrmd, const GList *alert_list, const char *node, uint32_t nodeid, const char *state)
void lrmd__reset_result(lrmd_event_data_t *event)
void remote_proxy_free(gpointer data)
void remote_proxy_relay_response(remote_proxy_t *proxy, xmlNode *msg, int msg_id)
void lrmd__set_result(lrmd_event_data_t *event, enum ocf_exitcode rc, int op_status, const char *exit_reason)
time_t lrmd__uptime(lrmd_t *lrmd)
const char * lrmd__node_start_state(lrmd_t *lrmd)
struct remote_proxy_s remote_proxy_t
int lrmd_send_fencing_alert(lrmd_t *lrmd, const GList *alert_list, const char *target, const char *task, const char *desc, int op_rc)
void remote_proxy_ack_shutdown(lrmd_t *lrmd)
int remote_proxy_dispatch(const char *buffer, ssize_t length, gpointer userdata)
int lrmd__validate_remote_settings(lrmd_t *lrmd, GHashTable *hash)
int lrmd__new(lrmd_t **api, const char *nodename, const char *server, int port)
void remote_proxy_disconnected(gpointer data)
void lrmd__register_messages(pcmk__output_t *out)
void remote_proxy_relay_event(remote_proxy_t *proxy, xmlNode *msg)
Wrappers for and extensions to glib mainloop.
struct mainloop_io_s mainloop_io_t
Definition mainloop.h:35
Formatted output for pacemaker tools.
pcmk__action_result_t result
Definition pcmk_fence.c:35
const char * target
Definition pcmk_fence.c:29
ocf_exitcode
Exit status codes for resource agents.
Definition results.h:177
op_status
Definition lrmd.h:490
This structure contains everything that makes up a single output formatter.
mainloop_io_t * source
gboolean is_local
crm_ipc_t * ipc
uint32_t last_request_id