public function getSummaryStatusValues($type, $field = 'latency')
 {
     $this->checkObjectType($type);
     $table = null;
     $joinTable = null;
     $prefix = null;
     if ($type === IcingaConstants::TYPE_HOST) {
         $table = 'IcingaHoststatus';
         $joinTable = 'host';
         $prefix = 'host';
     } else {
         $table = 'IcingaServicestatus';
         $joinTable = 'service';
         $prefix = 'service';
     }
     $data = IcingaDoctrine_Query::create()->from($table . ' ' . $prefix)->select(sprintf($prefix . '.active_checks_enabled, COUNT(%1$s) as count, SUM(%1$s) as sum,MAX(%1$s) as max,MIN(%1$s) as min', $field))->having($prefix . '.active_checks_enabled = ?', '1')->innerJoin($prefix . "." . $joinTable)->disableAutoIdentifierFields(true)->execute(array(), Doctrine::HYDRATE_SCALAR);
     if (is_array($data) && count($data) === 1) {
         $data = $data[0];
         $result[$prefix . "_" . $field . "_min"] = sprintf('%.3f', $data[$prefix . "_min"]);
         $result[$prefix . "_" . $field . "_avg"] = sprintf('%.3f', $data[$prefix . "_sum"] / $data[$prefix . "_count"]);
         $result[$prefix . "_" . $field . "_max"] = sprintf('%.3f', $data[$prefix . "_max"]);
         return $result;
     } else {
         if (is_array($data) && count($data) === 0) {
             $result[$prefix . "_" . $field . "_min"] = "--";
             $result[$prefix . "_" . $field . "_avg"] = "--";
             $result[$prefix . "_" . $field . "_max"] = "--";
             return $result;
         }
     }
 }
 public function getAvailabiltyForObjects($objects, Api_SLA_SLAFilterModel $filter = null)
 {
     if (!$filter) {
         $filter = $this->getContext()->getModel("SLA.SLAFilterModel", "SLA");
     }
     $filter->setObjectId($objects);
     $query = IcingaDoctrine_Query::create("icinga")->select("*")->from("IcingaSlahistory sla");
     $filter->apply($query);
 }
 public function createRequestDescriptor($connName = NULL)
 {
     if (!$connName) {
         $connName = $this->database;
     }
     $DBALMetaManager = $this->getContext()->getModel("DBALMetaManager", "Api");
     $DBALMetaManager->switchIcingaDatabase($connName);
     return IcingaDoctrine_Query::create();
 }
 /**
  * Creates an @see IcingaDoctrine_Query object and returns it
  * @return IcingaDoctrineQuery
  *
  * @author Jannis Moßhammer <*****@*****.**>
  **/
 protected function createRequestDescriptor()
 {
     $DBALMetaManager = AgaviContext::getInstance()->getModel("DBALMetaManager", "Api");
     $DBALMetaManager->switchIcingaDatabase($this->connectionName);
     $connection = $this->getContext()->getDatabaseConnection($this->connectionName);
     $query = IcingaDoctrine_Query::create($connection);
     $query->setConnection($connection);
     Doctrine_Manager::getInstance()->setCurrentConnection($this->connectionName);
     return $query;
 }
 private function createDQL($dql)
 {
     $query = IcingaDoctrine_Query::create();
     $query->setConnection($this->connection);
     AppKitLogger::verbose("Parsing DQL Query: %s ", $dql);
     $query->parseDqlQuery($dql);
     $this->applyCredentials($query);
     AppKitLogger::verbose("Query : %s", $query->getSqlQuery());
     $this->currentQuery = $query;
 }
 public function getServicegroups($objectId)
 {
     $records = IcingaDoctrine_Query::create()->select('sg.servicegroup_id, sg.alias as alias, o.name1 as name, o.object_id as servicegroup_object_id')->from('IcingaServicegroups sg')->innerJoin('sg.object o')->innerJoin('sg.members m with m.service_object_id = ?', $objectId);
     return $records->execute(null, Doctrine::HYDRATE_ARRAY);
 }
 protected function getDataForInstance()
 {
     $instances = IcingaDoctrine_Query::create()->select('p.programstatus_id, p.instance_id, p.status_update_time, i.instance_name')->from('IcingaProgramstatus p')->innerJoin('p.instance i')->execute();
     $checkTime = 300;
     $diff = 0;
     $out = array();
     $status = false;
     foreach ($instances as $instance) {
         $date = (int) strtotime($instance->status_update_time);
         $diff = time() - $date;
         if ($diff < $checkTime && $instance->is_currently_running) {
             $status = true;
         } else {
             $status = false;
         }
         $out[] = array('instance' => $instance->instance->instance_name, 'status' => $status, 'last_check' => $instance->status_update_time, 'start' => $instance->program_start_time, 'diff' => $diff, 'check' => $checkTime);
     }
     return $out;
 }
 /**
  * Refresh data in the container
  */
 public function refresh()
 {
     $query = IcingaDoctrine_Query::create()->from('IcingaProgramstatus p')->limit(1);
     if ($this->instance) {
         $query->innerJoin('p.instance i with i.instance_name=?', array($this->instance));
     }
     $row = $query->execute()->getFirst();
     $this->data = array();
     if ($row) {
         $this->applicable = true;
         foreach ($row as $key => $value) {
             $this->data[$key] = $value;
         }
     }
 }
 public function initialize(AgaviContext $context, array $parameters = array())
 {
     parent::initialize($context, $parameters);
     $this->serviceQuery = IcingaDoctrine_Query::create()->select('ss.servicestatus_id, ss.last_state_change')->from('IcingaServicestatus ss')->innerJoin('ss.instance i')->innerJoin('i.programstatus p')->andWhere('ss.service_object_id=?');
     $this->hostQuery = IcingaDoctrine_Query::create()->select()->from('IcingaHoststatus hs')->innerJoin('hs.instance i')->innerJoin('i.programstatus p')->andWhere('hs.host_object_id=?');
 }