瀏覽代碼

The new 2.0 setup is under way...

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@2182 a333f486-631f-4898-b8df-5754b55c2be0
romainq 12 年之前
父節點
當前提交
d6e17404f9
共有 1 個文件被更改,包括 81 次插入59 次删除
  1. 81 59
      setup/applicationinstaller.class.inc.php

+ 81 - 59
setup/applicationinstaller.class.inc.php

@@ -40,11 +40,11 @@ class ApplicationInstaller
 	const WARNING = 3;
 	const WARNING = 3;
 	const INFO = 4;
 	const INFO = 4;
 	
 	
-	protected $sXMLResponseFile;
+	protected $oParams;
 	
 	
-	public function __construct($sXMLResponseFile)
+	public function __construct($oParams)
 	{
 	{
-		$this->sXMLResponseFile = $sXMLResponseFile;
+		$this->oParams = $oParams;
 	}
 	}
 	
 	
 	/**
 	/**
@@ -131,11 +131,15 @@ class ApplicationInstaller
 				break;
 				break;
 				
 				
 				case 'compile':
 				case 'compile':
-				$oParams = new XMLParameters($this->sXMLResponseFile);
-				$aSelectedModules = $oParams->Get('selected_modules');
-				$sSourceDir = $oParams->Get('source_dir', 'datamodel');
-				$sTargetDir = $oParams->Get('target_dir', 'env-setup-test');
-				$sWorkspaceDir = $oParams->Get('workspace_dir', 'workspace');
+				$aSelectedModules = $this->oParams->Get('selected_modules');
+				$sSourceDir = $this->oParams->Get('source_dir', 'datamodel');
+				$sTargetEnvironment = $this->oParams->Get('target_env', '');
+				if ($sTargetEnvironment == '')
+				{
+					$sTargetEnvironment = 'production';
+				}
+				$sTargetDir = 'env-'.$sTargetEnvironment;
+				$sWorkspaceDir = $this->oParams->Get('workspace_dir', 'workspace');
 						
 						
 				self::DoCompile($aSelectedModules, $sSourceDir, $sTargetDir, $sWorkspaceDir);
 				self::DoCompile($aSelectedModules, $sSourceDir, $sTargetDir, $sWorkspaceDir);
 				
 				
@@ -149,16 +153,20 @@ class ApplicationInstaller
 				break;
 				break;
 				
 				
 				case 'db-schema':
 				case 'db-schema':
-				$oParams = new XMLParameters($this->sXMLResponseFile);
-				$sMode = $oParams->Get('mode');
-				$sTargetDir = $oParams->Get('target_dir', 'env-setup-test');
-				$sDBServer = $oParams->Get('db_server', '');
-				$sDBUser = $oParams->Get('db_user', '');
-				$sDBPwd = $oParams->Get('db_pwd', '');
-				$sDBName = $oParams->Get('db_name', '');
-				$sDBNewName = $oParams->Get('db_new_name', '');
-				$sDBPrefix = $oParams->Get('db_prefix', '');
-				$sTargetEnvironment = $oParams->Get('target_env', '');
+				$sMode = $this->oParams->Get('mode');
+				$sTargetEnvironment = $this->oParams->Get('target_env', '');
+				if ($sTargetEnvironment == '')
+				{
+					$sTargetEnvironment = 'production';
+				}
+				$sTargetDir = 'env-'.$sTargetEnvironment;
+				$aDBParams = $this->oParams->Get('database');
+				$sDBServer = $aDBParams['server'];
+				$sDBUser = $aDBParams['user'];
+				$sDBPwd = $aDBParams['pwd'];
+				$sDBName = $aDBParams['name'];
+				$sDBNewName = $aDBParams['new_name'];
+				$sDBPrefix = $aDBParams['prefix'];
 				
 				
 				self::DoUpdateDBSchema($sMode, $sTargetDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBNewName, $sDBPrefix, $sTargetEnvironment);
 				self::DoUpdateDBSchema($sMode, $sTargetDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBNewName, $sDBPrefix, $sTargetEnvironment);
 				
 				
@@ -172,22 +180,28 @@ class ApplicationInstaller
 				break;
 				break;
 				
 				
 				case 'after-db-create':
 				case 'after-db-create':
-				$oParams = new XMLParameters($this->sXMLResponseFile);
-				$sMode = $oParams->Get('mode');
-				$sTargetDir = $oParams->Get('target_dir', 'env-setup-test');
-				$sDBServer = $oParams->Get('db_server', '');
-				$sDBUser = $oParams->Get('db_user', '');
-				$sDBPwd = $oParams->Get('db_pwd', '');
-				$sDBName = $oParams->Get('db_name', '');
-				$sDBNewName = $oParams->Get('db_new_name', '');
-				$sDBPrefix = $oParams->Get('db_prefix', '');
-				$sAdminUser = $oParams->Get('admin_user', '');
-				$sAdminPwd = $oParams->Get('admin_pwd', '');
-				$sLanguage = $oParams->Get('language', '');
-				$aSelectedModules = $oParams->Get('selected_modules', array());
-				$sTargetEnvironment = $oParams->Get('target_env', '');
+				$sMode = $this->oParams->Get('mode');
+				$sTargetEnvironment = $this->oParams->Get('target_env', '');
+				if ($sTargetEnvironment == '')
+				{
+					$sTargetEnvironment = 'production';
+				}
+				$sTargetDir = 'env-'.$sTargetEnvironment;
+				$aDBParams = $this->oParams->Get('database');
+				$sDBServer = $aDBParams['server'];
+				$sDBUser = $aDBParams['user'];
+				$sDBPwd = $aDBParams['pwd'];
+				$sDBName = $aDBParams['name'];
+				$sDBNewName = $aDBParams['new_name'];
+				$sDBPrefix = $aDBParams['prefix'];
+				$aAdminParams = $this->oParams->Get('admin_account');
+				$sAdminUser = $aAdminParams['user'];
+				$sAdminPwd = $aAdminParams['pwd'];
+				$sAdminLanguage = $aAdminParams['language'];
+				$sLanguage = $this->oParams->Get('language');
+				$aSelectedModules = $this->oParams->Get('selected_modules', array());
 				
 				
-				self::AfterDBCreate($sMode, $sTargetDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBNewName, $sDBPrefix, $sAdminUser, $sAdminPwd, $sLanguage, $aSelectedModules, $sTargetEnvironment);
+				self::AfterDBCreate($sMode, $sTargetDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBNewName, $sDBPrefix, $sAdminUser, $sAdminPwd, $sAdminLanguage, $sLanguage, $aSelectedModules, $sTargetEnvironment);
 				
 				
 				$aResult = array(
 				$aResult = array(
 					'status' => self::OK,
 					'status' => self::OK,
@@ -199,17 +213,21 @@ class ApplicationInstaller
 				break;
 				break;
 				
 				
 				case 'sample-data':
 				case 'sample-data':
-				$oParams = new XMLParameters($this->sXMLResponseFile);
-				$sMode = $oParams->Get('mode');
-				$sTargetDir = $oParams->Get('target_dir', 'env-setup-test');
-				$sDBServer = $oParams->Get('db_server', '');
-				$sDBUser = $oParams->Get('db_user', '');
-				$sDBPwd = $oParams->Get('db_pwd', '');
-				$sDBName = $oParams->Get('db_name', '');
-				$sDBNewName = $oParams->Get('db_new_name', '');
-				$sDBPrefix = $oParams->Get('db_prefix', '');
-				$aFiles = $oParams->Get('files', array());
-				$sTargetEnvironment = $oParams->Get('target_env', '');
+				$sMode = $this->oParams->Get('mode');
+				$sTargetEnvironment = $this->oParams->Get('target_env', '');
+				if ($sTargetEnvironment == '')
+				{
+					$sTargetEnvironment = 'production';
+				}
+				$sTargetDir = 'env-'.$sTargetEnvironment;
+				$aDBParams = $this->oParams->Get('database');
+				$sDBServer = $aDBParams['server'];
+				$sDBUser = $aDBParams['user'];
+				$sDBPwd = $aDBParams['pwd'];
+				$sDBName = $aDBParams['name'];
+				$sDBNewName = $aDBParams['new_name'];
+				$sDBPrefix = $aDBParams['prefix'];
+				$aFiles = $this->oParams->Get('files', array());
 				
 				
 				self::DoLoadFiles($aFiles, $sTargetDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBPrefix, $sTargetEnvironment);
 				self::DoLoadFiles($aFiles, $sTargetDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBPrefix, $sTargetEnvironment);
 				
 				
@@ -223,19 +241,23 @@ class ApplicationInstaller
 				break;
 				break;
 				
 				
 				case 'create-config':
 				case 'create-config':
-				$oParams = new XMLParameters($this->sXMLResponseFile);
-				$sMode = $oParams->Get('mode');
-				$sTargetDir = $oParams->Get('target_dir', 'env-setup-test');
-				$sDBServer = $oParams->Get('db_server', '');
-				$sDBUser = $oParams->Get('db_user', '');
-				$sDBPwd = $oParams->Get('db_pwd', '');
-				$sDBName = $oParams->Get('db_name', '');
-				$sDBNewName = $oParams->Get('db_new_name', '');
-				$sDBPrefix = $oParams->Get('db_prefix', '');
-				$sUrl = $oParams->Get('url', '');
-				$sLanguage = $oParams->Get('language', '');
-				$aSelectedModules = $oParams->Get('selected_modules', array());
-				$sTargetEnvironment = $oParams->Get('target_env', '');
+				$sMode = $this->oParams->Get('mode');
+				$sTargetEnvironment = $this->oParams->Get('target_env', '');
+				if ($sTargetEnvironment == '')
+				{
+					$sTargetEnvironment = 'production';
+				}
+				$sTargetDir = 'env-'.$sTargetEnvironment;
+				$aDBParams = $this->oParams->Get('database');
+				$sDBServer = $aDBParams['server'];
+				$sDBUser = $aDBParams['user'];
+				$sDBPwd = $aDBParams['pwd'];
+				$sDBName = $aDBParams['name'];
+				$sDBNewName = $aDBParams['new_name'];
+				$sDBPrefix = $aDBParams['prefix'];
+				$sUrl = $this->oParams->Get('url', '');
+				$sLanguage = $this->oParams->Get('language', '');
+				$aSelectedModules = $this->oParams->Get('selected_modules', array());
 				
 				
 				self::DoCreateConfig($sMode, $sTargetDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBPrefix, $sUrl, $sLanguage, $aSelectedModules, $sTargetEnvironment);
 				self::DoCreateConfig($sMode, $sTargetDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBPrefix, $sUrl, $sLanguage, $aSelectedModules, $sTargetEnvironment);
 				
 				
@@ -364,7 +386,7 @@ class ApplicationInstaller
 		SetupPage::log_info("Database Schema Successfully Updated for environment '$sTargetEnvironment'.");
 		SetupPage::log_info("Database Schema Successfully Updated for environment '$sTargetEnvironment'.");
 	}
 	}
 	
 	
-	protected static function AfterDBCreate($sMode, $sModulesDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBNewName, $sDBPrefix, $sAdminUser, $sAdminPwd, $sLanguage, $aSelectedModules, $sTargetEnvironment  = '')
+	protected static function AfterDBCreate($sMode, $sModulesDir, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBNewName, $sDBPrefix, $sAdminUser, $sAdminPwd, $sAdminLanguage, $sLanguage, $aSelectedModules, $sTargetEnvironment  = '')
 	{
 	{
 
 
 		SetupPage::log_info('After Database Creation');
 		SetupPage::log_info('After Database Creation');
@@ -459,7 +481,7 @@ class ApplicationInstaller
 		
 		
 		if($sMode == 'install')
 		if($sMode == 'install')
 		{
 		{
-			if (!self::CreateAdminAccount(MetaModel::GetConfig(), $sAdminUser, $sAdminPwd, $sLanguage))
+			if (!self::CreateAdminAccount(MetaModel::GetConfig(), $sAdminUser, $sAdminPwd, $sAdminLanguage))
 			{
 			{
 				throw(new Exception("Failed to create the administrator account '$sAdminUser'"));
 				throw(new Exception("Failed to create the administrator account '$sAdminUser'"));
 			}
 			}