Commit Graph

323 Commits

Author SHA1 Message Date
Naredula Janardhana Reddy ce22712293 Bug 12812:
Summary of changes:  Database changes will be rollbacked while applying the LB rule to the Netscaler device.
   - Database changes will be rollbacked to previous state during the following Lb API's:
      1) assignVM to LB rule
      2) remove VM from LB rule
      3) updateLb rule
      4) deleteLb rule
      5) create/attach sticky policy to Lb rule
      6) delete sticky policy from Lb rule
   - Database changes of the Lb rule will be not be rolledback during:
       1) Removing IP
       2) removing VM
2012-02-06 19:16:34 +05:30
Alena Prokharchyk 3a87cf8331 Code style fixes for API package 2012-02-03 14:25:26 -08:00
Alena Prokharchyk 1490e45a1c Fixed format style in a bunch of files (replaced tabs with spaces as a part of it) 2012-02-03 13:49:11 -08:00
Naredula Janardhana Reddy aea81205ef Bug 11845:
Summary of Changes:
    - created a generic way for LB rule validations, so as LB device(like Haproxy) specific validations can be done syncronously.
    - Removed asyncronous validations from Haproxy and done syncronously.
2012-02-01 18:01:11 +05:30
Alex Huang c42f50c4b0 Used a different way to allocate guest ip address. not in used yet. 2012-01-30 16:10:10 -08:00
Alena Prokharchyk 03b4ac91e1 Get new elasticIp when disassociateIP is called for static nat non-elastic IP 2012-01-24 15:15:22 -08:00
Alena Prokharchyk 5307d21210 DisableStaticNat: if elasticIP service is enabled for the network offering, always allocate new elastic ip and create static nat rule for it when disableStaticNat is called 2012-01-24 14:06:01 -08:00
Alena Prokharchyk 8bcf30da85 bug 12869: more changes to NAAS feature 2012-01-20 14:16:30 -08:00
Alena Prokharchyk 212c22b256 Added isElastic flag to ip address 2012-01-19 13:58:35 -08:00
Alena Prokharchyk 6325d21c50 Get new elasticIp when releaseIpAddress is called for elasticIP of the vm 2012-01-19 13:58:35 -08:00
Alena Prokharchyk a8758d292e ElasticLB support in Basic zone.
When elb capability is enabled on the network offering, we:

1) on each createLB command:
* associate ip address to the LB rule owner
* create LB rule

2) on each deleteLb command:
* delete the rule
* disassociate ip address

The rule belongs to the owner, so proper usage events are generated
2012-01-19 13:57:37 -08:00
Alena Prokharchyk ff1e8413f1 1) Added StaticNat/Firewall/Lb capabilities to Netscaler element. Renamed it to "NetscalerElement" from NetscalerLoadBalancingElement as it serves more services now
2) Added elasticIp and elasticLb network capabilities. Provided support to create network offering with these capabilities.
3) Added one more default network offering having elasticip and elasticlb
4) Public network support to Basic zone. You can associate/disassociate IP addresses now
2012-01-19 13:56:59 -08:00
Alena Prokharchyk d20e10edd3 bug 12919: pass all lb rules in transition (revoke/add) state to the backend when apply a single LB rule
status 12919: resolved fixed
2012-01-18 14:15:21 -08:00
Alena Prokharchyk 56b3561033 bug 12856: network offerings with services w/o providers support
status 12856: resolved fixed
2012-01-17 16:17:09 -08:00
Alena Prokharchyk adaea570e4 bug 12934: added name to physical network
status 12934: resolved fixed
2012-01-09 14:20:37 -08:00
frank 391f3e8b30 Bug 12777 - Add storage network configuration into CloudStack
fix typo: changing ListTafficTypeImplementorsCmd to ListTrafficTypeImplementorsCmd
2012-01-09 10:53:08 -08:00
Alena Prokharchyk c581506103 bug 12306: list* command revamp 2012-01-09 10:07:42 -08:00
frank 4bb580de86 Bug 12777 - Add storage network configuration into CloudStack
new API: UpdateStorageNetworkIpRangeCmd

