diff options
author | Irina Gómez <irinagomez@us.es> | 2021-02-23 12:21:01 +0100 |
---|---|---|
committer | Irina Gómez <irinagomez@us.es> | 2021-02-23 12:21:01 +0100 |
commit | 69fd9c1714660848714351e95a7f28aee115c723 (patch) | |
tree | 56b682a3643e8369c1f2f763a2f5fc7f52607cd1 | |
parent | f7e9f6fa49e883383e6e5d107df02ebd730c07e8 (diff) |
#992 REST route /ous/:ouid/labs/:labid/clients/:clntid/init:
Fixes that include global variables, required to add the operating system startup to the action queue.
This route is defined in swagger.
-rw-r--r-- | admin/WebConsole/rest/opengnsys-api.yml | 29 | ||||
-rw-r--r-- | admin/WebConsole/rest/remotepc.php | 10 |
2 files changed, 38 insertions, 1 deletions
diff --git a/admin/WebConsole/rest/opengnsys-api.yml b/admin/WebConsole/rest/opengnsys-api.yml index bea6cae2..b63af11a 100644 --- a/admin/WebConsole/rest/opengnsys-api.yml +++ b/admin/WebConsole/rest/opengnsys-api.yml @@ -662,6 +662,35 @@ paths: - server - client - remotepc + /ous/{ouid}/labs/{labid}/clients/{clientid}/init: + post: + description: Send an init operation to a client with an image installed. + parameters: + - $ref: "#/parameters/ouParam" + - $ref: "#/parameters/labParam" + - $ref: "#/parameters/clientParam" + - name: data + in: body + description: Image identificator + required: true + schema: + type: object + properties: + image: + description: Operating System Image Identifier + type: integer + format: int64 + minimum: 0 + required: [ image ] + responses: + "200": + description: Successful response + security: + - apikey: [] + tags: + - server + - client + - remotepc /ous/{ouid}/labs/{labid}/clients/{clientid}/session: post: description: Record session data for a client diff --git a/admin/WebConsole/rest/remotepc.php b/admin/WebConsole/rest/remotepc.php index c3b4fe7c..a7f50d2d 100644 --- a/admin/WebConsole/rest/remotepc.php +++ b/admin/WebConsole/rest/remotepc.php @@ -573,6 +573,12 @@ $app->post('/ous/:ouid/labs/:labid/clients/:clntid/init', 'validateApiKey', function($ouid, $labid, $clntid) use ($app) { global $cmd; global $userid; + global $AMBITO_ORDENADORES; + global $EJECUCION_COMANDO; + global $ACCION_INICIADA; + global $ACCION_FINALIZADA; + global $ACCION_SINRESULTADO; + global $ACCION_FALLIDA; if ($app->settings['debug']) writeRemotepcLog("{$app->request()->getResourceUri()}: Init."); @@ -587,6 +593,7 @@ $app->post('/ous/:ouid/labs/:labid/clients/:clntid/init', 'validateApiKey', // Reading POST parameters in JSON format. $input = json_decode($app->request()->getBody()); $imageid = $input->image ?? 0; + $opts = Array('options' => Array('min_range' => 1)); // Check for int>0 if (filter_var($imageid, FILTER_VALIDATE_INT, $opts) === false) { throw new Exception("Image id. must be positive integer"); } @@ -601,7 +608,7 @@ $app->post('/ous/:ouid/labs/:labid/clients/:clntid/init', 'validateApiKey', // Select data to init a session. $cmd->texto = <<<EOD -SELECT adm.idusuario, ordenadores.ip, ordenadores.mac, ordenadores.mascara, ordenadores.agentkey, +SELECT adm.idusuario, ordenadores.idordenador, ordenadores.ip, ordenadores.mac, ordenadores.mascara, ordenadores.agentkey, par.numdisk, par.numpar, repo.ip AS repoip, repo.apikey AS repokey FROM ordenadores JOIN aulas USING(idaula) @@ -652,6 +659,7 @@ EOD; $result = multiRequest($repo); } // Create an init session on opertions queue. + $timestamp = time(); $cmd->texto = <<<EOD INSERT INTO acciones SET tipoaccion=$EJECUCION_COMANDO, |