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=?'); }