/** * */ 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(); }