Bug 12777: resolved fixed
2012-01-06 11:07:15 -08:00
frank ea422af8a9 Bug 12777 - Add storage network configuration into CloudStack
Let StorageGuru inherit PodBaseNetworkGuru
2012-01-06 11:07:14 -08:00
frank ec7c22f5c7 Bug 12777 - Add storage network configuration into CloudStack
new API: ListTafficTypeImplementors
2012-01-06 11:07:14 -08:00
frank f72940e041 Bug 12777 - Add storage network configuration into CloudStack
most finish
2012-01-06 11:06:18 -08:00
frank 0b01c5dc1a Bug 12777 - Add storage network configuration into CloudStack
create APIs
2012-01-06 11:06:17 -08:00
Sheng Yang 89ca2fe48e bug 12656: Add restriction for network update and new rules
status 12656: resolved fixed
2012-01-05 21:08:41 -08:00
Sheng Yang ba23973d53 bug 12656: Refactor IP associate process
Introduce the concept of Ip Deployer. The IP deployer would be responible for
apply IP to the element. Most element's IP deployer is itself, but it can be
someone else if we want to implement inline mode in the future.
2012-01-05 21:08:28 -08:00
Alena Prokharchyk d4e0fbda83 bug 12686: added search by zoneId to the listNetworkOfferings 2012-01-04 12:31:59 -08:00
Murali reddy 4f058feef2 bug 12276: public IP's should be associated with a network service provider depending on the network rules for which IP is used for 2011-12-19 23:48:52 +05:30
Prasanna Santhanam dac505194c Changes to PhysicalNetworkTrafficType to accomodate the simulator hypervisor type 2011-12-15 19:12:21 +05:30
Alena Prokharchyk 7ff1417cbb bug 12229: added restartRequired field to the network object
The value is set to true when shutdownResources or implementResources fail.
2011-12-09 15:37:11 -08:00
Sheng Yang 7aed9ea76d Add checking for specified cidr when create network and update network 2011-12-06 16:28:57 -08:00
Alena Prokharchyk e89c8725ed Return redundantRouter/sourceNatSupported capabilities as a part of listSupportedNetworkServices 2011-12-06 15:36:02 -08:00
Alena Prokharchyk d836699209 restartNetwork: don't try to disassoc the sourceNat IP on the domR 2011-12-05 17:28:08 -08:00
Alena Prokharchyk 7b8287d323 bug 10804: Api and middle layer support for default route feature 2011-12-05 14:53:45 -08:00
Alena Prokharchyk 0effb82f82 bug 12295: fixed associateIpAddress for projects
status 12295: resolved fixed
2011-12-02 12:08:01 -08:00
Naredula Janardhana Reddy 09905b641b bug 10617: merge code from branch bug10617. 2011-12-01 14:17:52 +05:30
Sheng Yang c5292de0ae NaaS: Restrict the combination that provider can support 2011-11-30 14:53:50 -08:00
Alena Prokharchyk 554946fe8b Allow networkDomain update for Shared networks 2011-11-30 10:34:58 -08:00
Naredula Janardhana Reddy e4b5a62402 bug 10796: merging code from branch 2011-11-30 15:03:43 +05:30
Alena Prokharchyk c2448b7bd4 list Providers by name and state 2011-11-29 09:59:43 -08:00
Alena Prokharchyk 0bb325ac12 Call implement() and shutdown() methods for providers only when the provider serves a service for the network 2011-11-17 13:53:53 -08:00
Sheng Yang d4b1732ff4 NaaS: Fix redundant virtual router 2011-11-16 11:30:09 -08:00
Edison Su b2a5e26c06 bug 10792: add default system wide firewall rule
status 10792: resolved fixed
2011-11-15 16:51:30 -08:00
prachi da846e9c08 Adding UUID to new entities and API commands. PhysicalNetwork, PhysicalNetworkTrafficType, PhysicalNetworkServiceProviders changed. 2011-11-11 13:23:23 -08:00
Naredula Janardhana Reddy f1b99f4f07 Revert "bug 10617: merging code from branch bug10617"
This reverts commit 8bc33448b9220534ba0ddc6c642ffb1e69d5844e.

Conflicts:

	server/src/com/cloud/api/ApiResponseHelper.java
2011-11-11 20:23:26 +05:30
Alena Prokharchyk 039e09ce93 * Introduced aclType parameter for createNetwork command (can hold 2 values now: Account and Domain). This parameter defines the access control type to the network object. If it's account -
only owner of the network can access it; if it's domain - all accounts in the domain and domain children can have an access.
* aclType replaces 2 old fields: isShared and isDomainSpecific.
* All 2.2.x account specific networks will have aclType=Account; 2.2.x Domain specific networks - aclType=domain; 2.2.x Zone level networks - aclType=Domain with domainId = Root domain id
2011-11-10 18:34:56 -08:00
Sheng Yang bde1f6d2de Merge branch 'networkasservice'
Conflicts:
	api/src/com/cloud/api/commands/CreateRedundantVirtualRouterElementCmd.java
	api/src/com/cloud/api/commands/CreateVirtualRouterElementCmd.java
	server/src/com/cloud/api/ApiResponseHelper.java
	server/src/com/cloud/network/ExternalNetworkDeviceManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/offerings/NetworkOfferingVO.java
	setup/db/create-schema.sql
