Commit Graph

164 Commits (1d801be52c05e89532b945f58b2d302d15a55297)

Author SHA1 Message Date
OpenGnSys Support Team 1d801be52c #941 use dbi layer from respuestaEstandar()
And update all callers.

Some of the db.Open() calls cannot be removed yet, since there are still
more function dependencies that need to be converted too.
2020-03-04 14:54:49 +01:00
OpenGnSys Support Team 39157320ec #941 Consolidate CrearSoftIncremental, RestaurarImagenBasica, RestaurarSoftIncremental, Configurar and EjecutarScript
These functions are identical, remove duplicated code.
2020-03-04 14:54:46 +01:00
OpenGnSys Support Team fbc783c090 #941 Consolidate RESPUESTA_Reiniciar, RESPUESTA_IniciarSesion and RESPUESTA_Apagar
They are identical, remove duplicated code.
2020-03-04 14:54:43 +01:00
OpenGnSys Support Team d3239f70eb #941 Consolidate RESPUESTA_Configurar and RESPUESTA_EjecutarScript
These function are almost identical, remove duplicated code.
2020-03-04 14:54:39 +01:00
OpenGnSys Support Team ad70969c2f #941 use dbi layer from buscaComandos() 2020-03-04 14:54:31 +01:00
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
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