public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Daniel Kral <d.kral@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
	Daniel Herzig <d.herzig@proxmox.com>
Subject: Re: [pve-devel] [PATCH v2 qemu-server, manager 00/12] bugzilla #4225 -- improve handling of unavailable ISOs
Date: Thu, 16 Jan 2025 16:18:33 +0100	[thread overview]
Message-ID: <6fc390ea-d36a-4b0a-a138-2b5aa47624c3@proxmox.com> (raw)
In-Reply-To: <20250113085608.99498-1-d.herzig@proxmox.com>

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 <d.kral@proxmox.com>
Tested-by: Daniel Kral <d.kral@proxmox.com>



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  parent reply	other threads:[~2025-01-16 15:18 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-13  8:55 Daniel Herzig
2025-01-13  8:55 ` [pve-devel] [PATCH v2 1/12] fix #4225: qemuserver: drive: add optional required parameter Daniel Herzig
2025-01-13  8:55 ` [pve-devel] [PATCH v2 2/12] qemuserver: add helper function for mocking files Daniel Herzig
2025-01-16 15:18   ` Daniel Kral
2025-01-17 11:36     ` Daniel Herzig
2025-01-13  8:55 ` [pve-devel] [PATCH v2 3/12] fix #4225: qemuserver: add function to eject isofiles Daniel Herzig
2025-01-16 15:19   ` Daniel Kral
2025-01-17 12:32     ` Daniel Herzig
2025-01-13  8:56 ` [pve-devel] [PATCH v2 4/12] test: chomp all trailing newlines from errors and warnings Daniel Herzig
2025-01-13  8:56 ` [pve-devel] [PATCH v2 5/12] test: mock cifs-store Daniel Herzig
2025-01-13  8:56 ` [pve-devel] [PATCH v2 6/12] test: add nfs-offline storage Daniel Herzig
2025-01-13  8:56 ` [pve-devel] [PATCH v2 7/12] test: mock existing files Daniel Herzig
2025-01-13  8:56 ` [pve-devel] [PATCH v2 8/12] test: mock log_warn warnings Daniel Herzig
2025-01-13  8:56 ` [pve-devel] [PATCH v2 9/12] test: cfg2cmd: add tests for testing the iso required parameter Daniel Herzig
2025-01-13  8:56 ` [pve-devel] [PATCH v2 10/12] fix #4225: ui: form: isoselector: add optional required checkbox Daniel Herzig
2025-01-13  8:56 ` [pve-devel] [PATCH v2 11/12] fix #4225: ui: qemu: cdedit: enable required checkbox for isos Daniel Herzig
2025-01-16 15:19   ` Daniel Kral
2025-01-17 12:38     ` Daniel Herzig
2025-01-13  8:56 ` [pve-devel] [PATCH v2 12/12] ui: qemu: hardware: add eject button for cdroms Daniel Herzig
2025-01-16 15:19   ` Daniel Kral
2025-01-17 12:47     ` Daniel Herzig
2025-01-23 16:39   ` Friedrich Weber
2025-01-24  7:35     ` Daniel Herzig
2025-01-16 15:18 ` Daniel Kral [this message]
2025-01-17 11:34   ` [pve-devel] [PATCH v2 qemu-server, manager 00/12] bugzilla #4225 -- improve handling of unavailable ISOs Daniel Herzig
2025-01-17 13:04     ` Daniel Kral

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6fc390ea-d36a-4b0a-a138-2b5aa47624c3@proxmox.com \
    --to=d.kral@proxmox.com \
    --cc=d.herzig@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal