Here is the part in your commit about SRX: diff --git a/plugins/network-elements/juniper-srx/src/com/cloud/network/resource/JuniperSrxResource.java b/plugins/network-elements/juniper-srx/src/com/cloud/network/resource/JuniperSrxResource.java index 3bcbf2d..46ef332 100644 --- a/plugins/network-elements/juniper-srx/src/com/cloud/network/resource/JuniperSrxResource.java +++ b/plugins/network-elements/juniper-srx/src/com/cloud/network/resource/JuniperSrxResource.java @@ -65,6 +65,7 @@ import com.cloud.agent.api.to.IpAddressTO; import com.cloud.agent.api.to.PortForwardingRuleTO; import com.cloud.agent.api.to.StaticNatRuleTO; import com.cloud.host.Host; +import com.cloud.network.Networks.BroadcastDomainType; import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.FirewallRule.Purpose; import com.cloud.resource.ServerResource; @@ -698,8 +699,7 @@ public class JuniperSrxResource implements ServerResource { Long publicVlanTag = null; if (ip.getVlanId() != null && !ip.getVlanId().equals("untagged")) { try { - // TODO BroadcastDomain.getValue(ip.getVlanId) ??? - publicVlanTag = Long.parseLong(ip.getVlanId()); + publicVlanTag = Long.parseLong(BroadcastDomainType.getValue(ip.getVlanId())); } catch (Exception e) { throw new ExecutionException("Could not parse public VLAN tag: " + ip.getVlanId()); } @@ -3581,7 +3581,8 @@ public class JuniperSrxResource implements ServerResource { Long publicVlanTag = null; if (!vlan.equals("untagged")) { try { - publicVlanTag = Long.parseLong(vlan); + // make sure this vlan is numeric + publicVlanTag = Long.parseLong(BroadcastDomainType.getValue(vlan)); } catch (Exception e) { throw new ExecutionException("Unable to parse VLAN tag: " + vlan); }
In the code, seems you want to make sure vlan is numeric and let BroadcastDomainType.getValue() accept it(which would only accept URI)? I don't think that would work. --Sheng On Fri, Nov 8, 2013 at 10:15 AM, Sheng Yang <sh...@yasker.org> wrote: > Hi Daan, > > Your commit has broken BOTH VMware and JuniperSRX, and these are only two > functional codes in your commit. The other two modification are comments. > > So I don't know how your testing can possibly work. > > Alena has already fixed the Juniper part at: > > commit 3ab8d8d8f20c453fdc684f177a612922eae5f415 > Author: Alena Prokharchyk <alena.prokharc...@citrix.com> > Date: Wed Sep 18 16:37:00 2013 -0700 > > Fixed non-oss build broken in Juniper SRX with commit > 2614b00c513734ce6b1c29e572fbd7a37d4059fc > > BTW, I think we can talk about how to improve the format of URI/vlanid > definition and how to fix it in the future, but it's another story and > shouldn't be mixed with the broken commit issue. > > --Sheng > > > On Fri, Nov 8, 2013 at 9:37 AM, Min Chen <min.c...@citrix.com> wrote: > >> Daan, >> >> I am curious about this: you mentioned that your patch has been >> running >> fine on a mixed xen/vmware cloud environment. How come you didn't >> encounter the blocker bug filed by Rayees on our automation environment on >> master branch: https://issues.apache.org/jira/browse/CLOUDSTACK-5046. Are >> you not using advanced zone? Your change I fixed in commit >> 94f9b31c9a4c7ae67feabbe16d2ea753e3183289 will definitely lead to this >> NumberFormatException in a vmware advanced zone setup in starting system >> vm. >> Anyway, my fix 94f9b31c9a4c7ae67feabbe16d2ea753e3183289 is for >> resolving >> that vmware blocker defect 5046. If you feel that it may break other SDN >> implementation, please submit a better fix that can work for both SDN and >> Vmware. That is also the original intention I raised in this thread, since >> I am not fully aware of the context of your patch change. >> >> Thanks >> -min >> >> On 11/8/13 2:43 AM, "Daan Hoogland" <daan.hoogl...@gmail.com> wrote: >> >> >H Sheng, >> > >> >All sdn implementations use the field in one way or another as uri. So >> >if this is wrong reverting my patch won't do the trick, I am afraid. I >> >actually think the field should be renamed to broadcastUri, as this is >> >how it is used at the moment by a lot of elements. >> > >> >Going back to only allowing vlans as isolation method is not going to >> >solve anything as the feature is still desired. The alternative is >> >adding a field/parameter all over the code and have all methods check >> >both fields for valid values to decide what to do. >> > >> >The patch runs in production at the moment on a 4.1.1 fork on a xen >> >based cloud and on a mixed xen/vmware cloud as well. It has been >> >heavily tested in master. I don't value my implementation of the >> >requirement and am happy to discuss better implementations and the >> >scope of validity of vlan-ids and broadcast uris but the feature it >> >fulfills is very needed (and works). >> > >> >kind regards, >> >Daan >> > >> >On Fri, Nov 8, 2013 at 1:35 AM, Sheng Yang <sh...@yasker.org> wrote: >> >> Hi Daan, >> >> >> >> I think your patch is completely wrong. >> >> >> >> The BroadcastDomainType.getValue() would accept format of URI, not the >> >> number. I don't think your change would work, either in code or by >> >>semantic. >> >> >> >> I think your commit would break all elements your code touched. The >> >>current >> >> assumption of vlanId and secondaryVlanId are both numbers, not URI. >> >> >> >> Please revert it. >> >> >> >> --Sheng >> >> >> >> >> >> On Thu, Nov 7, 2013 at 4:07 PM, Min Chen <min.c...@citrix.com> wrote: >> >>> >> >>> Then we need to clearly define the semantic of parameter "vlanId" of >> >>> HypervisorHostHelper.prepareNetwork is indeed the vlan Id string, not >> >>> other format. The invoker method should pass the correct one to this >> >>> utility to make it work. >> >>> >> >>> Thanks >> >>> -min >> >>> >> >>> On 11/7/13 3:43 PM, "Daan Hoogland" <daan.hoogl...@gmail.com> wrote: >> >>> >> >>> >Doesn't sound like a guarantee, If the stack is build otherwise there >> >>> >might come in a different (non-integer-representing) string. >> >>> > >> >>> >On Thu, Nov 7, 2013 at 6:08 PM, Min Chen <min.c...@citrix.com> >> wrote: >> >>> >> Yes. From callstack, >> >>> >> BroadcastDomainType.getValue(BroadcastDomainType.fromString(vlanId) >> >>>is >> >>> >> already called before going to that routine. >> >>> >> >> >>> >> Thanks >> >>> >> -min >> >>> >> >> >>> >> On 11/7/13 1:51 AM, "Daan Hoogland" <daan.hoogl...@gmail.com> >> wrote: >> >>> >> >> >>> >>>H Min, >> >>> >>> >> >>> >>>Your fix will work if you can guarantee that the String passed is a >> >>> >>>integer. if it has the chance of being in the form of for instance >> >>> >>>vlan://<some_number> , you should use: >> >>> >>>vid = >> >>> >> >>> >>> >> >> >>>>>>Integer.parseInt(BroadcastDomainType.getValue(BroadcastDomainType.fro >> >>>>>>mSt >> >>> >>>ri >> >>> >>>ng(vlanId))); >> >>> >>> >> >>> >>>regards, >> >>> >>>Daan >> >>> >>> >> >>> >>> >> >>> >>>On Wed, Nov 6, 2013 at 3:25 AM, Min Chen <min.c...@citrix.com> >> >>>wrote: >> >>> >>>> Hi Daan, >> >>> >>>> >> >>> >>>> Your commit >> >>> >>>> >> >>> >> >>> >>>> >> >>>>>>> >> https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=commit;h= >> >>>>>>>25c >> >>> >>>>8c >> >>> >>>>ee01a450ee924fe108cafe54b046485ab2b >> >>> >>>> broke Vmware advanced zone setup on Master, where system vm >> starts >> >>> >>>>failed >> >>> >>>> with "NumberFormatException", see details in >> >>> >>>> https://issues.apache.org/jira/browse/CLOUDSTACK-5046. I fixed >> >>>this >> >>> >>>>blocker >> >>> >>>> bug (commit 94f9b31c9a4c7ae67feabbe16d2ea753e3183289) by >> reverting >> >>> >>>>part >> >>> >>>>of >> >>> >>>> your change on HypervisorHostHelper method, but not sure if there >> >>>is >> >>> >>>>any >> >>> >>>> side effect on your another functionality fixed in your commit. >> >>>Can >> >>> >>>>you >> >>> >>>> please review to make sure that it is ok? >> >>> >>>> >> >>> >>>> Thanks >> >>> >>>> -min >> >>> >> >> >>> >> >> >> >> >