diff options
author | Javier Hernandez <jhernandez@soleta.eu> | 2023-12-22 12:08:49 +0100 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2023-12-22 12:21:26 +0100 |
commit | 1497e500cb0a11689796cfb2fd4aabeb89f72b58 (patch) | |
tree | b46bb9476b27c99225b9e4917af3916e4e8ad537 /ogcp/views.py | |
parent | 01977dcd669d7eedc4fde45f8e9a07e991acf72e (diff) |
Warn if clients have different boot modes
Show user, when attempting to change the bootmode of more than one
client with different boot modes, a warning and a table with said
bootmodes.
Diffstat (limited to 'ogcp/views.py')
-rw-r--r-- | ogcp/views.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/ogcp/views.py b/ogcp/views.py index 9a88bbc..ba9f1a3 100644 --- a/ogcp/views.py +++ b/ogcp/views.py @@ -1172,6 +1172,19 @@ def action_client_delete(): else: return redirect(url_for('scopes')) +def get_clients_modes(ips, server): + modes = {} + for ip in ips: + r = server.get('/client/info', payload={"client": [ip]}) + resp = r.json() + current_boot = resp['boot'] + client_name = resp['name'] + if current_boot not in modes: + modes[current_boot] = [client_name] + else: + modes[current_boot].append(client_name) + return modes + @app.route('/action/mode', methods=['GET', 'POST']) @login_required def action_mode(): @@ -1195,6 +1208,7 @@ def action_mode(): return redirect(url_for('commands')) server = get_server_from_clients(ips) + modes_set = get_clients_modes(ips, server) r = server.get('/mode') available_modes = [(mode, mode) for mode in r.json()['modes']] form.boot.choices = list(available_modes) @@ -1204,7 +1218,7 @@ def action_mode(): selected_clients = list(get_selected_clients(scopes['scope']).items()) return render_template('actions/mode.html', form=form, scopes=scopes, selected_clients=selected_clients, - clients=clients) + clients=clients, modes_set=modes_set) @app.route('/action/oglive', methods=['GET', 'POST']) |