Commit Graph

22 Commits (41c8dec51c4717bdabd60486bd4df6cd999132cb)

Author SHA1 Message Date
OpenGnSys Support Team 5d97a721d0 ogAdmServer: replace old actualizaConfiguracion
Reimplement the legacy funcion actualizaConfiguracion with
og_update_client_config in src/client.c

if disk does not exist, add it, otherwise update disk contents.

if partition size, code, filesystem or os is different, reset image id,
otherwise update partition usage only.

delete partitions that are gone at the end.
2024-09-23 13:51:07 +02:00
OpenGnSys Support Team ad31c3832d rest: remove scheduler code
Put ogserver into diet, remove this feature, including pending command queue.
2024-09-17 17:46:07 +02:00
OpenGnSys Support Team a3af24d94a src: replace old function to update image information
replace old legacy code, no functional changes are intended.
2024-05-29 17:19:20 +02:00
Jose M. Guisado 92f83c0385 client: harden og_resp_refresh
Harden refresh response logic. Check for necessary JSON fields inside
the payload.

Check if serial_number is null before calling strlen, prevent ogServer
from a malformed refresh response with missing serial_number.

Refresh uses legacy function actualizaConfiguracion that takes a long
string with the computers configuration (serialno, partitions, disks,
link speed and status). Check for an empty string before executing any
legacy code inside actualizaConfiguracion.
2023-06-07 18:32:33 +02:00
OpenGnSys Support Team 216986e848 #915 consolidate WoL sender function
This patch aims simplifies the WoL sender routine.

A few related changes:
- Replace goto err to continue if IP address is malformed
- Use ret |= instead of ret &= to accumulate error code.
2021-12-22 17:30:04 +01:00
OpenGnSys Support Team 6e70916005 #915 remove shim code to update database after image restore command
Make direct call to dbi API to update database instead.
2021-12-22 17:30:04 +01:00
OpenGnSys Support Team 41ac15d100 #915 Remove useless WoL shim code
Levanta() is not required, iterate over the array of IP address and make
direct calls to WakeUp().

This is also implicitly fixing up a memleak in og_cmd_wol().
2021-12-20 12:18:46 +01:00
OpenGnSys Support Team 6fc89cdfc4 #1042 incorrect initialization of software profiles array
The position 0 of the software profiles array is not initialized,
this triggers a bug randomly on image creation if the position 0
comes zero. Adjust the loop to initialize position 0 accordingly.
2021-10-20 09:57:41 +02:00
Javier Sánchez Parra 12d8fff3ef #1037 Add disk type
Add ogServer support for parsing and storing in the DB disk type data
from ogClient refresh response.

See also commits with #1037 in ogClient and WebConsole repo.
2021-05-26 17:19:30 +02:00
Jose M. Guisado 746166e4c2 #971 Remove sql bottleneck when removing software profiles
Several universities have reported that creating a software profile
hangs the machine running the ogServer for a while, sometimes up to
minutes.

Legacy SQL code is producing said bottleneck, responsible for pruning a
intermediate table between "perfilessoft" and "softwares". There is
redundant code, "perfilssoft" should be pruned first, speeding up the
later task of pruning the intermediate table "perfilessoft_softwares"

There is no need to execute:

DELETE FROM perfilessoft_softwares
WHERE idperfilsoft IN (
	SELECT idperfilsoft
	FROM perfilessoft
	WHERE idperfilsoft NOT IN (
		SELECT DISTINCT idperfilsoft
		from ordenadores_particiones)
		AND idperfilsoft NOT IN (
			SELECT DISTINCT idperfilsoft from imagenes))

When afterwards "perfilessoft" is going to be pruned and
"perfilessoft_softwares" pruned again:

DELETE FROM perfilessoft WHERE idperfilsoft NOT IN
                (SELECT DISTINCT idperfilsoft from ordenadores_particiones)
                AND  idperfilsoft NOT IN
                (SELECT DISTINCT idperfilsoft from imagenes)

DELETE FROM perfilessoft_softwares WHERE idperfilsoft NOT IN
                        (SELECT idperfilsoft from perfilessoft)

The two latter commands suffice.

