As some of you might have noticed, I've been breaking apart code in the server package. Code that is crucial to orchestration such as life cycle management of virtual entities and orchestrating plugins to implement the virtual entities on the physical hardware are being moved into the engine package. Code that are related to self-service are left in the server package.
A couple of days ago, I arrived at NetworkManager. For those of you who's seen NetworkManager, you know what a monster this is. After some analysis, I decided I will break this into three parts. - NetworkOrchestrator.java: This resides in engine and manages the life cycle of Network and Nic and participates in the VM life cycle orchestration. - NetworkManagerImpl.java: This resides in server for now because majority of the code left in this file is to provide ways to find different service providers. Eventually, that functionality will be absorbed into rulesmanagerimpl. - IpAddressManagerImpl.java: This for now will reside in server for now. This will contain all of the code that deals with ip address allocation. Eventually, this functionality may be absorbed into a new interface that can be shared by the NetworkGurus. The design of this is yet to be done but has been discussed in another thread. I will work on this and probably complete it by early next week. Please let me know if you have any comments. For now, I will mostly breakup the code and do minimal change to make it all work. The code will be in master. --Alex