1
2
3
4
5
6
7
8
9
10 #ifndef PACEMAKER_EXECD__H
11 # define PACEMAKER_EXECD__H
12
13 # include <glib.h>
14 # include <crm/common/ipc_internal.h>
15 # include <crm/lrmd.h>
16 # include <crm/stonith-ng.h>
17
18 # ifdef HAVE_GNUTLS_GNUTLS_H
19 # include <gnutls/gnutls.h>
20 # endif
21
22 extern GHashTable *rsc_list;
23 extern time_t start_time;
24
25 typedef struct lrmd_rsc_s {
26 char *rsc_id;
27 char *class;
28 char *provider;
29 char *type;
30
31 int call_opts;
32
33
34
35
36 void *active;
37
38
39
40 GList *pending_ops;
41
42
43 GList *recurring_ops;
44
45
46
47
48
49
50
51
52 pcmk__action_result_t fence_probe_result;
53
54 crm_trigger_t *work;
55 } lrmd_rsc_t;
56
57 # ifdef HAVE_GNUTLS_GNUTLS_H
58
59 int lrmd_init_remote_tls_server(void);
60 void execd_stop_tls_server(void);
61 # endif
62
63 int lrmd_server_send_reply(pcmk__client_t *client, uint32_t id, xmlNode *reply);
64
65 int lrmd_server_send_notify(pcmk__client_t *client, xmlNode *msg);
66
67 void notify_of_new_client(pcmk__client_t *new_client);
68
69 void process_lrmd_message(pcmk__client_t *client, uint32_t id,
70 xmlNode *request);
71
72 void free_rsc(gpointer data);
73
74 void handle_shutdown_ack(void);
75
76 void handle_shutdown_nack(void);
77
78 void lrmd_client_destroy(pcmk__client_t *client);
79
80 void client_disconnect_cleanup(const char *client_id);
81
82
83
84
85
86 stonith_t *get_stonith_connection(void);
87
88
89
90
91
92
93 void stonith_connection_failed(void);
94
95 #ifdef PCMK__COMPILE_REMOTE
96 void ipc_proxy_init(void);
97 void ipc_proxy_cleanup(void);
98 void ipc_proxy_add_provider(pcmk__client_t *client);
99 void ipc_proxy_remove_provider(pcmk__client_t *client);
100 void ipc_proxy_forward_client(pcmk__client_t *client, xmlNode *xml);
101 pcmk__client_t *ipc_proxy_get_provider(void);
102 int ipc_proxy_shutdown_req(pcmk__client_t *ipc_proxy);
103 void remoted_spawn_pidone(int argc, char **argv, char **envp);
104 void remoted_request_cib_schema_files(void);
105 #endif
106
107 int process_lrmd_alert_exec(pcmk__client_t *client, uint32_t id,
108 xmlNode *request);
109 void lrmd_drain_alerts(GMainLoop *mloop);
110
111 #endif