Esempio n. 1
0
 /**
  * 
  */
 public static function installCentreon()
 {
     if (Migrate::checkForMigration()) {
         Migrate::migrateCentreon();
     } else {
         // Initialize configuration
         $di = Di::getDefault();
         $config = $di->get('config');
         $centreonPath = $config->get('global', 'centreon_path');
         $dbName = $config->get('db_centreon', 'dbname');
         // Check Php Dependencies
         $phpDependencies = json_decode(file_get_contents(rtrim($centreonPath, '/') . '/install/dependencies.json'));
         PhpDependencies::checkDependencies($phpDependencies);
         echo Colorize::colorizeMessage("Starting to install Centreon 3.0", "info") . "\n";
         echo "Creating " . Colorize::colorizeText('centreon', 'blue', 'black', true) . " database... ";
         // Install DB
         $migrationManager = new Manager('core', 'production');
         $migrationManager->generateConfiguration();
         $cmd = self::getPhinxCallLine() . 'migrate ';
         $cmd .= '-c ' . $migrationManager->getPhinxConfigurationFile();
         $cmd .= ' -e core';
         shell_exec($cmd);
         //Db::update('core');
         echo Colorize::colorizeText('Done', 'green', 'black', true) . "\n";
         $modulesToInstall = self::getCoreModules();
         $dependencyResolver = new Dependency($modulesToInstall['modules']);
         $installOrder = $dependencyResolver->resolve();
         foreach ($installOrder as $moduleName) {
             $currentModule = $modulesToInstall['modules'][$moduleName];
             $moduleInstaller = new $currentModule['classCall']($currentModule['directory'], $currentModule['infos'], 'console');
             $moduleInstaller->install();
         }
         echo Colorize::colorizeMessage("Centreon 3.0 has been successfully installed", "success") . "\n";
     }
 }
Esempio n. 2
0
 /**
  * 
  */
 public static function migrateCentreon()
 {
     if (!self::checkForMigration()) {
         Install::installCentreon();
     } else {
         $di = Di::getDefault();
         $config = $di->get('config');
         $dbName = $config->get('db_centreon', 'dbname');
         echo Colorize::colorizeMessage("Starting to migrate to Centreon 3.0", "info") . "\n";
         echo "Preparing Migration... ";
         self::prepareDb();
         echo Colorize::colorizeText('Done', 'green', 'black', true) . "\n";
         echo "Migrating " . Colorize::colorizeText('centreon', 'blue', 'black', true) . " database... ";
         Db::update($dbName);
         echo Colorize::colorizeText('Done', 'green', 'black', true) . "\n";
         $modulesToInstall = self::getCoreModules();
         $dependencyResolver = new Dependency($modulesToInstall['modules']);
         $installOrder = $dependencyResolver->resolve();
         foreach ($installOrder as $moduleName) {
             $currentModule = $modulesToInstall['modules'][$moduleName];
             $moduleInstaller = new $currentModule['classCall']($currentModule['directory'], $currentModule['infos'], 'console');
             echo "Installing " . Colorize::colorizeText($moduleName, 'purple', 'black', true) . " module... ";
             $moduleInstaller->install(false);
             echo Colorize::colorizeText('Done', 'green', 'black', true) . "\n";
         }
         echo Colorize::colorizeMessage("Your Centreon has been successfully migrated to Centreon 3.0", "success") . "\n";
     }
 }
Esempio n. 3
0
 /**
  * 
  * @param string $message
  * @param string $status
  * @param string $background
  * @return string
  */
 protected function colorizeMessage($message, $status = 'success', $background = 'black')
 {
     $finalMessage = '';
     if ($this->launcher == 'console') {
         $finalMessage .= Colorize::colorizeMessage($message, $status, $background);
     } elseif ($this->launcher == 'web') {
     }
     return $finalMessage;
 }
Esempio n. 4
0
 /**
  * @cmdObject string poller the poller slug
  */
 public function testAction($object)
 {
     $exit = 1;
     $id = PollerRepository::getIdBySlugName($object['poller']);
     if (!is_null($id)) {
         $obj = new ConfigTestRepository($id);
         $obj->checkConfig();
         // Only CentEngine is tested at the moment
         // We are formatting the output to have a colored, readable ouput on terminal
         $totalWarningsStr = Colorize::colorizeMessage('Total Warnings', 'warning');
         $warningStr = Colorize::colorizeMessage('Warning', 'warning');
         $totalErrorsStr = Colorize::colorizeMessage('Total Errors', 'danger');
         $errorStr = Colorize::colorizeMessage('Error', 'danger');
         $finalStr = $obj->getOutput();
         $finalStr = str_replace("\nTotal Warnings", "\n" . $totalWarningsStr, $finalStr);
         $finalStr = str_replace("\nWarning", "\n" . $warningStr, $finalStr);
         $finalStr = str_replace("\nTotal Errors", "\n" . $totalErrorsStr, $finalStr);
         $finalStr = str_replace("\nError", "\n" . $errorStr, $finalStr);
         if ($obj->getStatus() === 1) {
             $exit = 0;
         } else {
             $exit = 1;
         }
         echo $finalStr;
     } else {
         \Centreon\Internal\Utils\CommandLine\InputOutput::display("Error : Poller not in Database", true, 'red');
         $exit = 1;
     }
     exit($exit);
 }
Esempio n. 5
0
 /**
  * 
  * @param string $object
  * @cmdObject string module the host
  */
 public function deployFormsAction($object)
 {
     echo Colorize::colorizeMessage("Deployment of Forms...", "info");
     try {
         $modulePath = Informations::getModulePath($object['module']);
         $moduleId = Informations::getModuleIdByName($object['module']);
         $formsFiles = $modulePath . '/install/forms/*.xml';
         foreach (glob($formsFiles) as $xmlFile) {
             Form::installFromXml($moduleId, $xmlFile);
         }
         echo Colorize::colorizeMessage("     Done", "success");
     } catch (\Exception $ex) {
         throw new \Exception("     " . $ex->getMessage(), 1);
     }
 }