From a3d8291698277d446a8146f1a5666b0335ec853a Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Wed, 30 Nov 2011 10:54:35 -0800 Subject: [PATCH] bug 12242: fixed api doc for createLoadBalancerRule command status 12242: resolved fixed --- .../commands/CreateLoadBalancerRuleCmd.java | 24 ++++--------------- .../lb/ElasticLoadBalancerManagerImpl.java | 7 ++++-- .../lb/LoadBalancingRulesManagerImpl.java | 13 +++++----- 3 files changed, 15 insertions(+), 29 deletions(-) diff --git a/api/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java b/api/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java index f43f3a6bb15..917bb0413d7 100644 --- a/api/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java +++ b/api/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java @@ -70,7 +70,7 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements private Long publicIpId; @IdentityMapper(entityTableName="data_center") - @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, required=false, description="public ip address id from where the network traffic will be load balanced from") + @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, required=false, description="zone where the load balancer is going to be created. This parameter is required when LB service provider is ElasticLoadBalancerVm") private Long zoneId; @Parameter(name=ApiConstants.PUBLIC_PORT, type=CommandType.INTEGER, required=true, description="the public port from where the network traffic will be load balanced from") @@ -113,7 +113,7 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements return "firewall_rules"; } - public Long getPublicIpId() { + public Long getSourceIpAddressId() { IpAddress ipAddr = _networkService.getIp(publicIpId); if (ipAddr == null || !ipAddr.readyToUse()) { throw new InvalidParameterValueException("Unable to create load balancer rule, invalid IP address id " + ipAddr.getId()); @@ -189,7 +189,6 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements } } - @Override public void create() { //cidr list parameter is deprecated @@ -208,12 +207,6 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements } } - - - public Long getSourceIpAddressId() { - return publicIpId; - } - public Integer getSourcePortStart() { return publicPort.intValue(); } @@ -228,7 +221,7 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements public long getAccountId() { if (publicIpId != null) - return _networkService.getIp(getPublicIpId()).getAccountId(); + return _networkService.getIp(getSourceIpAddressId()).getAccountId(); Account account = UserContext.current().getCaller(); if ((account == null) ) { if ((domainId != null) && (accountName != null)) { @@ -248,7 +241,7 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements public long getDomainId() { if (publicIpId != null) - return _networkService.getIp(getPublicIpId()).getDomainId(); + return _networkService.getIp(getSourceIpAddressId()).getDomainId(); if (domainId != null) { return domainId; } @@ -268,15 +261,6 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements return getAccountId(); } - - public Integer getIcmpCode() { - return null; - } - - public Integer getIcmpType() { - return null; - } - public String getAccountName() { return accountName; } diff --git a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java index ef8a1d79097..7af62797122 100644 --- a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java +++ b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java @@ -77,9 +77,9 @@ import com.cloud.network.LoadBalancerVO; import com.cloud.network.Network; import com.cloud.network.NetworkManager; import com.cloud.network.NetworkVO; +import com.cloud.network.Networks.TrafficType; import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.VirtualRouterProvider; -import com.cloud.network.Networks.TrafficType; import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.addr.PublicIp; import com.cloud.network.dao.IPAddressDao; @@ -97,7 +97,6 @@ import com.cloud.network.router.VirtualRouter.Role; import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.FirewallRule.Purpose; import com.cloud.network.rules.LoadBalancer; -import com.cloud.offering.NetworkOffering; import com.cloud.offerings.NetworkOfferingVO; import com.cloud.offerings.dao.NetworkOfferingDao; import com.cloud.service.ServiceOfferingVO; @@ -591,6 +590,10 @@ public class ElasticLoadBalancerManagerImpl implements @DB public PublicIp allocIp(CreateLoadBalancerRuleCmd lb, Account account) throws InsufficientAddressCapacityException { + if (lb.getZoneId() == null) { + throw new InvalidParameterValueException("zoneId is required parameter when LB service provider is " + Network.Provider.ElasticLoadBalancerVm.getName()); + } + //TODO: this only works in the guest network in Basic zone. Handle the public network case also. List networks = _networkDao.listByZoneAndTrafficType(lb.getZoneId(), TrafficType.Guest); if (networks.isEmpty()) { diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index c6a15e283f0..2c50969d32e 100755 --- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -32,12 +32,11 @@ import javax.naming.ConfigurationException; import org.apache.log4j.Logger; -import com.cloud.api.ApiDBUtils; import com.cloud.api.commands.CreateLBStickinessPolicyCmd; import com.cloud.api.commands.CreateLoadBalancerRuleCmd; +import com.cloud.api.commands.ListLBStickinessPoliciesCmd; import com.cloud.api.commands.ListLoadBalancerRuleInstancesCmd; import com.cloud.api.commands.ListLoadBalancerRulesCmd; -import com.cloud.api.commands.ListLBStickinessPoliciesCmd; import com.cloud.api.commands.UpdateLoadBalancerRuleCmd; import com.cloud.api.response.ServiceResponse; import com.cloud.dc.dao.VlanDao; @@ -55,8 +54,8 @@ import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.IPAddressVO; -import com.cloud.network.LoadBalancerVMMapVO; import com.cloud.network.LBStickinessPolicyVO; +import com.cloud.network.LoadBalancerVMMapVO; import com.cloud.network.LoadBalancerVO; import com.cloud.network.Network.Capability; import com.cloud.network.Network.Service; @@ -65,21 +64,22 @@ import com.cloud.network.NetworkVO; import com.cloud.network.dao.FirewallRulesCidrsDao; import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.IPAddressDao; +import com.cloud.network.dao.LBStickinessPolicyDao; import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.LoadBalancerVMMapDao; -import com.cloud.network.dao.LBStickinessPolicyDao; import com.cloud.network.dao.NetworkDao; import com.cloud.network.lb.LoadBalancingRule.LbDestination; import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy; -import com.cloud.network.rules.LbStickinessMethod; -import com.cloud.network.rules.LbStickinessMethod.LbStickinessMethodParam; import com.cloud.network.rules.FirewallManager; import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.FirewallRule.FirewallRuleType; import com.cloud.network.rules.FirewallRule.Purpose; import com.cloud.network.rules.FirewallRuleVO; +import com.cloud.network.rules.LbStickinessMethod; +import com.cloud.network.rules.LbStickinessMethod.LbStickinessMethodParam; import com.cloud.network.rules.LoadBalancer; import com.cloud.network.rules.RulesManager; +import com.cloud.network.rules.StickinessPolicy; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.DomainService; @@ -104,7 +104,6 @@ import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.UserVmDao; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; -import com.cloud.network.rules.StickinessPolicy; @Local(value = { LoadBalancingRulesManager.class, LoadBalancingRulesService.class }) public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager, LoadBalancingRulesService, Manager {