From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 0FAAD9E461 for ; Tue, 31 Oct 2023 13:11:16 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id EB0841B035 for ; Tue, 31 Oct 2023 13:11:15 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Tue, 31 Oct 2023 13:11:15 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id CA10442BCA for ; Tue, 31 Oct 2023 13:11:14 +0100 (CET) From: Christoph Heiss To: pve-devel@lists.proxmox.com Date: Tue, 31 Oct 2023 13:10:55 +0100 Message-ID: <20231031121108.1130299-4-c.heiss@proxmox.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231031121108.1130299-1-c.heiss@proxmox.com> References: <20231031121108.1130299-1-c.heiss@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.015 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [bootdisk.rs] Subject: [pve-devel] [PATCH installer v3 3/8] tui: bootdisk: simplify product handling by passing the config directly X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Oct 2023 12:11:16 -0000 No functional changes. Signed-off-by: Christoph Heiss --- Changes v2 -> v3: * new patch proxmox-tui-installer/src/views/bootdisk.rs | 50 ++++++++++++--------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/proxmox-tui-installer/src/views/bootdisk.rs b/proxmox-tui-installer/src/views/bootdisk.rs index ba08c8b..3addd6c 100644 --- a/proxmox-tui-installer/src/views/bootdisk.rs +++ b/proxmox-tui-installer/src/views/bootdisk.rs @@ -134,10 +134,9 @@ impl AdvancedBootdiskOptionsView { .child(DummyView.full_width()); match &options.advanced { - AdvancedBootdiskOptions::Lvm(lvm) => view.add_child(LvmBootdiskOptionsView::new( - lvm, - product_conf.product == ProxmoxProduct::PVE, - )), + AdvancedBootdiskOptions::Lvm(lvm) => { + view.add_child(LvmBootdiskOptionsView::new(lvm, &product_conf)) + } AdvancedBootdiskOptions::Zfs(zfs) => { view.add_child(ZfsBootdiskOptionsView::new(disks, zfs)) } @@ -150,10 +149,8 @@ impl AdvancedBootdiskOptionsView { } fn fstype_on_submit(siv: &mut Cursive, disks: &[Disk], fstype: &FsType) { - let is_pve = siv - .user_data::() - .map(|state| state.setup_info.config.product == ProxmoxProduct::PVE) - .unwrap_or_default(); + let state = siv.user_data::().unwrap(); + let product_conf = state.setup_info.config.clone(); siv.call_on_name("advanced-bootdisk-options-dialog", |view: &mut Dialog| { if let Some(AdvancedBootdiskOptionsView { view }) = @@ -161,18 +158,15 @@ impl AdvancedBootdiskOptionsView { { view.remove_child(3); match fstype { - FsType::Ext4 | FsType::Xfs => view.add_child(LvmBootdiskOptionsView::new( - &LvmBootdiskOptions::defaults_from(&disks[0]), - is_pve, - )), - FsType::Zfs(_) => view.add_child(ZfsBootdiskOptionsView::new( - disks, - &ZfsBootdiskOptions::defaults_from(disks), - )), - FsType::Btrfs(_) => view.add_child(BtrfsBootdiskOptionsView::new( - disks, - &BtrfsBootdiskOptions::defaults_from(disks), - )), + FsType::Ext4 | FsType::Xfs => view.add_child( + LvmBootdiskOptionsView::new_with_defaults(&disks[0], &product_conf), + ), + FsType::Zfs(_) => { + view.add_child(ZfsBootdiskOptionsView::new_with_defaults(disks)) + } + FsType::Btrfs(_) => { + view.add_child(BtrfsBootdiskOptionsView::new_with_defaults(disks)) + } } } }); @@ -261,7 +255,9 @@ struct LvmBootdiskOptionsView { } impl LvmBootdiskOptionsView { - fn new(options: &LvmBootdiskOptions, show_extra_fields: bool) -> Self { + fn new(options: &LvmBootdiskOptions, product_conf: &ProductConfig) -> Self { + let show_extra_fields = product_conf.product == ProxmoxProduct::PVE; + // TODO: Set maximum accordingly to disk size let view = FormView::new() .child( @@ -295,6 +291,10 @@ impl LvmBootdiskOptionsView { } } + fn new_with_defaults(disk: &Disk, product_conf: &ProductConfig) -> Self { + Self::new(&LvmBootdiskOptions::defaults_from(disk), product_conf) + } + fn get_values(&mut self) -> Option { let min_lvm_free_id = if self.has_extra_fields { 4 } else { 2 }; @@ -481,6 +481,10 @@ impl BtrfsBootdiskOptionsView { Self { view } } + fn new_with_defaults(disks: &[Disk]) -> Self { + Self::new(disks, &BtrfsBootdiskOptions::defaults_from(disks)) + } + fn get_values(&mut self) -> Option<(Vec, BtrfsBootdiskOptions)> { let (disks, selected_disks) = self.view.get_disks_and_selection()?; let disk_size = self.view.inner_mut()?.get_value::(0)?; @@ -543,6 +547,10 @@ impl ZfsBootdiskOptionsView { Self { view } } + fn new_with_defaults(disks: &[Disk]) -> Self { + Self::new(disks, &ZfsBootdiskOptions::defaults_from(disks)) + } + fn get_values(&mut self) -> Option<(Vec, ZfsBootdiskOptions)> { let (disks, selected_disks) = self.view.get_disks_and_selection()?; let view = self.view.inner_mut()?; -- 2.42.0