...
This proposal simplifies the process of managing shared networks and allows an external network hardware to act as router instead of a VirtualRouter.
PLUGIN
1.0 - Initial version
...
All new files are in plugins/network-elements/globonetwork
api/src/com/cloud/network/Network.java: Created new provider called GloboNetwork
api/src/org/apache/cloudstack/network/ExternalNetworkDeviceManager.java: Created new device called GloboNetwork
api/src/org/apache/cloudstack/api/ApiConstants.java: GuruName constant
api/src/org/apache/cloudstack/api/response/NetworkResponse.java: Included GuruName in NetworkResponse
client/pom.xml: Included plugin dependency
client/tomcatconf/commands.properties.in: declared all new commands (refer to Web Services API section)
plugins/pom.xml: included plugin module
server/src/com/cloud/api/ApiResponseHelper.java: Included GuruName in NetworkResponse
ui/scripts/system.js: Detail view of plugin configuration and vlan/network environment association
ui/scripts/globonetwork.js: UI integration with globonetwork plugin
ui/scripts/sharedFunctions.js: ability for regular users to restart and remove shared networks managed by GloboNetwork
…. others (ui/scripts/sharedFunctionsnetwork.js): included form to create network in GloboNetwork
After enabling GloboNetwork provider, a new network guru (GloboNetworkGuru) becomes active for deploying and managing shared network offerings. This conflicts with DirectNetworkGuru. Therefore, when creating new networks with a shared network offering, two networks are deployed, one for each guru. A possible fix is to create a new relationship between network offering and network guru, so that each offering only has one network guru associated to it.
UI for networks now include three buttons - Add Isolated Network, Add Guest Network and Add GloboNetwork Network. A possible fix is to create a select box in the form for creating new networks to choose which kind of network to create.
Cloudstack does not allow regular users to delete networks. Since GloboNetwork plugin adds this functionality, it was needed to create a new API command (deleteNetworkInGloboNetworkCmd) to execute this action as admin. This is a work-around and should be addressed more carefully in Cloudstack permission checks to allow users to remove networks if it is managed by GloboNetworkGuru.
...