16 #include <sys/types.h>    25 #include <sys/resource.h>    61     } 
else if (op->
params != NULL) {
    67         g_hash_table_iter_init(&iter, op->
params);
    69         while (g_hash_table_iter_next(&iter, (gpointer *) & key,
    70                                       (gpointer *) & value)) {
    91         g_hash_table_destroy(op->
params);
   108     switch (exit_status) {
   126 nagios_metadata_name(
const char *plugin)
   134     GList *plugin_list = NULL;
   140     for (GList *gIter = plugin_list; gIter != NULL; gIter = gIter->next) {
   142         const char *plugin = gIter->data;
   143         char *metadata = nagios_metadata_name(plugin);
   145         if (stat(metadata, &
st) == 0) {
   150     g_list_free_full(plugin_list, free);
   166     if (stat(buf, &
st) == 0) {
   178     FILE *file_strm = NULL;
   179     int start = 0, length = 0, read_len = 0;
   180     char *metadata_file = nagios_metadata_name(
type);
   182     file_strm = fopen(metadata_file, 
"r");
   183     if (file_strm == NULL) {
   184         crm_err(
"Metadata file %s does not exist", metadata_file);
   190     start = ftell(file_strm);
   191     fseek(file_strm, 0L, SEEK_END);
   192     length = ftell(file_strm);
   193     fseek(file_strm, 0L, start);
   199         crm_info(
"%s was not valid", metadata_file);
   205         crm_trace(
"Reading %d bytes from file", length);
   206         *output = calloc(1, (length + 1));
   207         read_len = fread(*output, 1, length, file_strm);
   208         if (read_len != length) {
   209             crm_err(
"Calculated and read bytes differ: %d vs. %d",
 
ocf_exitcode
Exit status codes for resource agents. 
 
guint interval_ms
Action interval for recurring resource actions, otherwise 0. 
 
int services__nagios_prepare(svc_action_t *op)
 
int services__get_nagios_metadata(const char *type, char **output)
 
GList * services_os_get_directory_list(const char *root, gboolean files, gboolean executable)
 
enum crm_ais_msg_types type
 
Wrappers for and extensions to glib mainloop. 
 
svc_action_private_t * opaque
This field should be treated as internal to Pacemaker. 
 
#define crm_trace(fmt, args...)
 
char * crm_strdup_printf(char const *format,...) G_GNUC_PRINTF(1
 
Object for executing external actions. 
 
char * agent
Resource agent name for resource actions, otherwise NULL. 
 
gboolean services__nagios_agent_exists(const char *name)
 
char * pcmk__full_path(const char *filename, const char *dirname)
Duplicate a file path, inserting a prefix if not absolute. 
 
Service active but more likely to fail soon. 
 
char * action
Name of action being executed for resource actions, otherwise NULL. 
 
pcmk__action_result_t result
 
#define NAGIOS_PLUGIN_DIR
 
#define crm_err(fmt, args...)
 
GList * services__list_nagios_agents(void)
 
#define XML_ATTR_CRM_VERSION
 
#define crm_info(fmt, args...)
 
#define NAGIOS_METADATA_DIR
 
enum ocf_exitcode services__nagios2ocf(int exit_status)