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
>

Reply via email to