root/include/crm/crm.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. crm_action_str

   1 /*
   2  * Copyright (C) 2004 Andrew Beekhof <andrew@beekhof.net>
   3  *
   4  * This program is free software; you can redistribute it and/or
   5  * modify it under the terms of the GNU Lesser General Public
   6  * License as published by the Free Software Foundation; either
   7  * version 2 of the License, or (at your option) any later version.
   8  *
   9  * This software is distributed in the hope that it will be useful,
  10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12  * General Public License for more details.
  13  *
  14  * You should have received a copy of the GNU Lesser General Public
  15  * License along with this library; if not, write to the Free Software
  16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  17  */
  18 #ifndef CRM__H
  19 #  define CRM__H
  20 
  21 /**
  22  * \file
  23  * \brief A dumping ground
  24  * \ingroup core
  25  */
  26 
  27 #  include <crm_config.h>
  28 #  include <stdlib.h>
  29 #  include <glib.h>
  30 #  include <stdbool.h>
  31 
  32 #  include <string.h>
  33 
  34 #  include <libxml/tree.h>
  35 
  36 #  define CRM_FEATURE_SET               "3.0.14"
  37 
  38 #  define EOS           '\0'
  39 #  define DIMOF(a)      ((int) (sizeof(a)/sizeof(a[0])) )
  40 
  41 #  ifndef MAX_NAME
  42 #    define MAX_NAME    256
  43 #  endif
  44 
  45 #  ifndef __GNUC__
  46 #    define __builtin_expect(expr, result) (expr)
  47 #  endif
  48 
  49 /* Some handy macros used by the Linux kernel */
  50 #  define __likely(expr) __builtin_expect(expr, 1)
  51 #  define __unlikely(expr) __builtin_expect(expr, 0)
  52 
  53 #  define CRM_META                      "CRM_meta"
  54 
  55 extern char *crm_system_name;
  56 
  57 /* *INDENT-OFF* */
  58 
  59 /* Clean these up at some point, some probably should be runtime options */
  60 #  define SOCKET_LEN    1024
  61 #  define APPNAME_LEN   256
  62 #  define MAX_IPC_FAIL  5
  63 #  define MAX_IPC_DELAY   120
  64 
  65 #  define DAEMON_RESPAWN_STOP 100
  66 
  67 #  define MSG_LOG                       1
  68 #  define DOT_FSA_ACTIONS               1
  69 #  define DOT_ALL_FSA_INPUTS    1
  70 /* #define FSA_TRACE            1 */
  71 
  72 /* This header defines INFINITY, but it might be defined elsewhere as well
  73  * (e.g. math.h), so undefine it first. This, of course, complicates any attempt
  74  * to use the other definition in any code that includes this header.
  75  *
  76  * @TODO: Rename our constant (which will break API backward compatibility).
  77  */
  78 #  undef INFINITY
  79 
  80 #  define INFINITY_S        "INFINITY"
  81 #  define MINUS_INFINITY_S "-INFINITY"
  82 
  83 #  define INFINITY        1000000
  84 
  85 /* Sub-systems */
  86 #  define CRM_SYSTEM_DC         "dc"
  87 #  define CRM_SYSTEM_DCIB               "dcib"
  88                                         /*  The master CIB */
  89 #  define CRM_SYSTEM_CIB                "cib"
  90 #  define CRM_SYSTEM_CRMD               "crmd"
  91 #  define CRM_SYSTEM_LRMD               "lrmd"
  92 #  define CRM_SYSTEM_PENGINE    "pengine"
  93 #  define CRM_SYSTEM_TENGINE    "tengine"
  94 #  define CRM_SYSTEM_STONITHD   "stonithd"
  95 #  define CRM_SYSTEM_MCP        "pacemakerd"
  96 
  97 // Names of internally generated node attributes
  98 #  define CRM_ATTR_UNAME            "#uname"
  99 #  define CRM_ATTR_ID               "#id"
 100 #  define CRM_ATTR_KIND             "#kind"
 101 #  define CRM_ATTR_ROLE             "#role"
 102 #  define CRM_ATTR_IS_DC            "#is_dc"
 103 #  define CRM_ATTR_CLUSTER_NAME     "#cluster-name"
 104 #  define CRM_ATTR_SITE_NAME        "#site-name"
 105 #  define CRM_ATTR_UNFENCED         "#node-unfenced"
 106 #  define CRM_ATTR_DIGESTS_ALL      "#digests-all"
 107 #  define CRM_ATTR_DIGESTS_SECURE   "#digests-secure"
 108 #  define CRM_ATTR_RA_VERSION       "#ra-version"
 109 
 110 /* Valid operations */
 111 #  define CRM_OP_NOOP           "noop"
 112 #  define CRM_OP_JOIN_ANNOUNCE  "join_announce"
 113 #  define CRM_OP_JOIN_OFFER     "join_offer"
 114 #  define CRM_OP_JOIN_REQUEST   "join_request"
 115 #  define CRM_OP_JOIN_ACKNAK    "join_ack_nack"
 116 #  define CRM_OP_JOIN_CONFIRM   "join_confirm"
 117 #  define CRM_OP_PING           "ping"
 118 #  define CRM_OP_THROTTLE       "throttle"
 119 #  define CRM_OP_VOTE           "vote"
 120 #  define CRM_OP_NOVOTE         "no-vote"
 121 #  define CRM_OP_HELLO          "hello"
 122 #  define CRM_OP_PECALC         "pe_calc"
 123 #  define CRM_OP_QUIT           "quit"
 124 #  define CRM_OP_LOCAL_SHUTDOWN         "start_shutdown"
 125 #  define CRM_OP_SHUTDOWN_REQ   "req_shutdown"
 126 #  define CRM_OP_SHUTDOWN       "do_shutdown"
 127 #  define CRM_OP_FENCE          "stonith"
 128 #  define CRM_OP_REGISTER               "register"
 129 #  define CRM_OP_IPC_FWD                "ipc_fwd"
 130 #  define CRM_OP_INVOKE_LRM     "lrm_invoke"
 131 #  define CRM_OP_LRM_REFRESH    "lrm_refresh" /* Deprecated */
 132 #  define CRM_OP_LRM_QUERY      "lrm_query"
 133 #  define CRM_OP_LRM_DELETE     "lrm_delete"
 134 #  define CRM_OP_LRM_FAIL               "lrm_fail"
 135 #  define CRM_OP_PROBED         "probe_complete"
 136 #  define CRM_OP_REPROBE                "probe_again"
 137 #  define CRM_OP_CLEAR_FAILCOUNT  "clear_failcount"
 138 #  define CRM_OP_REMOTE_STATE     "remote_state"
 139 #  define CRM_OP_RELAXED_SET  "one-or-more"
 140 #  define CRM_OP_RELAXED_CLONE  "clone-one-or-more"
 141 #  define CRM_OP_RM_NODE_CACHE "rm_node_cache"
 142 #  define CRM_OP_MAINTENANCE_NODES "maintenance_nodes"
 143 
 144 /* @COMPAT: These symbols are deprecated and not used by Pacemaker,
 145  * but they are kept for public API backward compatibility.
 146  */
 147 #  define CRM_OP_DIE                "die_no_respawn"
 148 #  define CRM_OP_RETRIVE_CIB    "retrieve_cib"
 149 #  define CRM_OP_HBEAT              "dc_beat"
 150 #  define CRM_OP_ABORT              "abort"
 151 #  define CRM_OP_EVENTCC                "event_cc"
 152 #  define CRM_OP_TEABORT                "te_abort"
 153 #  define CRM_OP_TEABORTED          "te_abort_confirmed"
 154 #  define CRM_OP_TE_HALT                "te_halt"
 155 #  define CRM_OP_TECOMPLETE         "te_complete"
 156 #  define CRM_OP_TETIMEOUT          "te_timeout"
 157 #  define CRM_OP_TRANSITION         "transition"
 158 #  define CRM_OP_DEBUG_UP               "debug_inc" /* unused since 1.1.8 */
 159 #  define CRM_OP_DEBUG_DOWN     "debug_dec" /* unused since 1.1.8 */
 160 #  define CRM_OP_NODES_PROBED   "probe_nodes_complete"
 161 
 162 /* Possible cluster membership states */
 163 #  define CRMD_JOINSTATE_DOWN           "down"
 164 #  define CRMD_JOINSTATE_PENDING        "pending"
 165 #  define CRMD_JOINSTATE_MEMBER         "member"
 166 #  define CRMD_JOINSTATE_NACK           "banned"
 167 
 168 #  define CRMD_ACTION_DELETE            "delete"
 169 #  define CRMD_ACTION_CANCEL            "cancel"
 170 
 171 #  define CRMD_ACTION_RELOAD            "reload"
 172 #  define CRMD_ACTION_MIGRATE           "migrate_to"
 173 #  define CRMD_ACTION_MIGRATED          "migrate_from"
 174 
 175 #  define CRMD_ACTION_START             "start"
 176 #  define CRMD_ACTION_STARTED           "running"
 177 
 178 #  define CRMD_ACTION_STOP              "stop"
 179 #  define CRMD_ACTION_STOPPED           "stopped"
 180 
 181 #  define CRMD_ACTION_PROMOTE           "promote"
 182 #  define CRMD_ACTION_PROMOTED          "promoted"
 183 #  define CRMD_ACTION_DEMOTE            "demote"
 184 #  define CRMD_ACTION_DEMOTED           "demoted"
 185 
 186 #  define CRMD_ACTION_NOTIFY            "notify"
 187 #  define CRMD_ACTION_NOTIFIED          "notified"
 188 
 189 #  define CRMD_ACTION_STATUS            "monitor"
 190 #  define CRMD_ACTION_METADATA          "meta-data"
 191 #  define CRMD_METADATA_CALL_TIMEOUT   30000
 192 
 193 /* short names */
 194 #  define RSC_DELETE    CRMD_ACTION_DELETE
 195 #  define RSC_CANCEL    CRMD_ACTION_CANCEL
 196 
 197 #  define RSC_MIGRATE   CRMD_ACTION_MIGRATE
 198 #  define RSC_MIGRATED  CRMD_ACTION_MIGRATED
 199 
 200 #  define RSC_START     CRMD_ACTION_START
 201 #  define RSC_STARTED   CRMD_ACTION_STARTED
 202 
 203 #  define RSC_STOP      CRMD_ACTION_STOP
 204 #  define RSC_STOPPED   CRMD_ACTION_STOPPED
 205 
 206 #  define RSC_PROMOTE   CRMD_ACTION_PROMOTE
 207 #  define RSC_PROMOTED  CRMD_ACTION_PROMOTED
 208 #  define RSC_DEMOTE    CRMD_ACTION_DEMOTE
 209 #  define RSC_DEMOTED   CRMD_ACTION_DEMOTED
 210 
 211 #  define RSC_NOTIFY    CRMD_ACTION_NOTIFY
 212 #  define RSC_NOTIFIED  CRMD_ACTION_NOTIFIED
 213 
 214 #  define RSC_STATUS    CRMD_ACTION_STATUS
 215 #  define RSC_METADATA  CRMD_ACTION_METADATA
 216 /* *INDENT-ON* */
 217 
 218 typedef GList *GListPtr;
 219 
 220 #  include <crm/common/logging.h>
 221 #  include <crm/common/util.h>
 222 #  include <crm/error.h>
 223 
 224 static inline const char *crm_action_str(const char *task, int interval) {
     /* [previous][next][first][last][top][bottom][index][help] */
 225     if(safe_str_eq(task, RSC_STATUS) && !interval) {
 226         return "probe";
 227     }
 228     return task;
 229 }
 230 
 231 #endif

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