Commit Graph

185 Commits

Author SHA1 Message Date
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
Alena Prokharchyk 790b33bdfc More validation to network and network offering creation/upgrade 2011-11-16 14:53:38 -08:00
Alena Prokharchyk bb2a8cf7ea NaaS: added "subdomainAccess" parameter to domain level network object. The parameter defines whether the network can be accessed from the subdomains. If the parameter is not specified, it would be defaulted to allow.subdomain.network.access Global Config param 2011-11-14 18:13:47 -08:00
Alena Prokharchyk 87f5150e38 Basic zone is fixed and works with new NaaS now 2011-11-14 10:46:05 -08:00
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 f6fcaa49ec Merge complete except for virtualnetworkappliancemanager 2011-11-10 15:18:16 -08:00
Sheng Yang 8616705293 NaaS: Add getPhysicalNetworkId() 2011-11-09 15:23:13 -08:00
Alena Prokharchyk 50cf9cb8fb Removed unused code 2011-11-08 15:54:56 -08:00
alena 3a845d2d75 Keep Service/Provider map per network as well as per networkOffering (to handle the case when there are multiple providers defined for the same service in the network offering, and only one is picked when the network is created) 2011-11-07 16:16:03 -08:00
prachi 810f9e4034 While creating Zone, adding default VirtualRouter provider and instance to the default Physical Network.
Also adding default trafficTypes to through server-setup.xml
2011-11-07 14:43:41 -08:00
alena 17a7b7cda4 listNetworkOfferings: added an ability to filter based on the Services supported 2011-11-07 10:53:28 -08: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
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
alena 80dc2c0b1a Don't send security group commands to the backend when 1) securtiy group service is disabled in the network offering and 2) security group service provider is supported on the physical network 2011-11-01 12:07:32 -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 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
Edison Su 193474a595 Storage migration: if it's basic network and migrate to different pod, need to reallocate network 2011-10-25 19:20:18 -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
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
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
alena 219978a9be Create network using physical network id 2011-10-20 18:25:13 -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
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 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
alena 8a7feb8ec1 Merge branch '2.2.y'
Conflicts:
	agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java
	api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java
	api/src/com/cloud/agent/api/to/FirewallRuleTO.java
	api/src/com/cloud/agent/api/to/IpAddressTO.java
	api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java
	api/src/com/cloud/api/ApiConstants.java
	api/src/com/cloud/api/BaseCmd.java
	api/src/com/cloud/api/ResponseGenerator.java
	api/src/com/cloud/api/commands/CreateFirewallRuleCmd.java
	api/src/com/cloud/api/commands/CreateIpForwardingRuleCmd.java
	api/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java
	api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java
	api/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java
	api/src/com/cloud/api/commands/ListCapabilitiesCmd.java
	api/src/com/cloud/api/commands/UpdateNetworkCmd.java
	api/src/com/cloud/api/response/CapabilitiesResponse.java
	api/src/com/cloud/network/Network.java
	api/src/com/cloud/network/NetworkService.java
	api/src/com/cloud/network/firewall/FirewallService.java
	api/src/com/cloud/network/lb/LoadBalancingRule.java
	api/src/com/cloud/network/lb/LoadBalancingRulesService.java
	api/src/com/cloud/network/rules/FirewallRule.java
	api/src/com/cloud/network/rules/RulesService.java
	api/src/com/cloud/offering/NetworkOffering.java
	client/tomcatconf/commands.properties.in
	cloud.spec
	core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
	core/src/com/cloud/hypervisor/xen/resource/CitrixHelper.java
	core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
	core/src/com/cloud/storage/template/DownloadManagerImpl.java
	core/src/com/cloud/vm/DomainRouterVO.java
	debian/cloud-deps.install
	patches/systemvm/debian/config/etc/init.d/cloud-early-config
	patches/systemvm/debian/config/root/ipassoc.sh
	patches/systemvm/debian/config/root/loadbalancer.sh
	scripts/vm/hypervisor/kvm/rundomrpre.sh
	scripts/vm/hypervisor/xenserver/vmops
	server/src/com/cloud/agent/manager/AgentAttache.java
	server/src/com/cloud/agent/manager/AgentManagerImpl.java
	server/src/com/cloud/agent/manager/AgentMonitor.java
	server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
	server/src/com/cloud/alert/ClusterAlertAdapter.java
	server/src/com/cloud/api/ApiResponseHelper.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/cluster/ClusterManagerImpl.java
	server/src/com/cloud/configuration/Config.java
	server/src/com/cloud/configuration/ConfigurationManager.java
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java
	server/src/com/cloud/configuration/DefaultComponentLibrary.java
	server/src/com/cloud/deploy/FirstFitPlanner.java
	server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
	server/src/com/cloud/host/dao/HostDaoImpl.java
	server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
	server/src/com/cloud/network/LoadBalancerVO.java
	server/src/com/cloud/network/NetworkManager.java
	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/dao/FirewallRulesDao.java
	server/src/com/cloud/network/dao/FirewallRulesDaoImpl.java
	server/src/com/cloud/network/element/DhcpElement.java
	server/src/com/cloud/network/element/VirtualRouterElement.java
	server/src/com/cloud/network/firewall/FirewallManagerImpl.java
	server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/rules/FirewallManager.java
	server/src/com/cloud/network/rules/FirewallRuleVO.java
	server/src/com/cloud/network/rules/PortForwardingRuleVO.java
	server/src/com/cloud/network/rules/RulesManagerImpl.java
	server/src/com/cloud/network/rules/StaticNatRuleImpl.java
	server/src/com/cloud/network/security/SecurityGroupListener.java
	server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
	server/src/com/cloud/offerings/NetworkOfferingVO.java
	server/src/com/cloud/server/ConfigurationServerImpl.java
	server/src/com/cloud/server/ManagementServerImpl.java
	server/src/com/cloud/storage/StorageManager.java
	server/src/com/cloud/storage/StorageManagerImpl.java
	server/src/com/cloud/storage/dao/VMTemplateHostDaoImpl.java
	server/src/com/cloud/storage/download/DownloadMonitorImpl.java
	server/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
	server/src/com/cloud/upgrade/dao/Upgrade228to229.java
	server/src/com/cloud/upgrade/dao/Upgrade229to2210.java
	server/src/com/cloud/user/AccountManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	server/src/com/cloud/vm/VirtualMachineManagerImpl.java
	server/src/com/cloud/vm/dao/DomainRouterDao.java
	server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
	setup/db/create-index-fk.sql
	setup/db/create-schema.sql
	setup/db/db/schema-222to224.sql
	setup/db/db/schema-227to228.sql
	setup/db/db/schema-228to229.sql
	setup/db/db/schema-229to2210.sql
	tools/testClient/README
	ui/scripts/cloud.core.instance.js
	utils/src/com/cloud/utils/SerialVersionUID.java
	utils/src/com/cloud/utils/db/ConnectionConcierge.java
	utils/src/com/cloud/utils/db/Merovingian2.java
	utils/src/com/cloud/utils/db/Transaction.java
	utils/src/com/cloud/utils/nio/Link.java
	utils/src/com/cloud/utils/nio/NioConnection.java
	utils/src/com/cloud/utils/time/InaccurateClock.java
2011-08-22 20:28:30 -07:00
alena 05713a20e8 bug 11114: when release static nat as a part of vm expunge, do searchIncludingRemoved in nics table as the nics are marked as Removed before static nat is released
status 11114: resolved fixed
2011-08-15 10:18:45 -07:00
alena 477e5d6389 bug 10561: reapply static nat on the backend as a part of domR restart and network restart 2011-08-11 11:19:09 -07:00
alena 278f2a401f bug 10561: intermediate checkin for enable/disableStaticNat.
1) On enableStaticNat command we actually send the command to the backend (we used to just upgrade the DB in the past). The backend command carries sourceIp and destIp, and creates IP to IP mapping on the domR.
2) On disableStaticNat for the Ip address in addition to cleaning up port ranges, we also delete IP to IP mapping on the domR.
2011-08-11 10:19:22 -07:00
alena 8d47c53735 Revert "bug 10435: removed vpn feature"
This reverts commit ea9e1b5d138950e8de49fce7ffdbb12a1c72c560.

Conflicts:

	api/src/com/cloud/api/ResponseGenerator.java
	scripts/vm/hypervisor/xenserver/vmops
	server/src/com/cloud/configuration/Config.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
2011-08-02 18:12:57 -07:00
alena e0033c5d9d bug 10869: always allocate first ip address from the range for the dhcp server.
status 10869: resolved fixed

