Assign EMPTY when no scheme code is found.
Select GPT by default when the partition scheme is EMPTY in
partition and format view.
Add missing EMPTY value to SetupForm.
Check the presence of whitespace for new usernames or passwords.
Usernames with whitespace can't be deleted because whitespace
is the separator of each element selected in the form.
Skip check of disk data in multi-disk clients in check for
uniform setup across all the clients selected.
Disk data should not be considered for client configuration
comparison.
Skip partition id zero for the partition list in the software
inventory form.
Partitions of id zero contain disk data and that data is not
relevant to compare client configurations.
Inform the user when the selected clients don't have a valid
partition type for an image create/restore/update operation and
return to the commands view.
Use m-5 class instead of mx-5 CSS class for every main view form.
m-5 adds padding to all the borders while mx-5 only adds padding
for the x axis causing elements to be too close to the top and
bottom of the form.
Show a warning when the user selects a partition from a disk >1
in the image update, create or restore views.
Show the complete list of valid partitions from all disk.
Remove MAC from clients in client search view. The generation of
the MAC data requires individual /client/info requests for each
client causing huge server load for big deployments.
Throw ServerError in get(), post(), delete() server methods
in case of connection error or status code with an error.
Log the cause of the error to show it in the web.
Add a function wrapper into every endpoint to handle the
error redirection needed for the ServerError exception.
The wrapper is defined by adding @handle_server_errors('XXX')
on top of the function declaration, where XXX is the name
of the function (endpoint) to be invoked by the redirection.
This change removes the need of specific checks after every
request and cleanups the endpoint code.
Fix the endpoint of the main views to work with an unavailable
ogserver.
Preselect the most used repository among the selected clients
for the view Commands -> Setup -> Set repository
Change get_clients_oglive() into def get_client_list_by_key()
to obtain a dictionary with the list of ips of the clients with
the same value in the field of the client payload passed as key.
For example for the key 'repo_id' it would return a dictionary
{repo_id: [ips of the clients with that repo_id]}
Add specific error messages for each http status code in the
function ogserver_error(). Pass the request object to obtain the
status code.
Standarize the error handling code for every get(), delete() and
post() as:
r = server.get('/scopes')
if not r:
return ogserver_down('scopes')
if r.status_code != requests.codes.ok:
return ogserver_error(r, 'scopes')
Reorganize "Run" section of Commands view as follows:
Commands
└── Run
├── Script: run script from folder
├── Cmd: direct command execution
└── Display output: results of last execution
Adapt API REST call to the new interface. Remove strange legacy
;|\n\r terminator. Remove "echo" field and add "inline" field.
Add view to provide information before a restore operation where
the selected clients have a not uniform partition setup.
Show the view if only clients with not partition valid for a
restore operation are selected.
Rename part_choices variable to reference_patitioning to improve
readability and intent in the code that checks the uniformity of
the client's partitions.
Use "Cache size" instead of "Disk size" in cache inspector.
Inform that the missing space when the image does not fit in cache
is additional space on top of the available space.
Define ogStorage class to manage the localStorage operations.
The new keys are constructed with the following structure:
"group-context-id"
Where group is either "show" for the collapsed items in the
sidebar, or "check" for the selected checkboxes of the sidebar.
Add sotrage versioning to delete obsolete localStorage when a
new design for the storage is included in ogCP.
Remove the invalid keys from local storage when the page loads.
Creating and deleting elements from the sidebar accumulates
dead entries in the local storage.