On September 28, 2021 11:02 am, Dominik Csapak wrote: > this allows a user to set a drive to 'read-only'. This can be useful > if a disk should not be written to, or if the backing file/source is > not writable (like a mapped pbs backup to /dev/loopX). > > while this could also be achieved by setting 'snapshot=1', this would > create a temporary file in /var/tmp which can get quite big. > > Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> > --- > changes from v1: > * limit that setting to scsi/virtio as it is not possible to use it on > ide/sata > > PVE/QemuServer.pm | 10 ++++++---- > PVE/QemuServer/Drive.pm | 11 +++++++++++ > 2 files changed, 17 insertions(+), 4 deletions(-) > > diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm > index 0fb8628..5209f51 100644 > --- a/PVE/QemuServer.pm > +++ b/PVE/QemuServer.pm > @@ -1569,10 +1569,12 @@ sub print_drive_commandline_full { > $opts .= ",$o=$drive->{$o}" if defined($drive->{$o}); > } > > - # snapshot only accepts on|off > - if (defined($drive->{snapshot})) { > - my $v = $drive->{snapshot} ? 'on' : 'off'; > - $opts .= ",snapshot=$v"; > + # some options only accepts on|off > + foreach my $o (qw(snapshot readonly)) { > + if (defined($drive->{$o})) { > + my $v = $drive->{$o} ? 'on' : 'off'; > + $opts .= ",$o=$v"; > + } > } > > foreach my $type (['', '-total'], [_rd => '-read'], [_wr => '-write']) { > diff --git a/PVE/QemuServer/Drive.pm b/PVE/QemuServer/Drive.pm > index 5110190..af7aafe 100644 > --- a/PVE/QemuServer/Drive.pm > +++ b/PVE/QemuServer/Drive.pm > @@ -175,6 +175,14 @@ my %queues_fmt = ( > } > ); > > +my %readonly_fmt = ( > + readonly => {
we have a very similar CT mountpoint property called 'ro', might make sense to have it consistent? > + type => 'boolean', > + description => "Whether the drive is read-only.", > + optional => 1, > + }, > +); > + > my %scsiblock_fmt = ( > scsiblock => { > type => 'boolean', > @@ -269,6 +277,7 @@ my $scsi_fmt = { > %drivedesc_base, > %iothread_fmt, > %queues_fmt, > + %readonly_fmt, > %scsiblock_fmt, > %ssd_fmt, > %wwn_fmt, > @@ -297,6 +306,7 @@ PVE::JSONSchema::register_standard_option("pve-qm-sata", > $satadesc); > my $virtio_fmt = { > %drivedesc_base, > %iothread_fmt, > + %readonly_fmt, > }; > my $virtiodesc = { > optional => 1, > @@ -311,6 +321,7 @@ my $alldrive_fmt = { > %iothread_fmt, > %model_fmt, > %queues_fmt, > + %readonly_fmt, > %scsiblock_fmt, > %ssd_fmt, > %wwn_fmt, > -- > 2.30.2 > > > > _______________________________________________ > pve-devel mailing list > pve-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > > > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel