Commit 1c3d1a0c43d9fb4ca6ab2de88790cd393c933a02
Exists in
master
and in
64 other branches
Merge branch 'master' of https://gitlab.irap.omp.eu/CDPP/AMDA_Integration
Showing
7 changed files
with
260 additions
and
5 deletions
Show diff stats
@@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
1 | +<?php | ||
2 | +/** | ||
3 | + * @class ClientTypeEnumClass | ||
4 | + * @brief Abstract class used as an enumerate for AMDA_Integration client. | ||
5 | + * @details | ||
6 | + */ | ||
7 | +abstract class ClientTypeEnumClass | ||
8 | +{ | ||
9 | + const IHM = "ihm"; | ||
10 | + const TEST = "test"; | ||
11 | + const WEBSERVICE = "webservice"; | ||
12 | +} | ||
13 | +?> |
@@ -0,0 +1,23 @@ | @@ -0,0 +1,23 @@ | ||
1 | +<?php | ||
2 | +/** | ||
3 | + * @class FunctionTypeEnumClass | ||
4 | + * @brief Abstract class used as an enumerate for function type. | ||
5 | + * @details | ||
6 | +*/ | ||
7 | +abstract class FunctionTypeEnumClass | ||
8 | +{ | ||
9 | + const PARAMS = "params"; | ||
10 | + const PARAMSGEN = "params_gen"; | ||
11 | + const ACTION = "action"; | ||
12 | + const PROCESSDELETE = "process_delete"; | ||
13 | + const PROCESSRUNNINGINFO = "process_running_info"; | ||
14 | + const PROCESSGETINFO = "process_get_info"; | ||
15 | + const PROCESSCLEAN = "process_clean"; | ||
16 | + const PROCESSGETREQUEST = "process_get_request"; | ||
17 | + const TTMERGE = "tt_merge"; | ||
18 | + const TTUNION = "tt_union"; | ||
19 | + const TTCONVERT = "tt_convert"; | ||
20 | + const PARAMINFO = "param_info"; | ||
21 | +} | ||
22 | +?> | ||
23 | + |
src/InputOutput/IHMImpl/Params/DownloadImpl/IHMInputOutputParamsDownloadClass.php
@@ -26,7 +26,7 @@ class IHMInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClas | @@ -26,7 +26,7 @@ class IHMInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClas | ||
26 | //Send to SAMP | 26 | //Send to SAMP |
27 | $this->sendToSamp = isset($input->sendToSamp) ? $input->sendToSamp : FALSE; | 27 | $this->sendToSamp = isset($input->sendToSamp) ? $input->sendToSamp : FALSE; |
28 | if ($this->sendToSamp) { | 28 | if ($this->sendToSamp) { |
29 | - $input->disablebatch = FALSE; | 29 | + $input->disablebatch = TRUE; |
30 | $input->timeformat = 'YYYY-MM-DDThh:mm:ss'; | 30 | $input->timeformat = 'YYYY-MM-DDThh:mm:ss'; |
31 | $input->fileformat = 'vot'; | 31 | $input->fileformat = 'vot'; |
32 | $input->compression = ''; | 32 | $input->compression = ''; |
src/Request/Config/KernelConfigClass.php
@@ -48,6 +48,8 @@ class KernelConfigClass | @@ -48,6 +48,8 @@ class KernelConfigClass | ||
48 | 48 | ||
49 | private static $userHost = ""; | 49 | private static $userHost = ""; |
50 | private static $userName = ""; | 50 | private static $userName = ""; |
51 | + | ||
52 | + private static $timeToBatchMode = 10; // secs : interval after which batch mode is launched | ||
51 | 53 | ||
52 | private static $kernelAbout = "Created by CDPP/AMDA(c)"; | 54 | private static $kernelAbout = "Created by CDPP/AMDA(c)"; |
53 | private static $kernelAcknow = "CDPP/AMDA Team"; | 55 | private static $kernelAcknow = "CDPP/AMDA Team"; |
@@ -156,10 +158,15 @@ class KernelConfigClass | @@ -156,10 +158,15 @@ class KernelConfigClass | ||
156 | "LD_LIBRARY_PATH" => self::$gccDir."lib64:".self::$gccDir."lib:".getenv("LD_LIBRARY_PATH") | 158 | "LD_LIBRARY_PATH" => self::$gccDir."lib64:".self::$gccDir."lib:".getenv("LD_LIBRARY_PATH") |
157 | ); | 159 | ); |
158 | } | 160 | } |
159 | - | 161 | + |
162 | + public static function setTimeToBatchMode($timeToBatchMode) | ||
163 | + { | ||
164 | + self::$timeToBatchMode = $timeToBatchMode; | ||
165 | + } | ||
166 | + | ||
160 | public static function getTimeToBatchMode() | 167 | public static function getTimeToBatchMode() |
161 | { | 168 | { |
162 | - return 10; | 169 | + return self::$timeToBatchMode; |
163 | } | 170 | } |
164 | 171 | ||
165 | public static function write($working_dir, $compilation_path, $localbase_path) | 172 | public static function write($working_dir, $compilation_path, $localbase_path) |
src/Request/ParamInfoRequestClass.php
@@ -50,11 +50,11 @@ class ParamInfoRequestClass extends RequestAbstractClass | @@ -50,11 +50,11 @@ class ParamInfoRequestClass extends RequestAbstractClass | ||
50 | $dom->formatOutput = true; | 50 | $dom->formatOutput = true; |
51 | 51 | ||
52 | $res = $dom->load($this->requestData->getFilePath()); | 52 | $res = $dom->load($this->requestData->getFilePath()); |
53 | - | 53 | + |
54 | $this->requestData->setSuccess(false); | 54 | $this->requestData->setSuccess(false); |
55 | 55 | ||
56 | if (!$res) { | 56 | if (!$res) { |
57 | - $this->requestData->setLastErrorMessage("Cannot load file"); | 57 | + $this->requestData->setLastErrorMessage("Cannot load file".$this->requestData->getFilePath()); |
58 | return false; | 58 | return false; |
59 | } | 59 | } |
60 | 60 |
@@ -0,0 +1,139 @@ | @@ -0,0 +1,139 @@ | ||
1 | +<?php | ||
2 | +/** | ||
3 | + * @class RequestManagerClass | ||
4 | + * @brief Main class to manage a request that's come from an AMDA client | ||
5 | + * @details | ||
6 | + */ | ||
7 | +Class RequestManagerClass | ||
8 | +{ | ||
9 | + public static $version = "1.6.0"; | ||
10 | + | ||
11 | +/* | ||
12 | + * @brief Constructor | ||
13 | +*/ | ||
14 | + function __construct() | ||
15 | + { | ||
16 | + | ||
17 | + } | ||
18 | + | ||
19 | +/* | ||
20 | + * @brief Treat a request that's come from the IHM | ||
21 | +*/ | ||
22 | + public function runIHMRequest($user, $userHost, $function, $input) | ||
23 | + { | ||
24 | + return $this->runGenericRequest(ClientTypeEnumClass::IHM,$user,$userHost,$function,$input); | ||
25 | + } | ||
26 | + | ||
27 | +/* | ||
28 | + * @brief Treat a request that's come from a test script | ||
29 | +*/ | ||
30 | + public function runTestRequest($user, $function, $input) | ||
31 | + { | ||
32 | + $userHost = ""; | ||
33 | + return $this->runGenericRequest(ClientTypeEnumClass::TEST,$user,$userHost,$function,$input); | ||
34 | + } | ||
35 | + | ||
36 | +/* | ||
37 | + * @brief Create the request instance in relation with the function type | ||
38 | +*/ | ||
39 | + private function createRequest($user, $userHost, $function) | ||
40 | + { | ||
41 | + switch ($function) | ||
42 | + { | ||
43 | + case FunctionTypeEnumClass::PARAMS : | ||
44 | + case FunctionTypeEnumClass::PARAMSGEN : | ||
45 | + case FunctionTypeEnumClass::ACTION : | ||
46 | + return new ParamsRequestClass($user, $userHost); | ||
47 | + case FunctionTypeEnumClass::PROCESSDELETE : | ||
48 | + case FunctionTypeEnumClass::PROCESSRUNNINGINFO : | ||
49 | + case FunctionTypeEnumClass::PROCESSGETINFO : | ||
50 | + case FunctionTypeEnumClass::PROCESSCLEAN : | ||
51 | + case FunctionTypeEnumClass::PROCESSGETREQUEST : | ||
52 | + return new ProcessRequestClass($user, $userHost); | ||
53 | + case FunctionTypeEnumClass::TTMERGE : | ||
54 | + case FunctionTypeEnumClass::TTUNION : | ||
55 | + case FunctionTypeEnumClass::TTCONVERT : | ||
56 | + return new TTRequestClass($user, $userHost); | ||
57 | + case FunctionTypeEnumClass::PARAMINFO : | ||
58 | + return new ParamInfoRequestClass($user, $userHost); | ||
59 | + default : | ||
60 | + throw new Exception('Request '.$function.' not implemented.'); | ||
61 | + } | ||
62 | + } | ||
63 | + | ||
64 | +/* | ||
65 | + * @brief Create an instance of the InputOutput interface in relation with the client | ||
66 | +*/ | ||
67 | + private function createInputOutput($user,$userHost = null,$client) | ||
68 | + { | ||
69 | + switch ($client) | ||
70 | + { | ||
71 | + case ClientTypeEnumClass::IHM : | ||
72 | + return new IHMInputOutputClass($user, $userHost); | ||
73 | + case ClientTypeEnumClass::TEST : | ||
74 | + return new TestInputOutputClass($user); | ||
75 | + default : | ||
76 | + throw new Exception('Client '.$client.' not implemented.'); | ||
77 | + } | ||
78 | + } | ||
79 | + | ||
80 | +/* | ||
81 | + * @brief Sequence used to run a request | ||
82 | +*/ | ||
83 | + private function runGenericRequest($client,$user,$userHost,$function,$input) | ||
84 | + { | ||
85 | + //create an instance of the InputOutput interface | ||
86 | + $inputOutput = $this->createInputOutput($user, $userHost, $client); | ||
87 | + | ||
88 | + //get the input data from the request input data by using the InputOutput interface | ||
89 | + $inputdata = $inputOutput->getInputData($input,$function); | ||
90 | + | ||
91 | + //create an instance of the RequestClass to run the request | ||
92 | + $request = $this->createRequest($user, $userHost, $function); | ||
93 | + | ||
94 | + if (is_array($inputdata)) | ||
95 | + { | ||
96 | + $outputdata = array(); | ||
97 | + foreach ($inputdata as $data) | ||
98 | + //execute the request | ||
99 | + $outputdata[] = $this->runSingleRequest($request,$data); | ||
100 | + } | ||
101 | + else | ||
102 | + $outputdata = $this->runSingleRequest($request,$inputdata); | ||
103 | + | ||
104 | + //get the request output data from the output data by using the InputOutput interface | ||
105 | + return $inputOutput->getOutput($outputdata); | ||
106 | + } | ||
107 | + | ||
108 | +/* | ||
109 | + * @brief Run a single request | ||
110 | +*/ | ||
111 | + private function runSingleRequest($request,$data) | ||
112 | + { | ||
113 | + //link the request to the input data | ||
114 | + $request->setData($data); | ||
115 | + | ||
116 | + //init the request | ||
117 | + if (!$request->init()) | ||
118 | + { | ||
119 | + $crtData = $request->getData(); | ||
120 | + if (isset($crtData)) | ||
121 | + throw new Exception('Request initialization error : '.$crtData->getLastErrorMessage()); | ||
122 | + else | ||
123 | + throw new Exception('Cannot init request. Unknown error.'); | ||
124 | + } | ||
125 | + | ||
126 | + //run the request | ||
127 | + if (!$request->run()) | ||
128 | + { | ||
129 | + $crtData = $request->getData(); | ||
130 | + if ($crtData) | ||
131 | + throw new Exception('Request execution error : '.$crtData->getLastErrorMessage()); | ||
132 | + else | ||
133 | + throw new Exception('Cannot run request. Unknown error.'); | ||
134 | + } | ||
135 | + | ||
136 | + return $request->getData(); | ||
137 | + } | ||
138 | +} | ||
139 | +?> | ||
0 | \ No newline at end of file | 140 | \ No newline at end of file |
@@ -0,0 +1,73 @@ | @@ -0,0 +1,73 @@ | ||
1 | +<?php | ||
2 | +//autoload configuration | ||
3 | +function amdaintegration_autoload($class_name) | ||
4 | +{ | ||
5 | + $dirs = array( | ||
6 | + 'InputOutput', | ||
7 | + 'InputOutput/IHMImpl', | ||
8 | + 'InputOutput/IHMImpl/Config', | ||
9 | + 'InputOutput/IHMImpl/Params', | ||
10 | + 'InputOutput/IHMImpl/Params/DataMiningImpl', | ||
11 | + 'InputOutput/IHMImpl/Params/StatisticsImpl', | ||
12 | + 'InputOutput/IHMImpl/Params/DownloadImpl', | ||
13 | + 'InputOutput/IHMImpl/Params/PlotImpl', | ||
14 | + 'InputOutput/IHMImpl/Params/GeneratorImpl', | ||
15 | + 'InputOutput/IHMImpl/Process', | ||
16 | + 'InputOutput/IHMImpl/ParamInfo', | ||
17 | + 'InputOutput/IHMImpl/Tools', | ||
18 | + 'InputOutput/IHMImpl/TimeTables', | ||
19 | + 'InputOutput/TestImpl', | ||
20 | + 'Request', | ||
21 | + 'Request/Config', | ||
22 | + 'Request/ParamsRequestImpl', | ||
23 | + 'Request/ParamsRequestImpl/Nodes', | ||
24 | + 'Request/ParamsRequestImpl/Nodes/Infos', | ||
25 | + 'Request/ParamsRequestImpl/Nodes/Params', | ||
26 | + 'Request/ParamsRequestImpl/Nodes/Requests', | ||
27 | + 'Request/ProcessRequestImpl', | ||
28 | + 'Request/ProcessRequestImpl/Process', | ||
29 | + 'Request/TTRequestImpl' | ||
30 | + ); | ||
31 | + | ||
32 | + $ihm_dirs = array( | ||
33 | + IHM_SRC_DIR.'php/classes', | ||
34 | + IHM_SRC_DIR.'php/RemoteDataCenter' | ||
35 | + ); | ||
36 | + | ||
37 | + $find = false; | ||
38 | + | ||
39 | + $file = __DIR__.'/'.$class_name.'.php'; | ||
40 | + | ||
41 | + if (file_exists($file)) | ||
42 | + { | ||
43 | + require $file; | ||
44 | + return; | ||
45 | + } | ||
46 | + | ||
47 | + if (!$find) | ||
48 | + foreach($dirs as $dir) | ||
49 | + { | ||
50 | + $file = __DIR__.'/'.$dir.'/'.$class_name.'.php'; | ||
51 | + if (file_exists($file)) | ||
52 | + { | ||
53 | + require $file; | ||
54 | + $find = true; | ||
55 | + break; | ||
56 | + } | ||
57 | + } | ||
58 | + | ||
59 | + if (!$find) | ||
60 | + foreach($ihm_dirs as $dir) | ||
61 | + { | ||
62 | + $file = $dir.'/'.$class_name.'.php'; | ||
63 | + if (file_exists($file)) | ||
64 | + { | ||
65 | + require $file; | ||
66 | + break; | ||
67 | + } | ||
68 | + } | ||
69 | +} | ||
70 | + | ||
71 | +spl_autoload_register('amdaintegration_autoload'); | ||
72 | + | ||
73 | +?> |