summaryrefslogtreecommitdiffstats
path: root/ogcp/views.py
Commit message (Collapse)AuthorAgeFilesLines
* views: allow to edit a clientJavier Hernandez2023-11-241-0/+64
| | | | | | | | | | | Add a form to allow the user to update a client. ip field is in read only mode because this is the primary key to identify a client in db. Fields corresponding to boot mode (ie. oglivedir and boot) are also in read only for now; ogServer has to fix set boot mode functionality before it can be added here.
* src: Remove netdriver field in client formJavier Hernandez2023-11-231-1/+1
| | | | | | | | Remove netdriver field from forms used to add or update a client. At the time of creating (or updating) a client, ogCP uses a hardcoded value for this field of the payload. This field is not used by oglive in any way, remove it.
* views: add field 'gateway' in add-room formJavier Hernandez2023-11-141-1/+2
| | | | Add the possibility to configure a gateway in a room.
* ogcp: add backup boolean field in image updatev1.1.3Jose M. Guisado2023-07-071-0/+1
| | | | | | | | User can use this boolean field to specify if an backup copy needs to be created before updating an image. This only applies when sending a request to a client (ogClient) supporting this parameter.
* views: use \s to match whitespace in client import regexJose M. Guisado2023-06-281-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Some programs substitute regular space characters (\u0020) by en spaces (\u2002) when displaying monospace text. Others replace it by non-breaking spaces. Using a character set such as [ \t\n] to match any possible "space related" character. Use \s to match any kind of whitespace related character in the regex. Pasted from python's documentation: \s For Unicode (str) patterns: Matches Unicode whitespace characters (which includes [ \t\n\r\f\v], and also many other characters, for example the non-breaking spaces mandated by typography rules in many languages). If the ASCII flag is used, only [ \t\n\r\f\v] is matched. [...] Fixes: d9f8c9561823daf234e2348b5ea0db2e92d29216 ('views: better dhcp conf parsing when importing clients')
* views: better dhcp conf parsing when importing clientsJose M. Guisado2023-06-271-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new regex allows parsing of: - Irrelevant options that the user may paste from its config file, eg. 'option host-name'. - Allows linebreaks. Hosts still require to have 'hardware ethernet' first, and then 'fixed-address'. For example this regex admits dhcp host declarations such as host pir36-22_78 {       hardware ethernet d8:5e:d3:25:28:9d;       fixed-address 10.1.36.78;       option host-name "pc_78"; } Summary of the regex: (?: *host *) # Match host keyword and spaces ([\w.-]*) # Match any word character (alphanum and underscore) (?:[ \n\r]*{[ \n\r]*) # Match any space or newline, then match { and any following space or newline (?:[ \t]*hardware *ethernet *) # Match any space or tab character followed by 'hardware ethernet' ((?:[0-9A-Fa-f]{2}[:-]){5}(?:[0-9A-Fa-f]{2})) # Match the mac address using ':' or '-' as separator (?: *;) # Match any space character before a ';' (?:[ \t\n\r]*fixed-address *) # Match any space, tab or newline followed by 'fixed address' and any following space (\d+\.\d+\.\d+\.\d+) # Match an ip address (no validity check) (?: *;)(?:[ \r\n]*[^}]*}) # Match any space followed by ';', then match any character except '}'
* views: add placeholder text inside dhcp conf textareaJose M. Guisado2023-06-271-0/+8
| | | | | | | | | Help user by hinting the current expected format via a placeholder in the textarea box. Current regex has its limitations when parsing dhcpd host declarations. It does not support multi line host declarations or different options outside "hardware ethernet ..." and "fixed-address ...".
* Show warning when formatting clients without disksv1.1.2Javier Sánchez Parra2022-11-171-0/+3
| | | | | | If an administrator selects a client without disks and goes to "Partition & Format", ogCP redirects it again to "Commands" and shows a floating message indicating that the client has no disks.
* Fix typo in save_user() functionJavier Sánchez Parra2022-11-171-1/+1
|
* Assign servers to usersJavier Sánchez Parra2022-11-071-0/+3
| | | | | Instead of give permissions on all centers of a server selecting each one of them, you can select the server that contains all this centers.
* Set server variable on GET /action/image/updateJavier Sánchez Parra2022-11-071-0/+1
| | | | | | Otherwise, ogCP crashes on image update. Fixes: 8726ade ("Adapt commands to work with several ogServers")
* Remove unused variable "g.server"Javier Sánchez Parra2022-09-291-4/+0
| | | | | | Since ogCP multi ogServer support, g.server is not used anymore. The list of available servers is stored in the global variable "servers" at og_server.py
* Get available scopes from all the serversJavier Sánchez Parra2022-09-291-6/+10
| | | | | When creating o editing a user, you can select in which scopes from all servers the user has permission.
* Fix ogServer deletion from the configuration fileJavier Sánchez Parra2022-09-291-1/+6
| | | | | Otherwise, users can not remove from the web a server declared in the deprecated way.
* Create servers list if do not existsJavier Sánchez Parra2022-09-291-1/+5
| | | | | Otherwise, if the configuration file do not have 'SERVERS' array, ogCP crashes trying to append a new server.
* Adapt aux function to work with several ogServersJavier Sánchez Parra2022-09-291-7/+7
| | | | | Otherwise, get_repositories() and get_repository() functions only get the repositories of the first ogServer of the list.
* Fix repositories retrievingJavier Sánchez Parra2022-09-271-2/+2
| | | | | | | Commit X wrongly changed the URI to retrieve the repositories of an ogServer. Fixes: cf02e0c ("Add Servers section")
* Set server variable on GET /action/image/restoreJavier Sánchez Parra2022-09-271-0/+1
| | | | | | Otherwise, ogCP crashes on image restore. Fixes: 8726ade ("Adapt commands to work with several ogServers")
* Add multiple servers to the dashboard viewDaniel García Moreno2022-09-271-22/+39
|
* Adapt Delete clients to work with several ogServersJavier Sánchez Parra2022-09-271-1/+2
| | | | | This commit makes Delete clients view to use "get_server_from_clients()" function to send the deletion request to the correct ogServer.
* Ignore unreachable ogServersJavier Sánchez Parra2022-09-271-0/+2
| | | | Otherwise, ogCP crashes trying to connect to unreachable ogServers.
* Add Servers sectionJavier Sánchez Parra2022-09-271-59/+112
| | | | | | | In Servers section/view, users can add or delete ogServers from ogCP configuration file. Replaces Repositories views and recycle some of its code.
* Store configuration file path on a global variableJavier Sánchez Parra2022-09-271-3/+3
| | | | | Otherwise, users may change the file path on one place of the code and forget to change the other places.
* Adapt MAC retrieving to support several ogServersJavier Sánchez Parra2022-09-271-1/+2
| | | | | | Clients pills show MACs regardless of the ogServer they belong to. Flask GET /client/mac API uses "get_server_from_clients()" function to send the command to the correct ogServer.
* Adapt Delete image to work with several ogServersJavier Sánchez Parra2022-09-271-2/+7
| | | | | This commit makes Delete image view to use ogServer field from imagesForm to send the deletion request to the correct ogServer.
* Add ogServer parameter to imagesFormJavier Sánchez Parra2022-09-271-3/+5
| | | | | | | | | | When users select an image, its ogServer is sent too. Then, the back-end (flask) processes the form to obtain this ogServer and send it the pertinent requests. It also makes "Image details" view use this new parameter, and adds javascript code to ensure that users can only work with several images at the same time if they belong to the same ogServer.
* Adapt images tree to work with several ogServersJavier Sánchez Parra2022-09-271-7/+6
| | | | | | Images view fetch images from all ogServers configured and show them in the left tree as a nested list. ogServers are represented as the parents of their images.
* Adapt Delete center to work with several ogServersJavier Sánchez Parra2022-09-271-2/+5
| | | | | This commit makes Delete center view to use ogServer field from scopesForm to send the command to the correct ogServer.
* Delete center using the scopes treeJavier Sánchez Parra2022-09-271-2/+9
| | | | | With this commit users can select a center from the scopes tree, and then delete it.
* Adapt Add center to work with several ogServersJavier Sánchez Parra2022-09-271-1/+5
| | | | | | This commit adds a new select input with all available ogServers to "Add center" view. The ogCP creates the center in the ogServer selected by the user.
* Adapt Delete room to work with several ogServersJavier Sánchez Parra2022-09-271-2/+5
| | | | | This commit makes Delete room view to use ogServer field from scopesForm to send the command to the correct ogServer.
* Delete room using the scopes treeJavier Sánchez Parra2022-09-271-3/+9
| | | | | With this commit users can select a room from the scopes tree, and then delete it.
* Adapt Add room to work with several ogServersJavier Sánchez Parra2022-09-271-2/+5
| | | | | This commit makes Add room view to use ogServer field from scopesForm to send the command to the correct ogServer.
* Add a room to a center using the scopes treeJavier Sánchez Parra2022-09-271-3/+11
| | | | | With this commit users can select a center from the scopes tree, and then add a room to that center.
* Adapt Import Clients to work with several ogServersJavier Sánchez Parra2022-09-271-2/+5
| | | | | This commit makes Import Clients view to use ogServer field from scopesForm to send the command to the correct ogServer.
* Import clients to a room using the scopes treeJavier Sánchez Parra2022-09-271-3/+11
| | | | | With this commit users can select a room from the scopes tree, and then import clients to that room.
* Fix selection of scopes with empty IPs listJavier Sánchez Parra2022-09-271-1/+2
| | | | | This commit prevents ogcp from always mark as selected/checked scopes that have an empty IP list.
* Add current ogServer to scopesFormJavier Sánchez Parra2022-09-271-4/+20
| | | | | | | | | With this commit when users select a scope, the ogServer to which it belongs is also sent. Then when processing the form we obtain this ogServer and we can send it the pertinent requests. This commit also makes action "Add client" to use the ogServer sent in the form.
* Add a client to a room using the scopes treeJavier Sánchez Parra2022-09-271-2/+10
| | | | | With this commit users can select a room from the scopes tree, and then add a client to that room.
* Adapt commands to work with several ogServersJavier Sánchez Parra2022-09-271-38/+59
| | | | | This commit makes commands views to use "get_server_from_clients()" function to send the command to the correct ogServer.
* Fix ogServer names on the scopes treeJavier Sánchez Parra2022-09-271-1/+1
| | | | | | | This commit adapt how "get_scopes()" accesses the name of the ogServer because commit eae64dd changes how "multi_request()" returns it. Fixes: eae64dd ("Initial support of ogServer requests routing")
* Initial support of ogServer requests "routing"Javier Sánchez Parra2022-09-271-7/+26
| | | | | | | This commit adds a helper function ("get_server_from_clients()") to get the adequate ogServer according to the targeted clients. It also makes "Client details" command use this function.
* Add status of all clients to the scopes treeJavier Sánchez Parra2022-09-271-2/+1
| | | | Fetch clients status using 'get_clients()'.
* Fetch clients from all ogServers in the dashboardJavier Sánchez Parra2022-09-271-2/+10
| | | | With this commit, ogcp fetch all clients lists an join them.
* Add helper function to send requests to all ogServersJavier Sánchez Parra2022-09-271-4/+24
| | | | | | | 'multi_request()' function make requests to ogServers defined in the configuration and aggregates it responses. This commit also makes 'get_scopes()' use it.
* Retreive scopes from several ogServersJavier Sánchez Parra2022-09-271-8/+15
| | | | | | | Update the configuration file format to support several ogServers and retrieve scopes from those ogServers. The old config file format is still supported.
* Add "Delete Repository"Javier Sánchez Parra2022-07-041-1/+34
| | | | | In "Repositories" view, users select a repository from the list on the left and press "Delete repository".
* Create "Add Repository" form and viewJavier Sánchez Parra2022-07-041-1/+30
| | | | Creates "Add repository" form with the required inputs: name and IP.
* Add Repositories sectionJavier Sánchez Parra2022-07-041-0/+8
| | | | | In Repositories section/view, users can manage task related to repositories. For example: list, add, delete and edit them.
* Use repository id on image creationJavier Sánchez Parra2022-06-301-2/+2
| | | | | | | On image creation use the id to identify repositories instead of the IP. ogServer related commit: * 52a38d3 ("#915 Use the repository id on image creation")