1
2
3
4
5
6
7
8
9
10
11 #ifndef SERVICES_PRIVATE__H
12 # define SERVICES_PRIVATE__H
13
14 # include <glib.h>
15 # include "crm/services.h"
16
17 #if SUPPORT_DBUS
18 # include <dbus/dbus.h>
19 #endif
20
21 #define MAX_ARGC 255
22 struct svc_action_private_s {
23 char *exec;
24 char *args[MAX_ARGC];
25
26 uid_t uid;
27 gid_t gid;
28
29 guint repeat_timer;
30 void (*callback) (svc_action_t * op);
31 void (*fork_callback) (svc_action_t * op);
32
33 int stderr_fd;
34 mainloop_io_t *stderr_gsource;
35
36 int stdout_fd;
37 mainloop_io_t *stdout_gsource;
38
39 int stdin_fd;
40 #if SUPPORT_DBUS
41 DBusPendingCall* pending;
42 unsigned timerid;
43 #endif
44 };
45
46 G_GNUC_INTERNAL
47 GList *services_os_get_directory_list(const char *root, gboolean files, gboolean executable);
48
49 G_GNUC_INTERNAL
50 gboolean services_os_action_execute(svc_action_t * op);
51
52 G_GNUC_INTERNAL
53 GList *resources_os_list_ocf_providers(void);
54
55 G_GNUC_INTERNAL
56 GList *resources_os_list_ocf_agents(const char *provider);
57
58 G_GNUC_INTERNAL
59 gboolean services__ocf_agent_exists(const char *provider, const char *agent);
60
61 G_GNUC_INTERNAL
62 gboolean cancel_recurring_action(svc_action_t * op);
63
64 G_GNUC_INTERNAL
65 gboolean recurring_action_timer(gpointer data);
66
67 G_GNUC_INTERNAL
68 gboolean operation_finalize(svc_action_t * op);
69
70 G_GNUC_INTERNAL
71 void services__handle_exec_error(svc_action_t * op, int error);
72
73 G_GNUC_INTERNAL
74 void services_add_inflight_op(svc_action_t *op);
75
76 G_GNUC_INTERNAL
77 void services_untrack_op(svc_action_t *op);
78
79 G_GNUC_INTERNAL
80 gboolean is_op_blocked(const char *rsc);
81
82 #if SUPPORT_DBUS
83 G_GNUC_INTERNAL
84 void services_set_op_pending(svc_action_t *op, DBusPendingCall *pending);
85 #endif
86
87 #endif