CLOUDSTACK-9165: unable to use reserved IP range in a network for external VMs (#1246)

This commit is contained in:
SudharmaJain 2017-08-23 00:41:45 +05:30 committed by Rohit Yadav
parent cc749cca3e
commit 7f987ace35
8 changed files with 22 additions and 4 deletions

View File

@ -287,4 +287,6 @@ public interface NetworkModel {
List<String[]> generateVmData(String userData, String serviceOffering, String zoneName,
String vmName, long vmId, String publicKey, String password, Boolean isWindows);
String getValidNetworkCidr(Network guestNetwork);
}

View File

@ -2377,4 +2377,10 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel, Confi
public ConfigKey<?>[] getConfigKeys() {
return new ConfigKey<?>[] {MACIdentifier};
}
@Override
public String getValidNetworkCidr(Network guestNetwork) {
String networkCidr = guestNetwork.getNetworkCidr();
return networkCidr == null ? guestNetwork.getCidr() : networkCidr;
}
}

View File

@ -376,7 +376,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
}
nic.setIPv4Address(guestIp);
nic.setIPv4Netmask(NetUtils.cidr2Netmask(network.getCidr()));
nic.setIPv4Netmask(NetUtils.cidr2Netmask(_networkModel.getValidNetworkCidr(network)));
nic.setIPv4Dns1(dc.getDns1());
nic.setIPv4Dns2(dc.getDns2());

View File

@ -743,7 +743,7 @@ public class NetworkHelperImpl implements NetworkHelper {
gatewayNic.setBroadcastType(guestNetwork.getBroadcastDomainType());
gatewayNic.setIsolationUri(guestNetwork.getBroadcastUri());
gatewayNic.setMode(guestNetwork.getMode());
final String gatewayCidr = guestNetwork.getCidr();
final String gatewayCidr = _networkModel.getValidNetworkCidr(guestNetwork);
gatewayNic.setIPv4Netmask(NetUtils.getCidrNetmask(gatewayCidr));
} else {
gatewayNic.setDefaultNic(true);

View File

@ -127,7 +127,7 @@ public class NicProfileHelperImpl implements NicProfileHelper {
guestNic.setBroadcastType(guestNetwork.getBroadcastDomainType());
guestNic.setIsolationUri(guestNetwork.getBroadcastUri());
guestNic.setMode(guestNetwork.getMode());
final String gatewayCidr = guestNetwork.getCidr();
final String gatewayCidr = _networkModel.getValidNetworkCidr(guestNetwork);
guestNic.setIPv4Netmask(NetUtils.getCidrNetmask(gatewayCidr));
return guestNic;

View File

@ -1535,7 +1535,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
}
}
} else if (dc.getNetworkType() == NetworkType.Advanced) {
final String cidr = guestNetwork.getCidr();
final String cidr = _networkModel.getValidNetworkCidr(guestNetwork);
if (cidr != null) {
cidrSize = NetUtils.getCidrSize(NetUtils.getCidrNetmask(cidr));
dhcpRange = NetUtils.getDhcpRange(cidr);

View File

@ -901,4 +901,9 @@ public class MockNetworkModelImpl extends ManagerBase implements NetworkModel {
return null;
}
@Override
public String getValidNetworkCidr(Network guestNetwork) {
return null;
}
}

View File

@ -916,4 +916,9 @@ public class MockNetworkModelImpl extends ManagerBase implements NetworkModel {
return null;
}
@Override
public String getValidNetworkCidr(Network guestNetwork) {
return null;
}
}