Commit Graph

240 Commits (d1fc76c6b4ae85fc4c308b299d353d4660ea0004)
 

Author SHA1 Message Date
Roberto Hueso Gómez d1fc76c6b4 #942 Add REST API /schedule get function 2020-06-02 12:32:36 +02:00
OpenGnSys Support Team 83b242ce58 #942 Add support for scheduled tasks and commands
This field needs to be at least 31 bits long to store all days in a month.
Other fields are also set to 32 bits because unsigned int length can change
depending on the system.

We also need to support the three ways that the ogAdmAgent and the WebConsole
have to create an schedule. At first, we only supported the easiest
method:
	* Hour, day, month and year -> 10:00, 28, february, 2020

This commit adds these two ways to create an schedule:
	* Hour, week day, month and year -> 10:00, Monday, february,
	  2020
	* Hour, week, month and year -> 10:00, first week, february,
	  2020
2020-06-02 12:32:36 +02:00
Roberto Hueso Gómez af30cc7dbb #980 Add client REST API basic infrastructure in ogAdmServer 2020-06-02 12:32:36 +02:00
OpenGnSys Support Team 96b9bb865c #942 Add /run/task to API REST
This patch adds a new command to the REST API to run tasks.

A task (tarea) is composed of procedures (procedimientos), each procedure is
composed of commands (acciones) that are represented through legacy sockHidra
parameters in the database.

This results in iterating over the task (tareas_acciones) table in the
database to fetch the list of procedures (procedimientos).

Then, this iterates over the list commands that compose a procedures
represented through procedimientos_acciones table.

Finally, this builds and sends the sockHidra legacy message for the client.

This patch includes an implementation of the Linux linked list.
2020-06-02 12:32:36 +02:00
OpenGnSys Support Team 6a0fcf9670 #970 autotools support for ogAdmServer
To build and to install ogAdmServer:

	autoreconf -fi
	./configure
	make
	make install

Default prefix is /opt/opengnsys/ as usual.

ogAdmServer uses autotools for compilation, so this patch adapts OpenGnsys
updater and installer to use autotools for compilation.
2020-06-02 12:32:36 +02:00
Javier Sánchez Parra 54d172e972 #915: Reply 413 status code when no payload is too large
If the payload is too long, then the API returns a 413 status code
(following RFC 7231) instead of the resetting the communication without
replying. This way it should be more clear when this problem is
happening.

The other commit I did related to the issue of the payload size
(1d9d93c) said that ogAdmServer do not log anything when it receives a
payload of a bigger size than supported, this is false. ogAdmServer
prints the next message to the syslog when this happens:

  ogAdmServer[6824]: client request from 127.0.0.1:43552 is too long
2020-04-06 16:35:20 +02:00
Javier Sánchez Parra 286dcd72eb #915 Increase request max length
Trying to send a WakeOnLan command to 150 clients I noticed that the
ogAdmClient closed (RST) the communication with the WebConsole without
answering or logging anything. The Webconsole logged:

	php: error occured during curl exec. Additioanl info: Array
	php: (
	php:     [url] => http://127.0.0.1:8888/wol
	php:     [content_type] =>
	php:     [http_code] => 0
	php:     [header_size] => 0
	php:     [request_size] => 199
	php:     [filetime] => -1
	php:     [ssl_verify_result] => 0
	php:     [redirect_count] => 0
	php:     [total_time] => 1.003122
	php:     [namelookup_time] => 4.9E-5
	php:     [connect_time] => 0.000273
	php:     [pretransfer_time] => 0.00035
	php:     [size_upload] => 7007
	php:     [size_download] => 0
	php:     [speed_download] => 0
	php:     [speed_upload] => 6986
	php:     [download_content_length] => -1
	php:     [upload_content_length] => 7007
	php:     [starttransfer_time] => 1.001793
	php:     [redirect_time] => 0
	php:     [redirect_url] =>
	php:     [primary_ip] => 127.0.0.1
	php:     [certinfo] => Array
	php:         (
	php:         )
	php:
	php:     [primary_port] => 8888
	php:     [local_ip] => 127.0.0.1
	php:     [local_port] => 43016
	php:     [http_version] => 0
	php:     [protocol] => 1
	php:     [ssl_verifyresult] => 0
	php:     [scheme] => HTTP
	php: )

