summaryrefslogtreecommitdiffstats
path: root/ogcp/views.py
Commit message (Collapse)AuthorAgeFilesLines
* Check images list content in client details viewJavier Sánchez Parra2021-12-201-1/+1
| | | | Otherwise, client image assignation fails if "images" variable is empty.
* Add available ogLives to client detailsJavier Sánchez Parra2021-12-171-0/+6
| | | | Otherwise, ogLive field always shows the default value.
* Add set ogLive to commandsJavier Sánchez Parra2021-12-161-1/+38
| | | | | | This action is related to /oglive in ogServer's API. Allows changing the ogLive for a set of given clients, previously selected in the /commands view.
* Add scope permission supportJavier Sánchez Parra2021-12-101-3/+15
| | | | | | | ogCP limits which scopes can use each user. Configuration file stores allowed scopes by their names. Leave scope list empty to give a user permissions on all scopes.
* Add multi user supportJavier Sánchez Parra2021-12-081-10/+26
| | | | | It is inspired by the following example: https://github.com/maxcountryman/flask-login/blob/c760c0ef7ccc95d49b4693200245a4f2b148d41b/README.md#usage
* Add legacy real-time logJavier Sánchez Parra2021-11-081-0/+12
| | | | | | | | Clients in ogLive offer a web page with lighttpd that shows a real-time log. This commit links this log in ogcp. Future patches will deprecate this log functionality in favour of more robust solutions.
* Set default value on partition data parsingJavier Sánchez Parra2021-11-021-3/+3
| | | | | Otherwise, ogcp breaks when receiving an unknown disk table type, partition type or file system.
* Support partition of computers with several disksJavier Sánchez Parra2021-11-021-10/+22
| | | | | | | | | Add a new select input and button to choose which disk you want to partition. TODO: Current argument parsing function returns a list with all the arguments, except csrf_token. Future patches should add granular parsing of different types of arguments.
* Add legacy logJavier Sánchez Parra2021-10-281-0/+16
| | | | | Future patches will deprecate this log functionality in favour of more robust solutions.
* Add partitions info to client detailsJavier Sánchez Parra2021-10-131-1/+15
| | | | Show a table with client's disks and partitions information.
* Add "Delete image" actionJavier Sánchez Parra2021-09-291-0/+17
| | | | | | | Adds a new button in the images view. This action handles image deletion, one at a time for security. Users must select an image using the images tree.
* Fix cache partition creationJavier Sánchez Parra2021-09-161-0/+3
| | | | | | | Partition & Format JSON cache fields always have the default values (no cache) although users order to create a cache partition. Set JSON cache fields with the values filled by the user.
* Add image details actionJavier Sánchez Parra2021-09-031-1/+25
| | | | | This action is used to visualize the specific details of an image, as its ID, name, size, etc.
* Rename validate and parse IPs functionsJavier Sánchez Parra2021-09-031-36/+36
| | | | | | | | | | | These functions can work with any kind of strings and not only with IPs. This is required by the "image details form" that a follow up patch implements. "Image details form" validates and parses IDs instead of IPs with these functions. Rename validate and parse IPs functions to a generic name, so it makes sense to use them with any kind of string.
* Add images viewJavier Sánchez Parra2021-09-031-0/+7
| | | | | | | Images view manages all the images stored in the server. Follow up patches adds actions to get and edit image details, and to delete them.
* Add most common partition codes and filesystemsJavier Sánchez Parra2021-08-241-2/+18
| | | | To increase the compatibility of "Partition & format" (aka setup).
* Add EFI, NTFS and LINUX GPT partition codesJavier Sánchez Parra2021-07-301-1/+4
| | | | | | | Otherwise, ogcp fails to parse them when received. Note: this commit write the codes in decimal notation, but the common way is hexadecimal notation.
* Add "Delete center" actionJavier Sánchez Parra2021-07-301-1/+21
| | | | | | | | Creates "delete center" form with a select to choose a center to delete. Adds a new button in the scopes view. Because scopes checkboxes values maps to ips the only way to specify the center to delete is in the delete center form itself, using a select input.
* Add "Delete client" actionJavier Sánchez Parra2021-07-291-0/+15
| | | | | | | Adds a new button in the scopes view. This action handles clients deletion on one or multiple scopes. Users must select clients using the scopes tree.
* Add IPs validation to Poweroff and Setup formJavier Sánchez Parra2021-07-291-0/+4
| | | | | Otherwise, users see an error page, instead of a float message asking to select at least one computer.
* Fix submit command redirectionJavier Sánchez Parra2021-07-291-22/+22
| | | | | | Current submit command behaviour redirects the user to scopes views. This commit changes the behaviour when submitting a command forms to redirect users to the general command view.
* Add full scheme partitioning supportJavier Sánchez Parra2021-07-281-97/+36
| | | | | | | | | | The initial "Partition & Format" (aka setup) form only allows to modify one partition at a time. This commit updates it to allow to modify the whole disk partition schema in one go, without pop-ups and transitions. This is a remake of the previous form using FieldList de WTForms and javascript to duplicate / remove FieldList adapted to the attributes available in WTForms.
* Update scopes tree dynamicallyDaniel García Moreno2021-07-071-1/+7
| | | | | | | | | | | | | | | | | This patch adds a javascript function to update the scope tree (on/off) state. This javacript function is called every second, does a call to the new backend endpoint `/scopes/status` and updates the tree classes depending on the current data. The new `/scopes/status` endpoint just returns the scopes tree as json. This patch also adds an icon in the tree leafs, a filled green circle when the state is `on`, and a empty red circle when the state is `off`. There's also a new javascript function to unfold all collapses in the scope tree.
* Create "Add Center" form and viewJavier Sánchez Parra2021-06-301-1/+18
| | | | | | | | Creates "add center" form with "name" as required input and "comment" as optional input. In the future, the CenterForm can be used to display center information once such functionality lands in the ogserver.
* Add new partition button in setup actionDaniel García Moreno2021-06-301-5/+29
| | | | | | | | | | | | | | | | | | | | | This patch adds a way to add a new partition to the setup.html template. This button opens a modal dialog with a new form and calls a new endpoint to create the new partition (this endpoint does nothing, it's needed to be implemented in the future). I've followed the initial design for this template, with one form per each partition, so every button will call a function and reload the page. It's possible to do all actions at once, but that will require a rework of this, to do that we can just define an unique form in the whole html, remove all the "Modify" buttons and add just one "Apply" button at the end. But maybe that option is a lot complex in the backend because will require to validate all the changes at once. This patch also improves the setup.html form without using flask-bootstrap and rendering the form in the template directly with the bootstrap4 classes.
* Keep the selection in the sidebar for mode & setupDaniel García Moreno2021-06-171-6/+12
|
* Add commands view and macros.htmlJose M. Guisado2021-06-171-0/+6
| | | | | | | | | | | | Commands view has a scope sidebar with the content block filled with command buttons (poweroff, wol, etc.) This commit leaves scope create/delete/update buttons in the /scopes view, which serves that purpose. To avoid duplicating scope tree creation macro, an external macros.html is created, this template can be imported. Future macros needed can be written in there.
* Add chart to dashboardDaniel García Moreno2021-06-081-1/+1
| | | | | | | This patch adds an example chart using chartjs to the dashboard to show the disk usage. https://www.chartjs.org/docs/latest/getting-started/
* Add sidebar and command bar to base templateDaniel García Moreno2021-06-081-21/+27
| | | | | | | | | | | | | Modify the base template to add the sidebar and command bar, implemented just in the scopes view. This patch also modifies the "actions/mode.html" template to be shown in the scopes page. Any other action that should be inside the scopes should do the same, add the scopes and clients to the template context and use the "scopes.html" as base in those actions. The notification has been also changed to use a toast notification instead of the usual alert to avoid changing the layout on error.
* Redirect to login page by defaultDaniel García Moreno2021-06-011-12/+12
| | | | | This patch redirects to the login page instead of showing an empty page when the user is not logged in.
* ogcp is AGPLv3+OpenGnSys Support Team2021-05-201-0/+7
| | | | Update license header in files.
* Add "Delete Room" form and viewJavier Sánchez Parra2021-05-201-1/+25
| | | | | | | | Creates "delete room" form with a select to choose a room to delete. Adds a new button inside the button group in the scopes view. Because scopes checkboxes values maps to ips the only way to specify the room to delete is in the delete room form itself, using a select input.
* Create "Add Room" form and viewJose M. Guisado2021-05-201-1/+22
| | | | | | | | | | | | | Creates "add room" form with required inputs only: center, name and netmask. Adds a new button inside the button group in the scopes view. Because scopes checkboxes values maps to ips the only way to specify the center in which to add the room is in the add room form itself, using a select input. In the future, the RoomForm can be used to display room information once such functionality lands in the ogserver.
* Add ogLive list to the dashboardJavier Sánchez Parra2021-05-201-1/+3
| | | | | Add list with ogLives installed in the server and highlight the default ogLive.
* Add disk stats to the dashboardJavier Sánchez Parra2021-05-201-1/+2
| | | | | | | | | | | | Add the following disk stats to the dashboard: * Disk size: shows the amount of total disk size in Gibibytes. * used: shows the amount of used disk size in Gibibytes. * available: shows the amount of free disk size in Gibibytes. * use(%): shows the amount of used disk size in percentage.
* Add latest images to the dashboardJavier Sánchez Parra2021-05-201-0/+5
| | | | | | | Users want to know latest created/modified images to manage new images or changes made on existing images. This commit adds a list with the 10 latest created or modified images.
* Add number of images to the dashboardJavier Sánchez Parra2021-05-201-1/+4
| | | | Users want to easily know the number of images an ogServer has.
* Change login redirection to "Home"Javier Sánchez Parra2021-05-201-1/+1
| | | | | | | | | | When the user logs into ogcp, the web page redirects him to "Scopes". In the future ogcp will have a dashboard showing multiple stats and details. This dashboard will be in "Home" path and we want the user to see it when he logs in. Change login redirection from "Scopes" to "Home".
* Add cosmetic improvementsJose M. Guisado2021-03-241-1/+15
| | | | | | | | * Adds label for each action page. * Adds a colored state for opengnsys connected clients * Fix nav active item * Rename some actions * Adds DISK to partition and format form
* Add loginJose M. Guisado2021-03-051-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | Ogcp requires a simple login page in order to avoid exposure of the ogServer API to anyone trying to access the web page. Because the main authorization mechanism in ogServer is the api token the login implemented for the ogcp does not include registration process but a single user and password specified in the ogcp.json. "USER": "user", "PASS": "pass" Adds two new views: /login and /logout. They are used to login the user so that the rest of views regarding ogServer functionality can be accessed in a "login required" fashion. Index view (/) is an exception, it can be accessed logged in or not so different data can be displayed. Templates can now access a variable "current_user" to get information about login status. This is a Flask-Login feature. - Templates regarding login can be found in templates/auth/ - Login form is defined in forms/auth.py to separate it from action_forms.py - Adds Flask-Login module to requirements.txt - Adds default user and pass in ogcp.json
* Cosmetic enhacementsJose M. Guisado2021-03-051-4/+32
| | | | | | * Use validate_ips and flashed messages for some more actions. * Use extra_classes in quick_form macro to add bootstrap classes to rendered forms
* Add multiple ip handling to image restore formJose M. Guisado2021-02-221-13/+31
| | | | | | | | | | This patch enables a set of ips to be specified as a target of an image restore action. The set of selected computers must have the same partition setup in order for the form to be rendered sucessfully, if different partition setups are detected a redirection is made and an error flash message is shown.
* Add boot mode to actionsJose M. Guisado2021-02-171-1/+29
| | | | | | This action is related to /mode in ogServer API. Allows changing the netboot template for a set of given clients, previously selected in the /scopes view.
* Add ips field validation and better redirectionsJose M. Guisado2021-02-161-6/+22
| | | | | | | | Add a function to validate that the ips received from the /scopes form is valid (no more, no less). Also redirects to the /scopes when any final request to the ogServer is responded by a "200 OK"
* Add FAT32 to FS_CODES dictJose M. Guisado2021-02-161-0/+1
| | | | | | An error was produced when rendering the setup form of a computer with any FAT32 partition. It was missing from the mapping of codes received in a response to a given filesystem.
* Start using Flask flash messagesJose M. Guisado2021-02-161-9/+10
| | | | | | These are used to store a message string that can be later accessed. We can use Flask flash messages to alert about any error or providing info when processing a request.
* Add image create templateJose M. Guisado2021-02-101-1/+1
| | | | | | | | Image creation action was lacking a template to render the form. This patch adds said template. Also redirects to /scopes when the request was processed by the ogserver successfully.
* Add UNICAST-DIRECT method to image restoreJose M. Guisado2021-02-101-1/+1
| | | | | | | | | | | | Previously the only method (in the form select) was "UNICAST". This patch enables specifying a correct parameter for the underlying script to fetch the image to be restored. UNICAST-DIRECT makes the administrator transfer the image through the network. UNICAST-CACHE indicates the taget pc to search for the image in its cache partition. Also redirects to the /scopes when ogserver responds with 200 OK.
* Add setup modif part scheme param and autofill partition_setupJose M. Guisado2021-02-101-4/+30
| | | | | | | | | | | | | | A new parameter for the setup/ was added: type. Regarding the disk partition scheme. It must be either "MSDOS" or "GPT". ogServer expects a 4 partition setup in order to succesfully execute a setup/ command. Ogcp is currently getting the partition to modify one partition at a time. This patch enables ogcp to "autofill" with empty partitions the partition_setup payload parameter. TODO: In the future, the setup/ logic should not need to query the database once again in order to create the 'partition_setup' payload parameter with the form modifications.
* config: use from_json to read ogserver configJose M. Guisado2020-11-061-1/+0
| | | | | | | | | | | | | | | This patch introduces the usage of Flask.Config class so the config can be read at startup (__init__) only once. Config keys must be uppercase so that from_json method does take it into account. dormousehole.readthedocs.io/en/stable/api.html#flask.Config.from_json Prior to this patch each request required opening and closing the ogserver.json file via load_config in views.py. In the future the decorated load_config function inside views.py may be removed to avoid creating multiple instances of the OGServer class.