diff --git a/generic_data/migration/NotReady.xml b/generic_data/migration/NotReady.xml index e42396b..6a54cb7 100644 --- a/generic_data/migration/NotReady.xml +++ b/generic_data/migration/NotReady.xml @@ -27,4 +27,6 @@ <deleted xml:id="ba2000"/> <deleted xml:id="bt96"/> <deleted xml:id="bcain"/> + <deleted xml:id="gtl_edhigh_av"/> + <deleted xml:id="gtl_he_av"/> </root> diff --git a/generic_data/migration/migrationTest.php b/generic_data/migration/migrationTest.php new file mode 100644 index 0000000..be333c2 --- /dev/null +++ b/generic_data/migration/migrationTest.php @@ -0,0 +1,41 @@ +<?php + define("AMDA_IHM", "../../"); + define("DATAPATH", AMDA_IHM."generic_data/"); + define("USERPATH", "/home/budnik/data/"); + + require_once AMDA_IHM."php/classes/UserWsTransfer.php"; + $user = 'budnik'; + + if (!is_dir(USERPATH)) mkdir(USERPATH); + if (!is_dir(USERPATH.$user)) mkdir(USERPATH.$user); + if (!is_dir(USERPATH.$user."/WS")) mkdir(USERPATH.$user."/WS"); + if (!is_dir(USERPATH.$user."/TT")) mkdir(USERPATH.$user."/TT"); + if (!is_dir(USERPATH.$user."/DATA")) mkdir(USERPATH.$user."/DATA"); + if (!is_dir(USERPATH.$user."/REQ")) mkdir(USERPATH.$user."/REQ"); + + $convert = new UserWsTransfer($user); + + $res = $convert->checkWS(); + if (!$res['success']) exit($res['error']); +/* + $res = $convert->transferMyData(); + $msg = $res['msg']; + + $res = $convert->transferDerived(); + $msg .= $res['msg'];*/ + +// $res = $convert->transferTimeTables(); +// $msg .= $res['msg']; +// + $res = $convert->transferConditions(); + $msg .= $res['msg']; + +// $res = $convert->transferRequests(); +// $msg .= $res['msg']; + +// $res = $convert->transferFilters(); +// $msg .= $res['msg']; + + + echo $msg.PHP_EOL; +?> diff --git a/php/classes/UserWsTransfer.php b/php/classes/UserWsTransfer.php index fc5d342..9b35191 100644 --- a/php/classes/UserWsTransfer.php +++ b/php/classes/UserWsTransfer.php @@ -39,9 +39,9 @@ class UserWsTransfer { $deletedNodes = $deletedXML->getElementsByTagName('deleted'); $deleted = array(); - foreach ($deletedNodes as $node) + foreach ($deletedNodes as $node) $deleted[] = $node->getAttribute('xml:id'); - + return $deleted; } @@ -74,13 +74,14 @@ class UserWsTransfer { private function deleteParam($exp, $deleted) { $toDelete = false; - - foreach ($deleted as $item) { - if (strpos($exp, $item) !== false) { - $toDelete = true; - break; + + if (count($deleted) > 0) + foreach ($deleted as $item) { + if (strpos($exp, $item) !== false) { + $toDelete = true; + break; + } } - } return $toDelete; } @@ -125,21 +126,21 @@ class UserWsTransfer { $this->pairs = $pairs; } - - private function getSpectra() + + private function getSpectra() { $convertXML = new DomDocument("1.0"); $modifiedFile = CONVERSIONDIR.'SpectraModifs.xml'; - - if (!$convertXML->load($modifiedFile)) + + if (!$convertXML->load($modifiedFile)) error_log('ERROR loading '.$modifiedFile,1,email); $convertedNodes = $convertXML->getElementsByTagName('deleted'); - foreach ($convertedNodes as $item) { + foreach ($convertedNodes as $item) { $this->specParams[] = $item->getAttribute('xml:id'); - } + } } - + private function updateParams($expression) { $newExp = strtr($expression, $this->pairs); @@ -147,24 +148,6 @@ class UserWsTransfer { return $expression; } - - //duplication of FilesMgr method - public function getSampling($fileName, $format) { - - if ($format === 'cdf') { - copy($fileName, "temp.cdf"); - exec('cdfsamplingfromdata ', $result); - unlink("temp.cdf"); - $minSamp = $result[count($result)-1]; - } - else if ($format === 'cef') { - exec('cefsampling '.$fileName, $result); - $minSamp = $result[count($result)-1]; - } - else $minSamp = null; - //TODO if min & max - return $minSamp; - } protected function createDom() { @@ -181,7 +164,7 @@ class UserWsTransfer { } $this->newWs->appendChild($rootElement); - // $this->newWs->save($this->newWsDir.'WsParams.xml'); + $this->newWs->save($this->newWsDir.'WsParams.xml'); } public function checkWS() @@ -215,6 +198,7 @@ class UserWsTransfer { $this->newWs->load($this->newWsDir.'WsParams.xml'); $deleted = $this->getObsolete(); + $notready = $this->getNotready(); $notreadyFunctions = $this->getNotreadyFunctions(); @@ -241,21 +225,21 @@ class UserWsTransfer { $this->ws_deleted[] = $name; continue; } - + if ($this->deleteParam($expression,$notready)) { $msg .= '<li><i>'.$name.'</i> : uses param not ready yet <br/> '.$expression.'<br/>'; // error_log( 'For INFO : DELETED '.$expression,1,email); $this->ws_deleted[] = $name; continue; } - + if ($this->deleteParam($expression,$notreadyFunctions)) { $msg .= '<li><i>'.$name.'</i> : uses function not ready yet <br/> '.$expression.'<br/>'; // error_log( 'For INFO : DELETED '.$expression,1,email); $this->ws_deleted[] = $name; continue; } - + if (!empty($this->wsd_deleted)) if ($this->deleteParam($expression,$this->wsd_deleted)) { $msg .= '<li><i>'.$name.'</i> : uses obsolete myData param<br/> '.$expression.'<br/>'; @@ -263,26 +247,34 @@ class UserWsTransfer { $this->ws_deleted[] = $name; continue; } - + if ($this->deleteParam($expression,array("CDAWEB","MAPSKP","VEXGRAZ","IMPEX"))) { $msg .= '<li><i>'.$name.'</i> : uses remote params <br/> '.$expression.'<br/>'; $this->ws_deleted[] = $name; continue; } - - if ($this->deleteParam($expression,$this->spectraParams)) { - $msg .= '<li><i>'.$name.'</i> : too much difference <br/> '.$expression.'<br/>'; - $this->ws_deleted[] = $name; - continue; + + if ($this->deleteParam($expression,$this->specParams)) { + $msg .= '<li><i>'.$name.'</i> : too much difference <br/> '.$expression.'<br/>'; + $this->ws_deleted[] = $name; + continue; } - + $expressionUpdated = $this->updateParams($expression); + $wsParamNode->appendChild($this->newWs->importNode($param)); $paramXml->load($this->oldWsDir.$id.'.xml'); $expressionNode = $paramXml->getElementsByTagName('buildchain')->item(0); $expressionNode->nodeValue = $expressionUpdated; $paramXml->save($this->newWsDir.$id.'.xml'); + + $nodeInWS = $this->newWs->getElementById($id); + if ($nodeInWS) { + $buildchain = $nodeInWS->getAttribute('buildchain'); + $buildchainUpdated = $this->updateParams($buildchain); + $nodeInWS->setAttribute('buildchain',$buildchainUpdated); + } } // check of 'ws bricks' were deleted @@ -350,7 +342,7 @@ class UserWsTransfer { $oldRequestXml = new DomDocument("1.0"); $newRequestXml = new DomDocument("1.0"); - if (!$oldRequestXml->load($this->oldWsDir.'Request.xml')){ + if (!@$oldRequestXml->load($this->oldWsDir.'Request.xml')){ $msg .= ' No Requests File<br/>'; return array('success' => true, 'msg' => $msg); } @@ -360,7 +352,25 @@ class UserWsTransfer { $msg .= ' no DataMining requests to copy<br/>'; return array('success' => true, 'msg' => $msg); } - $newRequestXml->load($this->newWsDir.'Request.xml'); + + if (!file_exists($this->newWsDir.'Request.xml')) { + $types = array('request', 'condition'); + + $rootElement = $newRequestXml->createElement('ws'); + foreach ($types as $type) + { + $contentId = $type.'-treeRootNode'; + $contentTag = $type.'List'; + $typeElement = $newRequestXml->createElement($contentTag); + $typeElement->setAttribute('xml:id', $contentId); + $rootElement->appendChild($typeElement); + } + + $newRequestXml->appendChild($rootElement); + } + else + $newRequestXml->load($this->newWsDir.'Request.xml'); + $conditionRoot = $newRequestXml->getElementsByTagName('conditionList')->item(0); $condDir = OLDUSERPATH.TRANSFERUSER."/REQ/"; @@ -410,13 +420,12 @@ class UserWsTransfer { $cond_deleted[] = $name; continue; } - + if ($this->deleteParam($expression,$this->specParams)) { - $msg .= '<li><i>'.$name.'</i> : too much difference <br/> '.$expression.'<br/>'; - $cond_deleted[] = $name; - continue; + $msg .= '<li><i>'.$name.'</i> : too much difference <br/> '.$expression.'<br/>'; + $cond_deleted[] = $name; + continue; } - $expressionUpdated = $this->updateParams($expression); $condObj->expression = $expressionUpdated; file_put_contents(NEWUSERPATH.TRANSFERUSER."/REQ/".$id, json_encode($condObj)); @@ -566,4 +575,4 @@ class UserWsTransfer { return array('success' => true, 'msg' => $msg); } } -?> +?> \ No newline at end of file -- libgit2 0.21.2