예제 #1
0
 /**
  * Validate score
  *
  * @param $key
  * @param $value
  * @return string
  */
 public function validate($key, $value)
 {
     $rule = $this->ruleSet->getRule($key);
     if (!is_array($rule) || !is_numeric($value)) {
         return self::UNKNOWN;
     }
     // according order
     if ($rule[0] < $rule[2]) {
         // critical < warn < good
         switch (true) {
             case $value < $rule[1]:
                 return self::CRITICAL;
             case $value >= $rule[1] && $value < $rule[2]:
                 return self::WARNING;
             default:
                 return self::GOOD;
         }
     }
     // critical > warn > good
     switch (true) {
         case $value > $rule[1]:
             return self::CRITICAL;
         case $value < $rule[2]:
             return self::GOOD;
         default:
             return self::WARNING;
     }
 }