Of the tasks described here: - split it into smaller modules (initially a service layer and business logic layer)
- split the service layer into user and admin apis - split the user layer into L2/L3/network services - followed by splits in the orchestration side I've done #1 and tested it*. I'm pleased to report that the core network orchestration piece for L2 and public-ip related stuff is ~3500 lines. Of the original 8500 LOC in NetworkManagerImpl, I moved about 3000 to NetworkService and 2000 to NetworkModel. The main objective of this piece of refactoring was to: - reduce and eliminate unneeded dependencies on the orchestration piece - move queries to the network data into the api project - allow plugins to stop depending on the 'server' component I'll rebase to master to get the api_refactoring changes before proceeding to the second task. This should be relatively trivial -- the physical layer is the primary admin api The 3rd and 4th tasks -- I was hoping that this split would help me move the virtual routing code into its own plugin, but I now believe there is too much orchestration buried into the VirtualNetworkApplianceManagerImpl to make this immediately practical. So, I propose to do a second set of refactoring post-4.1 to help this along. Testing: - devcloud + marvin devcloud tests [basic zone] - simulator + UI-based network service tests - junit tests to test code that was actually re-written rather than moved - compiler should detect all other api movements. I will start a MERGE discussion separately On 1/4/13 10:38 AM, "Jason Bausewein" <jason.bausew...@tier3.com> wrote: >+1 It makes sense to me the firewall manager should be able to access >the firewall service provider directly. I also agree the network manager >is overweight and anything to slim it down helps. > >-----Original Message----- >From: Chiradeep Vittal [mailto:chiradeep.vit...@citrix.com] >Sent: Thursday, January 03, 2013 11:42 PM >To: CloudStack DeveloperList >Subject: [PROPOSAL] Network Manager refactoring > >I want to simplify the core network manager classes by splitting and >moving code around. >The JIRA bug is here: >https://issues.apache.org/jira/browse/CLOUDSTACK-740 > > >The proposal is here: >http://s.apache.org/73c > > >I will be working on a branch (network-refactor) while I wait for >comments. > >Thanks >-- >Chiradeep >