mirror of https://git.48k.eu/ogcp
views: consolidate server error reporting
use ogserver_down() and ogserver_error()master
parent
34a7cd4c4f
commit
8260cd0ac2
181
ogcp/views.py
181
ogcp/views.py
|
@ -535,9 +535,11 @@ def action_setup_select():
|
|||
client_choices = []
|
||||
for ip in ips:
|
||||
r = server.get('/client/info', payload={'client': [ip]})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
client_name = r.json()['name']
|
||||
client_choices.append((ip, f"{client_name} ({ip})"))
|
||||
form.selected_client.choices = client_choices
|
||||
|
@ -711,9 +713,11 @@ def action_image_restore():
|
|||
image_id = form.image.data
|
||||
server = get_server_from_clients(ips)
|
||||
r = server.get('/images')
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
images_list = r.json()['images']
|
||||
image = search_image(images_list, int(image_id))
|
||||
if not image:
|
||||
|
@ -774,6 +778,11 @@ def action_image_restore():
|
|||
part_choices = []
|
||||
for ip in ips:
|
||||
r = server.get('/client/setup', payload={'client': [ip]})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
return ogserver_error('commands')
|
||||
|
||||
if r.status_code == requests.codes.ok:
|
||||
partitions = r.json()['partitions']
|
||||
parts = []
|
||||
|
@ -794,10 +803,6 @@ def action_image_restore():
|
|||
flash(_(f'Computers have different partition setup'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
|
||||
else:
|
||||
flash(_('ogServer was unable to obtain setup of selected computer {}').format(ip), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
|
||||
form.partition.choices = [
|
||||
(f"{disk_id} {part_id}",
|
||||
f"Disk {disk_id} | Partition {part_id} "
|
||||
|
@ -833,9 +838,11 @@ def action_hardware():
|
|||
form.ips.data = ' '.join(ips)
|
||||
server = get_server_from_clients(ips)
|
||||
r = server.get('/hardware', payload={'client': list(ips)})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
hardware = r.json()['hardware']
|
||||
return render_template('actions/hardware.html', form=form,
|
||||
hardware=hardware, scopes=scopes)
|
||||
|
@ -852,11 +859,15 @@ def action_software():
|
|||
r = server.get('/software', payload={'client': ips,
|
||||
'disk': int(disk),
|
||||
'partition': int(partition)})
|
||||
if r.status_code == requests.codes.ok:
|
||||
software = r.json()['software']
|
||||
scopes, clients = get_scopes(set(ips))
|
||||
return render_template('actions/software_list.html',
|
||||
software=software, form=form, scopes=scopes)
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
return ogserver_error('commands')
|
||||
|
||||
software = r.json()['software']
|
||||
scopes, clients = get_scopes(set(ips))
|
||||
return render_template('actions/software_list.html',
|
||||
software=software, form=form, scopes=scopes)
|
||||
elif form.update.data:
|
||||
r = server.post('/software', payload={'clients': ips,
|
||||
'disk': disk,
|
||||
|
@ -877,9 +888,10 @@ def action_software():
|
|||
form.ips.data = ' '.join(ips)
|
||||
server = get_server_from_clients(ips)
|
||||
r = server.get('/client/setup', payload={'client': list(ips)})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
if not r.json()['partitions']:
|
||||
flash(_('Software inventory is not available. Boot client in ogLive mode to obtain it'), category='error')
|
||||
|
@ -917,9 +929,10 @@ def action_session():
|
|||
server = get_server_from_clients(list(ips))
|
||||
form.ips.data = ' '.join(ips)
|
||||
r = server.get('/session', payload={'client': list(ips)})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
sessions = r.json()['sessions']
|
||||
if not sessions:
|
||||
|
@ -949,9 +962,10 @@ def action_client_info():
|
|||
|
||||
payload = {'client': list(ips)}
|
||||
r = server.get('/client/info', payload)
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
db_client = r.json()
|
||||
|
||||
|
@ -984,27 +998,30 @@ def action_client_info():
|
|||
form.boot.render_kw = {'readonly': True}
|
||||
|
||||
r = server.get('/oglive/list')
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('ogServer: error retrieving oglive list'),
|
||||
category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
available_oglives = r.json()['oglive']
|
||||
for oglive in available_oglives:
|
||||
choice = (oglive.get('directory'), oglive.get('directory'))
|
||||
form.livedir.choices.append(choice)
|
||||
|
||||
r = server.get('/mode')
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
available_modes = [(mode, mode) for mode in r.json()['modes']]
|
||||
form.boot.choices = list(available_modes)
|
||||
|
||||
r = server.get('/scopes')
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
rooms = parse_scopes_from_tree(r.json(), 'room')
|
||||
rooms = [(room['id'], room['name']) for room in rooms
|
||||
|
@ -1014,9 +1031,10 @@ def action_client_info():
|
|||
form.submit.render_kw = {"style": "visibility:hidden;"}
|
||||
|
||||
r = server.get('/images')
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
images = r.json()['images']
|
||||
|
||||
|
@ -1082,9 +1100,10 @@ def action_client_update():
|
|||
|
||||
payload = {'client': list(ips)}
|
||||
r = server.get('/client/info', payload)
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
db_client = r.json()
|
||||
|
||||
|
@ -1101,9 +1120,11 @@ def action_client_update():
|
|||
|
||||
current_mode = db_client['boot']
|
||||
r = server.get('/mode')
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
available_modes = [(current_mode, current_mode)]
|
||||
available_modes.extend([(mode, mode) for mode in r.json()['modes']
|
||||
if mode != current_mode])
|
||||
|
@ -1111,9 +1132,10 @@ def action_client_update():
|
|||
form.boot.render_kw = {'readonly': True}
|
||||
|
||||
r = server.get('/scopes')
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
room_id = db_client['room']
|
||||
rooms = parse_scopes_from_tree(r.json(), 'room')
|
||||
|
@ -1144,10 +1166,11 @@ def action_client_update():
|
|||
setup[0]['code'] = 'MBR'
|
||||
|
||||
r = server.get('/images')
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('ogServer: error retrieving images list'),
|
||||
category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
images = r.json()['images']
|
||||
for entry in setup:
|
||||
if images and entry['image'] != 0:
|
||||
|
@ -1289,18 +1312,20 @@ def action_client_add():
|
|||
form.server.data = params['scope-server']
|
||||
server = get_server_from_ip_port(params['scope-server'])
|
||||
r = server.get('/mode')
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
available_modes = [(mode, mode) for mode in r.json()['modes']]
|
||||
form.boot.choices = list(available_modes)
|
||||
form.mac.render_kw = {'placeholder': 'aabbccddeeaa'}
|
||||
|
||||
r = server.get('/scopes')
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
room_id = params['scope-room']
|
||||
rooms = parse_scopes_from_tree(r.json(), 'room')
|
||||
|
@ -1346,9 +1371,10 @@ def action_clients_import_get():
|
|||
form.server.data = params['scope-server']
|
||||
server = get_server_from_ip_port(params['scope-server'])
|
||||
r = server.get('/scopes')
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
rooms = parse_scopes_from_tree(r.json(), 'room')
|
||||
selected_room_id = params['scope-room']
|
||||
|
@ -1511,10 +1537,11 @@ def action_mode():
|
|||
except ServerErrorCode:
|
||||
return ogserver_error('commands')
|
||||
r = server.get('/mode')
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Ogserver replied with status code not ok'),
|
||||
category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
most_used_mode = max(modes_set, key=lambda m: len(modes_set[m]))
|
||||
available_modes = []
|
||||
if most_used_mode in r.json()['modes']:
|
||||
|
@ -1559,10 +1586,11 @@ def action_oglive():
|
|||
|
||||
server = get_server_from_clients(list(ips))
|
||||
r = server.get('/oglive/list')
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Ogserver replied with status code not ok'),
|
||||
category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
available_oglives = [(oglive.get('directory'), oglive.get('directory'))
|
||||
for oglive in r.json()['oglive']]
|
||||
available_oglives.insert(0, ('default', 'default'))
|
||||
|
@ -1583,9 +1611,10 @@ def action_image_create():
|
|||
ip = form.ip.data
|
||||
server = get_server_from_clients([ip])
|
||||
r = server.get('/client/info', payload={"client": [ip]})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
disk, partition, code = form.os.data.split(' ')
|
||||
payload = {"clients": [ip],
|
||||
|
@ -1610,9 +1639,10 @@ def action_image_create():
|
|||
|
||||
server = get_server_from_clients(ips)
|
||||
r = server.get('/client/setup', payload={'client': list(ips)})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
for part in r.json()['partitions'][1:]:
|
||||
form.os.choices.append(
|
||||
|
@ -1622,9 +1652,10 @@ def action_image_create():
|
|||
f"{FS_CODES[part.get('filesystem')]}")
|
||||
)
|
||||
r = server.get('/client/info', payload={'client': list(ips)})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
client_repo_id = r.json()['repo_id']
|
||||
try:
|
||||
|
@ -1652,9 +1683,10 @@ def action_image_update():
|
|||
image_id = form.image.data
|
||||
server = get_server_from_clients([ip])
|
||||
r = server.get('/images')
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
images_list = r.json()['images']
|
||||
image = search_image(images_list, int(image_id))
|
||||
|
@ -1693,9 +1725,10 @@ def action_image_update():
|
|||
|
||||
server = get_server_from_clients(ips)
|
||||
r = server.get('/client/info', payload={'client': list(ips)})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
repo_id = r.json()['repo_id']
|
||||
try:
|
||||
|
@ -1713,9 +1746,10 @@ def action_image_update():
|
|||
form.image.choices.append((image['id'], image['name']))
|
||||
|
||||
r = server.get('/client/setup', payload={'client': list(ips)})
|
||||
if not r:
|
||||
return ogserver_down('commands')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('commands'))
|
||||
return ogserver_error('commands')
|
||||
|
||||
for part in r.json()['partitions'][1:]:
|
||||
form.os.choices.append(
|
||||
|
@ -1825,9 +1859,10 @@ def action_center_delete():
|
|||
return redirect(url_for('scopes'))
|
||||
server = get_server_from_ip_port(params['scope-server'])
|
||||
r = server.get('/scopes')
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
selected_center_id = params['scope-center']
|
||||
centers = parse_scopes_from_tree(r.json(), 'center')
|
||||
|
@ -1864,9 +1899,10 @@ def action_room_add():
|
|||
return redirect(url_for('scopes'))
|
||||
server = get_server_from_ip_port(params['scope-server'])
|
||||
r = server.get('/scopes')
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
selected_center_id = params['scope-center']
|
||||
centers = parse_scopes_from_tree(r.json(), 'center')
|
||||
|
@ -1906,9 +1942,10 @@ def action_room_delete():
|
|||
return redirect(url_for('scopes'))
|
||||
server = get_server_from_ip_port(params['scope-server'])
|
||||
r = server.get('/scopes')
|
||||
if not r:
|
||||
return ogserver_down('scopes')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
return ogserver_error('scopes')
|
||||
|
||||
rooms = parse_scopes_from_tree(r.json(), 'room')
|
||||
selected_room_id = params['scope-room']
|
||||
|
@ -2451,9 +2488,11 @@ def action_image_info():
|
|||
id = ids.pop()
|
||||
server = get_server_from_ip_port(params['image-server'])
|
||||
r = server.get('/images')
|
||||
if not r:
|
||||
return ogserver_down('images')
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('Cannot talk to ogserver. Is ogserver down?'), category='error')
|
||||
return redirect(url_for('images'))
|
||||
return ogserver_error('images')
|
||||
|
||||
images = r.json()['images']
|
||||
image = next(img for img in images if img['id'] == int(id))
|
||||
|
||||
|
|
Loading…
Reference in New Issue