pacemaker
2.1.0-7c3f660
Scalable High-Availability cluster resource manager
|
#include <crm_internal.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <ctype.h>
#include <libgen.h>
#include <inttypes.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <glib.h>
#include <crm/crm.h>
#include <crm/stonith-ng.h>
#include <crm/fencing/internal.h>
#include <crm/msg_xml.h>
#include <crm/common/xml.h>
#include <crm/common/xml_internal.h>
#include <crm/common/mainloop.h>
#include <crm/fencing/compat.h>
Go to the source code of this file.
Data Structures | |
struct | timer_rec_s |
Macros | |
#define | FAILURE_MAX_RETRIES 2 |
#define | api_log_open() openlog("stonith-api", LOG_CONS | LOG_NDELAY | LOG_PID, LOG_DAEMON) |
#define | api_log(level, fmt, args...) syslog(level, "%s: "fmt, __func__, args) |
Typedefs | |
typedef struct stonith_private_s | stonith_private_t |
typedef struct stonith_notify_client_s | stonith_notify_client_t |
typedef struct stonith_callback_client_s | stonith_callback_client_t |
typedef int(* | stonith_op_t )(const char *, int, const char *, xmlNode *, xmlNode *, xmlNode *, xmlNode **, xmlNode **) |
Functions | |
CRM_TRACE_INIT_DATA (stonith) | |
bool | stonith_dispatch (stonith_t *st) |
xmlNode * | stonith_create_op (int call_id, const char *token, const char *op, xmlNode *data, int call_options) |
enum stonith_namespace | stonith_text2namespace (const char *namespace_s) |
Get agent namespace by name. More... | |
const char * | stonith_namespace2text (enum stonith_namespace st_namespace) |
Get agent namespace name. More... | |
enum stonith_namespace | stonith_get_namespace (const char *agent, const char *namespace_s) |
Determine namespace of a fence agent. More... | |
xmlNode * | create_device_registration_xml (const char *id, enum stonith_namespace namespace, const char *agent, stonith_key_value_t *params, const char *rsc_provides) |
xmlNode * | create_level_registration_xml (const char *node, const char *pattern, const char *attr, const char *value, int level, stonith_key_value_t *device_list) |
void | stonith__destroy_action (stonith_action_t *action) |
void | stonith__action_result (stonith_action_t *action, int *rc, char **output, char **error_output) |
stonith_action_t * | stonith_action_create (const char *agent, const char *_action, const char *victim, uint32_t victim_nodeid, int timeout, GHashTable *device_args, GHashTable *port_map, const char *host_arg) |
int | stonith_action_execute_async (stonith_action_t *action, void *userdata, void(*done)(GPid pid, int rc, const char *output, gpointer user_data), void(*fork_cb)(GPid pid, gpointer user_data)) |
int | stonith__execute (stonith_action_t *action) |
void | stonith_history_free (stonith_history_t *history) |
void | stonith_dump_pending_callbacks (stonith_t *stonith) |
void | stonith_api_delete (stonith_t *stonith) |
stonith_t * | stonith_api_new (void) |
int | stonith_api_connect_retry (stonith_t *st, const char *name, int max_attempts) |
Make a blocking connection attempt to the fencer. More... | |
stonith_key_value_t * | stonith_key_value_add (stonith_key_value_t *head, const char *key, const char *value) |
void | stonith_key_value_freeall (stonith_key_value_t *head, int keys, int values) |
int | stonith_api_kick (uint32_t nodeid, const char *uname, int timeout, bool off) |
time_t | stonith_api_time (uint32_t nodeid, const char *uname, bool in_progress) |
bool | stonith_agent_exists (const char *agent, int timeout) |
const char * | stonith_action_str (const char *action) |
Turn stonith action into a more readable string. More... | |
GList * | stonith__parse_targets (const char *target_spec) |
gboolean | stonith__later_succeeded (stonith_history_t *event, stonith_history_t *top_history) |
stonith_history_t * | stonith__sort_history (stonith_history_t *history) |
const char * | stonith_op_state_str (enum op_state state) |
Return string equivalent of an operation state value. More... | |
stonith_history_t * | stonith__first_matching_event (stonith_history_t *history, bool(*matching_fn)(stonith_history_t *, void *), void *user_data) |
bool | stonith__event_state_pending (stonith_history_t *history, void *user_data) |
bool | stonith__event_state_eq (stonith_history_t *history, void *user_data) |
bool | stonith__event_state_neq (stonith_history_t *history, void *user_data) |
void | stonith__device_parameter_flags (uint32_t *device_flags, const char *device_name, xmlNode *metadata) |
const char * | get_stonith_provider (const char *agent, const char *provider) |
#define api_log | ( | level, | |
fmt, | |||
args... | |||
) | syslog(level, "%s: "fmt, __func__, args) |
Definition at line 2241 of file st_client.c.
#define api_log_open | ( | ) | openlog("stonith-api", LOG_CONS | LOG_NDELAY | LOG_PID, LOG_DAEMON) |
Definition at line 2240 of file st_client.c.
#define FAILURE_MAX_RETRIES 2 |
Definition at line 633 of file st_client.c.
typedef struct stonith_callback_client_s stonith_callback_client_t |
typedef struct stonith_notify_client_s stonith_notify_client_t |
typedef int(* stonith_op_t)(const char *, int, const char *, xmlNode *, xmlNode *, xmlNode *, xmlNode **, xmlNode **) |
Definition at line 108 of file st_client.c.
typedef struct stonith_private_s stonith_private_t |
xmlNode* create_device_registration_xml | ( | const char * | id, |
enum stonith_namespace | namespace, | ||
const char * | agent, | ||
stonith_key_value_t * | params, | ||
const char * | rsc_provides | ||
) |
Definition at line 275 of file st_client.c.
xmlNode* create_level_registration_xml | ( | const char * | node, |
const char * | pattern, | ||
const char * | attr, | ||
const char * | value, | ||
int | level, | ||
stonith_key_value_t * | device_list | ||
) |
Definition at line 395 of file st_client.c.
CRM_TRACE_INIT_DATA | ( | stonith | ) |
const char* get_stonith_provider | ( | const char * | agent, |
const char * | provider | ||
) |
Definition at line 2703 of file st_client.c.
void stonith__action_result | ( | stonith_action_t * | action, |
int * | rc, | ||
char ** | output, | ||
char ** | error_output | ||
) |
Definition at line 606 of file st_client.c.
void stonith__destroy_action | ( | stonith_action_t * | action | ) |
Definition at line 575 of file st_client.c.
void stonith__device_parameter_flags | ( | uint32_t * | device_flags, |
const char * | device_name, | ||
xmlNode * | metadata | ||
) |
Definition at line 2657 of file st_client.c.
bool stonith__event_state_eq | ( | stonith_history_t * | history, |
void * | user_data | ||
) |
Definition at line 2645 of file st_client.c.
bool stonith__event_state_neq | ( | stonith_history_t * | history, |
void * | user_data | ||
) |
Definition at line 2651 of file st_client.c.
bool stonith__event_state_pending | ( | stonith_history_t * | history, |
void * | user_data | ||
) |
Definition at line 2639 of file st_client.c.
int stonith__execute | ( | stonith_action_t * | action | ) |
Definition at line 890 of file st_client.c.
stonith_history_t* stonith__first_matching_event | ( | stonith_history_t * | history, |
bool(*)(stonith_history_t *, void *) | matching_fn, | ||
void * | user_data | ||
) |
Definition at line 2625 of file st_client.c.
gboolean stonith__later_succeeded | ( | stonith_history_t * | event, |
stonith_history_t * | top_history | ||
) |
Definition at line 2529 of file st_client.c.
GList* stonith__parse_targets | ( | const char * | target_spec | ) |
Definition at line 2489 of file st_client.c.
stonith_history_t* stonith__sort_history | ( | stonith_history_t * | history | ) |
Definition at line 2560 of file st_client.c.
stonith_action_t* stonith_action_create | ( | const char * | agent, |
const char * | _action, | ||
const char * | victim, | ||
uint32_t | victim_nodeid, | ||
int | timeout, | ||
GHashTable * | device_args, | ||
GHashTable * | port_map, | ||
const char * | host_arg | ||
) |
Definition at line 635 of file st_client.c.
int stonith_action_execute_async | ( | stonith_action_t * | action, |
void * | userdata, | ||
void(*)(GPid pid, int rc, const char *output, gpointer user_data) | done, | ||
void(*)(GPid pid, gpointer user_data) | fork_cb | ||
) |
Definition at line 863 of file st_client.c.
const char* stonith_action_str | ( | const char * | action | ) |
Turn stonith action into a more readable string.
action | Stonith action |
Definition at line 2381 of file st_client.c.
bool stonith_agent_exists | ( | const char * | agent, |
int | timeout | ||
) |
Does the given agent describe a stonith resource that can exist?
[in] | agent | What is the name of the agent? |
[in] | timeout | Timeout to use when querying. If 0 is given, use a default of 120. |
Definition at line 2350 of file st_client.c.
int stonith_api_connect_retry | ( | stonith_t * | st, |
const char * | name, | ||
int | max_attempts | ||
) |
Make a blocking connection attempt to the fencer.
[in,out] | st | Fencer API object |
[in] | name | Client name to use with fencer |
[in] | max_attempts | Return error if this many attempts fail |
Definition at line 2175 of file st_client.c.
void stonith_api_delete | ( | stonith_t * | stonith | ) |
Definition at line 2011 of file st_client.c.
int stonith_api_kick | ( | uint32_t | nodeid, |
const char * | uname, | ||
int | timeout, | ||
bool | off | ||
) |
Definition at line 2244 of file st_client.c.
stonith_t* stonith_api_new | ( | void | ) |
Definition at line 2097 of file st_client.c.
time_t stonith_api_time | ( | uint32_t | nodeid, |
const char * | uname, | ||
bool | in_progress | ||
) |
Definition at line 2286 of file st_client.c.
xmlNode * stonith_create_op | ( | int | call_id, |
const char * | token, | ||
const char * | op, | ||
xmlNode * | data, | ||
int | call_options | ||
) |
Definition at line 1204 of file st_client.c.
bool stonith_dispatch | ( | stonith_t * | st | ) |
Definition at line 1953 of file st_client.c.
void stonith_dump_pending_callbacks | ( | stonith_t * | stonith | ) |
Definition at line 1702 of file st_client.c.
enum stonith_namespace stonith_get_namespace | ( | const char * | agent, |
const char * | namespace_s | ||
) |
Determine namespace of a fence agent.
[in] | agent | Fence agent type |
[in] | namespace_s | Name of agent namespace as string, if known |
Definition at line 178 of file st_client.c.
void stonith_history_free | ( | stonith_history_t * | history | ) |
Definition at line 1158 of file st_client.c.
stonith_key_value_t* stonith_key_value_add | ( | stonith_key_value_t * | head, |
const char * | key, | ||
const char * | value | ||
) |
Definition at line 2196 of file st_client.c.
void stonith_key_value_freeall | ( | stonith_key_value_t * | head, |
int | keys, | ||
int | values | ||
) |
Definition at line 2223 of file st_client.c.
const char* stonith_namespace2text | ( | enum stonith_namespace | st_namespace | ) |
Get agent namespace name.
[in] | namespace | Namespace as enum value |
Definition at line 157 of file st_client.c.
const char* stonith_op_state_str | ( | enum op_state | state | ) |
Return string equivalent of an operation state value.
[in] | state | Fencing operation state value |
Definition at line 2612 of file st_client.c.
enum stonith_namespace stonith_text2namespace | ( | const char * | namespace_s | ) |
Get agent namespace by name.
[in] | namespace_s | Name of namespace as string |
Definition at line 131 of file st_client.c.