CLOUDSTACK-6056. Enabling static NAT rule for a portable public IP fails with error "Failed to enable static nat".

router.extra.public.nics isn't being honoured and so when an ip that is acquired from the additional VLAN range
is being configured it failed.
This commit is contained in:
Likitha Shetty 2014-02-12 15:51:22 +05:30
parent 9174020d9a
commit 9f597ef130
1 changed files with 9 additions and 6 deletions

View File

@ -89,6 +89,7 @@ import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
import com.cloud.vm.SecondaryStorageVmVO;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.Type;
import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.NicDao;
@ -151,9 +152,12 @@ public class VMwareGuru extends HypervisorGuruBase implements HypervisorGuru, Co
if (details == null)
details = new HashMap<String, String>();
Type vmType = vm.getType();
boolean userVm = !(vmType.equals(VirtualMachine.Type.DomainRouter) || vmType.equals(VirtualMachine.Type.ConsoleProxy)
|| vmType.equals(VirtualMachine.Type.SecondaryStorageVm));
String nicDeviceType = details.get(VmDetailConstants.NIC_ADAPTER);
if (vm.getVirtualMachine() instanceof DomainRouterVO || vm.getVirtualMachine() instanceof ConsoleProxyVO ||
vm.getVirtualMachine() instanceof SecondaryStorageVmVO) {
if (!userVm) {
if (nicDeviceType == null) {
details.put(VmDetailConstants.NIC_ADAPTER, _vmwareMgr.getSystemVMDefaultNicAdapterType());
@ -180,8 +184,7 @@ public class VMwareGuru extends HypervisorGuruBase implements HypervisorGuru, Co
}
String diskDeviceType = details.get(VmDetailConstants.ROOK_DISK_CONTROLLER);
if (!(vm.getVirtualMachine() instanceof DomainRouterVO || vm.getVirtualMachine() instanceof ConsoleProxyVO || vm.getVirtualMachine() instanceof SecondaryStorageVmVO)) {
// user vm
if (userVm) {
if (diskDeviceType == null) {
details.put(VmDetailConstants.ROOK_DISK_CONTROLLER, _vmwareMgr.getRootDiskController());
}
@ -203,7 +206,7 @@ public class VMwareGuru extends HypervisorGuruBase implements HypervisorGuru, Co
details.put(Config.VmwareReserveMem.key(), VmwareReserveMemory.valueIn(clusterId).toString());
to.setDetails(details);
if (vm.getVirtualMachine() instanceof DomainRouterVO) {
if (vmType.equals(VirtualMachine.Type.DomainRouter)) {
NicProfile publicNicProfile = null;
for (NicProfile nicProfile : nicProfiles) {
@ -277,7 +280,7 @@ public class VMwareGuru extends HypervisorGuruBase implements HypervisorGuru, Co
// Don't do this if the virtual machine is one of the special types
// Should only be done on user machines
if (!(vm.getVirtualMachine() instanceof DomainRouterVO || vm.getVirtualMachine() instanceof ConsoleProxyVO || vm.getVirtualMachine() instanceof SecondaryStorageVmVO)) {
if (userVm) {
String nestedVirt = _configDao.getValue(Config.VmwareEnableNestedVirtualization.key());
if (nestedVirt != null) {
s_logger.debug("Nested virtualization requested, adding flag to vm configuration");