Commit 1346266d4aa750fefbd1e44d4191a6265ee08c81
1 parent
8b8f98e3
Exists in
master
and in
64 other branches
interin commit
Showing
7 changed files
with
159 additions
and
38 deletions
Show diff stats
src/InputOutput/IHMImpl/Process/IHMInputOutputDeleteProcessClass.php
src/InputOutput/WSImpl/Config/WSConfigClass.php
... | ... | @@ -18,6 +18,13 @@ class WSConfigClass |
18 | 18 | private static $wsResultDir = "WSRESULT"; |
19 | 19 | private static $jobsFile = "WSresults.xml"; |
20 | 20 | |
21 | + private static $WebUrl = "http://apus.irap.omp.eu/NEWAMDA/data/"; | |
22 | + | |
23 | + public static function getUrl() | |
24 | + { | |
25 | + return self::$WebUrl.self::$wsResultDir.'/'; | |
26 | + } | |
27 | + | |
21 | 28 | public static function getWsResultDir() |
22 | 29 | { |
23 | 30 | return IHMConfigClass::getDataDir().self::$wsResultDir.'/'; |
... | ... |
src/InputOutput/WSImpl/Params/DownloadImpl/WSInputOutputParamsDownloadClass.php
... | ... | @@ -66,8 +66,12 @@ class WSInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClass |
66 | 66 | } |
67 | 67 | |
68 | 68 | //add params to output |
69 | + $resultFile = "download"; | |
70 | + | |
69 | 71 | foreach ($input->list as $param) |
70 | 72 | { |
73 | + $resultFile .= "_".$param->paramid; | |
74 | + | |
71 | 75 | $paramInfo = $this->paramManager->addExistingParam($param->paramid, $this->paramsData, $param->template_args); |
72 | 76 | switch ($param->type) { |
73 | 77 | case 0: |
... | ... | @@ -127,29 +131,30 @@ class WSInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClass |
127 | 131 | else { |
128 | 132 | $downloadNode->setStructure(RequestOutputDownloadStructureEnum::ONE_FILE_PER_PARAMETER_PER_INTERVAL); |
129 | 133 | } |
130 | - | |
131 | - $extension = ""; | |
132 | - $resultFilePrefix = "output-"; | |
134 | + | |
133 | 135 | switch ($input->compression) |
134 | 136 | { |
135 | 137 | case "1" : |
136 | 138 | $extension = $formatExtension.".gz"; |
137 | 139 | $downloadNode->addPostProcessing(RequestOutputPostProcessingEnumClass::GZIP); |
140 | + $resultFilePrefix = "download_"; | |
138 | 141 | break; |
139 | 142 | case "0" : |
140 | 143 | default : |
141 | 144 | $extension = $formatExtension; |
145 | + $resultFilePrefix = "output-"; | |
142 | 146 | } |
143 | - | |
144 | - | |
145 | - $resultFile = "result_".$this->requestID; | |
146 | 147 | |
147 | - $this->paramsData->addWaitingResult(WSInputOutputClass::getService(), $resultFile); | |
148 | + $resultFile .= "_".strtotime($input->startDate)."_".strtotime($input->stopDate); | |
149 | + | |
150 | + $this->paramsData->addWaitingResult(WSInputOutputClass::getService(), $resultFile.$extension); | |
148 | 151 | |
152 | + // internal kernel output | |
149 | 153 | $postProcessCmd = "mv ".$resultFilePrefix."*"; |
150 | 154 | |
151 | 155 | $postProcessCmd .= $extension; |
152 | - $postProcessCmd .= " ".$resultFile.$extension; | |
156 | + $postProcessCmd .= " ".WSConfigClass::getWsResultDir().$resultFile.$extension; | |
157 | + | |
153 | 158 | $this->paramsData->setPostCmd($postProcessCmd); |
154 | 159 | |
155 | 160 | |
... | ... | @@ -180,7 +185,7 @@ class WSInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClass |
180 | 185 | protected function addToJobsFile($data,$resultKey) |
181 | 186 | { |
182 | 187 | $waitingResult = $data->getWaitingResult($resultKey); |
183 | - | |
188 | + | |
184 | 189 | return $this->jobsManager->addJob( |
185 | 190 | $this->input, |
186 | 191 | $data->getId(), |
... | ... | @@ -188,7 +193,7 @@ class WSInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClass |
188 | 193 | $data->getStatus() == ProcessStatusEnumClass::RUNNING, |
189 | 194 | $data->getStart(), |
190 | 195 | $waitingResult, |
191 | - $data->getErrorCode()); | |
196 | + $data->getErrorCode()); | |
192 | 197 | } |
193 | 198 | |
194 | 199 | /* |
... | ... | @@ -207,11 +212,6 @@ class WSInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClass |
207 | 212 | case ProcessStatusEnumClass::RUNNING : |
208 | 213 | case ProcessStatusEnumClass::DONE : |
209 | 214 | return $this->addToJobsFile($data, WSInputOutputClass::getService()); |
210 | -// return array( | |
211 | -// 'success' => true, | |
212 | -// 'status' => $data->getStatus(), | |
213 | -// 'result' => 'result_'.$this->requestID, | |
214 | -// 'folder' => $this->getWorkingDirName()); | |
215 | 215 | default : |
216 | 216 | return array( |
217 | 217 | 'success' => false, |
... | ... |
src/InputOutput/WSImpl/Process/WSInputOutputDeleteProcessClass.php
0 โ 100644
... | ... | @@ -0,0 +1,66 @@ |
1 | +<?php | |
2 | + | |
3 | +/** | |
4 | + * @class WSInputOutputDeleteProcessClass | |
5 | + * @brief Class that's implement an InputOutputInterface used to treat a delete process request | |
6 | + * @details | |
7 | + */ | |
8 | +class WSInputOutputDeleteProcessClass extends IHMInputOutputDeleteProcessClass implements InputOutputInterface | |
9 | +{ | |
10 | + protected $jobsManager = null; | |
11 | + // private $paramsData = null; | |
12 | + | |
13 | + /* | |
14 | + * @brief Constructor | |
15 | + */ | |
16 | + function __construct() | |
17 | + { | |
18 | + $this->jobsManager = new WSJobsManagerClass(); | |
19 | + } | |
20 | + | |
21 | + /* | |
22 | + * @brief translate input data from WS client to AMDA_Integration module for a delete process request | |
23 | + */ | |
24 | +// public function getInputData($input,$function,$requestId="") | |
25 | +// { | |
26 | +// if (isset($this->paramsData)) | |
27 | +// unset($this->paramsData); | |
28 | +// | |
29 | +// $this->paramsData = new ProcessRequestDataClass(); | |
30 | +// | |
31 | +// $this->paramsData->setManagerFilePath(IHMConfigClass::getProcessManagerFilePath()); | |
32 | +// $this->paramsData->setType(ProcessTypeEnumClass::DELETE); | |
33 | +// | |
34 | +// $this->paramsData->setId($input->id); | |
35 | +// | |
36 | +// return $this->paramsData; | |
37 | +// } | |
38 | + | |
39 | + /* | |
40 | + * @brief translate output data from AMDA_Integration module to IHM client for a delete process request | |
41 | + */ | |
42 | +// public function getOutput($data) | |
43 | +// { | |
44 | +// if (!$data->getSuccess()) | |
45 | +// { | |
46 | +// return array( | |
47 | +// 'success' => false, | |
48 | +// 'message' => $data->getLastErrorMessage()); | |
49 | +// } | |
50 | +// | |
51 | +// $res = $this->jobsManager->deleteJob($this->paramsData->getId()); | |
52 | +// | |
53 | +// /*if (!$res['success']) | |
54 | +// { | |
55 | +// return array( | |
56 | +// 'success' => false, | |
57 | +// 'message' => $res['message']); | |
58 | +// }*/ | |
59 | +// | |
60 | +// return array( | |
61 | +// 'success' => true, | |
62 | +// 'id' => $this->paramsData->getId()); | |
63 | +// } | |
64 | +} | |
65 | + | |
66 | +?> | |
0 | 67 | \ No newline at end of file |
... | ... |
src/InputOutput/WSImpl/Process/WSInputOutputGetInfoProcessClass.php
... | ... | @@ -63,9 +63,6 @@ class WSInputOutputGetInfoProcessClass extends IHMInputOutputGetInfoProcessClass |
63 | 63 | 'success' => false, |
64 | 64 | 'message' => $data->getLastErrorMessage()); |
65 | 65 | } |
66 | - | |
67 | - $r = print_r($jobInfo,true); | |
68 | - error_log($r,1,email); | |
69 | 66 | return $jobInfo; |
70 | 67 | } |
71 | 68 | } |
... | ... |
src/InputOutput/WSImpl/Tools/WSJobsManagerClass.php
... | ... | @@ -72,12 +72,14 @@ class WSJobsManagerClass extends IHMJobsManagerClass { |
72 | 72 | $request_obj = $this->getRequestObjectFile($id); |
73 | 73 | if (isset($request_obj)) |
74 | 74 | { |
75 | - if (isset($request_obj->format)) | |
75 | + if (isset($request_obj->fileformat)) | |
76 | 76 | { |
77 | 77 | $format = strtolower($request_obj->format); |
78 | 78 | if (($format == "pdf") || ($format == "ps")) |
79 | 79 | //auto compression for plot request |
80 | 80 | $compression = ".tar.gz"; |
81 | + | |
82 | + // if ($format == "ascii") $format = 'txt'; | |
81 | 83 | } |
82 | 84 | if (isset($request_obj->compression)) |
83 | 85 | $compression = strtolower($request_obj->compression); |
... | ... | @@ -106,8 +108,10 @@ class WSJobsManagerClass extends IHMJobsManagerClass { |
106 | 108 | $running, $start, $result, $exitcode) |
107 | 109 | { |
108 | 110 | $res = $this->init(); |
111 | + | |
109 | 112 | if (!$res['success']) |
110 | 113 | return $res; |
114 | + | |
111 | 115 | $key = WSInputOutputClass::getService(); |
112 | 116 | |
113 | 117 | $newJob = $this->jobXml->createElement('job'); |
... | ... | @@ -118,13 +122,13 @@ class WSJobsManagerClass extends IHMJobsManagerClass { |
118 | 122 | switch ($key) |
119 | 123 | { |
120 | 124 | case 'download' : |
121 | - $name = "download_".time(); | |
122 | - $info = ''; | |
123 | - foreach ($obj->list as $param) | |
124 | - { | |
125 | - $info = $info.' '.$param->paramid; //data | |
126 | - } | |
127 | - break; | |
125 | + $name = "download_".time(); | |
126 | + $info = ''; | |
127 | + foreach ($obj->list as $param) | |
128 | + { | |
129 | + $info .= ' '.$param->paramid; //data | |
130 | + } | |
131 | + break; | |
128 | 132 | case 'plot' : |
129 | 133 | $name = "request_".time(); |
130 | 134 | $info = ''; |
... | ... | @@ -140,16 +144,11 @@ class WSJobsManagerClass extends IHMJobsManagerClass { |
140 | 144 | } |
141 | 145 | |
142 | 146 | $newJob->setAttribute('name', $name); |
143 | - $newJob->setAttribute('info', $info); | |
144 | - | |
145 | - $newJob->setAttribute('folder', $folder); | |
146 | - | |
147 | + $newJob->setAttribute('info', $info); | |
147 | 148 | $newJob->setAttribute('result', $result); |
148 | - | |
149 | + $newJob->setAttribute('folder', $folder); | |
149 | 150 | $newJob->setAttribute('start', date('d-m-Y H:i:s', $start)); |
150 | 151 | |
151 | - $newJob->setAttribute('result', $result); | |
152 | - | |
153 | 152 | //to know if know if it's an immediate job or not |
154 | 153 | $newJob->setAttribute('immediate', !$running); |
155 | 154 | |
... | ... | @@ -183,9 +182,7 @@ class WSJobsManagerClass extends IHMJobsManagerClass { |
183 | 182 | |
184 | 183 | $this->saveRequestObjectFile($obj, $id); |
185 | 184 | |
186 | - $this->updateJobStatus($id, $running, $exitcode); | |
187 | - | |
188 | - return $this->getJobInfo($id); | |
185 | + return $this->updateJobStatus($id, $running, $exitcode); | |
189 | 186 | } |
190 | 187 | |
191 | 188 | /* |
... | ... | @@ -222,7 +219,61 @@ class WSJobsManagerClass extends IHMJobsManagerClass { |
222 | 219 | |
223 | 220 | return $this->getJobInfo($id); |
224 | 221 | } |
222 | + | |
223 | + /* | |
224 | + * @brief delete a job | |
225 | + */ | |
226 | + public function deleteJob($id) | |
227 | + { | |
228 | + $res = $this->init(); | |
229 | + if (!$res['success']) | |
230 | + return $res; | |
231 | + | |
232 | + $job = $this->jobXml->getElementById($id); | |
233 | + | |
234 | + //delete job | |
235 | + if (!$job) | |
236 | + return array('success' => false, 'message' => "Job not reachable"); | |
237 | + | |
238 | + $folder = $job->getAttribute('folder'); | |
239 | + | |
240 | + //be sure that it's an AMDA working dir before deletion... | |
241 | + $fullFolderPath = IHMConfigClass::getRequestPath().$folder.'/'; | |
242 | + | |
243 | + if ((isset($folder)) && | |
244 | + ($folder != "") && | |
245 | + is_dir($fullFolderPath) && | |
246 | + (preg_match("/DD[0-9A-Za-z]*_/",$folder) || | |
247 | + preg_match("/Plot[0-9]*_/",$folder))) | |
248 | + { | |
249 | + foreach (glob($fullFolderPath.'*') as $filename) | |
250 | + { | |
251 | + if (is_dir($filename) && (basename($filename) == 'params')) | |
252 | + { | |
253 | + //recursive deletion only for "params" dir (a full recursive deletion is probably too dangerous...) | |
254 | + foreach (glob($filename.'/*') as $paramname) | |
255 | + unlink($paramname); | |
256 | + rmdir($filename); | |
257 | + } | |
258 | + else | |
259 | + unlink($filename); | |
260 | + } | |
261 | + rmdir($fullFolderPath); | |
262 | + } | |
263 | + | |
264 | + $this->deleteRequestObjectFile($id); | |
265 | + | |
266 | +// $job->parentNode->removeChild($job); | |
267 | +// $res = $this->jobXml->save($this->jobXmlName); | |
225 | 268 | |
269 | + if (!$res) | |
270 | + return array( | |
271 | + 'success' => false, | |
272 | + 'message' => "Cannot save jobs file"); | |
273 | + | |
274 | + return array('success' => true, 'id' => $id); | |
275 | + } | |
276 | + | |
226 | 277 | /* |
227 | 278 | * @brief Get all jobs to clean (immediate result jobs) |
228 | 279 | */ |
... | ... |
src/InputOutput/WSImpl/WSInputOutputClass.php
... | ... | @@ -40,7 +40,7 @@ class WSInputOutputClass extends IHMInputOutputClass |
40 | 40 | } |
41 | 41 | break; |
42 | 42 | case FunctionTypeEnumClass::PROCESSDELETE : |
43 | - $this->inputOutput = new IHMInputOutputDeleteProcessClass(); | |
43 | + $this->inputOutput = new WSInputOutputDeleteProcessClass(); | |
44 | 44 | break; |
45 | 45 | case FunctionTypeEnumClass::PROCESSRUNNINGINFO : |
46 | 46 | $this->inputOutput = new IHMInputOutputRunningInfoProcessClass(); |
... | ... |