[pve-devel] r5213 - qemu-server/pve2

svn-commits at proxmox.com svn-commits at proxmox.com
Tue Oct 5 12:38:47 CEST 2010


Author: dietmar
Date: 2010-10-05 10:38:47 +0000 (Tue, 05 Oct 2010)
New Revision: 5213

Modified:
   qemu-server/pve2/ChangeLog
   qemu-server/pve2/qmrestore
Log:
010-10-05  Seth Lauzon <seth.lauzon at gmail.com>

        * qmrestore (restore_qemu): new option --unique (create unique MAC
        address on restore)




Modified: qemu-server/pve2/ChangeLog
===================================================================
--- qemu-server/pve2/ChangeLog	2010-10-05 10:31:55 UTC (rev 5212)
+++ qemu-server/pve2/ChangeLog	2010-10-05 10:38:47 UTC (rev 5213)
@@ -1,3 +1,8 @@
+2010-10-05  Seth Lauzon <seth.lauzon at gmail.com>
+
+        * qmrestore (restore_qemu): new option --unique (create unique MAC
+        address on restore)
+
 2010-09-21  Proxmox Support Team  <support at proxmox.com>
 
 	* PVE/QemuServer.pm (new): remove unused method

Modified: qemu-server/pve2/qmrestore
===================================================================
--- qemu-server/pve2/qmrestore	2010-10-05 10:31:55 UTC (rev 5212)
+++ qemu-server/pve2/qmrestore	2010-10-05 10:38:47 UTC (rev 5213)
@@ -32,7 +32,7 @@
 
 openlog ('vzdump', 'cons,pid', 'daemon');
 
-my @std_opts = ('extract', 'storage=s', 'info', 'prealloc');
+my @std_opts = ('extract', 'storage=s', 'info', 'prealloc', 'unique');
 
 sub print_usage {
     my $msg = shift;
@@ -295,14 +295,23 @@
 	    next if $line =~ m/^\#vzdump\#/;
 	    next if $line =~ m/^lock:/;
 
-	    $line =~ m/^((ide|scsi|virtio)\d+):(.*)$/;
-	    my $virtdev = $1;
-	    my $value = $2;
-	    if ($virtdev && $map->{$virtdev}) {
-		my $di = PVE::QemuServer::parse_drive ($virtdev, $value);
-		$di->{file} = $map->{$virtdev};
-		$value = PVE::QemuServer::print_drive ($vmid, $di);
-		print $outfd "$virtdev: $value\n";
+	    if (($line =~ m/^((vlan)\d+):(.*)$/) && ($opts->{unique})) {
+		my ($id,$ethcfg) = ($1,$3);
+		$ethcfg =~ s/^\s+//;
+		my ($model, $mac) = split(/\=/,$ethcfg);
+		my $printvlan = PVE::QemuServer::print_vlan (PVE::QemuServer::parse_vlan ($model));
+		print $outfd "$id: $printvlan\n";
+	    } elsif ($line =~ m/^((ide|scsi|virtio)\d+):(.*)$/) {
+		my $virtdev = $1;
+		my $value = $2;
+		if ($virtdev && $map->{$virtdev}) {
+		    my $di = PVE::QemuServer::parse_drive ($virtdev, $value);
+		    $di->{file} = $map->{$virtdev};
+		    $value = PVE::QemuServer::print_drive ($vmid, $di);
+		    print $outfd "$virtdev: $value\n";
+		} else {
+		    print $outfd $line;
+		}
 	    } else {
 		print $outfd $line;
 	    }
@@ -392,6 +401,8 @@
  --info                    read/verify archive and print relevant 
                            information (test run)
 
+ --unique		   assign a unique random ethernet address
+
  --storage <STORAGE_ID>    restore to storage <STORAGE_ID>
 
  --prealloc                never generate sparse files



More information about the pve-devel mailing list