Commit Graph

160 Commits (ecff9948e762e42889e35a358fae5131ba443ebc)

Author SHA1 Message Date
OpenGnSys Support Team ecff9948e7 #941 use dbi layer from AutoexecCliente() 2020-03-04 14:54:21 +01:00
OpenGnSys Support Team 0fbdcf260c #941 use dbi layer from procesoInclusionClienteWinLnx() 2020-03-04 14:54:05 +01:00
OpenGnSys Support Team 2629906b6d #941 add basic database-independent abstraction (dbi)
Add basic infrastructure to support for the independent database layer.
2020-03-04 14:53:01 +01:00
Javier Sánchez Parra a245411ab2 #924 Fix that only the commands without session were checked
Irina reports that the bug fixed in 78a97c5 happens again when you run a
command with a session (queue of actions).

The bug was introduced in 78a97c5, the goal of the commit was
to change the behaviour of respuestaEstandar to always check
the result of a command, whether it has a session or not. But, instead
of this behaviour, the commit changes respuestaEstandar to only check the
commands without session.
2019-11-25 13:19:41 +01:00
Ramón M. Gómez 696c5bbaf0 #839: Always update the partition types when obtaining the computer configuration. 2019-11-21 17:42:57 +01:00
Roberto Hueso Gómez 8fa082d4c5 #915 Return HTTP 400 error code in og_client_state_process_payload_rest
This patch meets RFC 7235 and returns an HTTP 400 error code when ogAdmServer
recieves a wrong request.
2019-11-13 14:15:57 +01:00
Roberto Hueso Gómez 6c91d147c1 #915 Rename POST /image/setup for /setup in REST API
This patch renames the setup command to avoid semantic confusion.
2019-11-13 14:15:43 +01:00
Roberto Hueso Gómez ffd2965b33 #915 Add 'echo' parameter to POST /shell/run
'echo' parameter makes possible for users to request the console output.
2019-11-12 21:37:11 +01:00
Roberto Hueso Gómez 280df58917 #915 Fix og_json_parse_clients flags for empty arrays
This patch prevents the flag OG_REST_PARAM_ADDR to be activated when the array
is empty.
2019-11-12 21:37:11 +01:00
Roberto Hueso Gómez 6066b32603 #915 Validate POST /run/schedule REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-12 21:37:11 +01:00
Roberto Hueso Gómez 4f785531e6 #915 Validate POST /image/restore/incremental REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-12 21:37:11 +01:00
Roberto Hueso Gómez f51c245c93 #915 Validate POST /image/restore/basic REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-12 21:37:11 +01:00
Roberto Hueso Gómez 6a0e5fa1c0 #915 Validate POST /image/create/incremental REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-12 21:37:11 +01:00
Roberto Hueso Gómez 82a1d5a142 #915 Validate POST /image/create/basic REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-12 21:37:11 +01:00
Roberto Hueso Gómez 3bc3b45e5f #915 Validate POST /image/setup REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-12 21:37:11 +01:00
Ramón M. Gómez 184510412c #839: Do not check partition type when obtaining computer configuration to hide/unhide NTFS partitions. 2019-11-11 12:37:05 +01:00
Roberto Hueso Gómez ec4189b18f #915 Validate POST /image/restore REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:29:42 +01:00
Roberto Hueso Gómez abe2a888ab #915 Validate POST /image/create REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:27:47 +01:00
Roberto Hueso Gómez 1a1ecf7791 #915 Validate POST /software REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:26:45 +01:00
Roberto Hueso Gómez 7803e13adf #915 Validate POST /hardware REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:26:33 +01:00
Roberto Hueso Gómez 93028bd055 #915 Validate POST /refresh REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:26:15 +01:00
Roberto Hueso Gómez bc1b958ceb #915 Validate POST /stop REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:26:06 +01:00
Roberto Hueso Gómez 0a41d5d02f #915 Validate POST /reboot REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:25:54 +01:00
Roberto Hueso Gómez acf9cdf8d1 #915 Validate POST /poweroff REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:25:24 +01:00
Roberto Hueso Gómez 8901505bb5 #915 Validate POST /session REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:24:24 +01:00
Roberto Hueso Gómez 61059e1b2e #915 Validate POST /shell/output REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:22:35 +01:00
Roberto Hueso Gómez b403c7ae6c #915 Validate POST /shell/run REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:17:19 +01:00
Roberto Hueso Gómez ec5fe704cc #915 Validate POST /wol REST API parameters
This patch ensures that all required parameters are sent in the request.
2019-11-06 11:16:59 +01:00
Roberto Hueso Gómez 54ecdbbdf1 #915 Validate POST /clients parameters
This patch adds og_msg_params_validate function as well as some flags that can
be used to validate parameters of a REST API request.

This patch ensures that all required parameters are sent in the request.
2019-11-06 11:16:36 +01:00
Javier Sánchez Parra 8082efd6de #924 Always check the result of a command to avoid errors
Irina reports that if you try to restore an image without success
(for example: the disk does not have enough space), the database changes
as if no error would happen. So you see the computer in the WebConsole
with an image/OS that, actually, does not have.

The bug is caused because the function respuestaEstandar only checks
the result of a command if it has a session. So the problem is that the
commands which use respuestaEstandar without a session can return an
error, but the ogAdmServer always works as no error would occur.

This commit changes the behaviour of respuestaEstadar to always check
the result of a command, whether it has a session or not.
2019-11-04 15:09:04 +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 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 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 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 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 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
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
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
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