[pve-devel] r5259 - qemu-server/trunk

svn-commits at proxmox.com svn-commits at proxmox.com
Mon Oct 11 13:47:06 CEST 2010


Author: dietmar
Date: 2010-10-11 11:47:06 +0000 (Mon, 11 Oct 2010)
New Revision: 5259

Modified:
   qemu-server/trunk/Makefile
   qemu-server/trunk/QemuServer.pm
   qemu-server/trunk/VZDump::QemuServer.pm
   qemu-server/trunk/changelog.Debian
   qemu-server/trunk/qm
   qemu-server/trunk/qmrestore
Log:


Modified: qemu-server/trunk/Makefile
===================================================================
--- qemu-server/trunk/Makefile	2010-10-11 09:56:13 UTC (rev 5258)
+++ qemu-server/trunk/Makefile	2010-10-11 11:47:06 UTC (rev 5259)
@@ -2,7 +2,7 @@
 
 VERSION=1.1
 PACKAGE=qemu-server
-PKGREL=19
+PKGREL=20
 
 DESTDIR=
 PREFIX=/usr

Modified: qemu-server/trunk/QemuServer.pm
===================================================================
--- qemu-server/trunk/QemuServer.pm	2010-10-11 09:56:13 UTC (rev 5258)
+++ qemu-server/trunk/QemuServer.pm	2010-10-11 11:47:06 UTC (rev 5259)
@@ -491,7 +491,7 @@
 }
 
 # ideX = [volume=]volume-id[,media=d][,cyls=c,heads=h,secs=s[,trans=t]]
