Updated Branches: refs/heads/add_remove_nics ea7fbd6b4 -> 52c35a89a
Summary: Check network for same DNS name when adding VM to network Detail: Can't add VM of same name to network where name already exists, will break DNS in virtual router. Submittted-by: Brian Angus <blan...@betterservers.com> Signed-off-by: Marcus Sorensen <mar...@betterservers.com> 1359400901 -0700 Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/52c35a89 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/52c35a89 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/52c35a89 Branch: refs/heads/add_remove_nics Commit: 52c35a89a6e3445d9e20cf16c914da04ae17780d Parents: ea7fbd6 Author: Marcus Sorensen <mar...@betterservers.com> Authored: Mon Jan 28 12:21:41 2013 -0700 Committer: Marcus Sorensen <mar...@betterservers.com> Committed: Mon Jan 28 12:21:41 2013 -0700 ---------------------------------------------------------------------- server/src/com/cloud/vm/UserVmManagerImpl.java | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/52c35a89/server/src/com/cloud/vm/UserVmManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index 2ab88e2..692cf4a 100644 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -960,9 +960,17 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager if(_networkModel.getNicInNetwork(vmInstance.getId(),network.getId()) != null){ s_logger.debug(vmInstance + " already in " + network + " going to add another NIC"); + } else { + List<NicVO> nics = _nicDao.listByNetworkId(network.getId()); + for (NicVO netnic : nics) { + VMInstanceVO vm = _vmDao.findById(netnic.getInstanceId()); + if (vm != null) { + if (vm.getHostName().equals(vmInstance.getHostName())) { + throw new CloudRuntimeException(network + " already has a vm with host name: '" + vmInstance.getHostName() + "' vmId:" + vm.getId() + " " + vm); + } + } + } } - - //todo: verify unique hostname in network domain? NicProfile guestNic = null; @@ -1075,7 +1083,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager } //make sure the VM is Running or Stopped - if ((vmInstance.getState() != State.Running) || (vmInstance.getState() != State.Stopped)) { + if ((vmInstance.getState() != State.Running) && (vmInstance.getState() != State.Stopped)) { throw new CloudRuntimeException("refusing to set default " + vmInstance + " is not Running or Stopped"); }