This should not happen when using a relational database supporting
foreign keys and ON DELETE CASCADE, like innoDB, which will be adopted
soon.
2021-04-16 13:31:45 +02:00
OpenGnSys Support Team ab32ed87c4 #1004 update size to 64-bits
Otherwise dbi_result_get_uint returns 0.
2021-03-19 16:58:50 +01:00
OpenGnSys Support Team f844a1b6bc #971 check for NULL serial number
ogclient might return an empty serial number.
2021-03-19 14:48:34 +01:00
OpenGnSys Support Team 4bd409774c #990 incorrect inet_aton() error check
inet_aton() reports 0 on failure
2021-03-17 12:12:14 +01:00
OpenGnSys Support Team fe1ce97c50 #988 remove legacy configuration
Use og_server_cfg everywhere. Convert port to string to make it easy for the
dbi API since it expects a string. Remove legacy example configuration file.
2020-10-07 11:17:00 +02:00
OpenGnSys Support Team 7500700777 #988 remove legacy configuration file
Add getopt parser and use json configuration file instead.
2020-10-05 14:49:17 +02:00
OpenGnSys Support Team ca545d39bd #998 disable incremental image API
This API is not supported by ogClient yet and it uses the obsolete socket hydra API.
2020-08-14 12:48:21 +02:00
OpenGnSys Support Team 060e31cb53 #990 add wol_socket_open()
Add wol_socket_open() to initialize the WoL socket
2020-08-06 13:39:46 +02:00
Roberto Hueso Gómez 0631b0e8e6 #988 Add DB port option to ogserver.json config file
This patch provides functionality to select a database port. It also adds a
default IP for the database.
2020-07-10 16:21:58 +02:00
OpenGnSys Support Team 96b02b5424 #971 split wake on lan code
Add wol.c and wol.h that implements WakeOnLan.
2020-07-06 11:14:43 +02:00
Javier Sánchez Parra 06af0c26f4 #990 Use client broadcast address on WoL
Some universities have computers in a different subnet where the
ogServer is, but ogServer WoL functionality only supported to send
packet to its own subnets. This commit solves this.

Now ogServer sends two WoL packets per client, one with the broadcast
address of the interface indicated in the config file, the other with
the broadcast address calculated with the address and netmask of the
client.

To ensure that the second WoL works correctly you must configure
correctly the IP and netmask of the clients. Also, you have to configure
the network of your organization to route WoL packet to the correct
subnet.
2020-07-03 14:11:35 +02:00
OpenGnSys Support Team d6789f1384 #971 linkage error after split
/usr/bin/ld: src/cfg.o:/home/opengnsys/ogServer/src/ogAdmServer.h:25: multiple definition of `servidoradm'; src/ogAdmServer.o:/home/javi/trabajo/soleta/opengnsys/ogServer/src/ogAdmServer.h:25: first defined here
/usr/bin/ld: src/cfg.o:/home/opengnsys/ogServer/src/ogAdmServer.h:26: multiple definition of `puerto'; src/ogAdmServer.o:/home/javi/trabajo/soleta/opengnsys/ogServer/src/ogAdmServer.h:26: first defined here
/usr/bin/ld: src/cfg.o:/home/opengnsys/ogServer/src/ogAdmServer.h:35: multiple definition of `tbsockets'; src/ogAdmServer.o:/home/javi/trabajo/soleta/opengnsys/ogServer/src/ogAdmServer.h:35: first defined here
/usr/bin/ld: src/cfg.o:/home/opengnsys/ogServer/src/ogAdmLib.h:81: multiple definition of `ndebug'; src/ogAdmServer.o:/home/javi/trabajo/soleta/opengnsys/ogServer/src/ogAdmLib.h:81: first defined here
/usr/bin/ld: src/cfg.o:/home/opengnsys/ogServer/src/ogAdmLib.h:80: multiple definition of `szPathFileLog'; src/ogAdmServer.o:/home/javi/trabajo/soleta/opengnsys/ogServer/src/ogAdmLib.h:80: first defined here
/usr/bin/ld: src/cfg.o:/home/opengnsys/ogServer/src/ogAdmLib.h:80: multiple definition of `szPathFileCfg'; src/ogAdmServer.o:/home/javi/trabajo/soleta/opengnsys/ogServer/src/ogAdmLib.h:80: first defined here
2020-07-02 12:34:38 +02:00
OpenGnSys Support Team 37e91b2ebb #971 rename sources folder to src
Use the same folder as in ogClient.
2020-06-26 20:13:42 +02:00