root/include/crm/common/agents.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright 2017-2024 the Pacemaker project contributors
   3  *
   4  * The version control history for this file may have further details.
   5  *
   6  * This source code is licensed under the GNU Lesser General Public License
   7  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
   8  */
   9 
  10 #ifndef PCMK__CRM_COMMON_AGENTS__H
  11 #define PCMK__CRM_COMMON_AGENTS__H
  12 
  13 #ifdef __cplusplus
  14 extern "C" {
  15 #endif
  16 
  17 /**
  18  * \file
  19  * \brief API related to resource agents
  20  * \ingroup core
  21  */
  22 
  23 #include <stdint.h>       // uint32_t
  24 #include <stdbool.h>
  25 
  26 // Known (not necessarily supported) resource classes
  27 #define PCMK_RESOURCE_CLASS_OCF     "ocf"
  28 #define PCMK_RESOURCE_CLASS_SERVICE "service"
  29 #define PCMK_RESOURCE_CLASS_LSB     "lsb"
  30 #define PCMK_RESOURCE_CLASS_SYSTEMD "systemd"
  31 #define PCMK_RESOURCE_CLASS_STONITH "stonith"
  32 #define PCMK_RESOURCE_CLASS_ALERT   "alert"
  33 //! \deprecated Do not use
  34 #define PCMK_RESOURCE_CLASS_NAGIOS  "nagios"
  35 //! \deprecated Do not use
  36 #define PCMK_RESOURCE_CLASS_UPSTART "upstart"
  37 
  38 /* Special stonith-class agent parameters interpreted directly by Pacemaker
  39  * (not including the pcmk_ACTION_{action,retries,timeout} parameters)
  40  */
  41 #define PCMK_STONITH_ACTION_LIMIT       "pcmk_action_limit"
  42 #define PCMK_STONITH_DELAY_BASE         "pcmk_delay_base"
  43 #define PCMK_STONITH_DELAY_MAX          "pcmk_delay_max"
  44 #define PCMK_STONITH_HOST_ARGUMENT      "pcmk_host_argument"
  45 #define PCMK_STONITH_HOST_CHECK         "pcmk_host_check"
  46 #define PCMK_STONITH_HOST_LIST          "pcmk_host_list"
  47 #define PCMK_STONITH_HOST_MAP           "pcmk_host_map"
  48 #define PCMK_STONITH_PROVIDES           "provides"
  49 #define PCMK_STONITH_STONITH_TIMEOUT    "stonith-timeout"
  50 
  51 // OCF Resource Agent API standard version that this Pacemaker supports
  52 #define PCMK_OCF_MAJOR_VERSION "1"
  53 #define PCMK_OCF_MINOR_VERSION "1"
  54 #define PCMK_OCF_VERSION       PCMK_OCF_MAJOR_VERSION "." PCMK_OCF_MINOR_VERSION
  55 
  56 // Capabilities supported by a resource agent standard
  57 enum pcmk_ra_caps {
  58     pcmk_ra_cap_none         = 0U,
  59     pcmk_ra_cap_provider     = (1U << 0), // Requires provider
  60     pcmk_ra_cap_status       = (1U << 1), // Supports status instead of monitor
  61     pcmk_ra_cap_params       = (1U << 2), // Supports parameters
  62     pcmk_ra_cap_unique       = (1U << 3), // Supports unique clones
  63     pcmk_ra_cap_promotable   = (1U << 4), // Supports promotable clones
  64     pcmk_ra_cap_stdin        = (1U << 5), // Reads from standard input
  65     pcmk_ra_cap_fence_params = (1U << 6), // Supports pcmk_monitor_timeout, etc.
  66     pcmk_ra_cap_cli_exec     = (1U << 7), // Supports execution by crm_resource
  67 };
  68 
  69 uint32_t pcmk_get_ra_caps(const char *standard);
  70 char *crm_generate_ra_key(const char *standard, const char *provider,
  71                           const char *type);
  72 int crm_parse_agent_spec(const char *spec, char **standard, char **provider,
  73                          char **type);
  74 bool pcmk_stonith_param(const char *param);
  75 
  76 #if !defined(PCMK_ALLOW_DEPRECATED) || (PCMK_ALLOW_DEPRECATED == 1)
  77 #include <crm/common/agents_compat.h>
  78 #endif
  79 
  80 #ifdef __cplusplus
  81 }
  82 #endif
  83 
  84 #endif // PCMK__CRM_COMMON_AGENTS__H

/* [previous][next][first][last][top][bottom][index][help] */