[pve-devel] [PATCH installer 4/7] tui: add min/max constraints for ZFS bootdisk parameters

Christoph Heiss c.heiss at proxmox.com
Wed Oct 4 16:42:15 CEST 2023


Signed-off-by: Christoph Heiss <c.heiss at proxmox.com>
---
 proxmox-tui-installer/src/views/bootdisk.rs | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/proxmox-tui-installer/src/views/bootdisk.rs b/proxmox-tui-installer/src/views/bootdisk.rs
index 46bdd9f..8b5b5d2 100644
--- a/proxmox-tui-installer/src/views/bootdisk.rs
+++ b/proxmox-tui-installer/src/views/bootdisk.rs
@@ -20,6 +20,9 @@ use crate::{
 };
 use crate::{setup::ProxmoxProduct, InstallerState};
 
+// See Proxmox::Sys::Block::partition_bootable_disk()
+const MINIMUM_DISK_SIZE: f64 = 2.;
+
 pub struct BootdiskOptionsView {
     view: LinearLayout,
     advanced_options: Rc<RefCell<BootdiskOptions>>,
@@ -501,7 +504,10 @@ impl ZfsBootdiskOptionsView {
     // TODO: Re-apply previous disk selection from `options` correctly
     fn new(disks: &[Disk], options: &ZfsBootdiskOptions) -> Self {
         let inner = FormView::new()
-            .child("ashift", IntegerEditView::new().content(options.ashift))
+            .child(
+                "ashift",
+                IntegerEditView::with_range(9, 13).content(options.ashift),
+            )
             .child(
                 "compress",
                 SelectView::new()
@@ -526,8 +532,15 @@ impl ZfsBootdiskOptionsView {
                             .unwrap_or_default(),
                     ),
             )
-            .child("copies", IntegerEditView::new().content(options.copies))
-            .child("hdsize", DiskSizeEditView::new().content(options.disk_size));
+            .child(
+                "copies",
+                IntegerEditView::with_range(1, 3).content(options.copies),
+            )
+            .child(
+                "hdsize",
+                DiskSizeEditView::with_range(MINIMUM_DISK_SIZE, options.disk_size)
+                    .content(options.disk_size),
+            );
 
         let view = MultiDiskOptionsView::new(disks, &options.selected_disks, inner)
             .top_panel(TextView::new(
-- 
2.42.0






More information about the pve-devel mailing list