2011-11-10 16:36:08 -08:00
Alex Huang d6c22c42fe Merge branch 'master' of ssh://git.cloud.com/var/lib/git/cloudstack-oss 2011-11-10 15:26:39 -08:00
Naredula Janardhana Reddy 02adbd4bd3 bug 10617: merging code from branch bug10617 2011-11-10 15:23:48 +05:30
Sheng Yang 5c1773dd26 NaaS: Add response for VirtualRouterProvider 2011-11-09 18:52:34 -08:00
Murali Reddy 53a636518f NAAS: changing sharedsourcenat capability to sourceNat service and changin serviceCapablityList parameter to one level map 2011-11-09 18:44:18 -08:00
Sheng Yang 47114af94b NaaS: Add redundant capability for Gateway service 2011-11-09 17:09:46 -08:00
Sheng Yang bc86800d30 NaaS: Remove Redundant Virtual Router element
Would use capability instead.
2011-11-09 17:09:38 -08:00
Sheng Yang 9b8f96c06d NaaS: Merge Role.DHCP_USERDATA and Role.DHCP_FIREWALL_LB_USERDATA to Role.VIRTUAL_ROUTER 2011-11-09 17:09:17 -08:00
Sheng Yang 0876cbeda7 NaaS: Rename VirtualRouterProviderType 2011-11-09 15:24:28 -08:00
Sheng Yang c09b2b94b3 NaaS: Add ElbVm to Virtual Router Provider 2011-11-09 15:23:33 -08:00
Sheng Yang b569a11e45 NaaS: Add DHCP and userdata service provider 2011-11-09 15:23:06 -08:00
Alex Huang 0353133369 Added ways to acquired ip to network guru 2011-11-09 09:37:22 -08:00
Murali Reddy db991dd8f6 NAAS : adding support for service capabilities to be specified as part of network offering 2011-11-08 13:01:44 -08:00
alena 104ed0a2a2 Direct network guru takes care of only sourceNatDisabled networks in Advance zone 2011-11-07 10:54:19 -08:00
prachi 5f93665a30 - Send network labels to hypervisor recource during processConnect
- Create Default physicalnetwork and add traffic types while creating a zone
- DeleteProvider should error out if there are networks using the provider.
- Other validations
2011-11-04 17:57:05 -07:00
Sheng Yang 3051dc2621 NaaS: Discard DhcpElement
VirtualRouterElement would do all the job. The difference would be public
network enabled or not.
2011-11-04 14:13:55 -07:00
alena 9e5a733a34 Fixed NPE in updateNetwork - userCaller wasn't passed in to restartNetworkElements call 2011-11-03 10:53:19 -07:00
alena 3e20c60d6d Fixed vm deployment in Basic zone 2011-11-02 17:02:44 -07:00
alena f42c9e434f Basic zone: the System Guest network offering can be created from any Shared Guest network offering.
Limitation:
* in order to make the networkOffering choice, only one Shared network has to be Enabled at the moment when Basic zone is being created
2011-11-02 15:44:53 -07:00
Sheng Yang 3fc9b149e4 NaaS: Add portforwarding and staticnat service provider
Make them service rather than capability of firewall. Now firewall only means
open/close the port.
2011-11-02 15:18:39 -07:00
prachi 6aa743165a Changes to support Enable/ Disable services of a service provider added to physical network:
- ListSupportedNetworkServiceProvidersCmd will now return Providers along with its element's services and boolean 'canEnableIndividualServices' that indicates if for this Provider services can be enabled/disabled
- add & update NetworkServiceProvider changed to take in the list of services to enable. While adding a provider, if list is null then all services supported by the element are enabled by default.
- ListNetworkServices enhanced to take in a provider name and returns services of that specific provider.
2011-11-01 18:03:55 -07:00
alena 2250dff349 1) Removed tags from the network object
2) Get hypervisor tags from the physical network instead.
2011-11-01 17:42:06 -07:00
Alex Huang da78937d30 Removed some useless methods 2011-11-01 16:57:22 -07:00
alena 9560e92015 physicalNetworkId is optional in createNetwork api. Works as follows:
* can be specified for Shared network only
* if not specified for the Shared networks, try to locate it based on the zoneId and tags. If tags is not null, pick up first physicalNetwork from the zone that has matching tags. If tags is null, and there are none/more than 1 physical netwroks in the zone, error out.
2011-11-01 15:49:39 -07:00
Sheng Yang a43364f0a4 NaaS: Rename virtual_router_elements to virtual_router_provider 2011-10-31 15:59:53 -07:00
Sheng Yang cd3fbf0548 NaaS: Create AddVirtualRouterElementCmd
As DhcpElement/VirtualRouterElement/RedundantVirtualRouterElement is decided to
be the service provider of the physical network, this API should be called to
add a new element, with correlated network service provider ID.

Then e.g. ConfigureVirtualRouterElementCmd should be called to configure and
enable the element.
2011-10-31 15:59:44 -07:00
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
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
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
Sheng Yang 02ada73d89 NaaS: Make applyIp() as a function of FirewallServiceProvider 2011-10-27 16:45:40 -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 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
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
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 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 2ebb719aba NaaS: Add configuration for virtual router elements 2011-10-20 13:59:23 -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
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 ceda05298e Deprecate guestIpType in networkOffering api. Use type (Shared/Isolated) instead 2011-10-19 16:38:39 -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 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