From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 62F271FF16F for ; Thu, 16 Jan 2025 16:18:41 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id AA92E2C66A; Thu, 16 Jan 2025 16:18:37 +0100 (CET) Message-ID: <6fc390ea-d36a-4b0a-a138-2b5aa47624c3@proxmox.com> Date: Thu, 16 Jan 2025 16:18:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Proxmox VE development discussion , Daniel Herzig References: <20250113085608.99498-1-d.herzig@proxmox.com> Content-Language: en-US From: Daniel Kral In-Reply-To: <20250113085608.99498-1-d.herzig@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.011 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [PATCH v2 qemu-server, manager 00/12] bugzilla #4225 -- improve handling of unavailable ISOs 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: , Reply-To: Proxmox VE development discussion Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" On 1/13/25 09:55, Daniel Herzig wrote: > This patch series addresses bugzilla entry #4225.> > Currently VMs refuse to to start if a configured isofile becomes unavailable, > be it a deleted file or an unavailable network storage. > > This patch series introduces a new parameter in Drive.pm, called 'required'. > Depending on whether this parameter is set or not, the situation will be handled > differently. Thanks for tackling this, this is a great addition to the CDROM drives! I'm looking forward to this being merged as it happens quite frequently when setting up a lot of VMs with different ISOs! > > If the parameter is set to 0, the configuration will temporarily changed to use > 'none' as file for the cd drive, which allows qemu to start up the machine. > The configuration is not changed in this process to avoid unexpected behaviour. > Instead a log_warn will be issued. > > For transition reasons an unset parameter acts like 'required=1'. In this case > the startup process will die earlier than currently, if the file is missing or > the underlying storage not available. Hm, I have discussed with Friedrich about this off-list, because I'm thinking about "optional" being another name for this flag, since it should be required by default for VMs that are not explicitly setting this option, i.e. `optional=0`, and if someone sets it explicitly to `optional=1` the CDROM can be ignored if it is non-existent. I think this could also simplify the logic overall, but it depends on how we want to present this to users (i.e. the WebGUI). Are there reasons against this? What do you think? > > If however a new VM is created from the WebGUI, the corresponding added checkbox > is not checked by default, and the resulting 'required=0' will be written to > the configuration. IMO, I also think that new VMs should be set to `required=0` by default, but this change should probably be postponed to 9.0 as it would break the current WebGUI "user-API". > > To allow for proper testing and building some additions and minor changes > where made to to the testing framework as well. > > Not exactly part of #4225, but related to it, this patch series adds an 'Eject' > button to the hardwareview in the WebGUI, which can be used as a convenience > shortcut to manually editing the missing ISO file to 'Do not use any media'. In this case it is better to move unrelated changes into a separate patch series, so they can be reviewed on their own :). > > This series supersedes: > https://lore.proxmox.com/pve-devel/20241025150243.134466-1-d.herzig@proxmox.com/ > > Changes from initial series: > * rebased onto current master > * fix cifs mocking in run_config2command_tests.pl > * fix expected outcome in ide-required.conf.cmd > > qemu-server: Daniel Herzig (9): > fix #4225: qemuserver: drive: add optional required parameter > qemuserver: add helper function for mocking files > fix #4225: qemuserver: add function to eject isofiles > test: chomp all trailing newlines from errors and warnings > test: mock cifs-store > test: add nfs-offline storage > test: mock existing files > test: mock log_warn warnings > test: cfg2cmd: add tests for testing the iso required parameter > > PVE/QemuServer.pm | 44 +++++++++++++++++++ > PVE/QemuServer/Drive.pm | 9 +++- > test/cfg2cmd/ide-required-iso-missing.conf | 12 +++++ > .../cfg2cmd/ide-required-iso-missing.conf.cmd | 0 > .../cfg2cmd/ide-required-iso-offline-nfs.conf | 12 +++++ > .../ide-required-iso-offline-nfs.conf.cmd | 0 > test/cfg2cmd/ide-required.conf | 14 ++++++ > test/cfg2cmd/ide-required.conf.cmd | 39 ++++++++++++++++ > test/cfg2cmd/ide-unrequired-iso-missing.conf | 12 +++++ > .../ide-unrequired-iso-missing.conf.cmd | 33 ++++++++++++++ > .../ide-unrequired-iso-offline-nfs.conf | 12 +++++ > .../ide-unrequired-iso-offline-nfs.conf.cmd | 33 ++++++++++++++ > test/run_config2command_tests.pl | 44 ++++++++++++++++++- > 13 files changed, 261 insertions(+), 3 deletions(-) > create mode 100644 test/cfg2cmd/ide-required-iso-missing.conf > create mode 100644 test/cfg2cmd/ide-required-iso-missing.conf.cmd > create mode 100644 test/cfg2cmd/ide-required-iso-offline-nfs.conf > create mode 100644 test/cfg2cmd/ide-required-iso-offline-nfs.conf.cmd > create mode 100644 test/cfg2cmd/ide-required.conf > create mode 100644 test/cfg2cmd/ide-required.conf.cmd > create mode 100644 test/cfg2cmd/ide-unrequired-iso-missing.conf > create mode 100644 test/cfg2cmd/ide-unrequired-iso-missing.conf.cmd > create mode 100644 test/cfg2cmd/ide-unrequired-iso-offline-nfs.conf > create mode 100644 test/cfg2cmd/ide-unrequired-iso-offline-nfs.conf.cmd > > manager: Daniel Herzig (3): > fix #4225: ui: form: isoselector: add optional required checkbox > fix #4225: ui: qemu: cdedit: enable required checkbox for isos > ui: qemu: hardware: add eject button for cdroms > > www/manager6/form/IsoSelector.js | 22 ++++++++++++++++ > www/manager6/qemu/CDEdit.js | 6 +++++ > www/manager6/qemu/HardwareView.js | 43 +++++++++++++++++++++++++++++++ > 3 files changed, 71 insertions(+) > > I also just noticed that the repository names are gone from the patches - seems like they were accidentally removed when formatting the second version of these patches because they were there in v1. All things considered, this is a great feature addition I'd like to see merged, so consider the whole patch series as: Reviewed-by: Daniel Kral Tested-by: Daniel Kral _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel