Commit Graph

3884 Commits

Author SHA1 Message Date
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
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
alena 43bebcd050 Fixed regression bug in listNetworks call (introduced during Project feature implementation) 2011-10-10 10:52:07 -07:00
alena eba6864965 bug 11667: drop primary keys in cloud_usage.usage_load_balancer_policy and cloud_usage.usage_port_forwarding
status 11667: resolved fixed

Conflicts:

	server/src/com/cloud/user/AccountManagerImpl.java
2011-10-07 11:02:14 -07:00
alena d399c901c8 bug 11666: fixed foreign key upgrade in networks table
status 11666: resolved fixed
2011-10-06 18:15:57 -07:00
alena 143036b4a7 bug 11664: fixed regression bug in listVms introduced by performance changes
status 11664: resolved fixed
2011-10-06 16:53:18 -07:00
alena a17570ef51 1)Implemented Suspend/Activate project
2)Email/token based invitation system
2011-10-06 16:10:36 -07:00
prachi a51fb221d6 Bug 11169 - Couldn't deploy a router because the host it existed on is in Maintenance.
Changes:
- VirtualMachineMgr puts the constraint that if Root volume is already READY, we provide the clusterId in the plan to the deploymentPlanner. Planner then searches for resources only under that cluster.
- If no deployment could be found, deploying VM fails.
- Fixed this, such that incase the root volume is recreatable, we call the planner again by removing the cluster constraint. Planner will then search for resources in other clusters.
- Works for system VMs(SSVM, consoleproxy, virual routers).
2011-10-05 18:35:59 -07:00
alena 25c2734e03 More stuff to Projects feature - added support for adding resources (vms, templates, isos) to the project 2011-10-05 13:24:25 -07:00
alena 998568283c Don't allow to add accounts to the domain of type Project
Don't allow to manipulate (delete/update) accounts/domains of type Project
2011-10-05 13:24:25 -07:00
Sheng Yang e72d38b15d Revert "bug 11604: Assign guest ip for each router"
This reverts commit 42ab3c94c210d5a29289a5dfd0e44ae99c427f8b.

The commit may not fit for our new network as service framework, because we
would make single router and redundant router as two different service provider,
so the change of network offering should clean up the old network and then setup
new one. Make single router work as redundant router later make no sense in such
condition.
2011-10-04 17:58:15 -07:00
Sheng Yang 36511ab6fd bug 11604: Assign guest ip for each router
Then every router would have one guest ip. The gateway ip would be used if the
router is not redundant, otherwise the guest ip would be used for guest network.
2011-10-04 16:24:15 -07:00
Sheng Yang 143ec3a4c5 Clean up priority calcuation/create new mac when create domain router
They're unnecessary.
2011-10-04 16:24:06 -07:00
Edison Su ae83246acb bug 11600: aquirelock before deleting a volume, which can be aquired by snapshot manager
status 11600: resolved fixed
2011-10-03 16:43:47 -07:00
prachi 083b458f03 Bug 11617 - Ensure the Deployment planner is choosing clusters based on aggregate capacity
Merge removed this import statement. Adding it back.
2011-10-03 15:46:41 -07:00
prachi e0a179752d Bug 11617: Ensure the Deployment planner is choosing clusters based on aggregate capacity
Changes:
- We were ordering clusters based on capacity of the first-fit host found in each cluster. Due to this, there were cases where we deployed VMs to one cluster instead of balancing off within clusters.
- Now we order the list of clusters by aggregate capacity and choose the ones that have enough capacity for the required VM in this order.
- This should balance the load between clusters instead of bombarding one.

Conflicts:

	server/src/com/cloud/capacity/dao/CapacityDao.java
	server/src/com/cloud/capacity/dao/CapacityDaoImpl.java
2011-10-03 15:37:38 -07:00
prachi 9bd5e5871b Bug 11481 - get manual live migration working with all VMs
Changes:
- Added a new API  'migrateSystemVm'  backed by MigrateSystemVMCmd.java to migrate system VMs (SSVM, consoleproxy, domain routers(router, LB, DHCP))
- This is Admin only action
- The existing API 'migratevirtualmachine' is only for user VMs
2011-09-29 17:47:46 -07:00
Sheng Yang b8f8989821 bug 11130: Update template and script version in the database when domR started 2011-09-29 14:51:20 -07:00
anthony 33b1055c01 timeout is not set for some commands 2011-09-29 13:09:05 -07:00
alena 53b1b9f63b bug 11603: for OSS build - update guru_name from GuestNetworkGuru to ExternalGuestNetworkGuru.
status 11603: resolved fixed
2011-09-29 10:43:01 -07:00
alena d7267fb0c5 bug 11589: don't fail deleteVpn command when domR is in Stopped state.
status 11589: resolved fixed

Conflicts:

	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
2011-09-29 10:22:14 -07:00
alena 12e25fb988 Implemented vm* api commands to be executed against the project 2011-09-29 10:20:51 -07:00
alena eda1b53c76 Events for adding/removing project users 2011-09-29 10:20:51 -07:00
Murali Reddy a623b2824b bug 6876: netscaler integration
added external lb network usage and inline support
2011-09-29 18:59:46 +05:30
anthony aef74ff521 bug 10579: disable pool vm sync and disable hostTrack for XenServer,
status 10579: resolved fixed

reviewed-by: alex

Conflicts:

	core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
