Commit 86dadb0d988dcf4905bbbea9ebbc6278b1b486ca

Authored by Benjamin Renard
1 parent 658f0e4c
Exists in SpeasyGet

Add make proxy for Speasy providers

php/RemoteDataCenter/Bases.xml
... ... @@ -7,6 +7,7 @@
7 7 <!--<dataCenter name="LESIA" desc="LESIA MASER" default="yes" id1="LESIA" isSimulation='1' xml:id="LESIA"/>-->
8 8 <!--<dataCenter name="CDPP" desc="CCMC BATSRUS with RCM v8.01" default="yes" id1="CCMC" isSimulation='1' xml:id="CCMC"/>-->
9 9 <dataCenter name="IPIM" desc="IPIM @ IRAP" default="yes" id1="IPIM" isSimulation='1' xml:id="IPIM"/>
  10 + <dataCenter name="CDAWeb access with speasy" desc="ToDo" default="yes" id1="IPIM" isSpeasyProxy='1' xml:id="SPEASY_cda"/>
10 11 </dataRoot>
11 12  
12 13  
... ...
php/RemoteDataCenter/SPEASYClientClass.php 0 → 100644
... ... @@ -0,0 +1,76 @@
  1 +<?php
  2 +/**
  3 + * @class SPEASY_CDAWEB
  4 + * @brief
  5 + */
  6 +
  7 +class SPEASYClientClass
  8 +{
  9 + protected $baseId = "";
  10 +
  11 + function __construct()
  12 + {
  13 + echo '[ERROR] SPEASYClientClass cannot be used directly'.PHP_EOL;
  14 + date_default_timezone_set('UTC');
  15 + }
  16 +
  17 + public function monitor()
  18 + {
  19 + if (!defined('SpeasyProxyData')) {
  20 + echo '[ERROR] Missing SpeasyProxyData in config'.PHP_EOL;
  21 + return FALSE;
  22 + }
  23 + if (!file_exists(SpeasyProxyData.$this->baseID."/base.xml")) {
  24 + echo '[ERROR] Cannot retrieve Speasy base definition for '.$this->baseID.PHP_EOL;
  25 + return FALSE;
  26 + }
  27 + return TRUE;
  28 + }
  29 +
  30 + // make components description from base.xml
  31 + public function makeCenterNode($xmlDom)
  32 + {
  33 + $dom = new DOMDocument('1.0', 'utf-8');
  34 + $dom->formatOutput = TRUE;
  35 + $dom->preserveWhiteSpace = FALSE;
  36 +
  37 + $node = NULL;
  38 + if ($dom->load(SpeasyProxyData.$this->baseID."/base.xml")) {
  39 + $nodeBase = $dom->getElementsByTagName('dataCenter')->item(0);
  40 + $node = $xmlDom->importNode($nodeBase, true);
  41 + }
  42 +
  43 + return $node;
  44 + }
  45 +
  46 + public function makeAllParams()
  47 + {
  48 + $dom = new DOMDocument('1.0', 'utf-8');
  49 + $dom->formatOutput = TRUE;
  50 + $dom->preserveWhiteSpace = FALSE;
  51 +
  52 + $node = NULL;
  53 + if ($dom->load(SpeasyProxyData.$this->baseID."/base.xml")) {
  54 + $xpath = new DOMXPath($dom);
  55 + $params = $xpath->query("//parameter");
  56 +
  57 + foreach ($params as $param)
  58 + {
  59 + $paramId = $param->getAttribute('xml:id');
  60 + if (is_file(SpeasyProxyData.$this->baseID."/PARAMS/".$paramId.".xml")) {
  61 + if (!is_link(PARAMS_LOCALDB_DIR.$paramId.".xml")) {
  62 + if (!symlink(SpeasyProxyData.$this->baseID."/PARAMS/".$paramId.".xml", PARAMS_LOCALDB_DIR.$paramId.".xml")) {
  63 + echo "[ERROR] Cannot create symbolic link for ".$paramId.PHP_EOL;
  64 + }
  65 + }
  66 + }
  67 + else {
  68 + echo "[ERROR] Missing speasy parameter file for ".$paramId.PHP_EOL;
  69 + }
  70 + }
  71 + }
  72 + }
  73 +
  74 +
  75 +}
  76 +?>
... ...
php/RemoteDataCenter/SPEASY_cda.php 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +<?php
  2 +/**
  3 + * @class SPEASY_cda
  4 + * @brief
  5 + */
  6 +
  7 +class SPEASY_cda extends SPEASYClientClass
  8 +{
  9 + function __construct()
  10 + {
  11 + $this->baseID = get_class($this);
  12 + }
  13 +
  14 +
  15 +}
  16 +?>
