Trove/NetworkManagerInterface

Description
This feature makes three change to the behavior of Trove.

Network manager
Simple interface for the implementation of the network attributes managements, such as:
 * Security groups management methods.
 * Floating IP management methods.
 * NICS management methods.

Neutron and Nova-network implementation of the Network manager
Neutron and Nova-network manager impelentation will cover all methods that are presented in Trove now.

Justification
Nova-network is being soon-to-be deprecated service in favor of the Neutron. Until that Trove should be prepared to migrate from the nova-network based flow to Neutron flow without any harm.

Benefits of Network manager interface
The restriction that is being described by the network manager will make developers to follow provided specification while implementing network managers (neutron, nova-network, etc.)

Scope
The scope of this is primarily limited to Trove API and Task Manager but there is need for support from Trove-Integration in that it must prepare the Tenant and Network so that Trove can handle the first request without additional setup.

Impacts
From a user’s perspective this feature changes some of the expectations and behavior. Most of this is a result of the introduction of Neutron. Neutron allows for highly customized network topologies. This customizations allows users to create networks that better match network architecture standards in a modern world.

Configuration
This configuration parameters are related to trove-api and trove-taskmanager

Database
There are no expected changes to the database

Public API
No changes

Internal API
No changes

Guest Agent
No changes

Trove-Integration
To provide functional testing of each network manager, trove integration should prepare enable neutron service and setup several networks to accomplish all requirements for the successful testing.

Network manager under the hood
Network manager interface is nothing else than class with required abstract methods.