bug 10340: added cidrs in response

The input can take multiple cidrs as in 10.91.28.0/24,169.254.2.0/24,56.89.0.0/16
This commit is contained in:
Abhinandan Prateek 2011-06-21 22:55:17 +05:30 committed by root
parent 83ee4e653c
commit 098f68d18e
3 changed files with 25 additions and 0 deletions

View File

@ -59,6 +59,11 @@ public class FirewallRuleResponse extends BaseResponse {
@SerializedName("state") @Param(description="the state of the rule")
private String state;
@SerializedName(ApiConstants.CIDR_LIST) @Param(description="the cidr list to forward traffic from")
private String cidrList;
public Long getId() {
return id;
@ -155,4 +160,13 @@ public class FirewallRuleResponse extends BaseResponse {
public void setPublicIpAddressId(Long publicIpAddressId) {
this.publicIpAddressId = publicIpAddressId;
}
public String getCidrList() {
return cidrList;
}
public void setCidrList(String cidrs) {
this.cidrList = cidrs;
}
}

View File

@ -56,10 +56,12 @@ import com.cloud.network.NetworkProfile;
import com.cloud.network.NetworkRuleConfigVO;
import com.cloud.network.NetworkVO;
import com.cloud.network.Networks.TrafficType;
import com.cloud.network.dao.FirewallRulesCidrsDao;
import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.LoadBalancerDao;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkRuleConfigDao;
import com.cloud.network.rules.PortForwardingRuleVO;
import com.cloud.network.security.SecurityGroup;
import com.cloud.network.security.SecurityGroupManager;
import com.cloud.network.security.SecurityGroupVO;
@ -160,6 +162,7 @@ public class ApiDBUtils {
private static ConfigurationService _configMgr;
private static ConfigurationDao _configDao;
private static ConsoleProxyDao _consoleProxyDao;
private static FirewallRulesCidrsDao _firewallCidrsDao;
static {
_ms = (ManagementServer) ComponentLocator.getComponent(ManagementServer.Name);
@ -204,6 +207,7 @@ public class ApiDBUtils {
_networkDao = locator.getDao(NetworkDao.class);
_configDao = locator.getDao(ConfigurationDao.class);
_consoleProxyDao = locator.getDao(ConsoleProxyDao.class);
_firewallCidrsDao = locator.getDao(FirewallRulesCidrsDao.class);
// Note: stats collector should already have been initialized by this time, otherwise a null instance is returned
_statsCollector = StatsCollector.getInstance();
@ -583,5 +587,9 @@ public class ApiDBUtils {
public static ConsoleProxyVO findConsoleProxy(long id) {
return _consoleProxyDao.findById(id);
}
public static List<String> findPortForwardingSourceCidrs(long id){
return _firewallCidrsDao.getSourceCidrs(id);
}
}

View File

@ -149,6 +149,7 @@ import com.cloud.user.UserStatisticsVO;
import com.cloud.user.UserVO;
import com.cloud.uservm.UserVm;
import com.cloud.utils.Pair;
import com.cloud.utils.StringUtils;
import com.cloud.utils.net.NetUtils;
import com.cloud.vm.ConsoleProxyVO;
import com.cloud.vm.InstanceGroup;
@ -986,6 +987,8 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setProtocol(fwRule.getProtocol());
response.setPublicStartPort(Integer.toString(fwRule.getSourcePortStart()));
response.setPublicEndPort(Integer.toString(fwRule.getSourcePortEnd()));
List<String> cidrs = ApiDBUtils.findPortForwardingSourceCidrs(fwRule.getId());
response.setCidrList(StringUtils.join(cidrs, ","));
IpAddress ip = ApiDBUtils.findIpAddressById(fwRule.getSourceIpAddressId());
response.setPublicIpAddressId(ip.getId());