The NetworkGuru does a lot more than IP address allocation, e.g. handle the Layer2/3 networking unique to the particular vendor. There are a lot of NetworkElements providing their own NetworkGuru plugins (Nicira, MidoNet, ...) extending the standard CloudStack Gurus.
The feature of providing IP Address Allocation, DHCP and DNS is common for all these networks, so rather than provide our own Guru the proposed design would allow the above functions to coexist with existing Gurus. -Soheil ________________________________________ From: Murali Reddy [murali.re...@citrix.com] Sent: Tuesday, August 06, 2013 3:24 AM To: dev@cloudstack.apache.org Subject: Re: IP Address Allocation On 06/08/13 8:59 AM, "Soheil Eizadi" <seiz...@infoblox.com> wrote: >One way to achieve this behavior is to have a call out in prepareNic() to >the NetworkElements before the call to the NetworkGuru allowing the >NetworkElement to update the Nic Profile. In this use case the Network >Element would suggest an IP Address. In the use case below the IP Address >would be updated by the NetworkElement. There is logic in getIp(), the >current IP Allocation that handles the case where the Nic Profile already >has an IP Address. This needs to be updated to handle this new use case. >The current use case assume that the VM had already been prepared once >and has an IP Address allocated that could be reused. > >Does anyone see a problem with this approach? Purpose of Guru (to design the network) and Element (implement the network) are different. Right way would be for your plug-in to implement both network Guru and element and let the guru do the IP address allocation. >-Soheil >________________________________________ >From: Soheil Eizadi [seiz...@infoblox.com] >Sent: Monday, August 05, 2013 2:35 PM >To: dev@cloudstack.apache.org >Subject: IP Address Allocation > >I am trying to figure out what would be the proper way for a Plugin to >interact with the CloudStack VM deployment and provide an authoritative >IP Address from its database versus the local CloudStack database. It >looks like the NetworkElements are not presented an opportunity to >provide an IP Address and you must develop a NetworkGuru to provide this >function. There is some customization of the IP Address designed into the >Secondary NICs (see allocateGuestIP()). >-Soheil >