Cosmetic enhacements

* Use validate_ips and flashed messages for some more actions.
* Use extra_classes in quick_form macro to add bootstrap classes to
  rendered forms
multi-ogserver
Jose M. Guisado 2021-02-24 12:21:21 +01:00
parent 2b76106475
commit 45af740c1f
2 changed files with 35 additions and 5 deletions

View File

@ -6,6 +6,8 @@
{{ wtf.quick_form(form,
action=url_for('action_image_restore'),
method='post',
button_map={'restore': 'primary'}) }}
button_map={'restore': 'primary'},
extra_classes='m-5') }}
{% endblock %}

View File

@ -36,10 +36,12 @@ PART_SCHEME_CODES = {
def validate_ips(ips, min_len=1, max_len=float('inf')):
valid = True
if len(ips) < min_len:
flash(_(f'Please, select at least {min_len} computer(s)'), category='error')
flash(_(f'Please, select at least {min_len} computer(s)'),
category='error')
valid = not valid
elif len(ips) > max_len:
flash(_(f'No more than {max_len} computer(s) can be selected'), category='error')
flash(_(f'No more than {max_len} computer(s) can be selected for the given action'),
category='error')
valid = not valid
return valid
@ -323,6 +325,9 @@ def action_hardware():
return make_response("400 Bad Request", 400)
else:
ips = parse_ips(request.args.to_dict())
if not validate_ips(ips, max_len=1):
return redirect(url_for('scopes'))
form.ips.data = ' '.join(ips)
r = g.server.get('/hardware', payload={'client': list(ips)})
hardware = r.json()['hardware']
@ -353,6 +358,9 @@ def action_software():
return make_response("400 Bad Request", 400)
else:
ips = parse_ips(request.args.to_dict())
if not validate_ips(ips, max_len=1):
return redirect(url_for('scopes'))
form.ips.data = ' '.join(ips)
r = g.server.get('/client/setup', payload={'client': list(ips)})
@ -379,6 +387,9 @@ def action_session():
return make_response("400 Bad Request", 400)
else:
ips = parse_ips(request.args.to_dict())
if not validate_ips(ips, max_len=1):
return redirect(url_for('scopes'))
form.ips.data = ' '.join(ips)
r = g.server.get('/session', payload={'client': list(ips)})
sessions = r.json()['sessions']
@ -392,6 +403,9 @@ def action_session():
def action_client_info():
form = ClientDetailsForm()
ips = parse_ips(request.args.to_dict())
if not validate_ips(ips, max_len=1):
return redirect(url_for("scopes"))
payload = {'client': list(ips)}
r = g.server.get('/client/info', payload)
db_client = r.json()
@ -533,13 +547,27 @@ def action_image_create():
@app.route('/action/reboot', methods=['POST'])
def action_reboot():
ips = parse_ips(request.form.to_dict())
if not validate_ips(ips):
return redirect(url_for('scopes'))
payload = {'clients': list(ips)}
g.server.post('/reboot', payload)
r = g.server.post('/reboot', payload)
if r.status_code != requests.codes.ok:
flash(_('OgServer replied with a non ok status code'), category='error')
else:
flash(_('Refresh request processed successfully'), category='info')
return redirect(url_for("scopes"))
@app.route('/action/refresh', methods=['POST'])
def action_refresh():
ips = parse_ips(request.form.to_dict())
if not validate_ips(ips):
return redirect(url_for('scopes'))
payload = {'clients': list(ips)}
g.server.post('/refresh', payload)
r = g.server.post('/refresh', payload)
if r.status_code != requests.codes.ok:
flash(_('OgServer replied with a non ok status code'), category='error')
else:
flash(_('Refresh request processed successfully'), category='info')
return redirect(url_for("scopes"))