Fixed Dhcp instance - set dhcp range to the first ip address of the subnet instead of cidr.

This commit is contained in:
alena 2010-12-08 12:07:29 -08:00
parent a5d2f8ba5c
commit d1331b26bf
1 changed files with 18 additions and 1 deletions

View File

@ -132,6 +132,7 @@ import com.cloud.network.rules.PortForwardingRule;
import com.cloud.network.rules.PortForwardingRuleVO;
import com.cloud.network.rules.RulesManager;
import com.cloud.offering.NetworkOffering;
import com.cloud.offering.NetworkOffering.GuestIpType;
import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.offerings.dao.NetworkOfferingDao;
import com.cloud.service.ServiceOfferingVO;
@ -2172,7 +2173,23 @@ public class DomainRouterManagerImpl implements DomainRouterManager, DomainRoute
NetworkVO network = _networkDao.findById(router.getNetworkId());
String type = null;
String dhcpRange = network.getCidr();
String dhcpRange = null;
if (network.getGuestType() == GuestIpType.Virtual) {
//If network is virtual, get first ip address from cidr
String cidr = network.getCidr();
String[] splitResult = cidr.split("\\/");
long size = Long.valueOf(splitResult[1]);
dhcpRange = NetUtils.getIpRangeStartIpFromCidr(splitResult[0], size);
} else {
//If network is direct, get first ip address of corresponding vlan
List<VlanVO> vlans = _vlanDao.listVlansByNetworkId(network.getId());
if (vlans != null) {
String ipRange = vlans.get(0).getIpRange();
String[] ips = ipRange.split("-");
dhcpRange = ips[0];
}
}
String domain = network.getNetworkDomain();
if (router.getRole() == Role.DHCP_USERDATA) {
type="dhcpsrvr";