From 9c0d113f9bd397e24ab9e7c0a55684bf71ac6be4 Mon Sep 17 00:00:00 2001
From: Elena.Budnik <ebudnik@irap.omp.eu>
Date: Mon, 22 May 2017 10:07:44 +0200
Subject: [PATCH] IMPEX final

---
 generic_data/RemoteData/Bases.xml       | 16 ++++++++++++++++
 php/RemoteDataCenter/makeArgs.php       | 42 ++++++++++++++++++++++++++++--------------
 php/RemoteDataCenter/makeOrbitsArgs.php |  4 +++-
 php/RemoteDataCenter/makeOrbitsList.php |  5 ++++-
 php/RemoteDataCenter/makeProxy.php      | 38 ++++++++++++++++++++++++++------------
 php/makeRemote                          | 21 +++++++++++++++++++++
 6 files changed, 98 insertions(+), 28 deletions(-)
 create mode 100644 generic_data/RemoteData/Bases.xml
 create mode 100755 php/makeRemote

diff --git a/generic_data/RemoteData/Bases.xml b/generic_data/RemoteData/Bases.xml
new file mode 100644
index 0000000..6921d05
--- /dev/null
+++ b/generic_data/RemoteData/Bases.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<dataRoot xml:id="myRemoteData-treeRootNode">
+	<!--<dataCenter name="CDAWeb@NASA" desc="Coordinated_Data_Analysis" group="" id1="CDAWEB" xml:id="CDAWEB"/>
+	<dataCenter name="MAPSKP@IRAP" desc="Cassini MAPS_Key_Parameters" group="" default="yes" id1="MAPSKP" xml:id="MAPSKP"/>
+	<dataCenter name="THEMIS@IRAP" desc="Mirror_CESR_Data_Base" group="" default="yes" id1="THEMIS" xml:id="THEMIS"/>
+	<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/makeArgs.php b/php/RemoteDataCenter/makeArgs.php
index 8979052..e33c24e 100644
--- a/php/RemoteDataCenter/makeArgs.php
+++ b/php/RemoteDataCenter/makeArgs.php
@@ -3,29 +3,43 @@
 *  Executable to make arguments lists for IMPEX 
 *  Uses target.json
 */
-	require_once "../config.php"; 
-	
-	if (!defined('SimuTargetsXml'))
-		exit('SimuTargetsXml is not defined in config.php'.PHP_EOL);	
-	
 	if (!function_exists('__autoload')) {
 		function __autoload($class_name) {
 					require_once $class_name . '.php';
 		}
 	}	 
 	
-	$simuBases = array("LATMOS", "FMI_HYBRID", "FMI_GUMICS", "LESIA");
+	$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);
+		
+	if (!defined('SimuTargetsXml'))
+		exit('SimuTargetsXml is not defined in config.php'.PHP_EOL);	
+		 	
+	// $simuBases = array("LATMOS", "FMI_HYBRID", "FMI_GUMICS", "LESIA");
 	
