Just to recap... I was trying to review the issue in my head and thought it might be useful to write it down.
in 4.3 we got the BroadcastDomainType enum introduced, and many parts of the code were changed to use that when dealing with the vlan id. This code, among other things, returns a vlan id in URI format, describing both the technology used to provide the virtual lan, along with the id. Along the way this seems to have caused the value itself to be stored as a URI (still not sure where, by whom, or if it was intentional). That was fine and seemed to work after some fixing, until there was an upgrade done where the existing database value was NOT in URI format. We had a few places where the code was never changed to use BroadcastDomainType to 'normalize' the info from the database (e.g. the IpAssocVpcCommand the mgmt server constructs), so upgrades are broken. Most places in the code as it is now are working with a live value of 'vlan://x', regardless of whether the database has 'vlan://x' or just 'x', thanks to this code it returns the same 'vlan://' for either stored value. For these places it shouldn't matter if we fix the old databases to store 'vlan://x' or the 4.3 installs to go back to 'x'. However, there are a few places that are broken, like this IpAssocVpcCommand the mgmt server creates and CLOUDSTACK-5505. If we switch the db value back, we have to identify all of the outstanding ones and fix them. In addition, new code since then may have perhaps assumed that the db value is 'vlan://', and might have bothered to pass through the interpolation, so they may break as well. If we had full coverage on the test suite it would be easy to change the value back in the DB of a 4.3 or 4.4 install and see what breaks. If we don't switch the value back, and instead update old databases to the current way, it fixes the immediate issue but we end up with code doing the same thing in two different ways. Some places will be using the raw db value and other places will be asking for it to be normalized, and both will have the same result, which is kind of messy and prone to causing issues down the road if something changes again to separate these two. On Mon, Jun 2, 2014 at 10:01 AM, Marcus <shadow...@gmail.com> wrote: > I'm not sure the KVM code needs to be changed, you're asking it to deal > with an inconsistency from the mgmt server. Don't you find it odd that one > Command from the mgmt server provides broadcastUri="vlan://untagged" and > another provides broadcastUri="untagged"? I'm not sure I understand why > changing 'untagged' into a URI format changes its meaning, but it seems > like that doesn't make any sense to you, so perhaps we can break that out > into a separate column so that we can still capture the info, if needed. > > If we don't like URI format for the vlan id, that's fine, but we need to > do changes to the 4.3 installs and fix 4.4. As mentioned, I remember there > being a decent amount of work to handle the "vlan://" when it was > introduced, and that will need to be done again to change it back. I'm not > against that, but I'm not going to be the one doing that work, either :-) > > > > On Mon, Jun 2, 2014 at 3:47 AM, Daan Hoogland <daan.hoogl...@gmail.com> > wrote: > >> I don't think this should be solved this way afterall. 'untagged' >> actually means no vlan, so it should not be prepended with 'vlan://'. >> I think the kvm code should be fixed for this not the generic code. >> >> On Fri, May 30, 2014 at 10:59 PM, Daan Hoogland <daan.hoogl...@gmail.com> >> wrote: >> > On Fri, May 30, 2014 at 10:51 PM, Marcus <shadow...@gmail.com> wrote: >> >> Looks good to me, aside from he debug statement. >> > >> > Ah, the first line was not in my line of sight. >> > -- >> > Daan >> >> >> >> -- >> Daan >> > >