Commit Graph

381 Commits (b3c25a827be0704bf9655fa3dbcf8178870c1eb6)
 

Author SHA1 Message Date
Alejandro Sirgo Rica b3c25a827b views: validate ip in client creation and update
Check the provided IP is valid before trying to send the payload
to the server.
2024-06-05 12:43:36 +02:00
Alejandro Sirgo Rica 1d8c752901 views: enable mac update in /action/client/update
Allow MAC address modification in the client update form.
2024-06-05 12:28:50 +02:00
Alejandro Sirgo Rica acd6d20eeb views: Prevent zero or negative size partitions
Defining a partition size <1 causes the partition to show with
a different configuration to the one configured in the form.
Any <1 size partition shows as Linux, Empty and the size field
without value.
Validate the form so we refuse any partition with size <1.
2024-06-05 11:31:11 +02:00
Alejandro Sirgo Rica 4c97b671aa forms: add support for UNICAST image restore
Add UNICAST and UNICAST-DIRECT to the image restore form.
UNICAST-DIRECT will transfer the images through a samba share
and proceed with the restore process without using any cache
partition.
UNICAST will try to first copy the image to the cache partition
and generate the full.sum file. Then the restore process is
executed.
2024-06-05 09:36:46 +02:00
Alejandro Sirgo Rica 462e6fb0ad forms: set default values to partition and format
Add default values to the partition and format form component.
Prevent index None from showing in the form when the client has an
empty disk with no partitions. Now the form will be created with
an entry of index 1 in adition to  Type and Filesystem as Empty in
that case.
2024-06-04 17:14:08 +02:00
Alejandro Sirgo Rica 43e3346a4a forms: ensure ip and mac are not empty in client add form
Use the WTForms validator InputRequired to check the field
and disable the submit button if either the IP or MAC fields
have no contents.
2024-06-03 17:26:09 +02:00
Alejandro Sirgo Rica cf6794d7c8 templates: use the correct storage units
Use base 2 storage units in html templates as that's the correct
representation for the values shown in the web.
Remove units such as "Gbytes" and "MB" for their binary byte unit
counterparts.
2024-05-30 15:50:37 +02:00
Alejandro Sirgo Rica 1f18af1208 views: prevent backtrace when no server is available
Define the timestamp in the codepath executed when no server is
found active. Prevent the web to show a backtrace because the
timestamp variable is used but not defined as it is only created
when a server is found.
2024-05-30 15:50:37 +02:00
Alejandro Sirgo Rica 9cb3a952b4 ogcp: add cache management page
Implement cache management through cache/list and cache/delete
API REST methods.
The view corresponds to the URL action/cache and contains three
main parts:
- Free cache available in the client's bubbles.
- Image selection form to request the deletion and view the
client with that image in cache.
- Cache details per client to see total, used and available cache.

The main usecase for the view is the removal of cache to make room
for new images in clients with slow connections. Checking clients
where available cache space is not enough to hold the new image and
then requesting removal of specific images.

The html template receives the following structures from the view:
storage_data[ip] = {'used': 223452345,
                    'total': 2345234523452}

client_images[ip] = [f'{image_name}.{image_checksum}', ...]

