[pve-devel] r5193 - in qemu-server/pve2/PVE: . VZDump
svn-commits at proxmox.com
svn-commits at proxmox.com
Tue Sep 21 11:44:27 CEST 2010
Author: dietmar
Date: 2010-09-21 09:44:27 +0000 (Tue, 21 Sep 2010)
New Revision: 5193
Modified:
qemu-server/pve2/PVE/QemuServer.pm
qemu-server/pve2/PVE/VZDump/QemuServer.pm
Log:
Modified: qemu-server/pve2/PVE/QemuServer.pm
===================================================================
--- qemu-server/pve2/PVE/QemuServer.pm 2010-09-21 09:42:15 UTC (rev 5192)
+++ qemu-server/pve2/PVE/QemuServer.pm 2010-09-21 09:44:27 UTC (rev 5193)
@@ -1154,13 +1154,11 @@
my $vollist = [];
eval {
- foreach my $ds (keys %$settings) {
- next if !valid_drivename($ds); # only drives
+ foreach_drive($settings, sub {
+ my ($ds, $disk) = @_;
- my $disk = parse_drive ($ds, $settings->{$ds});
+ return if drive_is_cdrom ($disk);
- next if drive_is_cdrom ($disk);
-
my $file = $disk->{file};
if ($file =~ m/^(([^:\s]+):)?(\d+(\.\d+)?)$/) {
@@ -1188,7 +1186,7 @@
die "image '$path' does not exists\n";
}
}
- }
+ });
};
my $err = $@;
@@ -1233,14 +1231,11 @@
check_lock ($conf);
# only remove disks owned by this VM
- foreach my $ds (keys %$conf) {
- next if !valid_drivename($ds);
+ foreach_drive($conf, sub {
+ my ($ds, $drive) = @_;
- my $drive = parse_drive ($ds, $conf->{$ds});
- next if !$drive;
+ return if drive_is_cdrom ($drive);
- next if drive_is_cdrom ($drive);
-
my $volid = $drive->{file};
next if !$volid || $volid =~ m|^/|;
@@ -1248,7 +1243,7 @@
next if !$path || !$owner || ($owner != $vmid);
PVE::Storage::vdisk_free ($storecfg, $volid);
- }
+ });
unlink $conffile;
@@ -1276,22 +1271,19 @@
my $res = {};
my $vollist;
- foreach my $ds (keys %$conf) {
- next if !valid_drivename($ds);
+ foreach_drive($conf, sub {
+ my ($ds, $di) = @_;
- my $di = parse_drive ($ds, $conf->{$ds});
- next if !$di;
-
$res->{$ds} = $di;
- next if drive_is_cdrom ($di);
+ return if drive_is_cdrom ($di);
if ($di->{file} =~ m|^/dev/.+|) {
$info->{$di->{file}}->{size} = PVE::Storage::file_size_info ($di->{file});
} else {
push @$vollist, $di->{file};
}
- }
+ });
eval {
my $dl = PVE::Storage::vdisk_list ($storecfg, undef, $vmid, $vollist);
Modified: qemu-server/pve2/PVE/VZDump/QemuServer.pm
===================================================================
--- qemu-server/pve2/PVE/VZDump/QemuServer.pm 2010-09-21 09:42:15 UTC (rev 5192)
+++ qemu-server/pve2/PVE/VZDump/QemuServer.pm 2010-09-21 09:44:27 UTC (rev 5193)
@@ -76,11 +76,10 @@
my $snapshot_count = 0;
- foreach my $ds (keys %$conf) {
- next if ! PVE::QemuServer::valid_drivename($ds); # only drives
+ PVE::QemuServer::foreach_drive($conf, sub {
+ my ($ds, $drive) = @_;
- my $drive = PVE::QemuServer::parse_drive ($ds, $conf->{$ds});
- next if PVE::QemuServer::drive_is_cdrom ($drive);
+ return if PVE::QemuServer::drive_is_cdrom ($drive);
my $volid = $drive->{file};
@@ -94,6 +93,8 @@
$path = $volid;
}
+ return if !$path;
+
die "no such volume '$volid'\n" if ! -e $path;
my $diskinfo = { path => $path , volid => $volid, storeid => $storeid,
@@ -174,7 +175,7 @@
push @{$task->{disks}}, $diskinfo;
- }
+ });
$task->{snapshot_count} = $snapshot_count;
}
More information about the pve-devel
mailing list