LCOV - code coverage report
Current view: top level - common - roles.c (source / functions) Hit Total Coverage
Test: Pacemaker code coverage Lines: 0 30 0.0 %
Date: 2024-05-07 11:09:47 Functions: 0 2 0.0 %

          Line data    Source code
       1             : /*
       2             :  * Copyright 2004-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             : #include <crm_internal.h>
      11             : 
      12             : #include <crm/common/scheduler.h>
      13             : #include <crm/common/scheduler_internal.h>
      14             : 
      15             : /*!
      16             :  * \brief Get readable description of a resource role
      17             :  *
      18             :  * \param[in] role  Resource role
      19             :  *
      20             :  * \return Static string describing \p role, suitable for logging or display
      21             :  */
      22             : const char *
      23           0 : pcmk_role_text(enum rsc_role_e role)
      24             : {
      25           0 :     switch (role) {
      26           0 :         case pcmk_role_stopped:
      27           0 :             return PCMK_ROLE_STOPPED;
      28             : 
      29           0 :         case pcmk_role_started:
      30           0 :             return PCMK_ROLE_STARTED;
      31             : 
      32           0 :         case pcmk_role_unpromoted:
      33             : #ifdef PCMK__COMPAT_2_0
      34             :             return PCMK__ROLE_UNPROMOTED_LEGACY;
      35             : #else
      36           0 :             return PCMK_ROLE_UNPROMOTED;
      37             : #endif
      38             : 
      39           0 :         case pcmk_role_promoted:
      40             : #ifdef PCMK__COMPAT_2_0
      41             :             return PCMK__ROLE_PROMOTED_LEGACY;
      42             : #else
      43           0 :             return PCMK_ROLE_PROMOTED;
      44             : #endif
      45             : 
      46           0 :         default: // pcmk_role_unknown
      47           0 :             return PCMK__ROLE_UNKNOWN;
      48             :     }
      49             : }
      50             : 
      51             : /*!
      52             :  * \brief Parse a resource role from a string role specification
      53             :  *
      54             :  * \param[in] role  Role specification
      55             :  *
      56             :  * \return Resource role corresponding to \p role
      57             :  */
      58             : enum rsc_role_e
      59           0 : pcmk_parse_role(const char *role)
      60             : {
      61           0 :     if (pcmk__str_eq(role, PCMK__ROLE_UNKNOWN,
      62             :                      pcmk__str_casei|pcmk__str_null_matches)) {
      63           0 :         return pcmk_role_unknown;
      64           0 :     } else if (pcmk__str_eq(role, PCMK_ROLE_STOPPED, pcmk__str_casei)) {
      65           0 :         return pcmk_role_stopped;
      66           0 :     } else if (pcmk__str_eq(role, PCMK_ROLE_STARTED, pcmk__str_casei)) {
      67           0 :         return pcmk_role_started;
      68           0 :     } else if (pcmk__str_eq(role, PCMK__ROLE_UNPROMOTED_LEGACY, pcmk__str_casei)) {
      69           0 :         pcmk__warn_once(pcmk__wo_slave_role,
      70             :                         "Support for the " PCMK__ROLE_UNPROMOTED_LEGACY
      71             :                         " role is deprecated and will be removed in a "
      72             :                         "future release. Use " PCMK_ROLE_UNPROMOTED
      73             :                         " instead.");
      74           0 :         return pcmk_role_unpromoted;
      75           0 :     } else if (pcmk__str_eq(role, PCMK_ROLE_UNPROMOTED, pcmk__str_casei)) {
      76           0 :         return pcmk_role_unpromoted;
      77           0 :     } else if (pcmk__str_eq(role, PCMK__ROLE_PROMOTED_LEGACY, pcmk__str_casei)) {
      78           0 :         pcmk__warn_once(pcmk__wo_master_role,
      79             :                         "Support for the " PCMK__ROLE_PROMOTED_LEGACY
      80             :                         " role is deprecated and will be removed in a "
      81             :                         "future release. Use " PCMK_ROLE_PROMOTED
      82             :                         " instead.");
      83           0 :         return pcmk_role_promoted;
      84           0 :     } else if (pcmk__str_eq(role, PCMK_ROLE_PROMOTED, pcmk__str_casei)) {
      85           0 :         return pcmk_role_promoted;
      86             :     }
      87           0 :     return pcmk_role_unknown; // Invalid role given
      88             : }

Generated by: LCOV version 1.14