From: Daniel Kral <d.kral@proxmox.com>
To: Daniel Herzig <d.herzig@proxmox.com>
Cc: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH v2 qemu-server, manager 00/12] bugzilla #4225 -- improve handling of unavailable ISOs
Date: Fri, 17 Jan 2025 14:04:41 +0100 [thread overview]
Message-ID: <1845e66b-9a2c-47d3-8ec6-c0f24819eb17@proxmox.com> (raw)
In-Reply-To: <87frlhn079.fsf@proxmox.com>
On 1/17/25 12:34, Daniel Herzig wrote:
> Thanks for this review, this helps a lot on setting up an optimized v3.
>
> Daniel Kral <d.kral@proxmox.com> writes:
>
>>
>>> 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?
>
> I have no hard feelings about the naming of this parameter. Indeed,
> earlier it already had other names as well already.
>
> I think the only reason why this obviously best-matching label did not
> come into closer consideration, is that on parameter definition this
> would lead to the possibly confusing construction:
>
> # optional => {
> # [..]
> # optional => 1,
> # [...]
>
> I'm not entirely sure, if this could lead to unexpected side-effects
> despite looking funny.
>
> I'm open for different parameter-naming though!
Good question, I'm not entirely sure about that either, but AFAIK the
boolean `optional` property for parameters should be parsed differently
than the hash `optional` parameter definition by JSONSchema... We do
something similar with the parameter `type` that is both used to define
the parameter's type (e.g. string, array) or as a parameter itself (e.g.
storage type, VM machine type), but there could be edge cases for this
as we don't use a parameter named `optional` anywhere else.
On second thought, I think there sure is a better name for this that
describes what it's doing more discretely, but I'm not entirely sure
what. Something I just came up with is
"eject-when-missing"/"ignore-when-missing", but it is a little bit too
long IMO and also the first one fixates itself to be only used for CDROM
ISOs even when there would be a place for a similar parameter for other
media types in the future.
But that's just my two cents and I might just overthink this, maybe
someone else has a better opinion on this?
>
>>
>>> 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".
>>
>
> With the patches applied, this will be handled that way when a new VM gets
> created through the GUI (the box is unchecked by default in this case).
> So currently it's kind of soft-defaulting to 'required=0' with visual feedback.
>
> But I'm not against rather propagating 'required=1' for 8.x.
>
> To avoid conflicts with automated setup via 'qm create' that possibly
> depend on attached ISOs after intial installation nothing will be
> set at all on 'headless' actions.
Good thinking!
I'm also not sure how we handle "API stability" for the WebGUI as we're
more often concerned about the actual API. I'm just thinking about users
that have clicked through the "Create VM" dialog thousands of times,
which might not catch that CDROM images are optional by default now, but
they are the ones who would've catched this at the first VM start.
>
>>> 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 :).
>>
>
> True :).
>
>>> This series supersedes:
>>> https://lore.proxmox.com/pve-devel/20241025150243.134466-1-d.herzig@proxmox.com/
>>
>> 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.
>
> Thanks, good catch, they'll be back in v3!
Looking forward to it! :)
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
prev parent reply other threads:[~2025-01-17 13:05 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 ` [pve-devel] [PATCH v2 qemu-server, manager 00/12] bugzilla #4225 -- improve handling of unavailable ISOs Daniel Kral
2025-01-17 11:34 ` Daniel Herzig
2025-01-17 13:04 ` Daniel Kral [this message]
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=1845e66b-9a2c-47d3-8ec6-c0f24819eb17@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