Sure. Do you have specific questions? The idea is to slim it down. First, other managers (RulesManager, FirewallManager etc) rely on NetworkManager to communicate with the plugins when they can do so themselves. The FirewallManager for example calls applyRules on the NetworkManagerImpl since the latter has the list of all elements. The applyRules method is ugly as we can see as it is trying to decipher who called it and why. The FirewallManager instead can be injected with the list of FirewallServiceProvider elements and can call applyFWRules directly.
Second, there can be a logical split between the public (service) interface and the orchestration interface. This should be as straightforward as not making NetworkManagerImpl inherit from NetworkService. Third, the service and orchestration interfaces can be logically split along functional areas (Physical, L2, PublicIp). Furthermore, a lot of the plugins and other managers call the NetworkManager only to query the network model. For example a lot of the incoming apis is to merely retrieve a network/ip/offering from an id or to find out if a service is supported. This can also be moved into its own "read-only" kind of class. On 1/4/13 12:02 AM, "Hugo Trippaers" <htrippa...@schubergphilis.com> wrote: >Hey Chiradeep, > >I have some trouble understanding the proposal. I completely agree with >the definition of the problem, NetworkManager is getting a bit too big to >be managed efficiently, but could you try to explain the split of the >manager with a bit more detail? > > >Cheers, > >Hugo > >> -----Original Message----- >> From: Chiradeep Vittal [mailto:chiradeep.vit...@citrix.com] >> Sent: Friday, January 04, 2013 8:42 AM >> 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 >