Thank you for clarifying this. This was my assumption after spending a bunch of time stepping through the code.
Will On Tue, Apr 2, 2013 at 2:42 AM, Murali Reddy <murali.re...@citrix.com>wrote: > The 'Network' has a life cycle associated with it. Network goes from > 'allocated' state (after the design phase) to 'implemented' (after > implement phase). Unless a network is implemented it is not ready for use > in 'isolated network' case. Only after network is implemented, it gets full > identity. Can you please deploy a Vm into the network and confirm you see > that non-overlapping CIDR's is allocated? 10.1.1.0/24 you see is the > default CIDR network gets after design phase which will be replaced once > network is implemented. > > From: Will Stevens <wstev...@cloudops.com<mailto:wstev...@cloudops.com>> > Reply-To: "dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>" < > dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>> > Date: Tuesday, 2 April 2013 12:33 AM > To: "dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>" < > dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>> > Subject: Re: [DISCUSS] Palo Alto Integration > > So I have been stepping through the code and I can confirm that the > 'design' method of ExternalGuestNetworkGuru is being hit, but it doesn't do > anything, so it passes off work of creating the network to the 'design' > method of GuestNetworkGuru which assigns 10.1.1.0/24<http://10.1.1.0/24> > to the network every time I create a network. > > Something I am finding strange is that 'config.getId()' gives -1, so the > new network that is being created while in the 'design' method of > ExternalGuestNetworkGuru does not hit the only logic in the function: > > NetworkVO config = (NetworkVO) super.design(offering, plan, userSpecified, > owner); > if (config == null) { > return null; > } else if > (_networkModel.networkIsConfiguredForExternalNetworking(plan.getDataCenterId(), > config.getId())) { > /* In order to revert userSpecified network setup */ > config.setState(State.Allocated); > } > > So the config.setState(State.Allocated) is not getting hit. > > There does seem to be some logic for updating the cidr in the 'implement' > function of ExternalGuestNetworkGuru, but that is not run until a VM is > added to the network (from what I understand), so that is a bit strange to > me. > > Are the non-overlapping cidrs implemented only when a VM is added to the > network and the same placeholder cidr is used until then? > > Thanks, > > Will > > > On Mon, Apr 1, 2013 at 11:22 AM, Will Stevens <wstev...@cloudops.com > <mailto:wstev...@cloudops.com>> wrote: > Thank you for all your help Murali... > > So my Provider has been setup with isExternal = true this whole time. > public static final Provider PaloAlto = new Provider("PaloAlto", true); > > If I run a debugger and then create a guest network, I see it enter the > 'design' function of the ExternalGuestNetworkGuru, but it does not do > anything in there because the config is not null, but the config.getId() = > -1, so it just returns the config (Network object) and doesn't really do > anything. > > Apparently the 'implement' method doesn't get called until a VM is > attempted to be launched on the network. > > I must be missing something because, every Isolated guest network I create > on my provider is defaulting to the cidr of 10.1.1.0/24<http://10.1.1.0/24>. > Even if I have multiple Isolated networks associated with the same > account, they all by default have that cidr. > > If the default behaviour of the ExternalGuestNetworkGuru is to create > non-overlapping guest cidrs, why does it always default to the 10.1.1.0/24 > <http://10.1.1.0/24> cidr when I create a new network? I can not specify > a gateway or netmask because it is an external network (as you can see from > the included screenshot). > [Inline image 1] > > What am I missing here? Why am I unable to create non-overlapping cidrs > with the ExternalGuestNetworkGuru? > > Thanks, > > Will > > > On Fri, Mar 29, 2013 at 1:23 AM, Murali Reddy <murali.re...@citrix.com > <mailto:murali.re...@citrix.com>> wrote: > On 28/03/13 10:59 PM, "Will Stevens" <wstev...@cloudops.com<mailto: > wstev...@cloudops.com>> wrote: > > >I am trying to implement the non-overlapping cidrs right now and I have > >some questions. Does the ExternalGuestNetworkGuru create networks with > >non-overlapping cidrs by default? Or do I need to override it's 'design' > >and 'implement' methods to implement non overlapping cidrs? > > Will, yes, it does by default. You can just use > 'ExternalGuestNetworkGuru'. Just so that you know, there is check > 'networkIsConfiguredForExternalNetworking' in ExternalGuestNetworkGuru. > Which basically checks if provider is configured as service provider using > external physical appliances. So when you declare provider, mark > 'isExternal' as true in the provider constructor. > > > > >If I have to write my own methods, I think I understand how to > >override ExternalGuestNetworkGuru and then get it to run by adding it to > >the components.xml (or nonoss-components.xml) as well as the > >componentContext.xml.in<http://componentContext.xml.in>. > > > >If I do not have to actually write the logic for the non-overlapping cidrs > >(which i am hoping is the case), and the ExternalGuestNetworkGuru actually > >implements that logic, how would I get the ExternalGuestNetworkGuru into > >my > >flow without actually overriding the class? I understand that the > >components are loaded through the components.xml stuff, but its not clear > >how you specify which NetworkGuru should be used in my specific flow. > > > >I am basically working from this > >document< > https://cwiki.apache.org/CLOUDSTACK/extending-cloudstack-networki > >ng.html>and > >the code. Is there any other resources I should be aware of for > >extending the CloudStack networking functionality? > > > >I have a good start on a Resource, ExternalFirewallElement and an > >ExternalFirewallService. I can currently set the Palo Alto as the > >provider > >of Firewall, SourceNat, StaticNat and Port Forwarding services. I can > >currently Add, List, Configure and Delete my Palo Alto provider. > > > >I am getting there, but I still feel like there are gaps in my knowledge > >when using the CS networking plugin functionality. > > Good the hear the progress. Feel free to ask any question. > > Thanks, > Murali > > > > >Thanks, > > > >Will > > > >