summaryrefslogtreecommitdiffstats
path: root/daemons/fenced/pacemaker-fenced.h
diff options
context:
space:
mode:
Diffstat (limited to 'daemons/fenced/pacemaker-fenced.h')
-rw-r--r--daemons/fenced/pacemaker-fenced.h31
1 files changed, 25 insertions, 6 deletions
diff --git a/daemons/fenced/pacemaker-fenced.h b/daemons/fenced/pacemaker-fenced.h
index a3d2e17..220978a 100644
--- a/daemons/fenced/pacemaker-fenced.h
+++ b/daemons/fenced/pacemaker-fenced.h
@@ -6,7 +6,12 @@
*/
#include <stdint.h> // uint32_t, uint64_t
+#include <libxml/tree.h> // xmlNode
+
#include <crm/common/mainloop.h>
+#include <crm/cluster.h>
+#include <crm/stonith-ng.h>
+#include <crm/fencing/internal.h>
/*!
* \internal
@@ -104,9 +109,12 @@ typedef struct remote_fencing_op_s {
* values associated with the devices this fencing operation may call */
gint total_timeout;
- /*! Requested fencing delay.
- * Value -1 means disable any static/random fencing delays. */
- int delay;
+ /*!
+ * Fencing delay (in seconds) requested by API client (used by controller to
+ * implement priority-fencing-delay). A value of -1 means disable all
+ * configured delays.
+ */
+ int client_delay;
/*! Delegate is the node being asked to perform a fencing action
* on behalf of the node that owns the remote operation. Some operations
@@ -205,6 +213,8 @@ typedef struct stonith_topology_s {
} stonith_topology_t;
+void stonith_shutdown(int nsig);
+
void init_device_list(void);
void free_device_list(void);
void init_topology_list(void);
@@ -231,7 +241,7 @@ void fenced_unregister_level(xmlNode *msg, char **desc,
stonith_topology_t *find_topology_for_host(const char *host);
-void do_local_reply(xmlNode *notify_src, pcmk__client_t *client,
+void do_local_reply(const xmlNode *notify_src, pcmk__client_t *client,
int call_options);
xmlNode *fenced_construct_reply(const xmlNode *request, xmlNode *data,
@@ -280,6 +290,14 @@ gboolean node_has_attr(const char *node, const char *name, const char *value);
gboolean node_does_watchdog_fencing(const char *node);
+void fencing_topology_init(void);
+void setup_cib(void);
+void fenced_cib_cleanup(void);
+
+int fenced_scheduler_init(void);
+void fenced_scheduler_cleanup(void);
+void fenced_scheduler_run(xmlNode *cib);
+
static inline void
fenced_set_protocol_error(pcmk__action_result_t *result)
{
@@ -299,7 +317,7 @@ fenced_set_protocol_error(pcmk__action_result_t *result)
static inline uint32_t
fenced_support_flag(const char *action)
{
- if (pcmk__str_eq(action, "on", pcmk__str_none)) {
+ if (pcmk__str_eq(action, PCMK_ACTION_ON, pcmk__str_none)) {
return st_device_supports_on;
}
return st_device_supports_none;
@@ -311,5 +329,6 @@ extern GHashTable *device_list;
extern GHashTable *topology;
extern long stonith_watchdog_timeout_ms;
extern GList *stonith_watchdog_targets;
-
extern GHashTable *stonith_remote_op_list;
+extern crm_exit_t exit_code;
+extern gboolean stonith_shutdown_flag;