This happened because request max length is set to 4096 bytes and my
request had a size of 7075 bytes. So, the max length was exceeded.

This commit increase the max length from 4096 to 16384. This way the
ogAdmServer supports larger request messages.
2020-04-03 14:43:55 +02:00
OpenGnSys Support Team bf8ba6ce4c #941 memleak in actualizaConfiguracion
Missing dbi_result_free(), use syslog() for logging.
2020-03-31 11:39:13 +02:00
OpenGnSys Support Team 26736edcd0 #941 Missing error in actualizaSoftware() and memleak in result
This patch fixes e052fdceec013 that adds a missing error in case
the insertion fails. This also releases the result in case the
entry exists.
2020-03-26 11:45:19 +01:00
OpenGnSys Support Team 4f850d5acc #580 double free in checkDato()
This is fixing e052fdceec013 that releases the libdbi result twice.
2020-03-24 11:17:46 +01:00
OpenGnSys Support Team 531b92fcc2 #915 remove dead code in ogAdmServer
These have been replaced by the new REST API.
2020-03-07 13:24:01 +01:00
Roberto Hueso Gómez 1c0eaf2fa6 #580 Fix uninitialized variables in ogAdmServer
This patch ensures that some variables are initialized before using them.
2020-03-07 13:22:56 +01:00
OpenGnSys Support Team ad2d308436 #967 rename .cpp to .c
This actually is C code, use the gcc compiler instead.
2020-03-05 23:45:48 +01:00
OpenGnSys Support Team 3b5ec70eae #967 Replace remaining C++ code 2020-03-05 23:42:35 +01:00
OpenGnSys Support Team 39918fa970 #941 use dbi layer from envioProgramacion 2020-03-04 14:55:11 +01:00
OpenGnSys Support Team 03f1941b37 #941 use dbi layer from actualizaHardware 2020-03-04 14:55:04 +01:00
OpenGnSys Support Team f482bda9d2 #941 use dbi layer from RESPUESTA_CrearSoftIncremental 2020-03-04 14:55:01 +01:00
OpenGnSys Support Team 9cc156c65a #941 use dbi layer from actualizaCreacionImagen() 2020-03-04 14:54:59 +01:00
OpenGnSys Support Team fa6b891637 #941 use dbi layer from actualizaConfiguracion() 2020-03-04 14:54:55 +01:00
OpenGnSys Support Team 0fde10b973 #941 use dbi layer from procesoInclusionCliente() 2020-03-04 14:54:52 +01:00
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
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 abd2b913d8 #915 Test malformed payload for POST commands
This patch includes tests for the remaining REST API commands:

	POST /shell/output
	POST /session
	POST /poweroff
	POST /reboot
	POST /stop
	POST /refresh
	POST /hardware
	POST /software
	POST /image/create
	POST /image/restore
	POST /setup
	POST /image/create/basic
	POST /image/create/incremental
	POST /image/restore/basic
	POST /image/restore/incremental
	POST /run/schedule

This test covers requests that are missing one of the parameters in its
payload.
2019-11-14 14:51:13 +01:00
Roberto Hueso Gómez 1cdbc5facf #915 Test malformed payload for POST /shell/run
This test covers requests that do not contain 1 of the parameters in their
payloads.
2019-11-13 14:16:02 +01:00
Roberto Hueso Gómez 682d3b6b17 #915 Test malformed payload for POST /wol
This test covers requests that do not contain 1 of the parameters in their
payloads.
2019-11-13 14:16:01 +01:00
Roberto Hueso Gómez 4d98bdf5f6 #915 Test malformed payload for POST /clients
This test covers requests that do not contain 1 of the parameters in their
payloads.
2019-11-13 14:15:58 +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 65cc7c17e2 #915 Extend REST API POST no payload tests to all remaining tests.
This patch extends tests for requests without any payload in the following REST
API POST functions:

- /clients
- /wol
- /shell/run
- /shell/output
- /session
- /poweroff
- /reboot
- /stop
- /refresh
- /hardware
- /software
2019-11-13 14:15:56 +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 ee2e16ac96 #915 Adapt POST /shell/run test to the 'echo' parameter 2019-11-12 21:37:11 +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