bug 12242: fixed api doc for createLoadBalancerRule command

status 12242: resolved fixed
This commit is contained in:
Alena Prokharchyk 2011-11-30 10:54:35 -08:00
parent 554946fe8b
commit a3d8291698
3 changed files with 15 additions and 29 deletions

View File

@ -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;
}

View File

@ -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<NetworkVO> networks = _networkDao.listByZoneAndTrafficType(lb.getZoneId(), TrafficType.Guest);
if (networks.isEmpty()) {

View File

@ -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<Type> implements LoadBalancingRulesManager, LoadBalancingRulesService, Manager {