From 13bb8ef5fff8b708b256a35dd1b8e910bc70d5d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Carretero?= <frederic.carretero@veremes.com> Date: Fri, 23 Nov 2018 16:45:53 +0100 Subject: [PATCH] Traitement d'une demande sur FME Server / Cloud --- gtf.engine/gtf.engines/Traitement.class.inc | 15 +++++++++--- gtf.engine/gtf.engines/engine.php | 27 ++++++++++++++------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/gtf.engine/gtf.engines/Traitement.class.inc b/gtf.engine/gtf.engines/Traitement.class.inc index 042bcbbd..d87dfd36 100755 --- a/gtf.engine/gtf.engines/Traitement.class.inc +++ b/gtf.engine/gtf.engines/Traitement.class.inc @@ -136,7 +136,7 @@ class Traitement { // table de correspondance entre GTF et le FMW utiliser dans les fonction d'encodage $this->aReplaceGTF = array("\r\n", " ", "(", ")", "$", "&", "@", "°", "'", ",", "\"", "{", "}", "[", "]", ";", "/", "\\", "é", "à"); $this->aReplaceFME = array("<lf>", "<space>", "<openparen>", "<closeparen>", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", "<comma>", "<quote>", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "<semicolon>", "<solidus>", "<backslash>", "<u00e9>", "<u00e0>"); - writeToLog(str_replace('[this->sFmwFileName]', $this->sFmwFileName, str_replace('[sParams]', $sParams, INFO_RESOURCES)), $this->sRobotLogFile); + //writeToLog(str_replace('[this->sFmwFileName]', $this->sFmwFileName, str_replace('[sParams]', $sParams, INFO_RESOURCES)), $this->sRobotLogFile); } /** @@ -737,9 +737,16 @@ class Traitement { copy($sFmwFilePath, $sRepositoryFmwFilePath); // Supprime le fichier de l'ancienne version du projet (GTF + Fme Server). if ($aWorkspace['version'] > 0) { - $sRepositoryOldFmwFileName = pathinfo($this->sFmwFileName, PATHINFO_FILENAME) . '_v' . --$aWorkspace['version'] . '.' . pathinfo($this->sFmwFileName, PATHINFO_EXTENSION); - unlink($this->aProperties["workspace_dir"] . "/" . pathinfo($this->sFmwFileName, PATHINFO_DIRNAME) . "/" . $sRepositoryOldFmwFileName); - //$oFmeServer->serviceRequest('repositories/' . $sRepository . '/items/' . $sRepositoryOldFmwFileName, 'delete'); + $sOldFmwFileName = pathinfo($this->sFmwFileName, PATHINFO_FILENAME) . '_v' . --$aWorkspace['version'] . '.' . pathinfo($this->sFmwFileName, PATHINFO_EXTENSION); + $sOldFmwFilePath = $this->aProperties["workspace_dir"] . "/" . pathinfo($this->sFmwFileName, PATHINFO_DIRNAME) . "/" . $sOldFmwFileName; + if (file_exists($sOldFmwFilePath)) + unlink($sOldFmwFilePath); + //$oFmeServer->serviceRequest('repositories/' . $sRepository . '/items/' . $sOldFmwFileName, 'delete'); + // S3 -> copie du fichier avec la dernière version et suppression de l'ancien. + if ($this->aProperties['fileS3Uploader'] === true) { + deleteFileFromWsDataDirTree('gtf', 'workspace', $aWorkspace['workspace_id'], 'fme', $sOldFmwFileName); + copyFileInWsDataDir ('gtf', 'workspace', $aWorkspace['workspace_id'], 'fme', pathinfo($this->sFmwFileName, PATHINFO_BASENAME), $sRepositoryFmwFileName); + } } } // Upload du fichier .fmw. diff --git a/gtf.engine/gtf.engines/engine.php b/gtf.engine/gtf.engines/engine.php index de4ebb04..4d7af46b 100755 --- a/gtf.engine/gtf.engines/engine.php +++ b/gtf.engine/gtf.engines/engine.php @@ -268,14 +268,14 @@ if ($ErrorLicense == "0") { $sWorkspaceDir = $properties["workspace_dir"] . '/' . $aDemande['workspace_id']; if (file_exists($sWorkspaceDir)) clearDir($sWorkspaceDir); - mkdir($sWorkspaceDir, 0777, true); - mkdir($sWorkspaceDir . '/fme', 0777, true); - $aTree = getDirectoryInfosFromWsDataDir('gtf', 'workspace', $aDemande['workspace_id'], 'fme'); - if (!empty($aTree)) { - if (!empty($aTree[0]['content'])) { - foreach($aTree[0]['content'] as $aFile) { - $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $aDemande['workspace_id'], 'fme', $aFile['filename']); - file_put_contents($sWorkspaceDir . '/fme/' . $aFile['filename'], $sFmwFileContent); + if (mkdir($sWorkspaceDir . '/fme', 0777, true)) { + $aTree = getDirectoryInfosFromWsDataDir('gtf', 'workspace', $aDemande['workspace_id'], 'fme'); + if (!empty($aTree)) { + if (!empty($aTree[0]['content'])) { + foreach($aTree[0]['content'] as $aFile) { + $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $aDemande['workspace_id'], 'fme', $aFile['filename']); + file_put_contents($sWorkspaceDir . '/fme/' . $aFile['filename'], $sFmwFileContent); + } } } } @@ -842,7 +842,16 @@ function TesteHeureCreuse($sHeureMin, $sHeureMax) { */ function updateOrder($iOrderId, $iStatut, $sExecutionDate, $sLogUrl = null, $iNbSec = null, $sResultUrl = null) { // Variables globales. - global $oBd, $properties, $aSql; + global $oBd, $properties, $aSql, $aDemande; + // Suppression du répertoire temporaire du projet. + if ($properties['fileS3Uploader'] === true) { + $aStatus = array(2, 3, 4, 6, 7); + if (in_array($iStatut, $aStatus)) { + $sWorkspacePath = $properties['workspace_dir'] . '/' . $aDemande['workspace_id']; + if (file_exists($sWorkspacePath)) + clearDir($sWorkspacePath); + } + } // Requete d'update de la demande. if (empty($sLogUrl)) $sLogUrl = null; -- GitLab