mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 15:34:12 +01:00
91 lines
2.2 KiB
PHP
91 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace Combodo\iTop\Application\Status;
|
|
|
|
use Config;
|
|
use Exception;
|
|
use MetaModel;
|
|
|
|
define('STATUS_ERROR', 'ERROR');
|
|
define('STATUS_RUNNING', 'RUNNING');
|
|
|
|
class Status
|
|
{
|
|
/**
|
|
* @throws \CoreException
|
|
* @throws \DictExceptionUnknownLanguage
|
|
* @throws \MySQLException
|
|
*/
|
|
public function __construct(Config $oConfig = null)
|
|
{
|
|
$this->StatusStartup($oConfig);
|
|
}
|
|
|
|
/**
|
|
* Get approot.inc.php
|
|
* Move to a function for allowing a better testing
|
|
*
|
|
* @param string $sAppRootFilename
|
|
*
|
|
* @throws \Exception
|
|
*/
|
|
private function StatusGetAppRoot($sAppRootFilename = 'approot.inc.php')
|
|
{
|
|
$sAppRootFile = __DIR__.'/../../../'.$sAppRootFilename;
|
|
|
|
/*
|
|
* Check that the approot file exists and has the appropriate access rights
|
|
*/
|
|
if (!file_exists($sAppRootFile) || !is_readable($sAppRootFile)) {
|
|
throw new Exception($sAppRootFilename.' is not readable');
|
|
}
|
|
@require_once($sAppRootFile);
|
|
}
|
|
|
|
/**
|
|
* Check iTop's config File existence and readability
|
|
* Move to a function for allowing a better testing
|
|
*
|
|
* @param string $sConfigFilename
|
|
*
|
|
* @throws \Exception
|
|
*/
|
|
private function StatusCheckConfigFile($sConfigFilename = 'config-itop.php')
|
|
{
|
|
$this->StatusGetAppRoot();
|
|
|
|
$sConfigFile = APPCONF.ITOP_DEFAULT_ENV.'/'.$sConfigFilename;
|
|
|
|
/**
|
|
* Check that the configuration file exists and has the appropriate access rights
|
|
*/
|
|
if (!file_exists($sConfigFile) || !is_readable($sConfigFile)) {
|
|
throw new Exception($sConfigFilename.' is not readable');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Start iTop's application for checking with its internal basic test every it's alright (DB connection, ...)
|
|
* Move to a function for allowing a better testing
|
|
*
|
|
* @param \Config|null $oConfig
|
|
*
|
|
* @throws \CoreException
|
|
* @throws \DictExceptionUnknownLanguage
|
|
* @throws \MySQLException
|
|
*/
|
|
private function StatusStartup(Config $oConfig = null)
|
|
{
|
|
$this->StatusCheckConfigFile();
|
|
|
|
require_once(APPROOT.'/core/cmdbobject.class.inc.php');
|
|
require_once(APPROOT.'/application/utils.inc.php');
|
|
require_once(APPROOT.'/core/contexttag.class.inc.php');
|
|
|
|
$soConfigFile = (null === $oConfig) ? ITOP_DEFAULT_CONFIG_FILE : $oConfig;
|
|
|
|
//Check if application could be started
|
|
MetaModel::Startup($soConfigFile, true);
|
|
}
|
|
}
|