| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
This test covers 3 scenarios:
1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
|
|
|
|
|
|
|
|
| |
This test covers 3 scenarios:
1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
|
|
|
|
|
|
|
|
| |
This test covers 3 scenarios:
1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
|
|
|
|
|
| |
This patch simplifies the og_cmd_run_schedule function by calling
og_cmd_legacy_send.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements the command "run/schedule" that kicks in pending commands
execution.
Request:
POST /run/schedule
{
"clients": ["192.168.56.11"]
}
Reply:
200 OK
This patch also adds a simple test to cover correction of the command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds the parameters "disk" and "partition" to
POST "software" command. This way the client can create a software
profile without failure.
New request:
POST /software
{
"clients":[
"192.168.56.12"
],
"disk":"1",
"partition":"1"
}
Reply:
200 OK
|
|
|
|
| |
This test covers correction of the command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements the command "image/restore/incremental" that provides
partitioning and formatting functionality.
Request:
POST /image/restore/incremental
{
"clients":[
"192.168.56.11",
"192.168.56.12"
],
"disk":"1",
"partition":"1",
"id":"8",
"name":"test",
"repository":"192.168.56.10",
"profile":"25",
"type":"MULTICAST_9000:full-duplex:239.194.2.11:70M:4:60",
"sync_params":{
"diff_id":"10",
"diff_name":"testdiff",
"path":"",
"method":"1",
"sync":"2",
"diff":"0",
"remove":"1",
"compress":"0",
"cleanup":"0",
"cache":"0",
"cleanup_cache":"0",
"remove_dst":"0"
}
}
Reply:
200 OK
|
|
|
|
| |
This test covers correction of the command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements the command "image/create/incremental".
Request:
{"clients":["192.168.56.11"],
"disk":"1",
"partition":"1",
"id":"3",
"name":"basica1",
"repository":"192.168.56.10",
"sync_params":{"sync":"1",
"path":"",
"diff":"0",
"diff_id":"4",
"diff_name":"p2",
"remove":"1",
"compress":"0",
"cleanup":"0",
"cache":"0",
"cleanup_cache":"0",
"remove_dst":"0"
}
}
Reply:
200 OK
|
|
|
|
| |
This test covers correction of the command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements the command "image/restore/basic" that provides
partitioning and formatting functionality.
Request:
POST /image/restore/basic
{
"clients":[
"192.168.56.11"
],
"disk":"1",
"partition":"1",
"id":"9",
"name":"test",
"repository":"192.168.56.10",
"profile":"17",
"type":"UNICAST",
"sync_params":{
"path":"",
"method":"1",
"sync":"1",
"diff":"0",
"remove":"1",
"compress":"0",
"cleanup":"0",
"cache":"0",
"cleanup_cache":"0",
"remove_dst":"0"
}
}
Reply:
200 OK
|
|
|
|
| |
This test covers correction of the command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Validate json input and return an error code when parsing is not correct.
|
|
|
|
| |
This test covers correction of the command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
InventarioSoftware
These socketHidra calls have been replaced by the REST API, remove them.
|
|
|
|
| |
Update restore_image.json to use id and profile fields.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
This patch avoids repeating similar code by using just one json parser.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Just a cleanup.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Some tests should perform GET requests however they incorrectly use POST.
Return codes for these tests have also been fixed.
|
|
|
|
| |
This test is already performed in test_0001_get_clients.py
|
|
|
|
|
| |
This test sends a POST with no body, which is illegal, use a function
name that describes this.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
If Content-Length is too large ogAdmServer, close the connection..
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
This test checks for too large HTTP requests, for example:
POST /clients
with a body of 4096 bytes.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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 :-)
|
|
|
|
|
| |
Without the brackets the call works (200 response) but the ogAdmServer
does not send the WOL packets.
|
|
|
|
|
| |
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 ...
|
| |
|
|
|
|
| |
This function sends a 500 HTTP error to client.
|
|
|
|
| |
Display initial 32 bytes of the HTTP request.
|
|
|
|
| |
If REST API request length is >= 4096 bytes, close the connection.
|
|
|
|
|
| |
This definition specifies the maximum number of clients, that is set up
to 4096.
|
|
|
|
|
| |
The existing 4 Kbytes might not be enough to store the results of the
GET /clients request, extend it up to 64 Kbytes.
|
|
|
|
|
| |
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
|
|
|
|
| |
Raise maximum number of clients to 4096.
|
|
|
|
|
| |
When a command/request exists but the method is not correct returns 405
error code.
|
|
|
|
| |
In case reply is too long, return 501 internal server error.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|