]> git.proxmox.com Git - qemu-server.git/commitdiff
add pve-bridgedown script
authorAlexandre Derumier <aderumier@odiso.com>
Wed, 7 May 2014 08:42:43 +0000 (10:42 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 8 May 2014 06:37:04 +0000 (08:37 +0200)
This allow to delete fwbr bridge, link interfaces, cleanup ovs
when vm is shutdown

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
Makefile
PVE/QemuServer.pm
pve-bridgedown [new file with mode: 0755]

index eab1fb34abecbbe716d8602fef04d0f3a295e2fe..99dc8977bf3a04820cb611d94a240c4893fdaaef 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -81,6 +81,7 @@ install: ${PKGSOURCES}
        install -D -m 0755 qmupdate ${DESTDIR}${VARLIBDIR}/qmupdate
        install -D -m 0755 qemu.init.d ${DESTDIR}/etc/init.d/${PACKAGE}
        install -m 0755 pve-bridge ${DESTDIR}${VARLIBDIR}/pve-bridge
+       install -m 0755 pve-bridgedown ${DESTDIR}${VARLIBDIR}/pve-bridgedown
        install -s -m 0755 vmtar ${DESTDIR}${LIBDIR}
        install -s -m 0755 sparsecp ${DESTDIR}${LIBDIR}
        install -m 0755 qmextract ${DESTDIR}${LIBDIR}
index 5ee2606db338816761f259684aa5049b8c9abc8f..53806f96f74ee3a271c7f38e09106aa666fafba3 100644 (file)
@@ -1202,7 +1202,7 @@ sub print_netdev_full {
     my $vmname = $conf->{name} || "vm$vmid";
 
     if ($net->{bridge}) {
-        return "type=tap,id=$netid,ifname=${ifname},script=/var/lib/qemu-server/pve-bridge$vhostparam";
+        return "type=tap,id=$netid,ifname=${ifname},script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown$vhostparam";
     } else {
         return "type=user,id=$netid,hostname=$vmname";
     }
diff --git a/pve-bridgedown b/pve-bridgedown
new file mode 100755 (executable)
index 0000000..d18d88f
--- /dev/null
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use PVE::Network;
+
+my $iface = shift;
+
+die "no interface specified\n" if !$iface;
+
+die "got strange interface name '$iface'\n" 
+    if $iface !~ m/^tap(\d+)i(\d+)$/;
+
+PVE::Network::tap_unplug($iface);
+
+exit 0;