| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Check if the repo is used by any client before the deletion in
/repository/delete
|
|
|
|
|
|
|
|
|
|
|
| |
add samba credentials to ogserver.json
"samba" : {
"user" : "og",
"pass" : "test"
}
and use it in ogrelive template.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove 'is_default' column from 'lives' database table and add
column 'priority' of type INT. This new value can store a priority
value but the actual design only stores 1 or 0.
Update GET oglive/list to use the new 'priority' database value.
Add POST oglive/default.
Set the database column 'priority' to 1 if the new default
exists in the database. Set the others to priority 0.
Modify legacy ogliveinfo.json if the new default coresponds to a
live not found in the database. Edit the field 'default' of the
file's json.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use http error code to improve better error reporting:
- 404 Not Found
+ object is not found
- 409 Conflict
+ object already exists
- 423 Locked
+ object is in use
- 500 Internal Server Error:
+ database query fails
+ out of memory
- 501 Service Unavailable
+ Cannot connect to database
- 507 Insufficient Storage
+ Disk is full
|
|
|
|
| |
this is to improve error reporting for ogcp and ogcli
|
|
|
|
|
| |
add struct og_rest_ctx and use it to consolidate rest API handlers and to
ease future extensibility.
|
|
|
|
| |
only used in rest.c, remove the forward declaration in json.h
|
|
|
|
|
|
| |
Remove legacy "echo" parameter.
Add boolean "inline" parameter to determine if the execution is
an inline command or a predefined script in /opt/opengnsys/shell/
|
|
|
|
|
|
|
|
|
|
|
| |
Add built-in ogrelive grub2 boot mode template and use it to generate the grub2
boot file for each computer for the new live system.
Use grub2 http to download vmlinuz, initrd.img.
Use live support to download filesystem.squashfs through http.
check for vmlinuz in cache, as usual, otherwise fallback to network boot.
|
|
|
|
|
|
| |
Prepare to reuse this code for the new live system.
Add two new fields to represent server and repository IP.
|
|
|
|
| |
caller function releases this, this results in double free.
|
|
|
|
|
|
|
| |
Check the parent node along with the folder name to identify if
the folder already exists.
Fix error when using a folder name defined in any other folder.
|
|
|
|
| |
Rename name field for the contents of the new live format.
|
|
|
|
|
|
| |
Update the session status based on the value of the "status" field
in the refresh response, the possible values are:
LINUXS, LINUX, WINS, WIN.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add API to register and delete oglives from the database.
POST /oglive/add
Register an installed oglive in the database, if the entry already
exists update its creation date.
Example request payload:
{"name": "ogrelive-6.1.0-26"}
POST /oglive/delete
Remove an installed oglive from the database
Example request payload:
{"name": "ogrelive-6.1.0-26"}
|
|
|
|
|
| |
Append oglive info at the end of the array of the "oglive" entry.
Each entry defines the name of the oglive and the creation date.
|
|
|
|
| |
provide a bit more information in the logs to identify the error
|
|
|
|
| |
instead of using image id that client reports
|
|
|
|
|
| |
this repository id is already added to the database when the image creation is
requested, remove this code to update it again when the client replies
|
|
|
|
| |
use grub2 template for GET /mode to list boot modes
|
|
|
|
|
| |
if client succeeds to create the image but server fails to register this image,
then remove the image stub in the database.
|
|
|
|
|
|
|
| |
Add last client command context that is used in the request to client.
This allows to remove the stub image entry in the database in case that the
image creation fails.
|
|
|
|
| |
just a preparation, no functional changes are intended.
|
|
|
|
| |
just a preparation, no functional changes are intended.
|
|
|
|
|
|
|
| |
if center is removed, leave images in place, image belongs to
repository, not to center.
This comes from b4870733 ('#942 Add REST POST /center/delete method')
|
|
|
|
|
|
|
|
|
| |
Add safe_strtoull to validate the execution of strtoull.
Definining the base of the number is required becase partition
codes are base 16 but they lack the 0x prefix.
Replace uses of atoi and strtoull/strtoul and log the conversion
errors.
|
|
|
|
|
|
|
| |
Add a different boot mode configuration for the legacy live and the
new live.
Remove outdated params for ogReLive.
|
|
|
|
|
|
|
|
|
| |
Some equipment reports this error:
Error 28: Selected item cannot fit into memory
because line is too long, revert this commit until there is a better way
to add fetch= only on new live images.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split partition data by client instead of a single array with every
partition.
Old payload structure:
{
'sessions': [{'disk': 1, 'partition': 1, 'name': 'unknown'}, {'disk': 1, 'partition': 2, 'name': 'unknown'}, {'disk': 1, 'partition': 1, 'name': 'Ubuntu 22.04.4 LTS 64 bits'}]
}
New payload structure:
{
'sessions': [
{'addr': '1.1.1.1', 'partitions': ['disk': 1, 'partition': 1, 'name': 'Ubuntu 22.04.4 LTS 64 bits']},
{'addr': '1.1.1.2', 'partitions': [{'disk': 1, 'partition': 1, 'name': 'unknown'}, {'disk': 1, 'partition': 2, 'name': 'unknown'}]}
]
}
|
|
|
|
| |
Delete image data after a failed image creation.
|
|
|
|
|
|
|
| |
Move og_delete_image into dbi.c as og_dbi_delete_image to use it
from client.c
no functional changes.
|
|
|
|
|
| |
Add "fetch=http://IP_REPO/OGLIVEDIR/filesystem.squashfs" string
to the client boot mode configuration.
|
|
|
|
| |
not < 0, fix this.
|
|
|
|
| |
repository need to have unique IP address, otherwise bail out.
|
|
|
|
| |
do not allow request without name.
|
|
|
|
| |
unused since 87be2ce08
|
|
|
|
|
| |
Add "used_cache" and "free_cache" fields to the payload of GET
/cache/list.
|
|
|
|
|
| |
Move list of images in the cache to cache_data. Add new functions to
initialize cache data (image list) and release it.
|
|
|
|
| |
this is accessed on list iterations in first place, improve cache locality.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extend database table ordenadores_particiones to add new "used_size" and "free_size" fields.
FIELD TYPE
| tamano | bigint |
| uso | tinyint |
| used_size | bigint |
| free_size | bigint |
"tamano" is the field storing the total size of the partition.
"uso" is a field storing the integer percentage of use, it is preserved for backwards compatibility with scritps that access the database.
"used_size" and "free_size" contain the used and free partition
size in bytes.
Old response from ogClient for /cache/delete, /cache/fetch
and /image/restore:
{
'cache': [
{'name': 'windows.img', 'size': 2432370213, checksum: '5d4dcc677bc19f40a647d0002f4ade90'},
{'name': 'linux.img', 'size': 243234534213, checksum: '3eb22f888f88a55ad954f55644e1192e'}
]
}
New response:
{
'cache': {
'used_size': 4520232322423,
'free_size': 48273465287452945,
'images': [
{'name': 'windows.img', 'size': 2432370213, checksum: '5d4dcc677bc19f40a647d0002f4ade90'},
{'name': 'linux.img', 'size': 243234534213, checksum: '3eb22f888f88a55ad954f55644e1192e'}
]
}
}
Parse the new "free_size" and "used_size" fields of each partition data in the response payload of /refresh
Parse "free_size" and "used_size" fields of the cache data in the reponse payload of /image/restore, /cache/delete and /cache/fetch
Replace "used_size" field of GET /client/setup with the value
of the new database field "used_size"
|
|
|
|
| |
Report failure when trying to refresh client information.
|
|
|
|
| |
json parser already validates attributes must be set on.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Put ogserver into diet, remove this feature, including pending command queue.
|
|
|
|
|
| |
- check maximum limit of clients
- reject empty array
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add GET /efi request to obtain information about the client's
boot entries.
Field inside the /refresh payload
'efi': {
'entries': [
{
"order": 0,
"name": "Boot0000",
"active": false,
"description": "grub"
},
{
"order": 1,
"name": "Boot0001",
"active": true,
"description": "UEFI: PXE IP4 Realtek PCIe GBE Family Controller"
}
]
}
If the client is not a EFI system it won't add the 'efi' field.
If an entry is not in the boot order it won't have the 'order' field.
GET /efi resquest payload structure:
{
'clients': ['10.141.10.21', '10.141.10.22']
}
GET /efi response's structure:
{
'clients': [
{
'ip': '10.141.10.21',
'entries': [
{
"order": 0,
"name": "Boot0000",
"active": false,
"description": "grub"
},
{
"order": 1,
"name": "Boot0001",
"active": true,
"description": "UEFI: PXE IP4 Realtek PCIe GBE Family Controller"
}
]
},
{
'ip': '10.141.10.22',
'entries': []
}
]
}
The client with ip 10.141.10.22 is a BIOS system.
If an entry does not appear in the boot order it won't have the
'order' field.
|
|
|
|
| |
use correct format for mac SQL query to fix 568d709
|
|
|
|
| |
rise this artificial limit.
|
|
|
|
| |
ID is integer, fix inconsistency in dc68d0f ('rest: add POST /client/repo')
|
|
|
|
|
|
| |
use first repository/server in the list in case no specific repository/server
is found in the same network, this is a fallback that works if repository/server
is reachable through gateway.
|