Commit Graph

177 Commits (1f55beb8f5048bd12011628ea97a684630f3b1ea)
 

Author SHA1 Message Date
Roberto Hueso Gómez 1f55beb8f5 #915 Add test for POST /image/restore/incremental REST API
This test covers 3 scenarios:

1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
2019-10-31 13:18:48 +01:00
Roberto Hueso Gómez 20f935bb65 #915 Add test for POST /image/restore/basic REST API
This test covers 3 scenarios:

1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
2019-10-31 13:18:48 +01:00
Roberto Hueso Gómez b5722de3fb #915 Add test for POST /image/create/incremental REST API
This test covers 3 scenarios:

1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
2019-10-31 13:18:48 +01:00
Roberto Hueso Gómez 713070ab10 #915 Add test for POST /image/create/basic REST API
This test covers 3 scenarios:

1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
2019-10-31 13:18:48 +01:00
Roberto Hueso Gómez 1436d44cc6 #915 Add test for POST /image/setup REST API
This test covers 3 scenarios:

1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
2019-10-31 13:18:48 +01:00
Roberto Hueso Gómez ba3b1ad543 #915 Add test for POST /image/restore REST API
This test covers 3 scenarios:

1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
2019-10-31 13:18:48 +01:00
Roberto Hueso Gómez b4d2890460 #915 Add test for POST /image/create REST API
This test covers 3 scenarios:

1. Correct usage.
2. Incorrect usage, without payload.
3. Incorrect usage, use this command with GET.
2019-10-31 13:18:48 +01:00
Roberto Hueso Gómez 723f110308 #915 Use og_cmd_legacy_send in og_cmd_run_schedule for ogAdmServer
This patch simplifies the og_cmd_run_schedule function by calling
og_cmd_legacy_send.
2019-10-29 14:22:08 +01:00
Roberto Hueso Gómez 2f7e9da5ab #915 Add POST "run/schedule" command to REST API in ogAdmServer
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.
2019-10-25 14:12:09 +02:00
Javier Sánchez Parra 61bbcd9251 #915 Fix POST "software" cmd in ogAdmServer and web
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
2019-10-11 13:45:15 +02:00
Javier Sánchez Parra 90672e4a25 #915 Add test for POST /image/restore/incremental command
This test covers correction of the command.
2019-10-11 11:57:08 +02:00
Javier Sánchez Parra d52c6d085a #915 Add POST "image/restore/incremental" command to REST API in ogAdmServer
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
2019-10-11 11:57:08 +02:00
Roberto Hueso Gómez 45f414e32c #915 Add test for POST "image/create/incremental" command
This test covers correction of the command.
2019-10-11 11:57:08 +02:00
Roberto Hueso Gómez 43c7da8a72 #915 Add POST "image/create/incremental" command to REST API in ogAdmServer
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
2019-10-11 11:57:08 +02:00
Javier Sánchez Parra 17eeac1284 #915 Add test for POST /image/restore/basic command
This test covers correction of the command.
2019-10-09 15:27:59 +02:00
Javier Sánchez Parra f61fd9a488 #915 Add POST "image/restore/basic" command to REST API in ogAdmServer
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
2019-10-09 15:27:59 +02:00
Javier Sánchez Parra 74061887ee #915 Add test for POST /image/create/basic command
This test covers correction of the command.
2019-10-08 14:01:14 +02:00
Javier Sánchez Parra 01e77f4cb2 #915 Add POST "image/create/basic" command to REST API in ogAdmServer
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
2019-10-08 14:00:47 +02:00
Roberto Hueso Gómez e3af7eed4d #915 Improve error management for og_json_parse_partition()
Validate json input and return an error code when parsing is not correct.
2019-10-07 12:54:53 +02:00
Roberto Hueso Gómez ad4d4bdbbe Add test for POST /image/create command
This test covers correction of the command.
2019-10-07 11:15:28 +02:00
Roberto Hueso Gómez dbcc83daa5 #915 Add POST "image/setup" command to REST API in ogAdmServer
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
2019-10-07 11:14:41 +02:00
OpenGnSys Support Team e6cfd83323 #915 Remove Apagar, CrearImagen, RestaurarImagen, InventarioHardware, InventarioSoftware
These socketHidra calls have been replaced by the REST API, remove them.
2019-10-03 11:34:02 +02:00
OpenGnSys Support Team e5cfdd6406 #915: adapt test to use id and profile fields
Update restore_image.json to use id and profile fields.
2019-10-01 12:59:50 +02:00
Roberto Hueso Gómez 1dde02e1ab #915: Add POST /image/restore command to REST API in ogAdmServer
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
2019-10-01 12:56:10 +02:00
Roberto Hueso Gómez c87a1dbdfb #915: add og_json_parse_string() and use it
This patch avoids repeating similar code by using just one json parser.
2019-10-01 12:56:10 +02:00
Roberto Hueso Gómez 1a8ada191f #915: Add POST /image/create command to REST API in ogAdmServer
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
2019-10-01 12:56:10 +02:00
Roberto Hueso Gómez 7bdc8fdf75 #915: Removes braces for single statement if branch
Just a cleanup.
2019-10-01 12:56:10 +02:00
Roberto Hueso Gómez 8b1beddbe4 #915: Fix file descriptor leak in og_socket_server_init() from exit path
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.
2019-09-19 16:06:07 +02:00
Roberto Hueso Gómez c1c89e196c #915: Return 400 status code in POST methods when no payload is attached
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.
2019-09-19 16:06:03 +02:00
Roberto Hueso Gómez 55edb404b7 #915: Fix incorrect method and code in invalid GET requests
Some tests should perform GET requests however they incorrectly use POST.
Return codes for these tests have also been fixed.
2019-09-18 17:40:41 +02:00
Roberto Hueso Gómez 72b6c26a49 #915: Remove duplicated test
This test is already performed in test_0001_get_clients.py
2019-09-18 17:40:41 +02:00
Roberto Hueso Gómez 741524f59b #915: more descriptive function name in test
This test sends a POST with no body, which is illegal, use a function
name that describes this.
2019-09-18 17:40:41 +02:00
Javier Sánchez Parra 46d791ae44 #915 add test for too large HTTP request fields
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.
2019-09-10 11:10:34 +02:00
Javier Sánchez Parra 36ad0061d7 #915 check HTTP Content-Length size
If Content-Length is too large ogAdmServer, close the connection..
2019-09-10 11:10:34 +02:00
Javier Sánchez Parra 64e653773e #915 fix missing null-terminated string
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.
2019-09-05 13:14:33 +02:00
Javier Sánchez Parra 784495f5d5 #915 adds test for too large HTTP request
This test checks for too large HTTP requests, for example:

	POST /clients

