summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ogcp/views.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/ogcp/views.py b/ogcp/views.py
index 131686c..3bbd933 100644
--- a/ogcp/views.py
+++ b/ogcp/views.py
@@ -735,7 +735,14 @@ def action_image_restore():
form = ImageRestoreForm(request.form)
if request.method == 'POST':
ips = form.ips.data.split(' ')
- disk, partition = form.partition.data.split(' ')
+ disk, partition, part_code = form.partition.data.split(' ')
+
+ part_type = PART_TYPE_CODES.get(int(part_code), 'UNKNOWN')
+ invalid_part_types = ['EMPTY', 'LINUX-SWAP', 'CACHE', 'EFI', 'WIN-RECOV']
+ if part_type in invalid_part_types:
+ flash(_(f'Cannot restore image on partition type {part_type}'), category='error')
+ return redirect(url_for('commands'))
+
image_id = form.image.data
server = get_server_from_clients(ips)
r = server.get('/images')
@@ -829,7 +836,7 @@ def action_image_restore():
return redirect(url_for('commands'))
form.partition.choices = [
- (f"{disk_id} {part_id}",
+ (f"{disk_id} {part_id} {part_code}",
f"Disk {disk_id} | Partition {part_id} "
f"| {PART_TYPE_CODES.get(part_code, 'UNKNOWN')} "
f"{FS_CODES.get(filesystem, 'UNKNOWN')}")