-#        [,snapshot=on|off][,cache=on|off][,format=f]
+#        [,snapshot=on|off][,cache=on|off][,format=f][,backup=yes|no]
 
 sub parse_drive {
     my ($key, $data) = @_;
@@ -508,7 +508,7 @@
     foreach my $p (split (/,/, $data)) {
 	next if $p =~ m/^\s*$/;
 
-	if ($p =~ m/^(file|volume|cyls|heads|secs|trans|media|snapshot|cache|format|rerror|werror)=(.+)$/) {
+	if ($p =~ m/^(file|volume|cyls|heads|secs|trans|media|snapshot|cache|format|rerror|werror|backup)=(.+)$/) {
 	    my ($k, $v) = ($1, $2);
 
 	    $k = 'file' if $k eq 'volume';
@@ -538,6 +538,7 @@
     return undef if $res->{format} && $res->{format} !~ m/^(raw|cow|qcow|qcow2|vmdk|cloop)$/;
     return undef if $res->{rerror} && $res->{rerror} !~ m/^(ignore|report|stop)$/;
     return undef if $res->{werror} && $res->{werror} !~ m/^(enospc|ignore|report|stop)$/;
+    return undef if $res->{backup} && $res->{backup} !~ m/^(yes|no)$/;
 
     if ($res->{media} && ($res->{media} eq 'cdrom')) {
 	return undef if $res->{snapshot} || $res->{trans} || $res->{format};
@@ -552,31 +553,28 @@
 
     return $res;
 }
+   
+my @qemu_drive_options = qw(heads secs cyls trans media format cache snapshot rerror werror);
 
-sub get_qemu_drive_options {
-    my ($drive) = @_;
-
-    my $res = '';
-    foreach my $o (qw(heads secs cyls trans media format cache snapshot rerror werror)) {
-	$res .= ",$o=$drive->{$o}" if $drive->{$o};
-    }
-
-    return $res;
-}
-
 sub print_drive {
     my ($vmid, $drive) = @_;
 
-    my $opts = get_qemu_drive_options ($drive);
-
+    my $opts = '';
+    foreach my $o (@qemu_drive_options, 'backup') {
+	$opts .= ",$o=$drive->{$o}" if $drive->{$o};
+    }
+    
     return "$drive->{file}$opts";
 }
 
 sub print_drive_full {
     my ($self, $vmid, $drive) = @_;
 
-    my $opts = get_qemu_drive_options ($drive);
-
+    my $opts = '';
+    foreach my $o (@qemu_drive_options) {
+	$opts .= ",$o=$drive->{$o}" if $drive->{$o};
+    }
+ 
     my $path;
     my $volid = $drive->{file};
     if (drive_is_cdrom ($drive)) {

Modified: qemu-server/trunk/VZDump::QemuServer.pm
===================================================================
--- qemu-server/trunk/VZDump::QemuServer.pm	2010-10-11 09:56:13 UTC (rev 5258)
+++ qemu-server/trunk/VZDump::QemuServer.pm	2010-10-11 11:47:06 UTC (rev 5259)
@@ -81,6 +81,12 @@
     foreach my $ds (sort keys %$di) {
 	next if PVE::QemuServer::drive_is_cdrom ($di->{$ds});
 
+	if (defined($di->{$ds}->{backup}) && $di->{$ds}->{backup} eq "no") {
+	    my $currentmedia = $di->{$ds}->{interface}.$di->{$ds}->{index};
+	    $self->loginfo("exclude disk '$ds' (backup=no)");
+	    next;
+	}
+	   
 	my $volid = $di->{$ds}->{file};
 
 	my $path;

Modified: qemu-server/trunk/changelog.Debian
===================================================================
--- qemu-server/trunk/changelog.Debian	2010-10-11 09:56:13 UTC (rev 5258)
+++ qemu-server/trunk/changelog.Debian	2010-10-11 11:47:06 UTC (rev 5259)
@@ -1,3 +1,10 @@
+qemu-server (1.1-20) unstable; urgency=low
+
+  * new backup=yes|no option for drives. VZDump ignores drives with option
+    backup=no (many thanks to draguz) 
+
+ -- Proxmox Support Team <support at proxmox.com>  Mon, 11 Oct 2010 13:46:14 +0200
+
 qemu-server (1.1-19) unstable; urgency=low
 
   * new qmrestore option '--unique' : create unique MAC address on

Modified: qemu-server/trunk/qm
===================================================================
--- qemu-server/trunk/qm	2010-10-11 09:56:13 UTC (rev 5258)
+++ qemu-server/trunk/qm	2010-10-11 11:47:06 UTC (rev 5259)
@@ -56,6 +56,7 @@
     print STDERR "\t                      [,snapshot=on|off][,cache=on|off][,format=f]\n";
     print STDERR "\t                      [,werror=enospc|ignore|report|stop]\n";
     print STDERR "\t                      [,rerror=ignore|report|stop]\n";
+    print STDERR "\t                      [,backup=no|yes]\n";
     print STDERR "\t--ide<N> <GBYTES>     create new disk\n";
     print STDERR "\t--ide<N> delete       remove drive - destroy image\n";
     print STDERR "\t--ide<N> undef        remove drive - keep image\n";
@@ -68,6 +69,7 @@
     print STDERR "\t                      [,snapshot=on|off][,format=f]\n";
     print STDERR "\t                      [,cache=none|writethrough|writeback]\n";
     print STDERR "\t                      [,werror=enospc|ignore|report|stop]\n";
+    print STDERR "\t                      [,backup=no|yes]\n";
     print STDERR "\t--scsi<N> <GBYTES>    create new disk\n";
     print STDERR "\t--scsi<N> delete      remove drive - destroy image\n";
     print STDERR "\t--scsi<N> undef       remove drive - keep image\n";
@@ -79,6 +81,7 @@
     print STDERR "\t                      [,cache=none|writethrough|writeback]\n";
     print STDERR "\t                      [,werror=enospc|ignore|report|stop]\n";
     print STDERR "\t                      [,rerror=ignore|report|stop]\n";
+    print STDERR "\t                      [,backup=no|yes]\n";
     print STDERR "\t--virtio<N> <GBYTES>  create new disk\n";
     print STDERR "\t--virtio<N> delete    remove drive - destroy image\n";
     print STDERR "\t--virtio<N> undef     remove drive - keep image\n";
@@ -970,15 +973,15 @@
 
 Default is read from global configuration file.
 
-=item ide0 - ide3: [volume=]volume,][,media=cdrom|disk] [,cyls=c,heads=h,secs=s[,trans=t]] [,snapshot=on|off] [,cache=none|writethrough"|writeback] [,format=f]
+=item ide0 - ide3: [volume=]volume,][,media=cdrom|disk] [,cyls=c,heads=h,secs=s[,trans=t]] [,snapshot=on|off] [,cache=none|writethrough"|writeback] [,format=f][,backup=yes|no]
 
 Use volume as IDE hard disk or CD-ROM.
 
-=item scsi0 - scsi15: [volume=]volume,][,media=cdrom|disk] [,cyls=c,heads=h,secs=s[,trans=t]] [,snapshot=on|off] [,cache=none|writethrough"|writeback] [,format=f]
+=item scsi0 - scsi15: [volume=]volume,][,media=cdrom|disk] [,cyls=c,heads=h,secs=s[,trans=t]] [,snapshot=on|off] [,cache=none|writethrough"|writeback] [,format=f][,backup=yes|no]
 
 Use volume as SCSI hard disk or CD-ROM.
 
-=item virtio0 - virtio15: [volume=]volume,][,media=cdrom|disk] [,cyls=c,heads=h,secs=s[,trans=t]] [,snapshot=on|off] [,cache=none|writethrough"|writeback] [,format=f]
+=item virtio0 - virtio15: [volume=]volume,][,media=cdrom|disk] [,cyls=c,heads=h,secs=s[,trans=t]] [,snapshot=on|off] [,cache=none|writethrough"|writeback] [,format=f][,backup=yes|no]
 
 Use file as VIRTIO hard disk.
 

Modified: qemu-server/trunk/qmrestore
===================================================================
--- qemu-server/trunk/qmrestore	2010-10-11 09:56:13 UTC (rev 5258)
+++ qemu-server/trunk/qmrestore	2010-10-11 11:47:06 UTC (rev 5259)
@@ -304,7 +304,9 @@
 	    } elsif ($line =~ m/^((ide|scsi|virtio)\d+):(.*)$/) {
 		my $virtdev = $1;
 		my $value = $2;
-		if ($virtdev && $map->{$virtdev}) {
+		if ($line =~ m/backup=no/) {
+		    print $outfd "#$line";
+		} elsif ($virtdev && $map->{$virtdev}) {
 		    my $di = PVE::QemuServer::parse_drive ($virtdev, $value);
 		    $di->{file} = $map->{$virtdev};
 		    $value = PVE::QemuServer::print_drive ($vmid, $di);



More information about the pve-devel mailing list