From 1577b1e708e7487ba4ba04077e71badbc025d3a0 Mon Sep 17 00:00:00 2001
From: Benjamin Renard <benjamin.renard@akka.eu>
Date: Thu, 17 Sep 2020 08:30:18 +0200
Subject: [PATCH] Fix for HAPI server (#6318)

---
 .gitignore                       |  1 +
 php/hapi/getData.php             |  2 +-
 scripts/run-hapi-server.sh       |  3 ++-
 update_amda/makeHAPIMetadata.php | 38 ++++++++++++++++++++++++++++++++++----
 update_amda/updateAmda           | 16 ++++++++--------
 5 files changed, 46 insertions(+), 14 deletions(-)

diff --git a/.gitignore b/.gitignore
index 3d336b4..a460998 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,4 @@ php/log
 _test*
 *.idea
 /nbproject/
+nohup.out
diff --git a/php/hapi/getData.php b/php/hapi/getData.php
index fe46fc0..d649cf4 100644
--- a/php/hapi/getData.php
+++ b/php/hapi/getData.php
@@ -102,7 +102,7 @@ while(1)
                 $exploded_data = explode(' ', $data_line);
 		$data = array();
 		foreach ($exploded_data as $d) {
-			if (!empty($d)) {
+			if ($d != "") {
 				$data[] = $d;
 			}
 		}
diff --git a/scripts/run-hapi-server.sh b/scripts/run-hapi-server.sh
index b23dbd4..3b77daf 100755
--- a/scripts/run-hapi-server.sh
+++ b/scripts/run-hapi-server.sh
@@ -6,4 +6,5 @@ export AMDA_IHM="$SCRIPTDIR/.."
 . $SCRIPTDIR/loadEnv.sh
 
 cd $SCRIPTDIR
-node $HAPISERVER_PATH/server.js --conf $HAPIData/conf/server.json --file $HAPIData/metadata/amda.json
+rm -f nohup.out
+nohup node $HAPISERVER_PATH/server.js --conf $HAPIData/conf/server.json --file $HAPIData/metadata/amda.json &
diff --git a/update_amda/makeHAPIMetadata.php b/update_amda/makeHAPIMetadata.php
index 5b5b013..1ea72cf 100644
--- a/update_amda/makeHAPIMetadata.php
+++ b/update_amda/makeHAPIMetadata.php
@@ -12,15 +12,45 @@ $doc = new DOMDocument();
 
 $xpath = new DOMXpath($doc);
 
-$dataset_nodes = $xpath->query("/dataRoot/dataCenter/mission/instrument/dataset");
+$dataset_nodes = $xpath->query("/dataRoot/dataCenter/mission/instrument/dataset | /dataRoot/dataCenter/mission/observatory/instrument/dataset");
 $datasets = array();
 foreach ($dataset_nodes as $dataset_node) {
+	$datasetId = $dataset_node->getAttribute("xml:id");
+	if (empty($datasetId)) {
+		echo "[WARNING] Cannot retrieve dataset id".PHP_EOL;
+		continue;
+	}
+
+	//Dataset start date
+	$startDate = $dataset_node->getAttribute("dataStart");
+	if (empty($startDate)) {
+		echo "[WARNING] Cannot retrieve start date for ".$datasetId.PHP_EOL;
+		continue;
+	}
+	if ($startDate == 'MissionDependent') {
+		echo "[WARNING] Dataset ".$datasetId." is mission dependant => Skip this dataset".PHP_EOL;
+		continue;
+	}
+	if ($startDate[strlen($startDate)-1] != 'Z') {
+		$startDate .= 'Z';
+	}
+
+	//Dataset stop date
+	$stopDate = $dataset_node->getAttribute("dataStop");
+	if (empty($stopDate)) {
+		echo "[WARNING] Cannot retrieve stop date for ".$datasetId.PHP_EOL;
+		continue;
+	}
+	if ($stopDate[strlen($stopDate)-1] != 'Z') {
+		$stopDate .= 'Z';
+	}
+
 	$dataset = array(
-		"id" => $dataset_node->getAttribute("xml:id"),
+		"id" => $datasetId,
 		"title" => $dataset_node->getAttribute("name"),
 		"info" => (Object)array(
-			"startDate" => $dataset_node->getAttribute("dataStart"),
-			"stopDate" => $dataset_node->getAttribute("dataStop"),
+			"startDate" => $startDate,
+			"stopDate" => $stopDate,
 		),
 	);
 
diff --git a/update_amda/updateAmda b/update_amda/updateAmda
index 46bf5db..bea795a 100755
--- a/update_amda/updateAmda
+++ b/update_amda/updateAmda
@@ -92,10 +92,6 @@
 			$UPDATEDIR/cp2amda
 			echo "copy 2 amda : done"	
 
-			echo "making HAPI metadata..."
-			php $UPDATEDIR/makeHAPIMetadata.php
-			echo "make HAPI metadata : done"
-			
 			echo "making Orbits..."
 			$UPDATEDIR/makeOrbits
 			echo "make Orbits : done"
@@ -104,6 +100,10 @@
 			if [ -d $RemoteData/PARAMS ]; then
 				cp $RemoteData/PARAMS/* $PARAMS_LOCALDB_DIR/
 			fi 
+
+			echo "making HAPI metadata..."
+			php $UPDATEDIR/makeHAPIMetadata.php
+			echo "make HAPI metadata : done"
 	fi
 		# Update StartStop & Help only	
 	if [ $UPDATE ]
@@ -134,13 +134,13 @@
 			fi
 			echo 'copy 2 amda : done'
 
-			echo "making HAPI metadata..."
-			php $UPDATEDIR/makeHAPIMetadata.php
-			echo "make HAPI metadata : done"
-			
 			echo "updating OrbitsInfo..."
 			php $AMDA_IHM/php/RemoteDataCenter/makeOrbitsInfo.php
 			echo "update OrbitsInfo : done" 
+
+			echo "making HAPI metadata..."
+			php $UPDATEDIR/makeHAPIMetadata.php
+			echo "make HAPI metadata : done"
 	fi
 	
 	if [ $PARAM_INFO ] 
--
libgit2 0.21.2