Skip to content

Commit 9f597ef

Browse files
author
Likitha Shetty
committed
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.
1 parent 9174020 commit 9f597ef

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
import com.cloud.vm.NicVO;
9090
import com.cloud.vm.SecondaryStorageVmVO;
9191
import com.cloud.vm.VirtualMachine;
92+
import com.cloud.vm.VirtualMachine.Type;
9293
import com.cloud.vm.VirtualMachineProfile;
9394
import com.cloud.vm.VmDetailConstants;
9495
import com.cloud.vm.dao.NicDao;
@@ -151,9 +152,12 @@ public VirtualMachineTO implement(VirtualMachineProfile vm) {
151152
if (details == null)
152153
details = new HashMap<String, String>();
153154

155+
Type vmType = vm.getType();
156+
boolean userVm = !(vmType.equals(VirtualMachine.Type.DomainRouter) || vmType.equals(VirtualMachine.Type.ConsoleProxy)
157+
|| vmType.equals(VirtualMachine.Type.SecondaryStorageVm));
158+
154159
String nicDeviceType = details.get(VmDetailConstants.NIC_ADAPTER);
155-
if (vm.getVirtualMachine() instanceof DomainRouterVO || vm.getVirtualMachine() instanceof ConsoleProxyVO ||
156-
vm.getVirtualMachine() instanceof SecondaryStorageVmVO) {
160+
if (!userVm) {
157161

158162
if (nicDeviceType == null) {
159163
details.put(VmDetailConstants.NIC_ADAPTER, _vmwareMgr.getSystemVMDefaultNicAdapterType());
@@ -180,8 +184,7 @@ public VirtualMachineTO implement(VirtualMachineProfile vm) {
180184
}
181185

182186
String diskDeviceType = details.get(VmDetailConstants.ROOK_DISK_CONTROLLER);
183-
if (!(vm.getVirtualMachine() instanceof DomainRouterVO || vm.getVirtualMachine() instanceof ConsoleProxyVO || vm.getVirtualMachine() instanceof SecondaryStorageVmVO)) {
184-
// user vm
187+
if (userVm) {
185188
if (diskDeviceType == null) {
186189
details.put(VmDetailConstants.ROOK_DISK_CONTROLLER, _vmwareMgr.getRootDiskController());
187190
}
@@ -203,7 +206,7 @@ public VirtualMachineTO implement(VirtualMachineProfile vm) {
203206
details.put(Config.VmwareReserveMem.key(), VmwareReserveMemory.valueIn(clusterId).toString());
204207
to.setDetails(details);
205208

206-
if (vm.getVirtualMachine() instanceof DomainRouterVO) {
209+
if (vmType.equals(VirtualMachine.Type.DomainRouter)) {
207210

208211
NicProfile publicNicProfile = null;
209212
for (NicProfile nicProfile : nicProfiles) {
@@ -277,7 +280,7 @@ public VirtualMachineTO implement(VirtualMachineProfile vm) {
277280

278281
// Don't do this if the virtual machine is one of the special types
279282
// Should only be done on user machines
280-
if (!(vm.getVirtualMachine() instanceof DomainRouterVO || vm.getVirtualMachine() instanceof ConsoleProxyVO || vm.getVirtualMachine() instanceof SecondaryStorageVmVO)) {
283+
if (userVm) {
281284
String nestedVirt = _configDao.getValue(Config.VmwareEnableNestedVirtualization.key());
282285
if (nestedVirt != null) {
283286
s_logger.debug("Nested virtualization requested, adding flag to vm configuration");

0 commit comments

Comments
 (0)