summaryrefslogtreecommitdiffstats
path: root/ogcp/views.py
Commit message (Collapse)AuthorAgeFilesLines
* views: check if the image fits in cache before image/restoreAlejandro Sirgo Rica2024-06-181-0/+33
| | | | | | | | | Check if the image to be restored fits in the client's cache to provide a better feedback for a failed restore operation. Report the needed free space in clients where it does not fit. Only check if the reported image size is not 0, older images may not define the "size" attribute. Ignore the check if the restore type is UNICAST-DIRECT.
* views: ignore image datasize check if datasize is zeroAlejandro Sirgo Rica2024-06-181-1/+1
| | | | | | Check the restored image fits in the target partition only if the datasize value is not zero. Proceed with the check before the image/restore request otherwise.
* ogcp: add room details view to scopes managementAlejandro Sirgo Rica2024-06-171-0/+32
| | | | | | Add a readonly view for the room data. Mark all the form fields as readonly and set the hidden attribute to the submit field.
* ogcp: add center details view to scopes managementAlejandro Sirgo Rica2024-06-171-0/+36
| | | | | | Add a readonly view for the center data. Mark all the form fields as readonly and set the hidden attribute to the submit field.
* views: fix image restore cache checks1.1.3-22Alejandro Sirgo Rica2024-06-171-2/+3
| | | | | | | Fix the scope of the has_cache variable to reset the value for each client. Check the partition type based on the PART_TYPE_CODES string version instead of the numerical value of the partition type.
* ogcp: add move client to scopes managementAlejandro Sirgo Rica2024-06-171-1/+62
| | | | | | | | | | Add front end for the client/move REST API. Enable the move of multiple clients selected from the sidebar of Scopes Management. Show the target of the move operation as a list of paths in a dropdown widget in the form. Each path will be structured as: Server/Center/Room The path will also contain folders if they are present.
* ogcp: fix restricted user mode1.1.3-21Alejandro Sirgo Rica2024-06-141-18/+13
| | | | | | | | | | | | | | Match user enabled scopes as numerical id instead of the scope name. Rename get_available_scopes to get_center_choices and add only center data. This function returns the list of values used to validate the data returned by the form (form.scopes.choices). Fix scope filtering to only allow the scopes stored in the user configuration. The filtering removes the scopes of type 'center' from the scopes dictionary when the center id is not present in the list of available scopes for the logged user.
* views: fix center/update validation with no selectionAlejandro Sirgo Rica2024-06-141-3/+3
| | | | | | | Check no center selection before missing server data. Lack of checkbox selection will not carry server data as server information is defined based on the components selected. Report no center selection instead of lack server data in that case.
* views: fix folder/update validationAlejandro Sirgo Rica2024-06-141-2/+2
| | | | | Validate request parameters before accessing the dictionary values. Prevent web backtrace.
* views: remove duplicated validation errorsAlejandro Sirgo Rica2024-06-131-2/+0
| | | | | | Remove flash() error messages after validate_elements(). validate_elements() defines error messages for min and max element selection from sidebar.
* views: allow scope server data in restricted user modeAlejandro Sirgo Rica2024-06-131-1/+1
| | | | | | | | | | Add the server scope during scope filtering for user accounts with restricted scope access. The HTML server scope component in the sidebar holds important information as a hidden component. The removal of the server scope also removes the respective HTML component in the web. Missing server scopes result in a backtrace while trying to get data such as server IP.
* views: skip non-200 OK requests to serversOpenGnSys Support Team2024-06-121-0/+3
| | | | | Update multi_request() to skip non-200 OK requests to servers, otherwise traceback is displayed while trying to access the json body.
* views: check cache presence in tiptorrent and unicast restoreAlejandro Sirgo Rica2024-06-071-2/+10
| | | | | | Ensure a cache partition is present before trying to do a UNICAST or TIPTORRENT image restore. Inform the user about the lack of cache in such case.
* views: enable client partitioning without cacheAlejandro Sirgo Rica2024-06-071-4/+0
| | | | | Remove the check that disables creating a client without cache. This is the initial step towards unicast restoration support.
* views: exclude 00unknown and 10 from boot mode listAlejandro Sirgo Rica2024-06-071-1/+3
| | | | | Ignore '00unknown', '10' from the list of boot modes in the form shown in action/mode.
* views: use conventional for loop in boot mode selectionAlejandro Sirgo Rica2024-06-071-1/+5
| | | | | Use a conventional for loop instead of a oneliner. Improve code readability.
* views: show human readable boot modesAlejandro Sirgo Rica2024-06-071-2/+12
| | | | | | | Add better visualization to the boot modes shown in /action/mode. Use a dictinary to implement hardcoded human readble strings of the form choices. A better method will be implemented in the future.
* views: fix invalid url redirection in client/server addAlejandro Sirgo Rica2024-06-071-2/+2
| | | | | Remove 2 instances of redirect(url_for('servers')), this path does not exist anymore and causes the web to show a backtrace.
* views: validate ip in client creation and updateAlejandro Sirgo Rica2024-06-051-0/+14
| | | | | Check the provided IP is valid before trying to send the payload to the server.
* views: enable mac update in /action/client/updateAlejandro Sirgo Rica2024-06-051-1/+0
| | | | Allow MAC address modification in the client update form.
* views: Prevent zero or negative size partitionsAlejandro Sirgo Rica2024-06-051-0/+4
| | | | | | | | 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.
* forms: ensure ip and mac are not empty in client add formAlejandro Sirgo Rica2024-06-031-0/+5
| | | | | | Use the WTForms validator InputRequired to check the field and disable the submit button if either the IP or MAC fields have no contents.
* views: prevent backtrace when no server is availableAlejandro Sirgo Rica2024-05-301-0/+1
| | | | | | | 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.
* ogcp: add cache management pageAlejandro Sirgo Rica2024-05-301-1/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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, }
* views: check if EFI filesystem is FAT32 in partition formAlejandro Sirgo Rica2024-05-161-0/+4
| | | | | Add validation for partition and format form to ensure the EFI partition has a FAT32 filesystem assigned.
* make the boot OS form work over multiple clientsAlejandro Sirgo Rica2024-05-161-13/+47
| | | | | | | | | 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.
* views: add EFI partition type to MBR partition schemeOpenGnSys Support Team2024-05-141-0/+1
| | | | Add 0xef (239) entry to display this accordingly
* views: check if repository is selected in repo/ pagesAlejandro Sirgo Rica2024-05-131-0/+12
| | | | | | Add checks and error report about non selected repository. Non having a repository selected caused a traceback to be shown in the web.
* remove Format field from partition setup formAlejandro Sirgo Rica2024-05-131-2/+2
| | | | | | | 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.
* views: ensure only one cache partition is definedAlejandro Sirgo Rica2024-05-131-3/+7
| | | | | Add validation for the case where the user defines more than one CACHE partition in the Partition and Format form.
* Make partition id non editable in partition formAlejandro Sirgo Rica2024-05-121-7/+7
| | | | | | | 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.
* views: check target partition size in image restoreAlejandro Sirgo Rica2024-05-091-4/+12
| | | | | Compare image data size with the size of the target partition and show an error if the size is not enough for the operation.
* views: prevent image restore on invalid partition typesAlejandro Sirgo Rica2024-05-091-2/+9
| | | | | | | 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'.
* views: report error when spaces are found in image nameAlejandro Sirgo Rica2024-05-091-1/+6
| | | | | | 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.
* views: use PART_TYPE_CODES, not PART_CODES1.1.3-18OpenGnSys Support Team2024-02-211-1/+1
|
* views: unmatched ] in use getter to access PART_TYPE_CODES and FS_CODES1.1.3-17OpenGnSys Support Team2024-02-211-2/+2
|
* views: use getter to access PART_TYPE_CODES and FS_CODES1.1.3-16OpenGnSys Support Team2024-02-211-8/+8
| | | | otherwise KeyError is raised on access to undefine value in the dictionary.
* views: call POST /refresh from get_client_setup()OpenGnSys Support Team2024-02-191-1/+9
| | | | | | | | | | | 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.
* views: add update centerJavier Hernandez2024-02-091-0/+46
| | | | add view to update center data such as its name or comment.
* views: Add update roomJavier Hernandez2024-02-091-0/+44
| | | | Add view to modify room information such as name, gateway and netmask
* views: Add edit-folder1.1.3-15Javier Hernandez2024-02-051-0/+36
| | | | Add view to modify folder information such as name
* views: provide a hint in list images that one or more can be selectOpenGnSys Support Team2024-02-051-1/+1
| | | | Provide an indication that one or more images can be selected.
* views: preselect pxe boot mode in add clientJavier Hernandez2024-02-051-2/+4
| | | | | | | | 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.
* improve delete confirmationJavier Hernandez2024-02-051-17/+9
| | | | | | | | 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.)
* Make list_images show only selected imagesJavier Hernandez2024-02-021-12/+21
| | | | | | | | | | | 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
* views: Fix client-info form not fully read-only1.1.3-14Javier Hernandez2024-02-011-22/+2
| | | | | fix some fields (boot-mode and oglive) in client-info form that, despite being flagged as read-only, allowed the user to change values.
* improve delete confirmation pageJavier Hernandez2024-02-011-8/+35
| | | | | | | | | | 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
* Add list images actionJavier Hernandez2024-01-301-0/+25
| | | | | Add list images action that shows a list of all the images in each server and their properties
* views: Preselect most used ogliveJavier Hernandez2024-01-291-3/+33
| | | | | | | | 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.
* dashboard: Show all servers, online or offlineJavier Hernandez2024-01-291-11/+29
| | | | | | | 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