summaryrefslogtreecommitdiffstats
path: root/include/crm/common/roles_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/crm/common/roles_internal.h')
-rw-r--r--include/crm/common/roles_internal.h48
1 files changed, 42 insertions, 6 deletions
diff --git a/include/crm/common/roles_internal.h b/include/crm/common/roles_internal.h
index e304f13..7df71c6 100644
--- a/include/crm/common/roles_internal.h
+++ b/include/crm/common/roles_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2023 the Pacemaker project contributors
+ * Copyright 2004-2024 the Pacemaker project contributors
*
* The version control history for this file may have further details.
*
@@ -8,7 +8,7 @@
*/
#ifndef PCMK__CRM_COMMON_ROLES_INTERNAL__H
-# define PCMK__CRM_COMMON_ROLES_INTERNAL__H
+#define PCMK__CRM_COMMON_ROLES_INTERNAL__H
#ifdef __cplusplus
extern "C" {
@@ -16,13 +16,49 @@ extern "C" {
// String equivalents of enum rsc_role_e
#define PCMK__ROLE_UNKNOWN "Unknown"
-#define PCMK__ROLE_STOPPED "Stopped"
-#define PCMK__ROLE_STARTED "Started"
-#define PCMK__ROLE_UNPROMOTED "Unpromoted"
-#define PCMK__ROLE_PROMOTED "Promoted"
#define PCMK__ROLE_UNPROMOTED_LEGACY "Slave"
#define PCMK__ROLE_PROMOTED_LEGACY "Master"
+/*!
+ * \internal
+ * \brief Set resource flags
+ *
+ * \param[in,out] resource Resource to set flags for
+ * \param[in] flags_to_set Group of enum pcmk_rsc_flags to set
+ */
+#define pcmk__set_rsc_flags(resource, flags_to_set) do { \
+ (resource)->flags = pcmk__set_flags_as(__func__, __LINE__, \
+ LOG_TRACE, "Resource", (resource)->id, (resource)->flags, \
+ (flags_to_set), #flags_to_set); \
+ } while (0)
+
+/*!
+ * \internal
+ * \brief Clear resource flags
+ *
+ * \param[in,out] resource Resource to clear flags for
+ * \param[in] flags_to_clear Group of enum pcmk_rsc_flags to clear
+ */
+#define pcmk__clear_rsc_flags(resource, flags_to_clear) do { \
+ (resource)->flags = pcmk__clear_flags_as(__func__, __LINE__, \
+ LOG_TRACE, "Resource", (resource)->id, (resource)->flags, \
+ (flags_to_clear), #flags_to_clear); \
+ } while (0)
+
+/*!
+ * \internal
+ * \brief Get node where resource is currently active (if any)
+ *
+ * \param[in] rsc Resource to check
+ *
+ * \return Node that \p rsc is active on, if any, otherwise NULL
+ */
+static inline pcmk_node_t *
+pcmk__current_node(const pcmk_resource_t *rsc)
+{
+ return (rsc == NULL)? NULL : rsc->fns->active_node(rsc, NULL, NULL);
+}
+
#ifdef __cplusplus
}
#endif