image_data[f'{image_name}.{image_checksum}'] = {
    clients: ['192.168.0.1', ...],
    size: 34534530850,
    name: image_name,
}
2024-05-30 15:50:32 +02:00
Alejandro Sirgo Rica f896107375 views: check if EFI filesystem is FAT32 in partition form
Add validation for partition and format form to ensure the EFI
partition has a FAT32 filesystem assigned.
2024-05-16 12:17:21 +02:00
Alejandro Sirgo Rica 8e60e95df6 make the boot OS form work over multiple clients
Enable working over multiple clients even if their OS configuration
is different to greatly improve the user's workflow.
Group clients with the same configuration under the same checkbox
in the form.
Report clients excluded from the boot instruction due to not
matching OS configuration.
2024-05-16 12:17:21 +02:00
OpenGnSys Support Team 7daf4c9ae1 views: add EFI partition type to MBR partition scheme
Add 0xef (239) entry to display this accordingly
2024-05-14 11:48:48 +02:00
Alejandro Sirgo Rica 6c68284cb1 js: only add MAC to client pills
Ignore any room, center or folder as they don't have a MAC address.
Trying to get the MAC of an scope element without one leads to a
JS exception.
2024-05-13 16:32:10 +02:00
Alejandro Sirgo Rica 7cb006d552 views: check if repository is selected in repo/ pages
Add checks and error report about non selected repository.
Non having a repository selected caused a traceback to be shown
in the web.
2024-05-13 10:45:19 +02:00
Alejandro Sirgo Rica 1ca3a97da7 js: remove console.log statement
Remove print statement generating noise in the browser logs.
2024-05-13 10:30:26 +02:00
Alejandro Sirgo Rica 7299b157d7 remove Format field from partition setup form
Remove the 'Format' field from the Partition and Format form as
the default value will always be to format the partitions.
This will lead to less portantial codepaths to maintain and
support and less manual clicks in the web form.
2024-05-13 10:07:52 +02:00
Alejandro Sirgo Rica 2b905ddcaf js: prevent js exception in pages without pill control
Add check to test if a pill control has been found and don't try
to add mac data to non existent client pill controls.
2024-05-13 10:07:47 +02:00
Alejandro Sirgo Rica 17f8b25fe5 views: ensure only one cache partition is defined
Add validation for the case where the user defines more than one
CACHE partition in the Partition and Format form.
2024-05-13 10:07:31 +02:00
Alejandro Sirgo Rica 6034ba2537 Make partition id non editable in partition form
Show the partition id as a non editable label in each partition
of the Partition and Format form.
Assign sequential partition id from top to down and recalculate
every partition id when a partition is removed.
2024-05-12 14:59:53 +02:00
Alejandro Sirgo Rica a04ef4e421 js: fix id update in partition form deletion
Update all the name and id fields of the elements in the partition
form after a delete operation.
Inconsistent ids make form.validate() to always return False, this
causes all the form validation code to be skipped.
2024-05-10 16:21:21 +02:00
Alejandro Sirgo Rica 0ba0b933e2 views: check target partition size in image restore
Compare image data size with the size of the target partition and
show an error if the size is not enough for the operation.
2024-05-09 14:21:19 +02:00
Alejandro Sirgo Rica 30562a9af5 views: prevent image restore on invalid partition types
Add partition type info to the form data.
Check if the user is trying to restore on an invalid partition
type and report an error if that's the case. The invalid types are
'EMPTY', 'LINUX-SWAP', 'CACHE', 'EFI' and 'WIN-RECOV'.
2024-05-09 12:00:58 +02:00
Alejandro Sirgo Rica dd77bc380e views: report error when spaces are found in image name
Validate imagen names in POST /action/image/create.
Remove spaces at the begining and end of the image name, then
report error if the image name still contains space characters.
2024-05-09 09:27:19 +02:00
OpenGnSys Support Team 6f488ae251 forms: remove EXFAT
ogclient does not support this filesystem type, remove it.
2024-05-07 11:10:05 +02:00
OpenGnSys Support Team f6f84cf8b2 views: use PART_TYPE_CODES, not PART_CODES 2024-02-21 10:38:52 +01:00
OpenGnSys Support Team f18f989011 views: unmatched ] in use getter to access PART_TYPE_CODES and FS_CODES 2024-02-21 10:32:20 +01:00
OpenGnSys Support Team ca1af1776d views: use getter to access PART_TYPE_CODES and FS_CODES
otherwise KeyError is raised on access to undefine value in the dictionary.
2024-02-21 10:09:15 +01:00
OpenGnSys Support Team 8fa2d07134 views: call POST /refresh from get_client_setup()
Refresh the disk layout before any command that displays it, no need to manually
call command -> refresh.

this cannot be skipped, POST /setup is an asynchronous invocation in ogserver is
asynchronous, POST /refresh provides the existing disk layout, otherwise it
shows the existing layout in the database which is not complete.

this is also good in case someone manipulates the disk from the command line.
2024-02-19 12:31:21 +01:00
Javier Hernandez 6ec26d161e views: add update center
add view to update center data such as its name or comment.
2024-02-09 13:21:55 +01:00
Javier Hernandez a609ede7a8 views: Add update room
Add view to modify room information such as name, gateway and netmask
2024-02-09 13:17:29 +01:00
Javier Hernandez d953700576 views: Add edit-folder
Add view to modify folder information such as name
2024-02-05 13:17:51 +01:00
OpenGnSys Support Team 5c3f700937 views: provide a hint in list images that one or more can be select
Provide an indication that one or more images can be selected.
2024-02-05 12:16:18 +01:00
OpenGnSys Support Team 685b34d56d templates: remove Server: and Repo: in list images
Although ogcp support for multiple server, the plan is to only support for one
server in this version.

