From d45f5cd5bfb919fe9f1d323126fd35bb97f1ef45 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Thu, 20 Jan 2011 13:40:45 -0500 Subject: [PATCH] bug 8119: don't boot from iso, if iso is dettached status 8119: resolved fixed --- .../cloud/network/security/SecurityGroupManagerImpl.java | 2 +- server/src/com/cloud/vm/UserVmManagerImpl.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java index 590276b3ab8..5e0e5dc8e74 100644 --- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java +++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java @@ -1071,7 +1071,7 @@ public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityG if (!_enabled) { return true; } - if (groups != null || !groups.isEmpty()) { + if (groups != null && !groups.isEmpty()) { final Transaction txn = Transaction.currentTxn(); txn.start(); diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index 404cae9d8aa..9a26502492f 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -2064,6 +2064,10 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager if (sshPublicKey != null) { vm.setDetail("SSH.PublicKey", sshPublicKey); } + + if (isIso) { + vm.setIsoId(template.getId()); + } if (_itMgr.allocate(vm, template, offering, rootDiskOffering, dataDiskOfferings, networks, null, plan, cmd.getHypervisor(), owner) == null) { return null; @@ -2148,7 +2152,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager if (vo.getIsoId() != null) { template = _templateDao.findById(vo.getIsoId()); } - if (template != null && template.getFormat() == ImageFormat.ISO) { + if (template != null && template.getFormat() == ImageFormat.ISO && vo.getIsoId() != null) { String isoPath = null; Pair isoPathPair = _storageMgr.getAbsoluteIsoPath(template.getId(), vo.getDataCenterId()); if (isoPathPair == null) { @@ -2169,7 +2173,6 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager iso.setDeviceId(3); profile.addDisk(iso); - vo.setIsoId(template.getId()); } else { /*create a iso placeholder*/ VolumeTO iso = new VolumeTO(profile.getId(), Volume.VolumeType.ISO, StorageResourceType.STORAGE_POOL, StoragePoolType.ISO, null, template.getName(), null, null,