root/lib/common/health.c

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

DEFINITIONS

This source file includes following definitions.
  1. pcmk__validate_health_strategy
  2. pcmk__parse_health_strategy

   1 /*
   2  * Copyright 2022 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 /*!
  13  * \internal
  14  * \brief Ensure a health strategy value is allowed
  15  *
  16  * \param[in] value  Configured health strategy
  17  *
  18  * \return true if \p value is an allowed health strategy value, otherwise false
  19  */
  20 bool
  21 pcmk__validate_health_strategy(const char *value)
     /* [previous][next][first][last][top][bottom][index][help] */
  22 {
  23     return pcmk__strcase_any_of(value,
  24                                 PCMK__VALUE_NONE,
  25                                 PCMK__VALUE_CUSTOM,
  26                                 PCMK__VALUE_ONLY_GREEN,
  27                                 PCMK__VALUE_PROGRESSIVE,
  28                                 PCMK__VALUE_MIGRATE_ON_RED,
  29                                 NULL);
  30 }
  31 
  32 /*!
  33  * \internal
  34  * \brief Parse node health strategy from a user-provided string
  35  *
  36  * \param[in] value  User-provided configuration value for node-health-strategy
  37  *
  38  * \return Node health strategy corresponding to \p value
  39  */
  40 enum pcmk__health_strategy
  41 pcmk__parse_health_strategy(const char *value)
     /* [previous][next][first][last][top][bottom][index][help] */
  42 {
  43     if (pcmk__str_eq(value, PCMK__VALUE_NONE,
  44                      pcmk__str_null_matches|pcmk__str_casei)) {
  45         return pcmk__health_strategy_none;
  46 
  47     } else if (pcmk__str_eq(value, PCMK__VALUE_MIGRATE_ON_RED,
  48                             pcmk__str_casei)) {
  49         return pcmk__health_strategy_no_red;
  50 
  51     } else if (pcmk__str_eq(value, PCMK__VALUE_ONLY_GREEN,
  52                             pcmk__str_casei)) {
  53         return pcmk__health_strategy_only_green;
  54 
  55     } else if (pcmk__str_eq(value, PCMK__VALUE_PROGRESSIVE,
  56                             pcmk__str_casei)) {
  57         return pcmk__health_strategy_progressive;
  58 
  59     } else if (pcmk__str_eq(value, PCMK__VALUE_CUSTOM,
  60                             pcmk__str_casei)) {
  61         return pcmk__health_strategy_custom;
  62 
  63     } else {
  64         pcmk__config_err("Using default of \"" PCMK__VALUE_NONE "\" for "
  65                          PCMK__OPT_NODE_HEALTH_STRATEGY
  66                          " because '%s' is not a valid value",
  67                          value);
  68         return pcmk__health_strategy_none;
  69     }
  70 }

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