Remove Server: context information and Repo: in list images
2024-02-05 12:11:50 +01:00
Javier Hernandez 7955baf35c views: preselect pxe boot mode in add client
preselect 'pxe' (if available) at adding a new client.

use a dedicated template for adding a client and remove irrelevant
partition table; client has yet to set its partition, so everytime, the
table would load empty.
2024-02-05 12:08:48 +01:00
Javier Hernandez 6153ca426f improve delete confirmation
Make delete confirmations show information in a manner that is easier to
read. This includes delete confirmations for centers, room and folder.

Messages are now more clear. Also, content table shows the type of the
items (folder, room, etc.)
2024-02-05 11:48:35 +01:00
Javier Hernandez 6a134b6337 Make list_images show only selected images
Make list images command show only information of the images the user
has selected in the sidebar.

Improve readability of the information.

Show size and data size attributes rounded

Warn the user if no images have been selected in sidebar
2024-02-02 12:48:28 +01:00
Javier Hernandez a41ad5eec6 views: Fix client-info form not fully read-only
fix some fields (boot-mode and oglive) in client-info form that, despite being flagged as
read-only, allowed the user to change values.
2024-02-01 12:01:32 +01:00
Javier Hernandez 85a22b9b81 improve delete confirmation page
In delete-center, delete-room and delete-folder confirmation pages, show
the ancestors of the items about to delete. Likewise, show the items it
contains.

For example, if user is about to delete a room, confirmation page will
display in which center it is contained and the clients and folder it
has inside
2024-02-01 11:20:04 +01:00
Javier Hernandez 556e06cc3d Add list images action
Add list images action that shows a list of all the images in each
server and their properties
2024-01-30 11:29:57 +01:00
Javier Hernandez 5892d5c8c3 templates: show folder icon
Add icons to differentiate folders.

Use &#x1F4C1; which represents folder using emojis.
2024-01-30 10:53:38 +01:00
Javier Hernandez db63b6bc60 views: Preselect most used oglive
When setting up oglive, preselect oglive that is most used by selected
clients. If only one client is selected, preselect that of the client.

In the unusual scenario where a client is set with an oglive that is not
in the ogserver's list of available oglives, preselect default.
2024-01-29 11:26:08 +01:00
Javier Hernandez a45f664905 dashboard: Show all servers, online or offline
Show in dashboard the list of all servers, regardless if they are online
or offline. If they are offline, uptime appears as 'offline'

Modify dashboard template to make it work with offline servers
2024-01-29 11:18:18 +01:00
OpenGnSys Support Team 7c86ecf9a1 views: remove one level of indentation in action_image_restore
r.status_code == requests.codes.ok is redundant, already checked for error,
remove this check and save one level of indentation.
2024-01-25 12:44:27 +01:00
OpenGnSys Support Team 8260cd0ac2 views: consolidate server error reporting
use ogserver_down() and ogserver_error()
2024-01-25 12:28:02 +01:00
Javier Hernandez 34a7cd4c4f views: Check HTTP GET response from ogserver (part 2)
Check that connection to ogserver works and GET response is ok.
Otherwise, show error message to the user and redirect.

If there is an error while talking to server, a serverError or a
serverErrorCode is raised so that it is possible to differentiate from
different errors and give an appropiate error to the user
2024-01-25 12:16:53 +01:00
Javier Hernandez a453d5fa87 views: Check HTTP GET response from ogserver
Check that GET response is ok. Otherwise, show error message to the user
and redirect
2024-01-24 13:01:48 +01:00
Javier Hernandez 7d55fd76d4 translations: update translations
Update Spanish and Catalan translations

And use _ in folder support
2024-01-24 10:23:17 +01:00
Javier Hernandez 55433f3d00 views: do not use '_' variable, it causes conflict with babel gettext()
Do not use the '_' variable, this causes a conflict with babel gettext() alias
'_' that results in a traceback.
2024-01-24 10:11:06 +01:00
Javier Hernandez ef46aa0599 views: Add client's name in action/setup/select
Show client's name (next to client's ip) in selectable in
action/setup/select form.
2024-01-22 19:43:24 +01:00
Javier Hernandez 4060b64612 views: Fix traceback due to missing translation
Fix crash when adding a folder if no room or center is selected
because no translation is available.

plan is to update translations in a follow up patch.
2024-01-22 19:41:42 +01:00