[pve-devel] [PATCH qemu-server 02/11] update_disksize: make interface leaner

Fabian Ebner f.ebner at proxmox.com
Wed May 20 10:20:37 CEST 2020


Pass new size directly, so the function doesn't need to know about
how some hash is organized. And return a message directly, instead
of both size-strings. Also dropped the wantarray, because both
existing callers use the message anyways.

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---
 PVE/QemuMigrate.pm      |  5 +++--
 PVE/QemuServer.pm       |  6 +++---
 PVE/QemuServer/Drive.pm | 11 +++++------
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index f6baeda..96de0db 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -522,11 +522,12 @@ sub sync_disks {
 
 	    my $volid = $drive->{file};
 	    return if !defined($local_volumes->{$volid}); # only update sizes for local volumes
+	    return if !defined($volid_hash->{$volid});
 
-	    my ($updated, $old_size, $new_size) = PVE::QemuServer::Drive::update_disksize($drive, $volid_hash);
+	    my ($updated, $msg) = PVE::QemuServer::Drive::update_disksize($drive, $volid_hash->{$volid}->{size});
 	    if (defined($updated)) {
 		$conf->{$key} = PVE::QemuServer::print_drive($updated);
-		$self->log('info', "size of disk '$updated->{file}' ($key) updated from $old_size to $new_size\n");
+		$self->log('info', "drive '$key': $msg");
 	    }
 	});
 
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index dcf05df..506f6fb 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -5932,7 +5932,7 @@ sub update_disk_config {
     my ($vmid, $conf, $volid_hash) = @_;
 
     my $changes;
-    my $prefix = "VM $vmid:";
+    my $prefix = "VM $vmid";
 
     # used and unused disks
     my $referenced = {};
@@ -5960,11 +5960,11 @@ sub update_disk_config {
 	return if drive_is_cdrom($drive);
 	return if !$volid_hash->{$volid};
 
-	my ($updated, $old_size, $new_size) = PVE::QemuServer::Drive::update_disksize($drive, $volid_hash);
+	my ($updated, $msg) = PVE::QemuServer::Drive::update_disksize($drive, $volid_hash->{$volid}->{size});
 	if (defined($updated)) {
 	    $changes = 1;
 	    $conf->{$opt} = print_drive($updated);
-	    print "$prefix size of disk '$volid' ($opt) updated from $old_size to $new_size\n";
+	    print "$prefix ($opt): $msg\n";
 	}
     });
 
diff --git a/PVE/QemuServer/Drive.pm b/PVE/QemuServer/Drive.pm
index f84333f..91c33f8 100644
--- a/PVE/QemuServer/Drive.pm
+++ b/PVE/QemuServer/Drive.pm
@@ -522,14 +522,11 @@ sub bootdisk_size {
 }
 
 sub update_disksize {
-    my ($drive, $volid_hash) = @_;
+    my ($drive, $newsize) = @_;
 
-    my $volid = $drive->{file};
-    return undef if !defined($volid);
-    return undef if !defined($volid_hash->{$volid}) || !defined($volid_hash->{$volid}->{size});
+    return undef if !defined($newsize);
 
     my $oldsize = $drive->{size} // 0;
-    my $newsize = $volid_hash->{$volid}->{size};
 
     if ($newsize != $oldsize) {
 	$drive->{size} = $newsize;
@@ -537,7 +534,9 @@ sub update_disksize {
 	my $old_fmt = PVE::JSONSchema::format_size($oldsize);
 	my $new_fmt = PVE::JSONSchema::format_size($newsize);
 
-	return wantarray ? ($drive, $old_fmt, $new_fmt) : $drive;
+	my $msg = "size of disk '$drive->{file}' updated from $old_fmt to $new_fmt";
+
+	return ($drive, $msg);
     }
 
     return undef;
-- 
2.20.1





More information about the pve-devel mailing list