assertPermission('director/inspect'); } public function typesAction() { $api = $this->api(); $params = array('name' => $this->view->endpoint); $this->getTabs()->add('modify', array( 'url' => 'director/endpoint', 'urlParams' => $params, 'label' => $this->translate('Endpoint') ))->add('render', array( 'url' => 'director/endpoint/render', 'urlParams' => $params, 'label' => $this->translate('Preview'), ))->add('history', array( 'url' => 'director/endpoint/history', 'urlParams' => $params, 'label' => $this->translate('History') ))->add('inspect', array( 'url' => $this->getRequest()->getUrl(), 'label' => $this->translate('Inspect') ))->activate('inspect'); $this->view->title = sprintf( $this->translate('Icinga2 Objects: %s'), $this->view->endpoint ); $types = $api->getTypes(); $rootNodes = array(); foreach ($types as $name => $type) { if (property_exists($type, 'base')) { $base = $type->base; if (! property_exists($types[$base], 'children')) { $types[$base]->children = array(); } $types[$base]->children[$name] = $type; } else { $rootNodes[$name] = $type; } } $this->view->types = $rootNodes; } public function typeAction() { $typeName = $this->params->get('name'); $this->singleTab($this->translate('Inspect - object list')); $this->view->title = sprintf( $this->translate('Object type "%s"'), $typeName ); $this->view->type = $type = $this->api()->getType($typeName); if ($type->abstract) { return; } if (! empty($type->fields)) { $this->view->objects = $this->api()->listObjects( $typeName, $type->plural_name ); } } public function objectAction() { $this->singleTab($this->translate('Object Inspection')); $this->view->object = $this->api()->getObject( $this->params->get('name'), $this->params->get('plural') ); } public function commandsAction() { $db = $this->db(); echo '
'; foreach ($this->api()->setDb($db)->getCheckCommandObjects() as $object) { if (! $object::exists($object->object_name, $db)) { // var_dump($object->store()); echo $object; } } echo ''; exit; } public function zonesAction() { $db = $this->db(); echo '
'; foreach ($this->api()->setDb($db)->getZoneObjects() as $zone) { if (! $zone::exists($zone->object_name, $db)) { // var_dump($zone->store()); echo $zone; } } echo ''; exit; } public function statusAction() { $this->view->status = $status = $this->api()->getStatus(); print_r($status); exit; } protected function api($endpointName = null) { $this->view->endpoint = $this->params->get('endpoint'); if ($this->view->endpoint === null) { $this->view->endpoint = $this->db()->getDeploymentEndpointName(); } return parent::api($this->view->endpoint); } }