From 8455a0677a8489a84767e01bba2f646339ea6cb2 Mon Sep 17 00:00:00 2001 From: Marcus Sorensen Date: Thu, 26 Dec 2013 16:44:09 -0700 Subject: [PATCH] CLOUDSTACK-5654: Don't pass empty string to BroadcastDomainType.Vlan.toUri when attempting to parse VLAN/VNI from bridge's physical ethernet device --- .../kvm/resource/LibvirtComputingResource.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index cd4ab265b58..63c2a08c1a3 100755 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -1804,11 +1804,20 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv String pif = matchPifFileInDirectory(brName); Pattern pattern = Pattern.compile("(\\D+)(\\d+)(\\D*)(\\d*)"); Matcher matcher = pattern.matcher(pif); - if (matcher.find()) { - if (brName.startsWith("brvx")) { + s_logger.debug("getting broadcast uri for pif " + pif + " and bridge " + brName); + if(matcher.find()) { + if (brName.startsWith("brvx")){ return BroadcastDomainType.Vxlan.toUri(matcher.group(2)).toString(); - } else { - return BroadcastDomainType.Vlan.toUri(matcher.group(4)).toString(); + } + else{ + if (!matcher.group(4).isEmpty()) { + return BroadcastDomainType.Vlan.toUri(matcher.group(4)).toString(); + } else { + //untagged or not matching (eth|bond)#.# + s_logger.debug("failed to get vNet id from bridge " + brName + + "attached to physical interface" + pif + ", perhaps untagged interface"); + return ""; + } } } else { s_logger.debug("failed to get vNet id from bridge " + brName + "attached to physical interface" + pif);