From 470ec2cabcb11f99e76a287ce2be261fd5b01cf1 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Tue, 10 Jan 2012 16:19:49 -0800 Subject: [PATCH] bug 10586: apply Nils's patch status 10586: resolved fixed --- .../resource/computing/LibvirtComputingResource.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java index 69fe62f8e43..adab6f485e3 100755 --- a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java +++ b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java @@ -714,11 +714,20 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv /*get pifs from bridge*/ String pubPif = null; String privPif = null; + String vlan = null; if (_publicBridgeName != null) { - pubPif = Script.runSimpleBashScript("brctl show | grep " + _publicBridgeName + " | awk '{print $4}'"); + pubPif = Script.runSimpleBashScript("brctl show | grep " + _publicBridgeName + " | awk '{print $4}'"); + vlan = Script.runSimpleBashScript("ls /proc/net/vlan/" + pubPif); + if ( vlan != null && !vlan.isEmpty() ) { + pubPif = Script.runSimpleBashScript("grep ^Device\\: /proc/net/vlan/" + pubPif + " | awk {'print $2'}"); + } } if (_guestBridgeName != null) { privPif = Script.runSimpleBashScript("brctl show | grep " + _guestBridgeName + " | awk '{print $4}'"); + vlan = Script.runSimpleBashScript("ls /proc/net/vlan/" + privPif); + if ( vlan != null && !vlan.isEmpty() ) { + privPif = Script.runSimpleBashScript("grep ^Device\\: /proc/net/vlan/" + privPif + " | awk {'print $2'}"); + } } return new Pair(privPif, pubPif); }