... ...
php/RemoteDataCenter/makeSpeasyProxy.php 0 → 100644
... ... @@ -0,0 +1,45 @@
  1 +<?php
  2 +/*
  3 +* Executable to make 'base.xml' proxies for IMPEX centers from IMPEX original trees
  4 +*/
  5 +
  6 + if (!function_exists('__autoload')) {
  7 + function __autoload($class_name) {
  8 + require_once $class_name . '.php';
  9 + }
  10 + }
  11 +
  12 + $AMDA_IHM = getenv('AMDA_IHM');
  13 +
  14 + require_once $AMDA_IHM."/php/config.php";
  15 +
  16 + $BasesXml = $AMDA_IHM."/php/RemoteDataCenter/Bases.xml";
  17 +
  18 + if (!file_exists($BasesXml))
  19 + exit('No Bases.xml file'.PHP_EOL);
  20 +
  21 + $basesDom = new DomDocument("1.0");
  22 + $basesDom->load($BasesXml);
  23 +
  24 + $bases = $basesDom->getElementsByTagName("dataCenter");
  25 +
  26 + foreach ($bases as $base)
  27 + {
  28 + echo $base->getAttribute('xml:id').PHP_EOL;
  29 + if ($base->hasAttribute('isSpeasyProxy'))
  30 + {
  31 + $class = $base->getAttribute('xml:id');
  32 + echo PHP_EOL.$class.PHP_EOL;
  33 + $center = new $class();
  34 +
  35 + if ($center->monitor())
  36 + {
  37 + $center->makeAllParams();
  38 + }
  39 + else
  40 + {
  41 + echo "[ERROR] $class service is not available".PHP_EOL;
  42 + }
  43 + }
  44 + }
  45 +?>
0 46 \ No newline at end of file
... ...
php/classes/AmdaAction.php
... ... @@ -522,7 +522,7 @@ class AmdaAction
522 522  
523 523 if ($isParameter)
524 524 {
525   - $disable = $child->parentNode->getAttribute('disabled');
  525 + $disable = $child->parentNode->getAttribute('disabled') || $child->getAttribute('error');
526 526 $objectMgr = new AliasMgr();
527 527 $alias = $objectMgr->getAlias($id);
528 528  
... ... @@ -531,6 +531,11 @@ class AmdaAction
531 531 $needsArgs = true;
532 532 $isSpectra = true;
533 533 }
  534 +
  535 + if ($child->getAttribute('error')) {
  536 + $info .= "<br/><b>".$child->getAttribute('error')."</b>";
  537 + }
  538 +
534 539 if ($globalStart)
535 540 $childrenToReturn[] = array('text' => $name,'alias' => $alias,
536 541 'id' => $id,'nodeType' => $nodeType, 'info' => $info, 'help' => $help, 'globalStart' => $globalStart,
... ... @@ -548,16 +553,21 @@ class AmdaAction
548 553  
549 554 if ($child->tagName == 'dataset')
550 555 {
551   - $nonavailable = ($child->getAttribute('disabled'));
  556 + $nonavailable = ($child->getAttribute('disabled') || $child->getAttribute('error'));
552 557 }
553 558 else
554 559 {
555 560 $nonavailable = false;
556 561 }
557 562  
  563 +
  564 +
558 565 if ($nonavailable)
559 566 $info .= "<br/><b>Not available yet</b>";
560 567  
  568 + if ($child->getAttribute('error'))
  569 + $info .= "<br/><b>".$child->getAttribute('error')."</b>";
  570 +
561 571 if ($child->getAttribute('url'))
562 572 $info .= "<br/>".$child->getAttribute('url');
563 573  
... ...
update_amda/makeRemote
... ... @@ -23,6 +23,9 @@
23 23  
24 24 # make Proxies for 'isSimulation' dataCenters from Bases.xml
25 25 php $AMDA_IHM/php/RemoteDataCenter/makeProxy.php
  26 +
  27 + # make Proxies for 'isSpeasyProxy' dataCenters from Bases.xml
  28 + php $AMDA_IHM/php/RemoteDataCenter/makeSpeasyProxy.php
26 29  
27 30 # make [TARGET].json
28 31 php $AMDA_IHM/php/RemoteDataCenter/makeOrbitsArgs.php
... ... @@ -61,8 +64,10 @@
61 64 xml=`basename $param_def`
62 65 if [ ! -f "$PARAMS_LOCALDB_DIR/$xml" ]; then
63 66 #cp $param_def $PARAMS_LOCALDB_DIR/
64   - ln -s $param_def $PARAMS_LOCALDB_DIR/$xml
  67 + ln -s "$param_def" "$PARAMS_LOCALDB_DIR/$xml"
65 68 fi
66 69 done
67 70 fi
  71 +
  72 +
68 73  
... ...