From: Stefan Reiter <s.reiter@proxmox.com>
To: "Proxmox VE development discussion" <pve-devel@lists.proxmox.com>,
"Fabian Grünbichler" <f.gruenbichler@proxmox.com>
Subject: Re: [pve-devel] [PATCH qemu-server 2/6] drive: factor out read-only helper
Date: Mon, 7 Jun 2021 11:29:19 +0200 [thread overview]
Message-ID: <a3c8a6a5-1c3b-573b-b187-edf763c1259f@proxmox.com> (raw)
In-Reply-To: <20210604094748.3383339-3-f.gruenbichler@proxmox.com>
On 6/4/21 11:47 AM, Fabian Grünbichler wrote:
> we also need it for efidisks.
>
> Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
> ---
> PVE/QemuServer.pm | 8 ++------
> PVE/QemuServer/Drive.pm | 10 ++++++++++
> 2 files changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 25ac052..0d49415 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -48,7 +48,7 @@ use PVE::QemuServer::Helpers qw(min_version config_aware_timeout);
> use PVE::QemuServer::Cloudinit;
> use PVE::QemuServer::CGroup;
> use PVE::QemuServer::CPUConfig qw(print_cpu_device get_cpu_options);
> -use PVE::QemuServer::Drive qw(is_valid_drivename drive_is_cloudinit drive_is_cdrom parse_drive print_drive);
> +use PVE::QemuServer::Drive qw(is_valid_drivename drive_is_cloudinit drive_is_cdrom drive_is_read_only parse_drive print_drive);
> use PVE::QemuServer::Machine;
> use PVE::QemuServer::Memory;
> use PVE::QemuServer::Monitor qw(mon_cmd);
> @@ -3662,11 +3662,7 @@ sub config_to_command {
> my $drive_cmd = print_drive_commandline_full($storecfg, $vmid, $drive, $pbs_name);
>
> # extra protection for templates, but SATA and IDE don't support it..
> - my $read_only = PVE::QemuConfig->is_template($conf)
> - && $drive->{interface} ne 'sata'
> - && $drive->{interface} ne 'ide';
> -
> - $drive_cmd .= ',readonly=on' if $read_only;
> + $drive_cmd .= ',readonly=on' if drive_is_read_only($conf, $drive);
>
> push @$devices, '-drive',$drive_cmd;
> push @$devices, '-device', print_drivedevice_full(
> diff --git a/PVE/QemuServer/Drive.pm b/PVE/QemuServer/Drive.pm
> index 146a4ab..0408e32 100644
> --- a/PVE/QemuServer/Drive.pm
> +++ b/PVE/QemuServer/Drive.pm
> @@ -12,6 +12,7 @@ our @EXPORT_OK = qw(
> is_valid_drivename
> drive_is_cloudinit
> drive_is_cdrom
> +drive_is_read_only
> parse_drive
> print_drive
> );
> @@ -422,6 +423,15 @@ sub drive_is_cdrom {
> return $drive && $drive->{media} && ($drive->{media} eq 'cdrom');
> }
>
> +sub drive_is_read_only {
I really don't like this name, this checks if the drive *should* be
read-only, and only related to template backups, not in general.
Maybe 'drive_template_read_only'?
The function does two pretty unrelated things in general IMO, so maybe
it would be clearer to do the is_template check at call site and make
this 'drive_supports_read_only', even if it causes a little bit more
duplication.
> + my ($conf, $drive) = @_;
> +
> + return 0 if !PVE::QemuConfig->is_template($conf);
> +
> + # don't support being marked read-only
> + return $drive->{interface} ne 'sata' && $drive->{interface} ne 'ide';
> +}
> +
> # ideX = [volume=]volume-id[,media=d][,cyls=c,heads=h,secs=s[,trans=t]]
> # [,snapshot=on|off][,cache=on|off][,format=f][,backup=yes|no]
> # [,rerror=ignore|report|stop][,werror=enospc|ignore|report|stop]
>
next prev parent reply other threads:[~2021-06-07 9:29 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-04 9:47 [pve-devel] [PATCH qemu-server 0/6] fix #2862: more template backup fixes Fabian Grünbichler
2021-06-04 9:47 ` [pve-devel] [PATCH qemu-server 1/6] test: unbreak restore_config_test Fabian Grünbichler
2021-06-04 9:47 ` [pve-devel] [PATCH qemu-server 2/6] drive: factor out read-only helper Fabian Grünbichler
2021-06-07 9:29 ` Stefan Reiter [this message]
2021-06-07 10:23 ` Fabian Grünbichler
2021-06-07 10:35 ` Stefan Reiter
2021-06-04 9:47 ` [pve-devel] [PATCH qemu-server 3/6] template: mark efidisk as read-only Fabian Grünbichler
2021-06-07 9:29 ` Stefan Reiter
2021-06-07 10:23 ` Fabian Grünbichler
2021-06-04 9:47 ` [pve-devel] [PATCH qemu-server 4/6] test: add template drive read-only tests Fabian Grünbichler
2021-06-04 9:47 ` [pve-devel] [PATCH qemu-server 5/6] template: add -snapshot to KVM command Fabian Grünbichler
2021-06-04 9:47 ` [pve-devel] [RFC qemu-server 6/6] template: start VM for VMA backup Fabian Grünbichler
2021-06-07 9:29 ` Stefan Reiter
2021-06-07 10:22 ` Fabian Grünbichler
2021-06-23 10:50 ` [pve-devel] partially-applied: [PATCH qemu-server 0/6] fix #2862: more template backup fixes Thomas Lamprecht
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=a3c8a6a5-1c3b-573b-b187-edf763c1259f@proxmox.com \
--to=s.reiter@proxmox.com \
--cc=f.gruenbichler@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.