summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* #915 Add POST "image/create/basic" command to REST API in ogAdmServerJavier Sánchez Parra2019-10-081-0/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements the command "image/create/basic" that provides partitioning and formatting functionality. Request: POST /image/create/basic { "clients":[ "192.168.56.11" ], "disk":"1", "partition":"1", "code":"131", "id":"8", "name":"debianbasica", "repository":"192.168.56.10", "sync_params":{ "sync":"1", "diff":"0", "remove":"1", "compress":"0", "cleanup":"0", "cache":"0", "cleanup_cache":"0", "remove_dst":"0" } } Reply: 200 OK
* #915 Improve error management for og_json_parse_partition()Roberto Hueso Gómez2019-10-071-7/+23
| | | | Validate json input and return an error code when parsing is not correct.
* Add test for POST /image/create commandRoberto Hueso Gómez2019-10-072-0/+2
| | | | This test covers correction of the command.
* #915 Add POST "image/setup" command to REST API in ogAdmServerRoberto Hueso Gómez2019-10-071-0/+100
| | | | | | | | | | | | | | | | This patch implements the command "image/setup" that provides partitioning and formatting functionality. Request: POST /image/setup { "clients" : [ "192.168.56.11" ], "disk" : "1", "cache" : "1", "cache_size" : "0", "partition_setup": [{"partition": "1", "code": "LINUX", "filesystem": "EMPTY", "size": "498688", "format": "0"}, {"partition": "2", "code": "LINUX-SWAP", "filesystem": "EMPTY", "size": "199987", "format": "0"}, {"partition": "3", "code": "LINUX", "filesystem": "EMPTY", "size": "31053824", "format": "0"}, {"partition": "4", "code": "EMPTY", "filesystem": "EMPTY", "size": "0", "format": "0"}]} Reply: 200 OK
* #915 Remove Apagar, CrearImagen, RestaurarImagen, InventarioHardware, ↵OpenGnSys Support Team2019-10-031-110/+0
| | | | | | InventarioSoftware These socketHidra calls have been replaced by the REST API, remove them.
* #915: adapt test to use id and profile fieldsOpenGnSys Support Team2019-10-011-1/+1
| | | | Update restore_image.json to use id and profile fields.
* #915: Add POST /image/restore command to REST API in ogAdmServerRoberto Hueso Gómez2019-10-013-0/+65
| | | | | | | | | | | This patch implements the command "image/create" that creates an image in a client. Request: POST /image/restore { "clients" : [ "192.168.56.11" ], "disk" : "1", "partition" : "1", "name" : "test", "repository" : "192.168.56.10", "type" : "UNICAST", "filesystem": "1", "image_id": "1"} Reply: 200 OK
* #915: add og_json_parse_string() and use itRoberto Hueso Gómez2019-10-011-70/+17
| | | | This patch avoids repeating similar code by using just one json parser.
* #915: Add POST /image/create command to REST API in ogAdmServerRoberto Hueso Gómez2019-10-013-0/+104
| | | | | | | | | | | This patch implements the command "image/create" that creates an image in a client. Request: POST /image/create { "clients" : [ "192.168.2.1" ], "disk" : "1", "partition" : "1", "code" : "1", "id" : "1", "name" : "test", "repository" : "192.168.2.2" } Reply: 200 OK
* #915: Removes braces for single statement if branchRoberto Hueso Gómez2019-10-011-4/+3
| | | | Just a cleanup.
* #915: Fix file descriptor leak in og_socket_server_init() from exit pathRoberto Hueso Gómez2019-09-191-0/+1
| | | | | | | | | | | | | | | | | Call close() to release the socket in the event of an error. infer says: sources/ogAdmServer.cpp:1244: error: RESOURCE_LEAK resource acquired by call to `socket()` at line 1236, column 6 is not released after line 1244, column 3. 1242. sizeof(on)); 1243. if (res < 0) { 1244. > syslog(LOG_ERR, "cannot set broadcast socket\n"); 1245. return false; 1246. } Not a real problem since OS releases process resources if the server cannot bind to the port, but just to be correct here.
* #915: Return 400 status code in POST methods when no payload is attachedRoberto Hueso Gómez2019-09-192-12/+21
| | | | | | | If no payload is attached to method that requires a payload, then the API returns a 400 status code (following RFC 7231) instead of the previous 404. test_0001_get_clients.py is also modified to fit the new status code.
* #915: Fix incorrect method and code in invalid GET requestsRoberto Hueso Gómez2019-09-184-8/+8
| | | | | Some tests should perform GET requests however they incorrectly use POST. Return codes for these tests have also been fixed.
* #915: Remove duplicated testRoberto Hueso Gómez2019-09-181-4/+0
| | | | This test is already performed in test_0001_get_clients.py
* #915: more descriptive function name in testRoberto Hueso Gómez2019-09-181-1/+1
| | | | | This test sends a POST with no body, which is illegal, use a function name that describes this.
* #915 add test for too large HTTP request fieldsJavier Sánchez Parra2019-09-101-0/+29
| | | | | | | This test checks for wrong headers HTTP requests: 1. POST /clients with a content length larger than a signed int. 2. POST /clients with an auth token larger than 63 characters.
* #915 check HTTP Content-Length sizeJavier Sánchez Parra2019-09-101-1/+3
| | | | If Content-Length is too large ogAdmServer, close the connection..
* #915 fix missing null-terminated stringJavier Sánchez Parra2019-09-051-1/+1
| | | | | | This patch changes the number of characters stored in cli->auth_token from 64 to 63. This way the array has the last position available to store the null character.
* #915 adds test for too large HTTP requestJavier Sánchez Parra2019-09-041-0/+19
| | | | | | | | This test checks for too large HTTP requests, for example: POST /clients with a body of 4096 bytes.
* #915 do not bail out when failing to send message to stale clientsOpenGnSys Support Team2019-09-021-4/+2
| | | | | | Clients might enter power saving mode, hence, closing the connection with the server. When the server sends a request to refresh its state, if they are gone, do not break the iteration over the list of clients.
* #559 fix out of bound array accessJavier Sánchez Parra2019-08-281-1/+1
| | | | | | | | This patch change the size of the array ptrPar from 6 to 7. cppcheck says: [sources/ogAdmServer.cpp:598]: (error) Array 'ptrCfg[6]' accessed at index 6, which is out of bounds.
* #915 check ogAdmServer binary existence when running pythong testsJavier Sánchez Parra2019-08-281-0/+4
| | | | | | | | | | | Currently, if you try to run the python test without the ogAdmServer binary, it will throw an exception. This patch adds a check to ensure the existence of the ogAdmServer binary at the beginning of the script. # python3 run-tests.py You need to build the ogAdmServer binary to run these tests :-)
* #915 add missing brackets to WOL API test jsonJavier Sánchez Parra2019-08-281-2/+2
| | | | | Without the brackets the call works (200 response) but the ogAdmServer does not send the WOL packets.
* #915 trim unknown command syslog error to the initial 32 bytesOpenGnSys Support Team2019-08-281-1/+1
| | | | | Aug 28 17:12:33 server ogAdmServer[10110]: 127.0.0.1:54640 POST /nonexistent HTTP/1.1^M Host ... Aug 28 17:12:33 server ogAdmServer[10110]: unknown command: nonexistent HTTP/1.1^M Host: loca ...
* #915 add syslog error when HTTP request processing failsOpenGnSys Support Team2019-08-281-4/+17
|
* #915 add og_server_internal_error()OpenGnSys Support Team2019-08-281-5/+12
| | | | This function sends a 500 HTTP error to client.
* #915 add syslog debugging for HTTP requestOpenGnSys Support Team2019-08-281-4/+4
| | | | Display initial 32 bytes of the HTTP request.
* #915 close connection to REST API if request is too longOpenGnSys Support Team2019-08-281-1/+8
| | | | If REST API request length is >= 4096 bytes, close the connection.
* #915 add OG_CLIENTS_MAX definitionOpenGnSys Support Team2019-08-281-2/+4
| | | | | This definition specifies the maximum number of clients, that is set up to 4096.
* #915 set maximum REST API response to 64 KbytesOpenGnSys Support Team2019-08-281-2/+4
| | | | | The existing 4 Kbytes might not be enough to store the results of the GET /clients request, extend it up to 64 Kbytes.
* #915 json_dump_callback() takes flags as a parameterOpenGnSys Support Team2019-08-281-2/+2
| | | | | Not as the buffer size, this leads to incorrectly printing the json output since this might set on the JSON_EMBED flag on libjansson >= 2.10
* #915 allow up to 4096 clients from REST APIOpenGnSys Support Team2019-08-281-2/+2
| | | | Raise maximum number of clients to 4096.
* #915 reply with HTTP 405 when the method is incorrectJavier Sánchez Parra2019-08-271-12/+25
| | | | | When a command/request exists but the method is not correct returns 405 error code.
* #915 internal error response if reply is too longOpenGnSys Support Team2019-08-271-4/+11
| | | | In case reply is too long, return 501 internal server error.
* Merge branch 'devel-browser-newlinks' into develRamón M. Gómez2019-08-200-0/+0
|\
| * #891 fix crash in wol commandOpenGnSys Support Team2019-08-201-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Irina reports a crash in the wol command on Ubuntu 18.04 and gcc 7.4.0: ==9542== Process terminating with default action of signal 6 (SIGABRT) ==9542== at 0x6C37E97: raise (raise.c:51) ==9542== by 0x6C39800: abort (abort.c:79) ==9542== by 0x6C82896: __libc_message (libc_fatal.c:181) ==9542== by 0x6D2DCD0: __fortify_fail_abort (fortify_fail.c:33) ==9542== by 0x6D2DC91: __stack_chk_fail (stack_chk_fail.c:29) ==9542== by 0x111DB1: WakeUp(int, char*, char*, char*) (ogAdmServer.cpp:1390) ==9542== by 0x11199F: Levanta(char**, char**, int, char*) (ogAdmServer.cpp:1251) ==9542== by 0x118372: og_cmd_wol(json_t*, og_msg_params*) (ogAdmServer.cpp:3580) ==9542== by 0x119B91: og_client_state_process_payload_rest(og_client*) (ogAdmServer.cpp:4030) ==9542== by 0x11A4E9: og_client_read_cb(ev_loop*, ev_io*, int) (ogAdmServer.cpp:4212) ==9542== by 0x5EA1D72: ev_invoke_pending (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) ==9542== by 0x5EA53DD: ev_run (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) sscanf() returns integers (32-bits) instead of array of 8-bits.
* | #891 fix crash in wol commandOpenGnSys Support Team2019-07-291-6/+6
|/ | | | | | | | | | | | | | | | | | | | Irina reports a crash in the wol command on Ubuntu 18.04 and gcc 7.4.0: ==9542== Process terminating with default action of signal 6 (SIGABRT) ==9542== at 0x6C37E97: raise (raise.c:51) ==9542== by 0x6C39800: abort (abort.c:79) ==9542== by 0x6C82896: __libc_message (libc_fatal.c:181) ==9542== by 0x6D2DCD0: __fortify_fail_abort (fortify_fail.c:33) ==9542== by 0x6D2DC91: __stack_chk_fail (stack_chk_fail.c:29) ==9542== by 0x111DB1: WakeUp(int, char*, char*, char*) (ogAdmServer.cpp:1390) ==9542== by 0x11199F: Levanta(char**, char**, int, char*) (ogAdmServer.cpp:1251) ==9542== by 0x118372: og_cmd_wol(json_t*, og_msg_params*) (ogAdmServer.cpp:3580) ==9542== by 0x119B91: og_client_state_process_payload_rest(og_client*) (ogAdmServer.cpp:4030) ==9542== by 0x11A4E9: og_client_read_cb(ev_loop*, ev_io*, int) (ogAdmServer.cpp:4212) ==9542== by 0x5EA1D72: ev_invoke_pending (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) ==9542== by 0x5EA53DD: ev_run (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) sscanf() returns integers (32-bits) instead of array of 8-bits.
* #915 adds tests for a non existent methodJavier Sánchez Parra2019-07-151-0/+30
| | | | | | | | | This test adds four new error test cases: 1. Non existent method with POST. 2. Non existent method with GET. 3. Non existent method with POST but with wrong API token. 4. Non existent method with POST but without json.
* #915 returns 401 when incorrect authentication happensJavier Sánchez Parra2019-07-151-1/+3
| | | | | | | | ogAdmServer REST API now meets the starndar RFC 7235 when incorrect auth happens. og_client_not_authorized() now sends "401 Unauthorized" and "WWW-Authenticate" instead of 404.
* #915 adds test for POST /software REST APIJavier Sánchez Parra2019-07-151-0/+20
| | | | | | | This test covers two two scenarios: 1. Correct usage. 2. Incorrect usage, use this command with GET (this returns http 405).
* #915 adds test for POST /hardware REST APIJavier Sánchez Parra2019-07-151-0/+20
| | | | | | | This test covers two two scenarios: 1. Correct usage. 2. Incorrect usage, use this command with GET (this returns http 405).
* #915 adds test for POST /refresh REST APIJavier Sánchez Parra2019-07-151-0/+20
| | | | | | | This test covers two two scenarios: 1. Correct usage. 2. Incorrect usage, use this command with GET (this returns http 405).
* #915 adds test for POST /stop REST APIJavier Sánchez Parra2019-07-151-0/+20
| | | | | | | This test covers two two scenarios: 1. Correct usage. 2. Incorrect usage, use this command with GET (this returns http 405).
* #915 adds test for POST /reboot REST APIJavier Sánchez Parra2019-07-151-0/+20
| | | | | | | This test covers two two scenarios: 1. Correct usage. 2. Incorrect usage, use this command with GET (this returns http 405).
* #915 adds test for POST /poweroff REST APIJavier Sánchez Parra2019-07-151-0/+20
| | | | | | | This test covers two two scenarios: 1. Correct usage. 2. Incorrect usage, use this command with GET (this returns http 405).
* #915 tests correct command, /sessionJavier Sánchez Parra2019-07-151-1/+1
| | | | This should test /shell/run instead of /session
* #559 fixes memory leak in tomaConfiguracion()Javier Sánchez Parra2019-07-151-0/+2
| | | | Calls fclose() after fopen() to release memory.
* #915 Improve test output using unittest discoverJavier Sánchez Parra2019-07-057-2/+1
| | | | | | | | * Call the tests with python module unittest. In particular, the discover function. * Rename tests files to meet the default requirements of discover function.
* #915 add POST software command to REST API in ogAdmServerOpenGnSys Support Team2019-07-032-0/+31
| | | | | | | | | | | | | This patch implements the command "software" that fetches the software configuration from the clients. Request: POST /software {"clients" : [ "192.168.2.1", "192.168.2.2" ]} Reply: 200 OK This allows to refresh the software inventory from clients.
* #915 add POST hardware command to REST API in ogAdmServerOpenGnSys Support Team2019-07-032-0/+31
| | | | | | | | | | | | | This patch implements the command "hardware" that fetches the hardware configuration from the clients. Request: POST /hardware {"clients" : [ "192.168.2.1", "192.168.2.2" ]} Reply: 200 OK This allows to refresh the hardware inventory from clients.