Commit 22baa1be13d85dab5326861d9e2820ee0f9ffa6b
1 parent
e5e0bb74
Exists in
mlplasmas
and in
1 other branch
COnfig for orchestra
Showing
7 changed files
with
100 additions
and
51 deletions
Show diff stats
config/AMDAIntegrationConfig.php
... | ... | @@ -40,6 +40,10 @@ define('TOOLS_BASE_DIR', $config['TOOLS_BASE_DIR']); |
40 | 40 | define('KERNEL_BUILD_TYPE', $config['KERNEL_BUILD_TYPE']); |
41 | 41 | define('AMDA_KERNEL_DIR', $config['AMDA_KERNEL_DIR']); |
42 | 42 | define('IHM_SRC_DIR', $config['IHM_SRC_DIR']); |
43 | +define('ORCHESTRA_HOST', $config['ORCHESTRA_HOST']); | |
44 | +define('ORCHESTRA_PORT', $config['ORCHESTRA_PORT']); | |
45 | +define('ORCHESTRA_ADMIN_IPS', $config['ORCHESTRA_ADMIN_IPS']); | |
46 | + | |
43 | 47 | |
44 | 48 | define('GCC_BASE_DIR', TOOLS_BASE_DIR.'/gcc/4.7.2/rtf'); |
45 | 49 | define('BOOST_BASE_DIR', TOOLS_BASE_DIR.'/gcc/4.7.2/boost'); | ... | ... |
config/current.env.template
... | ... | @@ -16,3 +16,7 @@ AMDA_KERNEL_DIR='{:AMDA_KERNEL_DIR:}' |
16 | 16 | ;Path to AMDA_IHM base dir |
17 | 17 | IHM_SRC_DIR='{:IHM_SRC_DIR:}' |
18 | 18 | |
19 | +;Config for ORCHESTRA | |
20 | +ORCHESTRA_HOST='{:ORCHESTRA_HOST:}' | |
21 | +ORCHESTRA_PORT='{:ORCHESTRA_PORT:}' | |
22 | +ORCHESTRA_ADMIN_IPS='{:ORCHESTRA_ADMIN_IPS:}' | |
19 | 23 | \ No newline at end of file | ... | ... |
src/InputOutput/IHMImpl/MachineLearning/IHMMachineLearningClass.php
... | ... | @@ -31,11 +31,12 @@ class IHMMachineLearningClass implements InputOutputInterface |
31 | 31 | |
32 | 32 | |
33 | 33 | $processData = new OrchestraRequestDataClass(); |
34 | - $processData->setHost('http://172.17.0.1'); | |
35 | - $processData->setPort('5000'); | |
36 | 34 | $processData->setBatchEnable(FALSE); |
37 | 35 | |
38 | 36 | switch ($input->mode) { |
37 | + case 'configinfo': | |
38 | + $processData->setRequestType(OrchestraRequestTypeEnum::CONFIGINFO); | |
39 | + break; | |
39 | 40 | case 'moduleslist': |
40 | 41 | $processData->setRequestType(OrchestraRequestTypeEnum::MODULESLIST); |
41 | 42 | break; |
... | ... | @@ -144,7 +145,7 @@ class IHMMachineLearningClass implements InputOutputInterface |
144 | 145 | case ProcessStatusEnumClass::ERROR : |
145 | 146 | case ProcessStatusEnumClass::RUNNING : |
146 | 147 | case ProcessStatusEnumClass::DONE : |
147 | - return $this->jobsManager->addJob( | |
148 | + return $this->jobsManager->addJob( | |
148 | 149 | $this->input, |
149 | 150 | $data->getId(), |
150 | 151 | $this->workingDirName, |
... | ... | @@ -153,11 +154,11 @@ class IHMMachineLearningClass implements InputOutputInterface |
153 | 154 | $data->getOrchestraResult(), |
154 | 155 | $data->getErrorCode(), |
155 | 156 | $data->getExecTime()); |
156 | - default : | |
157 | - return array( | |
158 | - 'success' => false, | |
159 | - 'message' => 'Unknown Process Status'); | |
160 | - } | |
157 | + default : | |
158 | + return array( | |
159 | + 'success' => false, | |
160 | + 'message' => 'Unknown Process Status'); | |
161 | + } | |
161 | 162 | } |
162 | 163 | } |
163 | 164 | ... | ... |
src/InputOutput/IHMImpl/Process/IHMInputOutputGetInfoProcessClass.php
1 | -<?php | |
2 | - | |
3 | -/** | |
4 | - * @class IHMInputOutputGetInfoProcessClass | |
5 | - * @brief Class that's implement an InputOutputInterface used to treat a get info process request | |
6 | - * @details | |
7 | - */ | |
1 | +<?php | |
2 | + | |
3 | +/** | |
4 | + * @class IHMInputOutputGetInfoProcessClass | |
5 | + * @brief Class that's implement an InputOutputInterface used to treat a get info process request | |
6 | + * @details | |
7 | + */ | |
8 | 8 | class IHMInputOutputGetInfoProcessClass implements InputOutputInterface |
9 | 9 | { |
10 | 10 | protected $jobsManager = null; |
11 | 11 | protected $paramsData = null; |
12 | - | |
13 | - /* | |
14 | - * @brief Constructor | |
12 | + | |
13 | + /* | |
14 | + * @brief Constructor | |
15 | 15 | */ |
16 | 16 | function __construct() |
17 | 17 | { |
18 | 18 | $this->jobsManager = new IHMJobsManagerClass(); |
19 | 19 | } |
20 | - | |
21 | - /* | |
22 | - * @brief translate input data from IHM client to AMDA_Integration module for a get info process request | |
20 | + | |
21 | + /* | |
22 | + * @brief translate input data from IHM client to AMDA_Integration module for a get info process request | |
23 | 23 | */ |
24 | 24 | public function getInputData($input,$function,$requestId="") |
25 | 25 | { |
... | ... | @@ -36,9 +36,9 @@ class IHMInputOutputGetInfoProcessClass implements InputOutputInterface |
36 | 36 | |
37 | 37 | return $this->paramsData; |
38 | 38 | } |
39 | - | |
40 | - /* | |
41 | - * @brief translate output data from AMDA_Integration module to IHM client for a get info process request | |
39 | + | |
40 | + /* | |
41 | + * @brief translate output data from AMDA_Integration module to IHM client for a get info process request | |
42 | 42 | */ |
43 | 43 | public function getOutput($data) |
44 | 44 | { | ... | ... |
... | ... | @@ -0,0 +1,32 @@ |
1 | +<?php | |
2 | + | |
3 | +/** | |
4 | + * @class OrchestraConfigClass | |
5 | + * @brief Class that's contain all specific configuration of the orchestra module | |
6 | + * @details | |
7 | + */ | |
8 | +class OrchestraConfigClass | |
9 | +{ | |
10 | + public static function getHost() | |
11 | + { | |
12 | + if (defined('ORCHESTRA_HOST')) | |
13 | + return ORCHESTRA_HOST; | |
14 | + return ""; | |
15 | + } | |
16 | + | |
17 | + public static function getPort() | |
18 | + { | |
19 | + if (defined('ORCHESTRA_PORT')) | |
20 | + return ORCHESTRA_PORT; | |
21 | + return ""; | |
22 | + } | |
23 | + | |
24 | + public static function getAdminIps() | |
25 | + { | |
26 | + if (defined('ORCHESTRA_ADMIN_IPS')) | |
27 | + return explode(',', ORCHESTRA_ADMIN_IPS); | |
28 | + return array(); | |
29 | + } | |
30 | +} | |
31 | + | |
32 | +?> | ... | ... |
src/Request/OrchestraRequestImpl/OrchestraRequestClass.php
... | ... | @@ -6,6 +6,9 @@ |
6 | 6 | */ |
7 | 7 | class OrchestraRequestClass extends ProcessRequestClass |
8 | 8 | { |
9 | + private $host = ""; | |
10 | + private $port = ""; | |
11 | + | |
9 | 12 | /* |
10 | 13 | * @brief Init a process request of type "run" |
11 | 14 | */ |
... | ... | @@ -14,10 +17,36 @@ class OrchestraRequestClass extends ProcessRequestClass |
14 | 17 | if (!isset($this->requestData)) |
15 | 18 | return false; |
16 | 19 | |
17 | - $orchestraClient = new OrchestraClient($this->requestData->getHost().":".$this->requestData->getPort()); | |
20 | + $this->host = OrchestraConfigClass::getHost(); | |
21 | + $this->port = OrchestraConfigClass::getPort(); | |
22 | + if (empty($this->host)) { | |
23 | + $this->requestData->setLastErrorMessage('Missing orchestra host definition'); | |
24 | + return false; | |
25 | + } | |
26 | + $orchestraEntryPoint = $this->host; | |
27 | + if (!empty($this->port)) { | |
28 | + $orchestraEntryPoint .= ":".$this->port; | |
29 | + } | |
30 | + | |
31 | + $orchestraClient = new OrchestraClient($orchestraEntryPoint); | |
18 | 32 | |
19 | 33 | $params = $this->requestData->getParams(); |
20 | 34 | switch ($this->requestData->getRequestType()) { |
35 | + case OrchestraRequestTypeEnum::CONFIGINFO: | |
36 | + if (in_array(getenv("REMOTE_ADDR"), OrchestraConfigClass::getAdminIps())) { | |
37 | + $result = array( | |
38 | + 'success' => TRUE, | |
39 | + 'entrypoint' => $orchestraEntryPoint | |
40 | + ); | |
41 | + } | |
42 | + else { | |
43 | + $result = array( | |
44 | + 'success' => FALSE, | |
45 | + 'message' => 'Forbidden' | |
46 | + ); | |
47 | + } | |
48 | + $this->requestData->setOrchestraResult($result); | |
49 | + break; | |
21 | 50 | case OrchestraRequestTypeEnum::MODULESLIST: |
22 | 51 | $result = $orchestraClient->getModules(); |
23 | 52 | $this->requestData->setOrchestraResult($result); |
... | ... | @@ -77,7 +106,7 @@ class OrchestraRequestClass extends ProcessRequestClass |
77 | 106 | // Generate a PHP script to run request (to be able to "detach" process for the batch mode) |
78 | 107 | $php_script = '<?php'.PHP_EOL; |
79 | 108 | $php_script .= 'require_once("'.$clientPath.'");'.PHP_EOL; |
80 | - $php_script .= '$client = new OrchestraClient("'.$this->requestData->getHost().':'.$this->requestData->getPort().'");'.PHP_EOL; | |
109 | + $php_script .= '$client = new OrchestraClient("'.$this->host.':'.$this->port.'");'.PHP_EOL; | |
81 | 110 | $php_script .= '$params = array('; |
82 | 111 | $first_param = TRUE; |
83 | 112 | foreach ($params as $key => $value) { | ... | ... |
src/Request/OrchestraRequestImpl/OrchestraRequestDataClass.php
... | ... | @@ -3,10 +3,11 @@ |
3 | 3 | abstract class OrchestraRequestTypeEnum |
4 | 4 | { |
5 | 5 | const UNKNOWN = ""; |
6 | + const CONFIGINFO = "CONFIGINFO"; | |
6 | 7 | const MODULESLIST = "MODULESLIST"; |
7 | - const MODULEINFO = "MODULEINFO"; | |
8 | - const PREDICTION = "PREDICTION"; | |
9 | - const FITTING = "FITTING"; | |
8 | + const MODULEINFO = "MODULEINFO"; | |
9 | + const PREDICTION = "PREDICTION"; | |
10 | + const FITTING = "FITTING"; | |
10 | 11 | const GETRESULT = "GETRESULT"; |
11 | 12 | } |
12 | 13 | |
... | ... | @@ -17,32 +18,10 @@ abstract class OrchestraRequestTypeEnum |
17 | 18 | */ |
18 | 19 | class OrchestraRequestDataClass extends ProcessRequestDataClass |
19 | 20 | { |
20 | - private $host = "http://127.0.0.1"; | |
21 | - private $port = "5000"; | |
22 | 21 | private $type = OrchestraRequestTypeEnum::UNKNOWN; |
23 | 22 | private $params = array(); |
24 | 23 | private $orchestraResult = NULL; |
25 | 24 | |
26 | - public function getHost() | |
27 | - { | |
28 | - return $this->host; | |
29 | - } | |
30 | - | |
31 | - public function setHost($host) | |
32 | - { | |
33 | - $this->host = $host; | |
34 | - } | |
35 | - | |
36 | - public function getPort() | |
37 | - { | |
38 | - return $this->port; | |
39 | - } | |
40 | - | |
41 | - public function setPort($port) | |
42 | - { | |
43 | - $this->port = $port; | |
44 | - } | |
45 | - | |
46 | 25 | public function getRequestType() |
47 | 26 | { |
48 | 27 | return $this->type; | ... | ... |