with a body of 4096 bytes.
2019-09-04 20:13:11 +02:00
OpenGnSys Support Team 3e8fcf0b40 #915 do not bail out when failing to send message to stale clients
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.
2019-09-02 13:36:50 +02:00
Javier Sánchez Parra 3de93a9503 #559 fix out of bound array access
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.
2019-08-28 18:39:33 +02:00
Javier Sánchez Parra 882fec820e #915 check ogAdmServer binary existence when running pythong tests
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 :-)
2019-08-28 17:54:57 +02:00
Javier Sánchez Parra e397e7930f #915 add missing brackets to WOL API test json
Without the brackets the call works (200 response) but the ogAdmServer
does not send the WOL packets.
2019-08-28 17:53:19 +02:00
OpenGnSys Support Team 7c67487ab3 #915 trim unknown command syslog error to the initial 32 bytes
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 ...
2019-08-28 17:31:48 +02:00
OpenGnSys Support Team a12af6a6e1 #915 add syslog error when HTTP request processing fails 2019-08-28 17:22:19 +02:00
OpenGnSys Support Team 15685e618f #915 add og_server_internal_error()
This function sends a 500 HTTP error to client.
2019-08-28 17:22:12 +02:00
OpenGnSys Support Team 84a25639b3 #915 add syslog debugging for HTTP request
Display initial 32 bytes of the HTTP request.
2019-08-28 17:22:05 +02:00
OpenGnSys Support Team 20dcb0a906 #915 close connection to REST API if request is too long
If REST API request length is >= 4096 bytes, close the connection.
2019-08-28 17:16:01 +02:00
OpenGnSys Support Team 881f532ee1 #915 add OG_CLIENTS_MAX definition
This definition specifies the maximum number of clients, that is set up
to 4096.
2019-08-28 17:15:49 +02:00
OpenGnSys Support Team e80c85fbff #915 set maximum REST API response to 64 Kbytes
The existing 4 Kbytes might not be enough to store the results of the
GET /clients request, extend it up to 64 Kbytes.
2019-08-28 17:15:35 +02:00
OpenGnSys Support Team 7e6ba45f95 #915 json_dump_callback() takes flags as a parameter
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
2019-08-28 17:15:14 +02:00
OpenGnSys Support Team ba2e868019 #915 allow up to 4096 clients from REST API
Raise maximum number of clients to 4096.
2019-08-28 11:50:11 +02:00
Javier Sánchez Parra 7dc8fdbaff #915 reply with HTTP 405 when the method is incorrect
When a command/request exists but the method is not correct returns 405
error code.
2019-08-27 14:32:13 +02:00