Commit 3493f1966f2fb0bc0b5038529fab9bb89fd68636
1 parent
286f7924
Exists in
master
and in
66 other branches
Add request to generate compilation of derived parameters
Showing
6 changed files
with
119 additions
and
22 deletions
Show diff stats
src/InputOutput/IHMImpl/IHMInputOutputClass.php
... | ... | @@ -52,6 +52,10 @@ class IHMInputOutputClass implements InputOutputInterface |
52 | 52 | throw new Exception('Params request type '.$input_request->nodeType.' not implemented for this client.'); |
53 | 53 | } |
54 | 54 | break; |
55 | + case FunctionTypeEnumClass::PARAMSGEN : | |
56 | + $this->inputOutput = new IHMInputOutputParamsGeneratorClass(); | |
57 | + $requestId = "ParamGen"; | |
58 | + break; | |
55 | 59 | case FunctionTypeEnumClass::ACTION : |
56 | 60 | $this->inputOutput = new IHMInputOutputParamsPlotClass(); |
57 | 61 | $requestId = str_replace("_","",$input->folderId); |
... | ... | @@ -93,4 +97,4 @@ class IHMInputOutputClass implements InputOutputInterface |
93 | 97 | } |
94 | 98 | } |
95 | 99 | |
96 | -?> | |
97 | 100 | \ No newline at end of file |
101 | +?> | |
... | ... |
src/InputOutput/IHMImpl/Params/GeneratorImpl/IHMInputOutputParamsGeneratorClass.php
0 → 100644
... | ... | @@ -0,0 +1,44 @@ |
1 | +<?php | |
2 | + | |
3 | +/** | |
4 | + * @class IHMInputOutputParamsGeneratorClass | |
5 | + * @brief Implementation of IHMInputOutputParamsAbstractClass to treat params generation request | |
6 | + * @details | |
7 | +*/ | |
8 | +class IHMInputOutputParamsGeneratorClass extends IHMInputOutputParamsAbstractClass | |
9 | +{ | |
10 | + /* | |
11 | + * @brief method to unmarshall a params generation request | |
12 | + */ | |
13 | + protected function unmarshallRequest($input) | |
14 | + { | |
15 | + $this->paramsData->setRequestType(ParamsRequestTypeEnumClass::PARAMGEN); | |
16 | + | |
17 | + $this->paramsData->setParamId($input->paramId); | |
18 | + | |
19 | + $paramInfo = $this->paramManager->addExistingParam($input->paramId,$this->paramsData); | |
20 | + | |
21 | + return $this->paramsData; | |
22 | + } | |
23 | + | |
24 | + /* | |
25 | + * @brief method to marshall the result of a download request | |
26 | + */ | |
27 | + protected function marshallResult($data) | |
28 | + { | |
29 | + if (!$data->getSuccess()) | |
30 | + return array( | |
31 | + 'success' => false, | |
32 | + 'message' => $data->getParamId() . " : " . $data->getLastErrorMessage()); | |
33 | + | |
34 | + if ($data->getErrorCode() != 0) | |
35 | + return array( | |
36 | + 'success' => false, | |
37 | + 'message' => $data->getParamId() . " : " . 'Error detected during parameter compilation'); | |
38 | + | |
39 | + return array( | |
40 | + 'success' => true | |
41 | + ); | |
42 | + } | |
43 | +} | |
44 | +?> | |
0 | 45 | \ No newline at end of file |
... | ... |
src/InputOutput/IHMImpl/Params/IHMInputOutputParamsAbstractClass.php
src/Request/ParamsRequestImpl/ParamsRequestClass.php
... | ... | @@ -15,7 +15,16 @@ class ParamsRequestClass extends ProcessRequestClass |
15 | 15 | return false; |
16 | 16 | |
17 | 17 | $this->requestData->setType(ProcessTypeEnumClass::RUN); |
18 | - $this->requestData->setCmd(KernelConfigClass::getKernelBinPath()."amdaXMLRequestorTool ".$this->getRequestFilePath()); | |
18 | + | |
19 | + switch ($this->requestData->getRequestType()) | |
20 | + { | |
21 | + case ParamsRequestTypeEnumClass::XMLREQUEST : | |
22 | + $this->requestData->setCmd(KernelConfigClass::getKernelBinPath()."amdaXMLRequestorTool ".$this->getRequestFilePath()); | |
23 | + break; | |
24 | + case ParamsRequestTypeEnumClass::PARAMGEN : | |
25 | + $this->requestData->setCmd(KernelConfigClass::getKernelBinPath()."amdaParameterGenerator -p ".$this->requestData->getParamId()); | |
26 | + break; | |
27 | + } | |
19 | 28 | $this->requestData->setEnvVars(KernelConfigClass::getExecEnvVarArray()); |
20 | 29 | |
21 | 30 | if (!parent::init()) |
... | ... | @@ -39,29 +48,32 @@ class ParamsRequestClass extends ProcessRequestClass |
39 | 48 | } |
40 | 49 | } |
41 | 50 | |
42 | - //create request file | |
43 | - $doc = new DOMDocument("1.0", "UTF-8"); | |
44 | - $doc->preserveWhiteSpace = false; | |
45 | - $doc->formatOutput = true; | |
46 | - | |
47 | - if (!$xmlNode = $this->requestData->getRequestNode()->toXMLNode($doc)) | |
51 | + if ($this->requestData->getRequestType() == ParamsRequestTypeEnumClass::XMLREQUEST) | |
48 | 52 | { |
49 | - $this->requestData->setLastErrorMessage('Cannot create params request XML file'); | |
50 | - return false; | |
51 | - } | |
53 | + //create XML request file | |
54 | + $doc = new DOMDocument("1.0", "UTF-8"); | |
55 | + $doc->preserveWhiteSpace = false; | |
56 | + $doc->formatOutput = true; | |
57 | + | |
58 | + if (!$xmlNode = $this->requestData->getRequestNode()->toXMLNode($doc)) | |
59 | + { | |
60 | + $this->requestData->setLastErrorMessage('Cannot create params request XML file'); | |
61 | + return false; | |
62 | + } | |
52 | 63 | |
53 | - $doc->appendChild($xmlNode); | |
64 | + $doc->appendChild($xmlNode); | |
54 | 65 | |
55 | - if (!$doc->schemaValidate(KernelConfigClass::getXSDRequestFilePath())) | |
56 | - { | |
57 | - $this->requestData->setLastErrorMessage('Params request XML file not valid'); | |
58 | - return false; | |
59 | - } | |
66 | + if (!$doc->schemaValidate(KernelConfigClass::getXSDRequestFilePath())) | |
67 | + { | |
68 | + $this->requestData->setLastErrorMessage('Params request XML file not valid'); | |
69 | + return false; | |
70 | + } | |
60 | 71 | |
61 | - if (!$doc->save($this->getRequestFilePath())) | |
62 | - { | |
63 | - $this->requestData->setLastErrorMessage('Cannot save params request XML file'); | |
64 | - return false; | |
72 | + if (!$doc->save($this->getRequestFilePath())) | |
73 | + { | |
74 | + $this->requestData->setLastErrorMessage('Cannot save params request XML file'); | |
75 | + return false; | |
76 | + } | |
65 | 77 | } |
66 | 78 | |
67 | 79 | //create config files |
... | ... |
src/Request/ParamsRequestImpl/ParamsRequestDataClass.php
1 | 1 | <?php |
2 | 2 | |
3 | 3 | /** |
4 | + * @class ParamsRequestTypeEnumClass | |
5 | + * @brief Enumerate for request type | |
6 | + * @details | |
7 | + */ | |
8 | +abstract class ParamsRequestTypeEnumClass | |
9 | +{ | |
10 | + const UNKNOWN = ""; | |
11 | + const XMLREQUEST = "XMLREQUEST"; | |
12 | + const PARAMGEN = "PARAMGEN"; | |
13 | +} | |
14 | + | |
15 | +/** | |
4 | 16 | * @class ParamsRequestDataClass |
5 | 17 | * @brief Data for a params request. Inherits from ProcessRequestDataClass |
6 | 18 | * @details |
7 | 19 | */ |
8 | 20 | class ParamsRequestDataClass extends ProcessRequestDataClass |
9 | 21 | { |
22 | + private $requestType = ParamsRequestTypeEnumClass::XMLREQUEST; | |
10 | 23 | private $requestNode = null; |
11 | 24 | private $compilationPath = ""; |
12 | 25 | private $waitingResults = array(); |
13 | 26 | private $processParamsToCreate = array(); |
14 | 27 | private $paramsToCopy = array(); |
28 | + private $paramId = ""; | |
15 | 29 | |
16 | 30 | function __construct() |
17 | 31 | { |
... | ... | @@ -29,6 +43,16 @@ class ParamsRequestDataClass extends ProcessRequestDataClass |
29 | 43 | $this->compilationPath = $compilationPath; |
30 | 44 | } |
31 | 45 | |
46 | + public function getRequestType() | |
47 | + { | |
48 | + return $this->requestType; | |
49 | + } | |
50 | + | |
51 | + public function setRequestType($requestType) | |
52 | + { | |
53 | + $this->requestType = $requestType; | |
54 | + } | |
55 | + | |
32 | 56 | public function getRequestNode() |
33 | 57 | { |
34 | 58 | return $this->requestNode; |
... | ... | @@ -44,6 +68,16 @@ class ParamsRequestDataClass extends ProcessRequestDataClass |
44 | 68 | $this->waitingResults[$key] = $result; |
45 | 69 | } |
46 | 70 | |
71 | + public function getParamId() | |
72 | + { | |
73 | + return $this->paramId; | |
74 | + } | |
75 | + | |
76 | + public function setParamId($paramId) | |
77 | + { | |
78 | + $this->paramId = $paramId; | |
79 | + } | |
80 | + | |
47 | 81 | public function getParamsToCopy() |
48 | 82 | { |
49 | 83 | return $this->paramsToCopy; |
... | ... |
src/RequestManager.php
... | ... | @@ -11,6 +11,7 @@ function amdaintegration_autoload($class_name) |
11 | 11 | 'InputOutput/IHMImpl/Params/DataMiningImpl', |
12 | 12 | 'InputOutput/IHMImpl/Params/DownloadImpl', |
13 | 13 | 'InputOutput/IHMImpl/Params/PlotImpl', |
14 | + 'InputOutput/IHMImpl/Params/GeneratorImpl', | |
14 | 15 | 'InputOutput/IHMImpl/Process', |
15 | 16 | 'InputOutput/IHMImpl/Tools', |
16 | 17 | 'InputOutput/TestImpl', |
... | ... | @@ -45,6 +46,7 @@ spl_autoload_register('amdaintegration_autoload'); |
45 | 46 | abstract class FunctionTypeEnumClass |
46 | 47 | { |
47 | 48 | const PARAMS = "params"; |
49 | + const PARAMSGEN = "params_gen"; | |
48 | 50 | const ACTION = "action"; |
49 | 51 | const PROCESSDELETE = "process_delete"; |
50 | 52 | const PROCESSRUNNINGINFO = "process_running_info"; |
... | ... | @@ -106,6 +108,7 @@ Class RequestManagerClass |
106 | 108 | switch ($function) |
107 | 109 | { |
108 | 110 | case FunctionTypeEnumClass::PARAMS : |
111 | + case FunctionTypeEnumClass::PARAMSGEN : | |
109 | 112 | case FunctionTypeEnumClass::ACTION : |
110 | 113 | return new ParamsRequestClass($userHost); |
111 | 114 | case FunctionTypeEnumClass::PROCESSDELETE : |
... | ... |