diff --git a/include/crm/crm.h b/include/crm/crm.h index 968eb2dd06..99da439782 100644 --- a/include/crm/crm.h +++ b/include/crm/crm.h @@ -1,175 +1,174 @@ /* * Copyright 2004-2024 the Pacemaker project contributors * * The version control history for this file may have further details. * * This source code is licensed under the GNU Lesser General Public License * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #ifndef PCMK__CRM_CRM__H # define PCMK__CRM_CRM__H # include # include # include # include # include # include #include #ifdef __cplusplus extern "C" { #endif /** * \file * \brief A dumping ground * \ingroup core */ #ifndef PCMK_ALLOW_DEPRECATED /*! * \brief Allow use of deprecated Pacemaker APIs * * By default, external code using Pacemaker headers is allowed to use * deprecated Pacemaker APIs. If PCMK_ALLOW_DEPRECATED is defined to 0 before * including any Pacemaker headers, deprecated APIs will be unusable. It is * strongly recommended to leave this unchanged for production and release * builds, to avoid breakage when users upgrade to new Pacemaker releases that * deprecate more APIs. This should be defined to 0 only for development and * testing builds when desiring to check for usage of currently deprecated APIs. */ #define PCMK_ALLOW_DEPRECATED 1 #endif /*! * The CRM feature set assists with compatibility in mixed-version clusters. * The major version number increases when nodes with different versions * would not work (rolling upgrades are not allowed). The minor version * number increases when mixed-version clusters are allowed only during * rolling upgrades (a node with the oldest feature set will be elected DC). The * minor-minor version number is ignored, but allows resource agents to detect * cluster support for various features. * * The feature set also affects the processing of old saved CIBs (such as for * many scheduler regression tests). * * Particular feature points currently tested by Pacemaker code: * * >2.1: Operation updates include timing data * >=3.0.5: XML v2 digests are created * >=3.0.8: Peers do not need acks for cancellations * >=3.0.9: DC will send its own shutdown request to all peers * XML v2 patchsets are created by default * >=3.0.13: Fail counts include operation name and interval * >=3.2.0: DC supports PCMK_EXEC_INVALID and PCMK_EXEC_NOT_CONNECTED * >=3.19.0: DC supports PCMK__CIB_REQUEST_COMMIT_TRANSACT */ # define CRM_FEATURE_SET "3.19.0" /* Pacemaker's CPG protocols use fixed-width binary fields for the sender and * recipient of a CPG message. This imposes an arbitrary limit on cluster node * names. */ //! \brief Maximum length of a Corosync cluster node name (in bytes) #define MAX_NAME 256 # define CRM_META "CRM_meta" extern char *crm_system_name; // How we represent "infinite" scores # define CRM_SCORE_INFINITY 1000000 -# define CRM_MINUS_INFINITY_S PCMK_VALUE_MINUS_INFINITY /* @COMPAT API < 2.0.0 Deprecated "infinity" aliases * * INFINITY might be defined elsewhere (e.g. math.h), so undefine it first. * This, of course, complicates any attempt to use the other definition in any * code that includes this header. */ # undef INFINITY # define INFINITY_S "INFINITY" # define MINUS_INFINITY_S "-INFINITY" # define INFINITY 1000000 /* Sub-systems */ # define CRM_SYSTEM_DC "dc" #define CRM_SYSTEM_DCIB "dcib" // Primary instance of CIB manager # define CRM_SYSTEM_CIB "cib" # define CRM_SYSTEM_CRMD "crmd" # define CRM_SYSTEM_LRMD "lrmd" # define CRM_SYSTEM_PENGINE "pengine" # define CRM_SYSTEM_TENGINE "tengine" # define CRM_SYSTEM_STONITHD "stonithd" # define CRM_SYSTEM_MCP "pacemakerd" // Names of internally generated node attributes // @TODO Replace these with PCMK_NODE_ATTR_* # define CRM_ATTR_UNAME "#uname" # define CRM_ATTR_ID "#id" # define CRM_ATTR_KIND "#kind" # define CRM_ATTR_ROLE "#role" # define CRM_ATTR_IS_DC "#is_dc" # define CRM_ATTR_CLUSTER_NAME "#cluster-name" # define CRM_ATTR_SITE_NAME "#site-name" # define CRM_ATTR_UNFENCED "#node-unfenced" # define CRM_ATTR_DIGESTS_ALL "#digests-all" # define CRM_ATTR_DIGESTS_SECURE "#digests-secure" # define CRM_ATTR_PROTOCOL "#attrd-protocol" # define CRM_ATTR_FEATURE_SET "#feature-set" /* Valid operations */ # define CRM_OP_NOOP "noop" # define CRM_OP_JOIN_ANNOUNCE "join_announce" # define CRM_OP_JOIN_OFFER "join_offer" # define CRM_OP_JOIN_REQUEST "join_request" # define CRM_OP_JOIN_ACKNAK "join_ack_nack" # define CRM_OP_JOIN_CONFIRM "join_confirm" # define CRM_OP_PING "ping" # define CRM_OP_NODE_INFO "node-info" # define CRM_OP_THROTTLE "throttle" # define CRM_OP_VOTE "vote" # define CRM_OP_NOVOTE "no-vote" # define CRM_OP_HELLO "hello" # define CRM_OP_PECALC "pe_calc" # define CRM_OP_QUIT "quit" # define CRM_OP_SHUTDOWN_REQ "req_shutdown" # define CRM_OP_SHUTDOWN PCMK_ACTION_DO_SHUTDOWN # define CRM_OP_REGISTER "register" # define CRM_OP_IPC_FWD "ipc_fwd" # define CRM_OP_INVOKE_LRM "lrm_invoke" # define CRM_OP_LRM_REFRESH "lrm_refresh" //!< Deprecated since 1.1.10 # define CRM_OP_LRM_DELETE PCMK_ACTION_LRM_DELETE # define CRM_OP_LRM_FAIL "lrm_fail" # define CRM_OP_PROBED "probe_complete" # define CRM_OP_REPROBE "probe_again" # define CRM_OP_CLEAR_FAILCOUNT PCMK_ACTION_CLEAR_FAILCOUNT # define CRM_OP_REMOTE_STATE "remote_state" # define CRM_OP_RM_NODE_CACHE "rm_node_cache" # define CRM_OP_MAINTENANCE_NODES PCMK_ACTION_MAINTENANCE_NODES /* Possible cluster membership states */ # define CRMD_JOINSTATE_DOWN "down" # define CRMD_JOINSTATE_PENDING "pending" # define CRMD_JOINSTATE_MEMBER "member" # define CRMD_JOINSTATE_NACK "banned" # include # include # include # include #if !defined(PCMK_ALLOW_DEPRECATED) || (PCMK_ALLOW_DEPRECATED == 1) #include #endif #ifdef __cplusplus } #endif #endif diff --git a/include/crm/crm_compat.h b/include/crm/crm_compat.h index 1ef9f53bc5..646d950bc8 100644 --- a/include/crm/crm_compat.h +++ b/include/crm/crm_compat.h @@ -1,197 +1,200 @@ /* * Copyright 2004-2024 the Pacemaker project contributors * * The version control history for this file may have further details. * * This source code is licensed under the GNU Lesser General Public License * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #ifndef PCMK__CRM_CRM_COMPAT__H # define PCMK__CRM_CRM_COMPAT__H #include #include #include #ifdef __cplusplus extern "C" { #endif /** * \file * \brief Deprecated Pacemaker utilities * \ingroup core * \deprecated Do not include this header directly. The utilities in this * header, and the header itself, will be removed in a future * release. */ //! \deprecated Use '\0' instead #define EOS '\0' //! \deprecated This defined constant will be removed in a future release #define MAX_IPC_DELAY 120 //! \deprecated Use PCMK_VALUE_INFINITY instead #define CRM_INFINITY_S PCMK_VALUE_INFINITY +//! \deprecated Use PCMK_VALUE_MINUS_INFINITY instead +#define CRM_MINUS_INFINITY_S PCMK_VALUE_MINUS_INFINITY + //! \deprecated Use PCMK_VALUE_PLUS_INFINITY instead #define CRM_PLUS_INFINITY_S PCMK_VALUE_PLUS_INFINITY //! \deprecated Use PCMK_ACTION_STONITH instead #define CRM_OP_FENCE PCMK_ACTION_STONITH //! \deprecated This defined constant will be removed in a future release #define CRM_OP_LRM_QUERY "lrm_query" //! \deprecated Use PCMK_ACTION_CLONE_ONE_OR_MORE instead #define CRM_OP_RELAXED_CLONE PCMK_ACTION_CLONE_ONE_OR_MORE //! \deprecated Use PCMK_ACTION_ONE_OR_MORE instead #define CRM_OP_RELAXED_SET PCMK_ACTION_ONE_OR_MORE //! \deprecated This defined constant will be removed in a future release #define CRM_ATTR_RA_VERSION "#ra-version" //! \deprecated Use PCMK_ACTION_CANCEL instead #define CRMD_ACTION_CANCEL PCMK_ACTION_CANCEL //! \deprecated Use PCMK_ACTION_DELETE instead #define CRMD_ACTION_DELETE PCMK_ACTION_DELETE //! \deprecated Use PCMK_ACTION_DEMOTE instead #define CRMD_ACTION_DEMOTE PCMK_ACTION_DEMOTE //! \deprecated Use PCMK_ACTION_DEMOTED instead #define CRMD_ACTION_DEMOTED PCMK_ACTION_DEMOTED //! \deprecated Use PCMK_ACTION_META_DATA instead #define CRMD_ACTION_METADATA PCMK_ACTION_META_DATA //! \deprecated Use PCMK_ACTION_MIGRATE_TO instead #define CRMD_ACTION_MIGRATE PCMK_ACTION_MIGRATE_TO //! \deprecated Use PCMK_ACTION_MIGRATE_FROM instead #define CRMD_ACTION_MIGRATED PCMK_ACTION_MIGRATE_FROM //! \deprecated Use PCMK_ACTION_NOTIFIED instead #define CRMD_ACTION_NOTIFIED PCMK_ACTION_NOTIFIED //! \deprecated Use PCMK_ACTION_NOTIFY instead #define CRMD_ACTION_NOTIFY PCMK_ACTION_NOTIFY //! \deprecated Use PCMK_ACTION_PROMOTE instead #define CRMD_ACTION_PROMOTE PCMK_ACTION_PROMOTE //! \deprecated Use PCMK_ACTION_PROMOTED instead #define CRMD_ACTION_PROMOTED PCMK_ACTION_PROMOTED //! \deprecated Use PCMK_ACTION_RELOAD instead #define CRMD_ACTION_RELOAD PCMK_ACTION_RELOAD //! \deprecated Use PCMK_ACTION_RELOAD_AGENT instead #define CRMD_ACTION_RELOAD_AGENT PCMK_ACTION_RELOAD_AGENT //! \deprecated Use PCMK_ACTION_START instead #define CRMD_ACTION_START PCMK_ACTION_START //! \deprecated Use PCMK_ACTION_RUNNING instead #define CRMD_ACTION_STARTED PCMK_ACTION_RUNNING //! \deprecated Use PCMK_ACTION_MONITOR instead #define CRMD_ACTION_STATUS PCMK_ACTION_MONITOR //! \deprecated Use PCMK_ACTION_STOP instead #define CRMD_ACTION_STOP PCMK_ACTION_STOP //! \deprecated Use PCMK_ACTION_STOPPED instead #define CRMD_ACTION_STOPPED PCMK_ACTION_STOPPED //! \deprecated Do not use #define CRMD_METADATA_CALL_TIMEOUT PCMK_DEFAULT_METADATA_TIMEOUT_MS //! \deprecated Use PCMK_ACTION_CANCEL instead #define RSC_CANCEL PCMK_ACTION_CANCEL //! \deprecated Use PCMK_ACTION_DELETE instead #define RSC_DELETE PCMK_ACTION_DELETE //! \deprecated Use PCMK_ACTION_DEMOTE instead #define RSC_DEMOTE PCMK_ACTION_DEMOTE //! \deprecated Use PCMK_ACTION_DEMOTED instead #define RSC_DEMOTED PCMK_ACTION_DEMOTED //! \deprecated Use PCMK_ACTION_META_DATA instead #define RSC_METADATA PCMK_ACTION_META_DATA //! \deprecated Use PCMK_ACTION_MIGRATE_TO instead #define RSC_MIGRATE PCMK_ACTION_MIGRATE_TO //! \deprecated Use PCMK_ACTION_MIGRATE_FROM instead #define RSC_MIGRATED PCMK_ACTION_MIGRATE_FROM //! \deprecated Use PCMK_ACTION_NOTIFIED instead #define RSC_NOTIFIED PCMK_ACTION_NOTIFIED //! \deprecated Use PCMK_ACTION_NOTIFY instead #define RSC_NOTIFY PCMK_ACTION_NOTIFY //! \deprecated Use PCMK_ACTION_PROMOTE instead #define RSC_PROMOTE PCMK_ACTION_PROMOTE //! \deprecated Use PCMK_ACTION_PROMOTED instead #define RSC_PROMOTED PCMK_ACTION_PROMOTED //! \deprecated Use PCMK_ACTION_START instead #define RSC_START PCMK_ACTION_START //! \deprecated Use PCMK_ACTION_RUNNING instead #define RSC_STARTED PCMK_ACTION_RUNNING //! \deprecated Use PCMK_ACTION_MONITOR instead #define RSC_STATUS PCMK_ACTION_MONITOR //! \deprecated Use PCMK_ACTION_STOP instead #define RSC_STOP PCMK_ACTION_STOP //! \deprecated Use PCMK_ACTION_STOPPED instead #define RSC_STOPPED PCMK_ACTION_STOPPED //! \deprecated Do not use #define CRM_OP_LOCAL_SHUTDOWN "start_shutdown" //!@{ //! \deprecated This macro will be removed in a future release # ifndef __GNUC__ # define __builtin_expect(expr, result) (expr) # endif #define __likely(expr) __builtin_expect(expr, 1) #define __unlikely(expr) __builtin_expect(expr, 0) // This ends the doxygen deprecation comment //!@} //! \deprecated Use GList * instead typedef GList *GListPtr; //! \deprecated Do not use static inline const char * crm_action_str(const char *task, guint interval_ms) { if ((task != NULL) && (interval_ms == 0) && (strcasecmp(task, PCMK_ACTION_MONITOR) == 0)) { return "probe"; } return task; } #ifdef __cplusplus } #endif #endif // PCMK__CRM_CRM_COMPAT__H