-	foreach ($simuBases as $class)
-	{	 		
-		echo PHP_EOL.$class.PHP_EOL;
-		$center = new $class();
+	$basesDom = new DomDocument("1.0");
+	$basesDom->load(DATAPATH."/RemoteData/Bases.xml");
 	
-		$center->makeArgumentsList();
+	$bases = $basesDom->getElementsByTagName("dataCenter");
+	
+	foreach ($bases as $base)
+	{	
+		if ($base->hasAttribute('isSimulation'))
+		{
+			$class = $base->getAttribute('xml:id'); 		
+			echo PHP_EOL.$class.PHP_EOL;
+			$center = new $class();
 		
-		//copy PlotSettings if exists		
-		if (file_exists(DATAPATH."SimuTemplate/".$center->plotSettings))
-			copy(DATAPATH."SimuTemplate/".$center->plotSettings, RemoteData.$center->baseID.'/'.->plotSettings);
+			$center->makeArgumentsList();
+			
+			//copy PlotSettings if exists		
+			if (file_exists(DATAPATH."SimuTemplate/".$center->plotSettings))
+				copy(DATAPATH."SimuTemplate/".$center->plotSettings, RemoteData.$center->baseID.'/'.$center->plotSettings);
+		}
 		
    }
    
diff --git a/php/RemoteDataCenter/makeOrbitsArgs.php b/php/RemoteDataCenter/makeOrbitsArgs.php
index 1374c8d..3175c2b 100644
--- a/php/RemoteDataCenter/makeOrbitsArgs.php
+++ b/php/RemoteDataCenter/makeOrbitsArgs.php
@@ -4,7 +4,9 @@
 *  is launched AFTER makeProxy and makeOrbitsList
 */
 	 
-	require_once "../config.php"; 
+	$AMDA_IHM = getenv('AMDA_IHM');
+     
+	require_once $AMDA_IHM."/php/config.php";
       
 	if (!defined('orbitsXml'))
 		exit("orbitsXml is not defined in config.php".PHP_EOL);
diff --git a/php/RemoteDataCenter/makeOrbitsList.php b/php/RemoteDataCenter/makeOrbitsList.php
index 63bce13..83d0719 100644
--- a/php/RemoteDataCenter/makeOrbitsList.php
+++ b/php/RemoteDataCenter/makeOrbitsList.php
@@ -3,7 +3,10 @@
 *  Executable to make Orbits.xml with the description for all Ephemeris parameters 
 *  Uses LocalParams.xml and AMDA params descriptions
 */
-      require_once "../config.php"; 
+
+      $AMDA_IHM = getenv('AMDA_IHM');
+      
+      require_once $AMDA_IHM."/php/config.php"; 
       
       if (!defined('orbitsXml'))
 			exit("orbitsXml is not defined in config.php".PHP_EOL);
diff --git a/php/RemoteDataCenter/makeProxy.php b/php/RemoteDataCenter/makeProxy.php
index f505cb3..7bb0828 100644
--- a/php/RemoteDataCenter/makeProxy.php
+++ b/php/RemoteDataCenter/makeProxy.php
@@ -9,23 +9,37 @@
 		}
 	}
 	
-	require_once "../config.php"; 
+	$AMDA_IHM = getenv('AMDA_IHM');
+     
+	require_once $AMDA_IHM."/php/config.php"; 
 	
-   if (!defined('SimuTargetsXml')
+	if (! file_exists(DATAPATH."/RemoteData/Bases.xml"))
+		exit('No Bases.xml file'.PHP_EOL);
+		
+   if (!defined('SimuTargetsXml'))
 		exit('SimuTargetsXml is not defined in config.php'.PHP_EOL);
  
 	if (file_exists(SimuTargetsXml)) unlink(SimuTargetsXml);
+	
+	$basesDom = new DomDocument("1.0");
+	$basesDom->load(DATAPATH."/RemoteData/Bases.xml");
+	
+	$bases = $basesDom->getElementsByTagName("dataCenter");
 		
-	$simuBases = array("IPIM", "LATMOS", "FMI_HYBRID", "FMI_GUMICS", "SINP", "LESIA");
-	 
-	foreach ($simuBases as $class)
-	{	 		
-		echo PHP_EOL.$class.PHP_EOL;
-		$center = new $class();
-		
-		$center->initProxy();
-		$center->makeProxy();
-		$center->saveProxy();
+	// $bases = array("IPIM", "LATMOS", "FMI_HYBRID", "FMI_GUMICS", "SINP", "LESIA");
+	 	 
+	foreach ($bases as $base)
+	{	
+		if ($base->hasAttribute('isSimulation'))
+		{
+			$class = $base->getAttribute('xml:id');
+			echo PHP_EOL.$class.PHP_EOL;
+			$center = new $class();
+			
+			$center->initProxy();
+			$center->makeProxy();
+			$center->saveProxy();
+		}
 	}
 	
 ?>
\ No newline at end of file
diff --git a/php/makeRemote b/php/makeRemote
new file mode 100755
index 0000000..efc798a
--- /dev/null
+++ b/php/makeRemote
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+#
+#   
+#
+   export AMDA_IHM=./..
+   
+	# check if Orbites.xml exists; if not create it !
+	if [ ! -e $AMDA_IHM/generic_data/LocalData/Orbites.xml ]; then   
+		php  $AMDA_IHM/php/RemoteDataCenter/makeOrbitsList.php 		 
+	fi
+
+	# make Proxies for 'isSimulation' dataCenters from Bases.xml
+	php  $AMDA_IHM/php/RemoteDataCenter/makeProxy.php
+	
+	# make [TARGET].json
+	php  $AMDA_IHM/php/RemoteDataCenter/makeOrbitsArgs.php
+	
+	# make template args
+	php  $AMDA_IHM/php/RemoteDataCenter/makeArgs.php
+	
\ No newline at end of file
--
libgit2 0.21.2