diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index adc8c324040..6d858743745 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -1728,7 +1728,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir throw new InvalidParameterValueException("Allocating ip to guest nic " + nicVO.getUuid() + " failed, please choose another ip"); } - final IPAddressVO newIp = _ipAddressDao.findByIpAndDcId(dc.getId(), ipaddr); + final IPAddressVO newIp = _ipAddressDao.findByIpAndSourceNetworkId(network.getId(), ipaddr); final Vlan vlan = _vlanDao.findById(newIp.getVlanId()); nicVO.setIPv4Gateway(vlan.getVlanGateway()); nicVO.setIPv4Netmask(vlan.getVlanNetmask()); diff --git a/server/src/test/java/com/cloud/vm/UserVmManagerTest.java b/server/src/test/java/com/cloud/vm/UserVmManagerTest.java index 9d58f4f00b5..1103fb17961 100644 --- a/server/src/test/java/com/cloud/vm/UserVmManagerTest.java +++ b/server/src/test/java/com/cloud/vm/UserVmManagerTest.java @@ -604,6 +604,7 @@ public class UserVmManagerTest { NicVO nic = new NicVO("nic", 1L, 2L, VirtualMachine.Type.User); when(_nicDao.findById(anyLong())).thenReturn(nic); + nic.setIPv4Address("10.10.10.9"); when(_vmDao.findById(anyLong())).thenReturn(_vmMock); when(_networkDao.findById(anyLong())).thenReturn(_networkMock); doReturn(9L).when(_networkMock).getNetworkOfferingId(); @@ -630,9 +631,9 @@ public class UserVmManagerTest { when(vlan.getVlanNetmask()).thenReturn("255.255.255.0"); when(_ipAddrMgr.allocatePublicIpForGuestNic(Mockito.eq(_networkMock), nullable(Long.class), Mockito.eq(_accountMock), anyString())).thenReturn("10.10.10.10"); - lenient().when(_ipAddressDao.findByIpAndSourceNetworkId(anyLong(), anyString())).thenReturn(null); + when(_ipAddressDao.findByIpAndSourceNetworkId(anyLong(), eq("10.10.10.10"))).thenReturn(newIp); + when(_ipAddressDao.findByIpAndSourceNetworkId(anyLong(), eq("10.10.10.9"))).thenReturn(null); when(_nicDao.persist(any(NicVO.class))).thenReturn(nic); - when(_ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(newIp); when(_vlanDao.findById(anyLong())).thenReturn(vlan); Account caller = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());