2011-09-28 12:41:24 -07:00
Nitin b9df06619a bug 11051: ListPods/ListZones - Apply cpu overprovisioning explicitly as it is not applied when its stored in the db. Also avoid calculating the non shared storage for storage allocated capacity calculation. 2011-09-28 17:48:31 +05:30
kishan 806bfe33c4 bug 11581: During router start, create iptables NETWORK_STATS chain before adding rules for additional public interfaces into that chain
status 11581: resolved fixed
reviewed-by: Chiradeep
2011-09-28 16:46:45 +05:30
Nitin da2696b2f6 bug 11051: ListCluster - Apply cpu overprovisioning explicitly as it is not applied when its stored in the db. Also avoid calculating the non shared storage for storage allocated capacity calculation. 2011-09-28 16:16:28 +05:30
Sheng Yang 1fb5030cca Clean up global redundant_router config item
We would use network_offering option in 3.0 instead.
2011-09-27 16:50:24 -07:00
Abhinandan Prateek 83c6cf3db0 bug 10588: code to sync VM state at cluster level and dettached from ping command 2011-09-27 13:18:21 +05:30
alena ccd47c1b21 Implemented Project Invitations 2011-09-26 17:47:20 -07:00
Kelven Yang d32241ec9c bug 10971: support vSphere 5 2011-09-26 12:16:28 -07:00
alena 10308d1ea6 bug 11555: Fixed NPE happening during LB rule cleanup in case when createLB fails
status 11555: resolved fixed

Reviewed-by: frank@cloud.com

Conflicts:

	server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
2011-09-23 11:02:19 -07:00
alena a8d3c7436a bug 11550: rolled back the changes done to ConfigurationServerImpl during the resourceLimit refactor as it was leading to System/Admin account not being inserted to the DB
status 11550: resolved fixed
2011-09-23 09:42:07 -07:00
Sheng Yang b96701a6c4 bug 11541: Change CheckRouterCommand timeout from default 10 minutes to 1 minute
Reviewed-by: Anthony Xu

status 11541: resolved fixed
2011-09-22 19:22:33 -07:00
alena 5c35b7f164 1) Resource limits for Projects
2) Security checker for Projects
2011-09-22 18:10:35 -07:00
Kelven Yang b06543a8db bug 11531: forget to include newly added JUnit test along with the fix, here it is 2011-09-22 16:22:24 -07:00
Kelven Yang 2a6de104e2 bug 11531: while taking snapshot on volume, if volume is attached to a VM instance and under VMware, check if there are other ongoing snapshot tasks for the VM instance. 2011-09-22 16:22:12 -07:00
Edison Su ee59c26e93 bug 11513: another customer hits the same issue by associate ip in the basic zone
Reviewed-by: alena@citrix.com
2011-09-22 15:04:47 -07:00
Edison Su 211c7099a6 bug 11513: add more log in the cleanup network
Reviewed-by:alena@citrix.com
2011-09-22 15:04:43 -07:00
alena a1cab92ae1 bug 11537: revoke related FirewallRules when do vmExpunge and ipAddress release.
status 11537: resolved fixed

Reviewed-by: edison@cloud.com

Conflicts:

	server/src/com/cloud/network/firewall/FirewallManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
2011-09-22 14:01:02 -07:00
alena 1561c7d2f9 bug 11468: create ROOT domain and admin user as a part of cloud-setup-databases, not during the management server startup to avoid multiple records insertion for the same domain
status 11468: resolved fixed

Reviewed-by: will@cloud.com

Conflicts:

	server/src/com/cloud/server/ConfigurationServerImpl.java
2011-09-22 11:01:13 -07:00
kishan 2b9c0a695f bug 11520: Include TrafficMonitor hosts also while scanning for direct agents to load
status 11520: resolved fixed
2011-09-22 13:34:37 +05:30
Sheng Yang abcf246293 bug 11513: Fix public IP release in advance network
We should only persist DomR's public ip, not console proxy and ssvm.

Reviewed-by: Edison
2011-09-21 19:16:41 -07:00
alena ae56bd11e0 bug 11513: always wrap marking IP address with Releasing state and actual IP deallocation in Transaction
Reviewed-by:edison@citrix.com

Conflicts:

	server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
2011-09-21 18:42:47 -07:00
alena 9f9b60a287 1) Added resource limits for the Projects - the same as for the account
2) Added "Project" limit type for the Domain object
2011-09-21 17:09:49 -07:00
Edison Su b1b11a6928 bug 11047: change the put storage pool into maintenance mode: 1. only look at the available storoge pool in its own dc to decide to start vms created on it. 2. if start vm failed, don't throw exception, as these vms are marked stopped already, admin can start these vm by himself.
status 11047: resolved fixed
Reviewed-by: frank
2011-09-21 16:20:33 -07:00
alena 4d89066b2c bug 11515: reapply all firewall rules for the IP address when VPN related rules are being revoked
status 11515: resolved fixed

Reviewed-by: will@cloud.com
2011-09-21 09:50:32 -07:00
Nitin f49578c23a bug 11051: ListZones - Introduce a flag 'showCapacitites'. When its true it will start displaying all the capacitites (as objects in the response) for the respective zone. Also correcting the summation logic for List cluster, pod and zone commands 2011-09-21 16:59:16 +05:30
alena a1331d1cfc Intermidiate checkin to Project feature:
1) Introduce new managers - ProjectManager and DomainManager. Moved all domain related code from AccountManager to DomainManager.
2) Moved some code from ManagementServerImpl to the correct managers.
3) New resource limit for Domain - Project
2011-09-20 18:35:28 -07:00