Run only a specific set of checks * valid names: config, sync, import, jobs, deployment * --db Use a specific Icinga Web DB resource * --watch Refresh every . For interactive use only */ public function checkAction() { $health = new Health(); if ($name = $this->params->get('db')) { $health->setDbResourceName($name); } if ($name = $this->params->get('check')) { $check = $health->getCheck($name); echo PluginOutputBeautifier::beautify($check->getOutput(), $this->screen); exit($check->getState()->getNumeric()); } else { $state = new PluginState('OK'); $checks = $health->getAllChecks(); $output = []; foreach ($checks as $check) { $state->raise($check->getState()); $output[] = $check->getOutput(); } if ($state->getNumeric() === 0) { echo "Icinga Director: everything is fine\n\n"; } else { echo "Icinga Director: there are problems\n\n"; } $out = PluginOutputBeautifier::beautify(implode("\n", $output), $this->screen); echo $out; if (! $this->isBeingWatched()) { exit($state->getNumeric()); } } } /** * Cli should provide this information, as it shifts the parameter * * @return bool */ protected function isBeingWatched() { global $argv; return in_array('--watch', $argv); } }