Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> --- src/PVE/Storage/RBDPlugin.pm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/PVE/Storage/RBDPlugin.pm b/src/PVE/Storage/RBDPlugin.pm index 680e922..301918c 100644 --- a/src/PVE/Storage/RBDPlugin.pm +++ b/src/PVE/Storage/RBDPlugin.pm @@ -348,6 +348,16 @@ sub rbd_volume_du { die "got no matching image from rbd du\n"; } +my sub rbd_volume_exists { + my ($scfg, $storeid, $volname) = @_; + + eval { + my $cmd = $rbd_cmd->($scfg, $storeid, 'info', $volname); + run_rbd_command($cmd, errmsg => "exist check", quiet => 1); + }; + return $@ ? undef : 1; +} + # Configuration sub type { @@ -869,11 +879,8 @@ sub rename_volume { $target_volname = $class->find_free_diskname($storeid, $scfg, $target_vmid, $format) if !$target_volname; - eval { - my $cmd = $rbd_cmd->($scfg, $storeid, 'info', $target_volname); - run_rbd_command($cmd, errmsg => "exist check", quiet => 1); - }; - die "target volume '${target_volname}' already exists\n" if !$@; + die "target volume '${target_volname}' already exists\n" + if rbd_volume_exists($scfg, $storeid, $target_volname); my $cmd = $rbd_cmd->($scfg, $storeid, 'rename', $source_image, $target_volname); -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel