parent
44be5e85da
commit
c034a5eff8
|
@ -1,129 +0,0 @@
|
|||
<?php
|
||||
// {{{ICINGA_LICENSE_HEADER}}}
|
||||
/**
|
||||
* This file is part of Icinga 2 Web.
|
||||
*
|
||||
* Icinga 2 Web - Head for multiple monitoring backends.
|
||||
* Copyright (C) 2013 Icinga Development Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @copyright 2013 Icinga Development Team <info@icinga.org>
|
||||
* @license http://www.gnu.org/licenses/gpl-2.0.txt GPL, version 2
|
||||
* @author Icinga Development Team <info@icinga.org>
|
||||
*/
|
||||
// {{{ICINGA_LICENSE_HEADER}}}
|
||||
|
||||
namespace Icinga\Protocol;
|
||||
|
||||
/**
|
||||
* Class BaseQuery
|
||||
* @package Icinga\Protocol
|
||||
*/
|
||||
abstract class AbstractQuery
|
||||
{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
const SORT_ASC = 1;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
const SORT_DESC = -1;
|
||||
|
||||
/**
|
||||
* @param $key
|
||||
* @param null $val
|
||||
* @return mixed
|
||||
*/
|
||||
abstract public function where($key, $val = null);
|
||||
|
||||
/**
|
||||
* @param $col
|
||||
* @return mixed
|
||||
*/
|
||||
abstract public function order($col);
|
||||
|
||||
/**
|
||||
* @param null $count
|
||||
* @param null $offset
|
||||
* @return mixed
|
||||
*/
|
||||
abstract public function limit($count = null, $offset = null);
|
||||
|
||||
/**
|
||||
* @param $table
|
||||
* @param null $columns
|
||||
* @return mixed
|
||||
*/
|
||||
abstract public function from($table, $columns = null);
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function hasOrder()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function hasColumns()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getColumns()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function hasLimit()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function hasOffset()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null
|
||||
*/
|
||||
public function getLimit()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null
|
||||
*/
|
||||
public function getOffset()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -28,6 +28,9 @@
|
|||
|
||||
namespace Icinga\Protocol\Statusdat;
|
||||
|
||||
use Icinga\Data\Optional;
|
||||
use Icinga\Data\The;
|
||||
use Icinga\Filter\Query\Node;
|
||||
use Icinga\Protocol;
|
||||
use Icinga\Data\BaseQuery;
|
||||
|
||||
|
@ -116,17 +119,11 @@ class Query extends BaseQuery
|
|||
*/
|
||||
public function hasColumns()
|
||||
{
|
||||
return !empty($this->columns);
|
||||
$columns = $this->getColumns();
|
||||
return !empty($columns);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getColumns()
|
||||
{
|
||||
return $this->columns;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
|
@ -222,13 +219,14 @@ class Query extends BaseQuery
|
|||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $table
|
||||
* @param null $columns
|
||||
* @return $this
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function from($table, $columns = null)
|
||||
public function from($table, array $attributes = null)
|
||||
{
|
||||
if (isset(self::$VALID_TARGETS[$table])) {
|
||||
$this->source = $table;
|
||||
|
@ -396,4 +394,23 @@ class Query extends BaseQuery
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a backend specific filter expression and return a Query\Node object
|
||||
*
|
||||
* @param $expression The expression to parse
|
||||
* @param $parameters Optional parameters for the expression
|
||||
* @return Node A query node or null if it's an invalid expression
|
||||
*/
|
||||
protected function parseFilterExpression($expression, $parameters = null)
|
||||
{
|
||||
// TODO: Implement parseFilterExpression() method.
|
||||
}
|
||||
|
||||
public function applyFilter()
|
||||
{
|
||||
// TODO: Implement applyFilter() method.
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ class AllcontactsQuery extends IdoQuery
|
|||
protected $contactgroups;
|
||||
protected $useSubqueryCount = true;
|
||||
|
||||
protected function requireColumn($alias)
|
||||
public function requireColumn($alias)
|
||||
{
|
||||
$this->contacts->addColumn($alias);
|
||||
$this->contactgroups->addColumn($alias);
|
||||
|
|
|
@ -46,7 +46,7 @@ class ServicestatusQuery extends IdoQuery
|
|||
)
|
||||
);
|
||||
|
||||
protected function getDefaultColumns()
|
||||
public function getDefaultColumns()
|
||||
{
|
||||
return $this->columnMap['services']
|
||||
+ $this->columnMap['servicestatus'];
|
||||
|
|
|
@ -28,6 +28,9 @@
|
|||
|
||||
namespace Icinga\Module\Monitoring\Backend\Statusdat\Query;
|
||||
|
||||
use Icinga\Data\Optional;
|
||||
use Icinga\Data\The;
|
||||
use Icinga\Filter\Query\Node;
|
||||
use Icinga\Filter\Query\Tree;
|
||||
use Icinga\Protocol\Statusdat;
|
||||
use Icinga\Exception;
|
||||
|
@ -299,9 +302,26 @@ abstract class Query extends BaseQuery implements Filterable
|
|||
// TODO: Implement getMappedField() method.
|
||||
}
|
||||
|
||||
public function applyFilter(Tree $filter)
|
||||
public function applyFilter()
|
||||
{
|
||||
// TODO: Implement applyFilter() method.
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a backend specific filter expression and return a Query\Node object
|
||||
*
|
||||
* @param $expression The expression to parse
|
||||
* @param $parameters Optional parameters for the expression
|
||||
* @return Node A query node or null if it's an invalid expression
|
||||
*/
|
||||
protected function parseFilterExpression($expression, $parameters = null)
|
||||
{
|
||||
// TODO: Implement parseFilterExpression() method.
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ require_once realpath(__DIR__ . '/../../../../../../library/Icinga/Test/BaseTest
|
|||
use Icinga\Test\BaseTestCase;
|
||||
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/test/php/testlib/MonitoringControllerTest.php'));
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/Filter/Backend/TreeToSqlParser.php);
|
||||
require_once(realpath(BaseTestCase::$libDir . '/Data/Db/TreeToSqlParser.php'));
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/DataView.php'));
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/HostStatus.php'));
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/Notification.php'));
|
||||
|
|
|
@ -7,7 +7,7 @@ use Icinga\Test\BaseTestCase;
|
|||
require_once realpath(__DIR__ . '/../../../../../../library/Icinga/Test/BaseTestCase.php');
|
||||
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/test/php/testlib/MonitoringControllerTest.php'));
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/Filter/Backend/TreeToSqlParser.php);
|
||||
require_once(realpath(BaseTestCase::$libDir . '/Data/Db/TreeToSqlParser.php'));
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/DataView.php'));
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/ServiceStatus.php'));
|
||||
require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/Notification.php'));
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace Tests\Monitoring\Backend\Statusdat;
|
||||
|
||||
use Icinga\Data\DatasourceInterface;
|
||||
use Zend_Config;
|
||||
use Tests\Icinga\Protocol\Statusdat\ReaderMock as ReaderMock;
|
||||
use \Icinga\Module\Monitoring\Backend\Statusdat\Query\ServicegroupsummaryQuery;
|
||||
|
@ -14,7 +15,7 @@ StatusdatTestLoader::requireLibrary();
|
|||
require_once(realpath($base."/library/Monitoring/Backend/Statusdat/Query/GroupsummaryQuery.php"));
|
||||
require_once(realpath($base."/library/Monitoring/Backend/Statusdat/Query/ServicegroupsummaryQuery.php"));
|
||||
|
||||
class BackendMock extends \Icinga\Module\Monitoring\Backend\AbstractBackend
|
||||
class BackendMock implements DatasourceInterface
|
||||
{
|
||||
public $reader;
|
||||
|
||||
|
@ -37,7 +38,7 @@ class ServicegroupsummaryqueryTest extends \PHPUnit_Framework_TestCase
|
|||
$backendConfig = new Zend_Config(
|
||||
array()
|
||||
);
|
||||
$backend = new BackendMock($backendConfig);
|
||||
$backend = new BackendMock();
|
||||
$backend->setReader($this->getTestDataset());
|
||||
$q = new ServicegroupsummaryQuery($backend);
|
||||
$indices = array(
|
||||
|
|
|
@ -64,11 +64,21 @@ class FilterMock implements Filterable
|
|||
return $field;
|
||||
}
|
||||
|
||||
public function applyFilter(Tree $filter)
|
||||
public function applyFilter()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function clearFilter()
|
||||
{
|
||||
// TODO: Implement clearFilter() method.
|
||||
}
|
||||
|
||||
public function addFilter($filter)
|
||||
{
|
||||
// TODO: Implement addFilter() method.
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -104,7 +114,7 @@ class UrlViewFilterTest extends BaseTestCase
|
|||
$filterFactory = new UrlViewFilter(new FilterMock());
|
||||
$uri = $filterFactory->fromTree($tree);
|
||||
$this->assertEquals(
|
||||
'attr1!=Hans+wurst|attr2=%2Asomething%2A&attr3=%2Abla|attr4=1&host_last_state_change>=yesterday&attr5=0',
|
||||
'attr1!=Hans+wurst|attr2=%2Asomething%2A&attr3=bla%2A|attr4=1&host_last_state_change>=yesterday&attr5=0',
|
||||
$uri,
|
||||
'Assert a correct query to be returned when parsing a more complex query ("'. $query .'")'
|
||||
);
|
||||
|
|
|
@ -164,8 +164,8 @@ abstract class MonitoringControllerTest extends Zend_Test_PHPUnit_ControllerTest
|
|||
require_once('Web/Widget/SortBox.php');
|
||||
require_once('Web/Widget/FilterBox.php');
|
||||
require_once('Web/Widget/FilterBadgeRenderer.php');
|
||||
require_once('library/Monitoring/Backend/AbstractBackend.php');
|
||||
require_once('library/Monitoring/Backend.php');
|
||||
require_once('library/Monitoring/Controller.php');
|
||||
|
||||
}
|
||||
|
||||
|
@ -176,6 +176,7 @@ abstract class MonitoringControllerTest extends Zend_Test_PHPUnit_ControllerTest
|
|||
private function requireIDOQueries()
|
||||
{
|
||||
require_once('Application/DbAdapterFactory.php');
|
||||
require_once('library/Monitoring/Backend/Ido/Query/IdoQuery.php');
|
||||
$this->requireFolder('library/Monitoring/Backend/Ido/Query');
|
||||
}
|
||||
|
||||
|
@ -207,7 +208,6 @@ abstract class MonitoringControllerTest extends Zend_Test_PHPUnit_ControllerTest
|
|||
$this->requireFolder('library/Monitoring/Backend/Statusdat/Criteria');
|
||||
$this->requireFolder('library/Monitoring/Backend/Statusdat/Query');
|
||||
$this->requireFolder('library/Monitoring/Backend/Statusdat/DataView');
|
||||
$this->requireFolder('library/Monitoring/Backend/Statusdat/DataView');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -216,8 +216,7 @@ abstract class MonitoringControllerTest extends Zend_Test_PHPUnit_ControllerTest
|
|||
private function requireViews()
|
||||
{
|
||||
$module = $this->moduleDir;
|
||||
require_once($module.'library/Monitoring/View/AbstractView.php');
|
||||
$this->requireFolder('library/Monitoring/View/');
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Icinga\Protocol\Livestatus;
|
||||
|
||||
use Icinga\Protocol\Livestatus\Connection;
|
||||
use Icinga\Protocol\Livestatus\Query;
|
||||
use PHPUnit_Framework_TestCase as TestCase;
|
||||
|
||||
require_once('../../library/Icinga/Protocol/BaseQuery.php');
|
||||
require_once('../../library/Icinga/Protocol/Livestatus/Connection.php');
|
||||
require_once('../../library/Icinga/Protocol/Livestatus/Query.php');
|
||||
|
||||
/**
|
||||
*
|
||||
* Test class for Connection
|
||||
*
|
||||
**/
|
||||
class ConnectionTest extends TestCase
|
||||
{
|
||||
|
||||
/**
|
||||
* Test for Connection::Select()
|
||||
*
|
||||
**/
|
||||
public function testSelect()
|
||||
{
|
||||
$socket = tempnam(sys_get_temp_dir(), 'IcingaTest');
|
||||
$connection = new Connection($socket);
|
||||
$this->assertTrue($connection->select() instanceof Query);
|
||||
unlink($socket);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Icinga\Protocol\Statusdat;
|
||||
require_once('../../library/Icinga/Data/QueryInterface.php');
|
||||
require_once('../../library/Icinga/Filter/Filterable.php');
|
||||
require_once('../../library/Icinga/Data/BaseQuery.php');
|
||||
require_once('../../library/Icinga/Protocol/Statusdat/Query.php');
|
||||
require_once(dirname(__FILE__)."/ReaderMock.php");
|
||||
|
|
|
@ -12,7 +12,8 @@ class StatusdatTestLoader extends LibraryLoader
|
|||
require_once 'Zend/Config.php';
|
||||
require_once 'Zend/Cache.php';
|
||||
require_once 'Zend/Log.php';
|
||||
require_once($libPath."/Data/BaseQuery.php require_once($libPath."/Application/Logger.php");
|
||||
require_once($libPath."/Data/BaseQuery.php");
|
||||
require_once($libPath."/Application/Logger.php");
|
||||
require_once($libPath."/Filter/Filterable.php");
|
||||
require_once($libPath."/Data/DatasourceInterface.php");
|
||||
$statusdat = realpath($libPath."/Protocol/Statusdat/");
|
||||
|
|
|
@ -17,15 +17,13 @@ require_once 'library/Icinga/Protocol/Statusdat/StatusdatTestLoader.php';
|
|||
StatusdatTestLoader::requireLibrary();
|
||||
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/Statusdat/Criteria/Order.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/AbstractBackend.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/Statusdat/Query/Query.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/Statusdat/Query/StatusQuery.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/Statusdat/DataView/HostStatusView.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/View/AbstractView.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/View/StatusView.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend.php';
|
||||
|
||||
require_once '../../library/Icinga/Protocol/BaseQuery.phpequire_once '../../library/Icinga/Data/ResourceFactory.php';
|
||||
require_once '../../library/Icinga/Data/BaseQuery.php';
|
||||
require_once '../../library/Icinga/Data/ResourceFactory.php';
|
||||
|
||||
class QueryAdapterTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
|
|
|
@ -22,13 +22,10 @@ require_once 'library/Icinga/Protocol/Statusdat/StatusdatTestLoader.php';
|
|||
StatusdatTestLoader::requireLibrary();
|
||||
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/Statusdat/Criteria/Order.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/AbstractBackend.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/Statusdat/Query/Query.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/Statusdat/Query/StatusQuery.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/Backend/Statusdat/DataView/HostStatusView.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/View/AbstractView.php';
|
||||
require_once '../../modules/monitoring/library/Monitoring/View/StatusView.php';
|
||||
require_once '../../library/Icinga/Web/Paginator/ScrollingStyle/SlidingWithBorder.php';
|
||||
|
||||
class TestPaginatorAdapter implements Zend_Paginator_Adapter_Interface
|
||||
|
|
Loading…
Reference in New Issue