Forráskód Böngészése

Adaptations to potentially run the setup from the CLI

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@2178 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 12 éve
szülő
commit
c93daf8dff
2 módosított fájl, 35 hozzáadás és 26 törlés
  1. 6 3
      core/config.class.inc.php
  2. 29 23
      core/metamodel.class.php

+ 6 - 3
core/config.class.inc.php

@@ -708,10 +708,12 @@ class Config
 			$this->Verify();
 		}
 
-      // Application root url: set a default value, then normalize it
-      $sAppRootUrl = trim($this->Get('app_root_url'));
+      	// Application root url: set a default value, then normalize it
+/*
+ * Does not work in CLI/unattended mode
+		$sAppRootUrl = trim($this->Get('app_root_url'));
 		if (strlen($sAppRootUrl) == 0)
-      {
+		{
 			$sAppRootUrl = utils::GetDefaultUrlAppRoot();
 		}
 		if (substr($sAppRootUrl, -1, 1) != '/')
@@ -719,6 +721,7 @@ class Config
 			$sAppRootUrl .= '/';
 		}
 		$this->Set('app_root_url', $sAppRootUrl);
+ */
 	}
 
 	protected function CheckFile($sPurpose, $sFileName)

+ 29 - 23
core/metamodel.class.php

@@ -4283,22 +4283,25 @@ abstract class MetaModel
 
 	public static function Startup($config, $bModelOnly = false, $bAllowCache = true, $bTraceSourceFiles = false)
 	{
-		define('MODULESROOT', APPROOT.'env-'.utils::GetCurrentEnvironment().'/');
-
-		self::$m_bTraceSourceFiles = $bTraceSourceFiles;
-
-		// $config can be either a filename, or a Configuration object (volatile!)
-		if ($config instanceof Config)
-		{
-			self::LoadConfig($config, $bAllowCache);
-		}
-		else
+		if (!defined('MODULESROOT'))
 		{
-			self::LoadConfig(new Config($config), $bAllowCache);
+			define('MODULESROOT', APPROOT.'env-'.utils::GetCurrentEnvironment().'/');
+	
+			self::$m_bTraceSourceFiles = $bTraceSourceFiles;
+	
+			// $config can be either a filename, or a Configuration object (volatile!)
+			if ($config instanceof Config)
+			{
+				self::LoadConfig($config, $bAllowCache);
+			}
+			else
+			{
+				self::LoadConfig(new Config($config), $bAllowCache);
+			}
+	
+			if ($bModelOnly) return;
 		}
-
-		if ($bModelOnly) return;
-
+		
 		CMDBSource::SelectDB(self::$m_sDBName);
 
 		foreach(get_declared_classes() as $sPHPClass)
@@ -4949,17 +4952,20 @@ abstract class MetaModel
 		{
 			$sEnvironment = MetaModel::GetEnvironmentId();
 		}
-		$aCacheUserData = apc_cache_info('user');  
-		$sPrefix = 'itop-'.$sEnvironment.'-';
-
 		$aEntries = array();
-		foreach($aCacheUserData['cache_list'] as $i => $aEntry)
-		{
-			$sEntryKey = $aEntry['info'];
-			if (strpos($sEntryKey, $sPrefix) === 0)
+		$aCacheUserData = @apc_cache_info('user');
+		if (is_array($aCacheUserData))
+		{ 
+			$sPrefix = 'itop-'.$sEnvironment.'-';
+	
+			foreach($aCacheUserData['cache_list'] as $i => $aEntry)
 			{
-				$sCleanKey = substr($sEntryKey, strlen($sPrefix));
-				$aEntries[$sCleanKey] = $aEntry;
+				$sEntryKey = $aEntry['info'];
+				if (strpos($sEntryKey, $sPrefix) === 0)
+				{
+					$sCleanKey = substr($sEntryKey, strlen($sPrefix));
+					$aEntries[$sCleanKey] = $aEntry;
+				}
 			}
 		}
 		return $aEntries;