public function renderToggleInstanceFeature(ToggleInstanceFeatureCommand $command) { switch ($command->getFeature()) { case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_HOST_CHECKS: case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_SERVICE_CHECKS: case ToggleInstanceFeatureCommand::FEATURE_HOST_OBSESSING: case ToggleInstanceFeatureCommand::FEATURE_SERVICE_OBSESSING: case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_HOST_CHECKS: case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_SERVICE_CHECKS: if ($command->getEnabled() === true) { $commandPrefix = 'START'; } else { $commandPrefix = 'STOP'; } break; case ToggleInstanceFeatureCommand::FEATURE_EVENT_HANDLERS: case ToggleInstanceFeatureCommand::FEATURE_FLAP_DETECTION: case ToggleInstanceFeatureCommand::FEATURE_NOTIFICATIONS: case ToggleInstanceFeatureCommand::FEATURE_PERFORMANCE_DATA: if ($command->getEnabled() === true) { $commandPrefix = 'ENABLE'; } else { $commandPrefix = 'DISABLE'; } break; default: throw new InvalidArgumentException($command->getFeature()); } switch ($command->getFeature()) { case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_HOST_CHECKS: $commandString = sprintf('%s_%s', $commandPrefix, 'EXECUTING_HOST_CHECKS'); break; case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_SERVICE_CHECKS: $commandString = sprintf('%s_%s', $commandPrefix, 'EXECUTING_SVC_CHECKS'); break; case ToggleInstanceFeatureCommand::FEATURE_EVENT_HANDLERS: $commandString = sprintf('%s_%s', $commandPrefix, 'EVENT_HANDLERS'); break; case ToggleInstanceFeatureCommand::FEATURE_FLAP_DETECTION: $commandString = sprintf('%s_%s', $commandPrefix, 'FLAP_DETECTION'); break; case ToggleInstanceFeatureCommand::FEATURE_NOTIFICATIONS: $commandString = sprintf('%s_%s', $commandPrefix, 'NOTIFICATIONS'); break; case ToggleInstanceFeatureCommand::FEATURE_HOST_OBSESSING: $commandString = sprintf('%s_%s', $commandPrefix, 'OBSESSING_OVER_HOST_CHECKS'); break; case ToggleInstanceFeatureCommand::FEATURE_SERVICE_OBSESSING: $commandString = sprintf('%s_%s', $commandPrefix, 'OBSESSING_OVER_SVC_CHECKS'); break; case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_HOST_CHECKS: $commandString = sprintf('%s_%s', $commandPrefix, 'ACCEPTING_PASSIVE_HOST_CHECKS'); break; case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_SERVICE_CHECKS: $commandString = sprintf('%s_%s', $commandPrefix, 'ACCEPTING_PASSIVE_SVC_CHECKS'); break; case ToggleInstanceFeatureCommand::FEATURE_PERFORMANCE_DATA: $commandString = sprintf('%s_%s', $commandPrefix, 'PERFORMANCE_DATA'); break; default: throw new InvalidArgumentException($command->getFeature()); } return $commandString; }
/** * (non-PHPDoc) * @see \Icinga\Web\Form::onSuccess() For the method documentation. */ public function onSuccess() { $this->assertPermission('monitoring/command/feature/instance'); $notifications = array(ToggleInstanceFeatureCommand::FEATURE_ACTIVE_HOST_CHECKS => array($this->translate('Enabling active host checks..'), $this->translate('Disabling active host checks..')), ToggleInstanceFeatureCommand::FEATURE_ACTIVE_SERVICE_CHECKS => array($this->translate('Enabling active service checks..'), $this->translate('Disabling active service checks..')), ToggleInstanceFeatureCommand::FEATURE_EVENT_HANDLERS => array($this->translate('Enabling event handlers..'), $this->translate('Disabling event handlers..')), ToggleInstanceFeatureCommand::FEATURE_FLAP_DETECTION => array($this->translate('Enabling flap detection..'), $this->translate('Disabling flap detection..')), ToggleInstanceFeatureCommand::FEATURE_NOTIFICATIONS => array($this->translate('Enabling notifications..'), $this->translate('Disabling notifications..')), ToggleInstanceFeatureCommand::FEATURE_HOST_OBSESSING => array($this->translate('Enabling obsessing over hosts..'), $this->translate('Disabling obsessing over hosts..')), ToggleInstanceFeatureCommand::FEATURE_SERVICE_OBSESSING => array($this->translate('Enabling obsessing over services..'), $this->translate('Disabling obsessing over services..')), ToggleInstanceFeatureCommand::FEATURE_PASSIVE_HOST_CHECKS => array($this->translate('Enabling passive host checks..'), $this->translate('Disabling passive host checks..')), ToggleInstanceFeatureCommand::FEATURE_PASSIVE_SERVICE_CHECKS => array($this->translate('Enabling passive service checks..'), $this->translate('Disabling passive service checks..')), ToggleInstanceFeatureCommand::FEATURE_PERFORMANCE_DATA => array($this->translate('Enabling performance data..'), $this->translate('Disabling performance data..'))); foreach ($this->getValues() as $feature => $enabled) { if ((bool) $this->status->{$feature} !== (bool) $enabled) { $toggleFeature = new ToggleInstanceFeatureCommand(); $toggleFeature->setFeature($feature)->setEnabled($enabled); $this->getTransport($this->request)->send($toggleFeature); Notification::success($notifications[$feature][$enabled ? 0 : 1]); } } return true; }
public function renderToggleInstanceFeature(ToggleInstanceFeatureCommand $command) { $endpoint = 'objects/icingaapplications/' . $this->getApp(); if ($command->getEnabled() === true) { $enabled = true; } else { $enabled = false; } switch ($command->getFeature()) { case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_HOST_CHECKS: $attr = 'enable_host_checks'; break; case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_SERVICE_CHECKS: $attr = 'enable_service_checks'; break; case ToggleInstanceFeatureCommand::FEATURE_EVENT_HANDLERS: $attr = 'enable_event_handlers'; break; case ToggleInstanceFeatureCommand::FEATURE_FLAP_DETECTION: $attr = 'enable_flapping'; break; case ToggleInstanceFeatureCommand::FEATURE_NOTIFICATIONS: $attr = 'enable_notifications'; break; case ToggleInstanceFeatureCommand::FEATURE_PERFORMANCE_DATA: $attr = 'enable_perfdata'; break; default: throw new InvalidArgumentException($command->getFeature()); } $data = array('attrs' => array($attr => $enabled)); return IcingaApiCommand::create($endpoint, $data); }