diff --git a/php/RemoteDataCenter/Bases.xml b/php/RemoteDataCenter/Bases.xml new file mode 100644 index 0000000..5124ec9 --- /dev/null +++ b/php/RemoteDataCenter/Bases.xml @@ -0,0 +1,13 @@ +<?xml version="1.0"?> +<dataRoot xml:id="myRemoteData-treeRootNode"> + <!--<dataCenter name="CLWEB@IRAP" desc="CLWeb_Internal_Data_Base" default="yes" id1="CLWeb" xml:id="CLWeb"/>--> + <dataCenter name="LATMOS" desc="Latmos Hybrid Simulation Database" isSimulation='1' default="yes" id1="LATMOS" xml:id="LATMOS"/> + <dataCenter name="FMI_HYBRID" desc="FMI Hybrid Simulation Database" isSimulation='1' default="yes" id1="FMI_HYBRID" xml:id="FMI_HYBRID"/> + <dataCenter name="FMI_GUMICS" desc="FMI MHD simulation database" isSimulation='1' default="yes" id1="FMI_GUMICS" xml:id="FMI_GUMICS"/> + <!--<dataCenter name="SINP" desc="Paraboloid model calculates the magnetic fields in the Earth's magnetosphere depending on external conditions in solar wind and on geomagnetic activity level" isSimulation='1' default="yes" id1="SINP" xml:id="SINP"/>--> + <dataCenter name="LESIA" desc="LESIA MASER" default="yes" id1="LESIA" isSimulation='1' xml:id="LESIA"/> + <!--<dataCenter name="CDPP" desc="CCMC BATSRUS with RCM v8.01" default="yes" id1="CCMC" isSimulation='1' xml:id="CCMC"/>--> + <dataCenter name="IPIM" desc="IPIM @ IRAP" default="yes" id1="IPIM" isSimulation='1' xml:id="IPIM"/> +</dataRoot> + + diff --git a/php/RemoteDataCenter/RemoteDataCenterClientClass.php b/php/RemoteDataCenter/RemoteDataCenterClientClass.php index 17f48f8..7c9d054 100644 --- a/php/RemoteDataCenter/RemoteDataCenterClientClass.php +++ b/php/RemoteDataCenter/RemoteDataCenterClientClass.php @@ -26,7 +26,8 @@ class RemoteDataCenterClientClass // return -1; // if (!$this->baseDom->load($this->baseDomName)) // return -2; - $this->baseDom->load($this->baseDomName); + if (!@$this->baseDom->load($this->baseDomName)) + echo 'Cannot Load base.xml for '.$this->baseID.PHP_EOL; date_default_timezone_set('UTC'); diff --git a/php/RemoteDataCenter/getRemoteDDBaseProxies.php b/php/RemoteDataCenter/getRemoteDDBaseProxies.php new file mode 100644 index 0000000..b37b79c --- /dev/null +++ b/php/RemoteDataCenter/getRemoteDDBaseProxies.php @@ -0,0 +1,67 @@ +<?php +/* +* Executable to get Remote Bases description from DDBase +* and Merge with AMDA side Bases +*/ + + if (!function_exists('__autoload')) { + function __autoload($class_name) { + require_once $class_name . '.php'; + } + } + + $AMDA_IHM = getenv('AMDA_IHM'); + + require_once $AMDA_IHM."/php/config.php"; + + // only "DDBASE" Bases.xml + if (!file_exists(DATAPATH."/RemoteData/Bases.xml")) { + echo 'No Bases.xml file : Will use Bases.xml from DDBase'.PHP_EOL; + $basesDom = new DomDocument("1.0"); + + if (!@$basesDom->load(INFOSITE."INFO/Bases.xml")) + exit("No Bases.xml file at DDBase/INFO ? no Remote bases at all".PHP_EOL); + + $bases = $basesDom->getElementsByTagName("dataCenter"); + foreach ($bases as $base) { + $baseId = $base->getAttribute("xml:id"); + + $baseDir = DATAPATH."/RemoteData/$baseId"; + $baseDirRemote = INFOSITE."INFO/bases/$baseId"; + + if (!is_dir($baseDir)) mkdir($baseDir); + + if (!copy("$baseDirRemote/base.xml", "$baseDir/base.xml")) + echo "Cannot copy base.xml for $baseId".PHP_EOL; + } + } + // Merge with existing Bases.xml + else { + $basesDom = new DomDocument("1.0"); + $basesDom->load(DATAPATH."/RemoteData/Bases.xml"); + + $basesDomRemote = new DomDocument("1.0"); + if (!@$basesDomRemote->load(INFOSITE."INFO/Bases.xml")) + exit("No Bases.xml file at DDBase/INFO ? IMPEX only".PHP_EOL); + + $basesRemote = $basesDomRemote->getElementsByTagName("dataCenter"); + + foreach ($basesRemote as $baseRemote) { + $baseId = $baseRemote->getAttribute("xml:id"); + // add remote base if it doesn't exist + if (!$basesDom->getElementById($baseId)) { + $baseClone = $basesDom->importNode($baseRemote); + $basesDom->documentElement->appendChild($baseClone); + $baseDir = DATAPATH."/RemoteData/$baseId"; + $baseDirRemote = INFOSITE."INFO/bases/$baseId"; + if (!is_dir($baseDir)) mkdir($baseDir); + + if (!copy("$baseDirRemote/base.xml", "$baseDir/base.xml")) + echo "Cannot copy base.xml for $baseId".PHP_EOL; + } + } + } + + $basesDom->save(DATAPATH."/RemoteData/Bases.xml"); + +?> \ No newline at end of file diff --git a/php/RemoteDataCenter/makeArgs.php b/php/RemoteDataCenter/makeArgs.php index da8881f..3a575f0 100644 --- a/php/RemoteDataCenter/makeArgs.php +++ b/php/RemoteDataCenter/makeArgs.php @@ -13,7 +13,9 @@ require_once $AMDA_IHM."/php/config.php"; - if (! file_exists(DATAPATH."/RemoteData/Bases.xml")) + $BasesXml = $AMDA_IHM."/php/RemoteDataCenter/Bases.xml"; + + if (!file_exists($BasesXml)) exit('No Bases.xml file'.PHP_EOL); if (!defined('SimuTargetsXml')) @@ -22,7 +24,7 @@ // $simuBases = array("LATMOS", "FMI_HYBRID", "FMI_GUMICS", "LESIA"); $basesDom = new DomDocument("1.0"); - $basesDom->load(DATAPATH."/RemoteData/Bases.xml"); + $basesDom->load($BasesXml); $bases = $basesDom->getElementsByTagName("dataCenter"); diff --git a/php/RemoteDataCenter/makeProxy.php b/php/RemoteDataCenter/makeProxy.php index b6cd671..6365d00 100644 --- a/php/RemoteDataCenter/makeProxy.php +++ b/php/RemoteDataCenter/makeProxy.php @@ -13,8 +13,10 @@ require_once $AMDA_IHM."/php/config.php"; - if (! file_exists(DATAPATH."/RemoteData/Bases.xml")) - exit('No Bases.xml file'.PHP_EOL); + $BasesXml = $AMDA_IHM."/php/RemoteDataCenter/Bases.xml"; + + if (!file_exists($BasesXml)) + exit('No Bases.xml file for IMPEX'.PHP_EOL); if (!defined('SimuTargetsXml')) exit('SimuTargetsXml is not defined in config.php'.PHP_EOL); @@ -22,7 +24,7 @@ if (file_exists(SimuTargetsXml)) rename(SimuTargetsXml, SimuTargetsXml.".bak"); $basesDom = new DomDocument("1.0"); - $basesDom->load(DATAPATH."/RemoteData/Bases.xml"); + $basesDom->load($BasesXml); $bases = $basesDom->getElementsByTagName("dataCenter"); @@ -47,5 +49,4 @@ } } } - ?> \ No newline at end of file diff --git a/php/RemoteDataCenter/makeRemoteParamInternal.php b/php/RemoteDataCenter/makeRemoteParamInternal.php index 0e4b9f1..29eab27 100644 --- a/php/RemoteDataCenter/makeRemoteParamInternal.php +++ b/php/RemoteDataCenter/makeRemoteParamInternal.php @@ -12,17 +12,7 @@ $AMDA_IHM = getenv('AMDA_IHM'); require_once $AMDA_IHM."/php/config.php"; - - if (! file_exists(DATAPATH."/RemoteData/Bases.xml")) - exit('No Bases.xml file'.PHP_EOL); - $basesDom = new DomDocument("1.0"); - $basesDom->load(DATAPATH."/RemoteData/Bases.xml"); - - $bases = $basesDom->getElementsByTagName("dataCenter"); - - // $bases = array("IPIM", "LATMOS", "FMI_HYBRID", "FMI_GUMICS", "SINP", "LESIA"); - $center = new THEMIS(); $center->makeAllParams(); -- libgit2 0.21.2