From 3b3f4577b0f4a86cc6f26a9999a14621d3aba37a Mon Sep 17 00:00:00 2001 From: Prachi Damle Date: Fri, 16 May 2014 16:48:53 -0700 Subject: [PATCH] CLOUDSTACK-6476: Basic Zone with Multiple Pods Setup: DHCP server doesnt get deployed in the pod where the VM gets deployed Changes: PodId in which the router should get started was not being saved to the DB due to the VO's setter method not following the setXXX format. So when planner loaded the router from DB, it always got podId as null and that would allow planner to deploy the router in any pod. If the router happens to start in a different pod than the user VM, the Vm fails to start since the Dhcp service check fails. Fixed the VO's setPodId method, that was causing the DB save operation fail. --- .../src/com/cloud/vm/VirtualMachineManagerImpl.java | 6 +++--- engine/schema/src/com/cloud/vm/VMInstanceVO.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java index 8ca7d1e7b91..25c67db1c8c 100755 --- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -387,7 +387,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac vm.setDataCenterId(plan.getDataCenterId()); if (plan.getPodId() != null) { - vm.setPodId(plan.getPodId()); + vm.setPodIdToDeployIn(plan.getPodId()); } assert (plan.getClusterId() == null && plan.getPoolId() == null) : "We currently don't support cluster and pool preset yet"; final VMInstanceVO vmFinal = _vmDao.persist(vm); @@ -949,7 +949,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac } long destHostId = dest.getHost().getId(); - vm.setPodId(dest.getPod().getId()); + vm.setPodIdToDeployIn(dest.getPod().getId()); Long cluster_id = dest.getCluster().getId(); ClusterDetailsVO cluster_detail_cpu = _clusterDetailsDao.findDetail(cluster_id, "cpuOvercommitRatio"); ClusterDetailsVO cluster_detail_ram = _clusterDetailsDao.findDetail(cluster_id, "memoryOvercommitRatio"); @@ -1729,7 +1729,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac //when start the vm next time, don;'t look at last_host_id, only choose the host based on volume/storage pool vm.setLastHostId(null); - vm.setPodId(destPool.getPodId()); + vm.setPodIdToDeployIn(destPool.getPodId()); } else { s_logger.debug("Storage migration failed"); } diff --git a/engine/schema/src/com/cloud/vm/VMInstanceVO.java b/engine/schema/src/com/cloud/vm/VMInstanceVO.java index d1f358d71f5..c1190dc8fd2 100644 --- a/engine/schema/src/com/cloud/vm/VMInstanceVO.java +++ b/engine/schema/src/com/cloud/vm/VMInstanceVO.java @@ -422,7 +422,7 @@ public class VMInstanceVO implements VirtualMachine, FiniteStateObject