On 9/25/19 5:35 PM, Mira Limbeck wrote: > Allow 'cloudinit' and '<storeid>:cloudinit' in drive_is_cloudinit so > cloudinit disks are recognized by drive_is_cdrom even if they have not > been renamed to 'vm-<vmid>-cloudinit' yet. > This fixes the check_replication sub not recognizing the cloudinit disk > when regenerating the cloudinit image or adding a new cloudinit disk and > a replication job exists. Without the early return if its a cloudinit > disk it dies in parse_volname. > > Signed-off-by: Mira Limbeck <m.limb...@proxmox.com> > --- > PVE/API2/Qemu.pm | 2 +- > PVE/QemuServer.pm | 3 ++- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm > index 1e8d350..d78a2ab 100644 > --- a/PVE/API2/Qemu.pm > +++ b/PVE/API2/Qemu.pm > @@ -67,7 +67,7 @@ my $check_storage_access = sub { > > if (!$volid || ($volid eq 'none' || $volid eq 'cloudinit')) {
isn't this check from context already handling the "<sid>:cloudinit" case?? > # nothing to check > - } elsif ($volid =~ m/^(([^:\s]+):)?(cloudinit)$/) { > + } elsif (PVE::QemuServer::drive_is_cloudinit($drive)) { can be still ok to change > # nothing to check > } elsif ($isCDROM && ($volid eq 'cdrom')) { > $rpcenv->check($authuser, "/", ['Sys.Console']); > diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm > index ad6902f..4d6ddc8 100644 > --- a/PVE/QemuServer.pm > +++ b/PVE/QemuServer.pm > @@ -2207,7 +2207,8 @@ sub print_vga_device { > > sub drive_is_cloudinit { > my ($drive) = @_; > - return $drive->{file} =~ m@[:/]vm-\d+-cloudinit(?:\.$QEMU_FORMAT_RE)?$@; > + return $drive->{file} =~ m@[:/]vm-\d+-cloudinit(?:\.$QEMU_FORMAT_RE)?$@ > + || $drive->{file} =~ m!^(?:[^/:\s]+:)?cloudinit$!; but this is not required, as a drive can only be like this if it gets created? Or are there other call-sites, not listed here, which would profit from this? > } > > sub drive_is_cdrom { > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel