3832 Commits

Author SHA1 Message Date
Sheng Yang
00bb63ac67 NaaS: Remove separate configuration fields for virtual router elements
The fields are duplicated with network offerings.
2011-10-31 15:59:36 -07:00
Sheng Yang
928fc64ebc NaaS: Enable VirtualRouterElement to deal with service separately 2011-10-31 15:59:31 -07:00
prachi
549c7d2ef9 Added NetworkElement API's isReady() and shutdownProviderInstances() called by NetworkMgr while enabling/shutdown the service provider. 2011-10-31 13:09:54 -07:00
prachi
818df189c5 changes to Create Vlan & Public IPs 2011-10-31 09:53:25 -07:00
alena
7b982efeaa Fixed Advance zone creation with security group enabled 2011-10-28 10:24:37 -07:00
alena
6445bf4c49 Added services/capabilities to the SecurityGroupElement 2011-10-28 09:52:40 -07:00
prachi
1583211352 Fixing build after removing physicalNetworkId from createvlanIpRangeCmd 2011-10-27 17:42:42 -07:00
prachi
6d5601a84d Added commands and framework for PhysicalNetwork trafficTypes 2011-10-27 17:32:15 -07:00
alena
d315e57b0e Renamed "type" to "guestType" 2011-10-27 16:51:42 -07:00
alena
fe0b685e95 Security group is a service now 2011-10-27 16:49:20 -07:00
alena
71b53a3432 Made isSharedSourceNatService a capability of SoureNatService 2011-10-27 16:49:20 -07:00
Sheng Yang
02ada73d89 NaaS: Make applyIp() as a function of FirewallServiceProvider 2011-10-27 16:45:40 -07:00
Sheng Yang
bf4e21f315 NaaS: Destroy virtual router when cleanup=true at shutdown
As we did in the restart() function.
2011-10-27 16:45:34 -07:00
Sheng Yang
e1e96c0bb3 NaaS: Add ServiceProviders
Added PortForwardingServiceProvider, StaticNatServiceProvider, rename
PasswordServiceProvider to UserDataServiceProvider(may rename to a better name
later).

Add related function for service providers.
2011-10-27 11:55:10 -07:00
Sheng Yang
b369e45c78 NaaS: Remove some configure items for virtual router
DHCP range, domain name, etc. are the property of network, not virtual router
specific.

The focus of virtual router configuration would on separate enable/disable each
service it provided.
2011-10-27 11:55:03 -07:00
alena
cb329095b1 When restartNetwork, just shutdown/implement elements and rules, no need to shutdown/implement the network itself. 2011-10-27 10:47:41 -07:00
alena
95bac58076 Cleanup firewall/pf/lb/vpn rules as a part of networkShutdown 2011-10-26 18:00:22 -07:00
Murali Reddy
a48ee9c568 add support for multiple provider instanes per physical network
refactor NetworkDevicemanager and ExternalnetworkdeviceManager in to one single manager
2011-10-27 03:07:30 +05:30
prachi
809f9d965e Fixed NetworkMgr: getNetworkCapabilities.
The key used to get the capabilities from the provider capabilities map was wrong.
2011-10-25 18:51:20 -07:00
alena
96843be30a Pass cleanup parametet to shutdown() method of the networkElement. Based on this parameter, the element can decide if it wants to destroy the instances, or just shut them down 2011-10-25 18:48:59 -07:00
alena
525a0a7675 1)Changed implementation for restart network: call shutdown/implement methods as a part of it
2)Re-apply all existing firewall rules as a part of implement call. TODO: Cleanup all existing rules from the backend (leave them in the DB) as a part of shutdown call
2011-10-25 18:24:24 -07:00
alena
1c430aad44 Check if source nat service is enabled before acquiring the source nat ip address 2011-10-25 18:22:53 -07:00
prachi
07591807af Removing isolationMethods from UpdatePhysicalNetwork API. 2011-10-25 11:39:41 -07:00
prachi
780e0efe79 Removing references to DataCenter - providers, using the networkoffering -> providers map instead.
TODO:
- Still leaving the provider columns in data_center schema as-is for CloudKit and BareMetal
- ExternalNetworkDeviceMgrImpl still needs to fix the dataCenter.setProviders calls and externalNetworkApplicance usage checks to see if zone has external networking.
2011-10-24 18:06:33 -07:00
prachi
766c898504 Changes: DeletePhysicalNetwork changes and Configuring NetworkMgr to hold map of providers -> elements 2011-10-24 18:03:18 -07:00
alena
345b1421c8 Allow network offering upgrade for any combination of services 2011-10-24 17:56:34 -07:00
alena
6379c9c61e Return false when failed to apply the rules on the backend 2011-10-24 17:55:04 -07:00
alena
f6717e0a23 1) Method name change
2) Rely on SourceNatService when decide if DirectNetworkGuru and GuestNetworkGuru should handle the network
2011-10-24 17:30:14 -07:00
alena
75c8e33226 Removed guestIpType from network/networkOffering 2011-10-24 17:05:00 -07:00
alena
abca3dda9d Added ability to list network offerings availabe for network upgrade using listNetworkOfferings command with "networkId" parameter.
Limitations:

* can't upgrade to the network offering with lesser number of services
* can upgrade only when the service provider of the original offering is not external (domR, dhcp, elb) to the external type of the provider
2011-10-21 15:36:01 -07:00
Murali Reddy
aa808f5685 -Added LB serive provider (seperating it out from Firewall service provider)
-Bringing add/delete/list of all external network devices under one unified API's (addNetworkDevice, deleteNetworkDevice, listNetworkDevice)
-Refactoring External network manager to work from both sets of API's add/delete/list NetworkDevice and add/delete/list External Firewall/LoadBalancer
2011-10-21 18:15:36 +05:30
alena
219978a9be Create network using physical network id 2011-10-20 18:25:13 -07:00
prachi
0d7ddb5d58 Changes:
- Make all API commands Async and add events
- Make BroadcatsDomainRange case insensitive
- Process all _networkElements to build the Service -> Provider map during NetworkMgr::configure()
2011-10-20 17:11:30 -07:00
Sheng Yang
21344e3c36 NaaS: Remove some API test code 2011-10-20 15:19:00 -07:00
Sheng Yang
2ebb719aba NaaS: Add configuration for virtual router elements 2011-10-20 13:59:23 -07:00
Sheng Yang
fdc354adb5 NaaS: Add VirtualRouterElements table
It would cover the configuration of DHCPElement, VirtualRouterElement and
RedundantVirtualRouterElement.

Also add foreign key in domain_router table to reflect the domain_router is
created from which element and use what configuration.
2011-10-20 13:59:02 -07:00
Sheng Yang
04f106a595 NaaS: Configure commands for DhcpElement, VirtualRouterElement and RedundantVirtualRouterElement
Add configure command for these virtual router based elements. The commands
should be different for different elements.

The context of configuration would be added later.
2011-10-20 13:58:54 -07:00
alena
51828421f3 Allow upgrade to the offering with a different set of providers 2011-10-20 12:53:14 -07:00
prachi
be47d6b4e9 fixing build after the Merge. 2011-10-19 22:49:03 -07:00
prachi
654eaec663 NAAS: Configuring Zone
- Create Zone changes and changes to data_center table to remove vlan, securityGroup fields
- Physical Network lifecycle APIs
- Physical Network Service Provider APIs
- DB schema changes
2011-10-19 22:44:03 -07:00
alena
c5acad39d9 Make Guest Direct security group enabled network offering system by default - we'll make it non-system after getting rid of Basic/Advance zone concepts 2011-10-19 17:34:21 -07:00
alena
ceda05298e Deprecate guestIpType in networkOffering api. Use type (Shared/Isolated) instead 2011-10-19 16:38:39 -07:00
alena
4cb9e30990 Network offering upgrade implementation 2011-10-14 15:03:12 -07:00
alena
c00058adc2 Added type (Shared/Isolated) to the networkOffering/networks 2011-10-13 17:33:41 -07:00
alena
2d228dfcbb Default service provider to VirtualRouter (should make this parameter configurable in the future) 2011-10-12 18:02:35 -07:00
alena
7433d5314a 1) Refactored networkOfferings:
* moved all services to the separate table, map them to the network_offering+provider.
* added state/securityGroupEnabled properties for the networkOffering
* added ability to list by state/securityGroupEnabled in listNetworkOfferings api command

2) New service: SourceNat
2011-10-12 16:38:59 -07:00
prachi
8570b25506 NAAS: APIServer changes to introduce framework to read commands from pluggable components having separate commands.properties file
Changes:
- Added a new interface 'PluggableService'
- Any component that can be packaged separately from cloudstack, can implement this interface and provide its own property file listing the API commands the component supports
- As an example have made VirtualNetworkApplianceService pluggable and a new configureRouter command is added
- ComponentLocator reads all the pluggable service from componentLibrary or from components.xml and instantiates the services.
- As an example, DefaultComponentLibrary adds the pluggable service 'VirtualNetworkApplianceService'
- Also components.xml.in has an entry to show how a pluggable service can be added, but it is commented out.
- APIServer now reads the commands for each pluggable service and when a command for such a service is called, APIServer sets the required instance of the pluggable service in the coomand.
- To do this a new annotation '@PlugService' is added that is processed by APIServer. This eliminates the dependency on the BaseCmd to instantiate the service instances.
2011-10-11 17:34:57 -07:00
Sheng Yang
b2a007dc3c NaaS: Remove IsServiceProvider() functions
If the element is the service provider for this network, then can be tell from
network offering. We don't need these functions in the interface.
2011-10-11 14:04:13 -07:00
Sheng Yang
30d48c40b3 Network as a service(NaaS): Separate redundant virtual router as a standalone element
Since we would introduce a way to specify each service provider in the network
offering, it's better for redundant virtual router as a separate service
provider.

Also isRedundant() flag in the network offering would be removed. Redundant
virtual router temporality won't work from now. Until we're able to add
different network elements/service providers in network_offering.
2011-10-10 15:41:07 -07:00
Sheng Yang
0121c0516d Network: Add Service providers
In the past, the NetworkElement would cover almost all the functionality that
e.g.  virtual router can cover: firewall, source NAT, static NAT, password,
VPN... So anyone want to implement the NetworkElement would have to implement
these service's specific methods, even it wouldn't support it. Also, if we want
to find a e.g. FirewallServiceProvider, we have to proceed all the current
network service providers, to call a method to know if it support such service.
That's neither elegant nor scaling way to do it.

As the first step, this patch separates each ServiceProvider from NetworkElement
(there are some interface already out of NetworkElement, so this patch slightly
modifies them too), and only the class would implement the correlated interface, would
have the ability to do these services.
2011-10-10 11:45:39 -07:00