Here is the flow (design is approved by Will Chan):

1) If user specifies custom ip address, and this ip is not the first ip in the range, the dhcp server gets the ip.
2) If user specifies custom ip address, and this ip is the first ip in the range, the dhcp server will get the random ip address from the range.
2) If user doesn't specify custom ip address, we always try to allocate first ip address from the range for the dhcp server; if this ip is already allocated, the dhcp server will get the random ip from the range.

This will work for:

* domR's Guest network
* dhcp's Direct network
2011-08-02 17:42:12 -07:00
alena 64eeb8d79b bug 10869: always allocate first ip address from the range for the dhcp server.
status 10869: resolved fixed

Here is the flow (design is approved by Will Chan):

1) If user specifies custom ip address, and this ip is not the first ip in the range, the dhcp server gets the ip.
2) If user specifies custom ip address, and this ip is the first ip in the range, the dhcp server will get the random ip address from the range.
2) If user doesn't specify custom ip address, we always try to allocate first ip address from the range for the dhcp server; if this ip is already allocated, the dhcp server will get the random ip from the range.

This will work for:

* domR's Guest network
* dhcp's Direct network
2011-08-02 17:41:03 -07:00
alena d6112b1632 Revert "bug 10373: Intermediate checkin for Domain level guest Virtual networks"
This reverts commit e5c25f3868965e36c4bff1c78ca4552a8c852241.

Conflicts:

	server/src/com/cloud/configuration/Config.java
	server/src/com/cloud/network/NetworkManagerImpl.java
2011-07-21 16:04:55 -07:00
alena 36edf298e7 bug 10373: Intermediate checkin for Domain level guest Virtual networks 2011-07-20 13:44:26 -07:00
alena 0d84cde633 bug 10409: added domainSuffix parameters to account/domain objects 2011-07-15 14:40:39 -07:00
alena 0d2787e2db bug 4706: allow to specify which ip address from the network to take when do vm deployment. The model is supported for multiple network case as well.
status 4706: resolved fixed

Merge from master to 2.2.8 branch

Conflicts:

	api/src/com/cloud/api/ApiConstants.java
	server/src/com/cloud/network/NetworkManager.java
	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/guru/GuestNetworkGuru.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
2011-07-15 14:20:52 -07:00
alena 9be9a970c9 bug 10409: added domainSuffix parameters to account/domain objects 2011-07-06 16:57:19 -07:00
alena 74f34a0e0c bug 10435: removed vpn feature
status 10435: resolved fixed
2011-06-24 09:18:46 -07:00
alena 4fcb406f2b bug 4706: allow to specify which ip address from the network to take when do vm deployment. The model is supported for multiple network case as well.
status 4706: resolved fixed
2011-06-21 16:41:43 -07:00
alena 53bdd625b8 bug 9579: allow domain name suffix update for existing networks.
Block update only in these cases:

* when DNS capability AllowDnsSuffixModification is false for the network
* when target network has running network elements (dhcps or domRs)

Conflicts:

	server/src/com/cloud/vm/dao/DomainRouterDao.java
	server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
2011-06-09 16:24:48 -07:00
alena b9325a28dd bug 9579: allow domain name suffix update for existing networks.
Block update only in these cases:

* when DNS capability AllowDnsSuffixModification is false for the network
* when target network has running network elements (dhcps or domRs)
2011-06-09 16:10:24 -07:00