示例#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";
     }
 }
 /**
  * Perform Install operation for module
  * 
  * @throws AlreadyInstalledException
  */
 public function install()
 {
     if (Informations::isModuleInstalled($this->moduleSlug)) {
         $exceptionMessage = _("The given module is already installed");
         throw new AlreadyInstalledException($this->colorizeMessage($exceptionMessage, 'danger'), 1110);
     }
     // Starting Message
     $message = _("Starting installation of %s module");
     $this->displayOperationMessage($this->colorizeMessage(sprintf($message, $this->moduleFullName), 'info'));
     // Performing pre operation check
     $this->checkOperationValidity('install');
     // Performing pre-install operation
     $this->preInstall();
     // Set TemporaryVersion
     $this->versionManager->setTemporaryVersion('install', true);
     // Install DB
     $migrationManager = new Manager($this->moduleSlug, 'production');
     $migrationManager->generateConfiguration();
     $cmd = $this->getPhinxCallLine() . 'migrate ';
     $cmd .= '-c ' . $migrationManager->getPhinxConfigurationFile();
     $cmd .= ' -e ' . $this->moduleSlug;
     shell_exec($cmd);
     // Install menu
     $this->installMenu();
     // Install Hooks
     $this->installHooks();
     // Install Forms
     $this->deployForms();
     // Deploy module Static files
     $this->deployStaticFiles();
     // Set Final Version
     $this->versionManager->setVersion($this->moduleInfo['version']);
     $this->versionManager->updateVersionInDb($this->moduleInfo['version'], true);
     // Performing custom install task
     $this->customInstall();
     // Performing post-install operation
     $this->postInstall();
     // Ending Message
     $message = _("Installation of %s module complete \n");
     $this->displayOperationMessage($this->colorizeMessage(sprintf($message, $this->moduleFullName), 'success'));
 }
 /**
  * 
  * @cmdObject string module the module name
  */
 public function initAction($object)
 {
     $module = $object['module'];
     $migrationManager = new Manager($module, 'development');
     $migrationManager->generateConfiguration();
 }