diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index b3fac7076f5..635a943f676 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -2243,8 +2243,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager } // check if account/domain is with in resource limits to create a new vm + boolean isIso = Storage.ImageFormat.ISO == template.getFormat(); _resourceLimitMgr.checkResourceLimit(owner, ResourceType.user_vm); - _resourceLimitMgr.checkResourceLimit(owner, ResourceType.volume); + _resourceLimitMgr.checkResourceLimit(owner, ResourceType.volume, (isIso || diskOfferingId == null ? 1 : 2)); //verify security group ids if (securityGroupIdList != null) { @@ -2274,7 +2275,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager if (listZoneTemplate == null || listZoneTemplate.isEmpty()) { throw new InvalidParameterValueException("The template " + template.getId() + " is not available for use"); } - boolean isIso = Storage.ImageFormat.ISO == template.getFormat(); + if (isIso && !template.isBootable()) { throw new InvalidParameterValueException("Installing from ISO requires an ISO that is bootable: " + template.getId()); } diff --git a/ui/scripts/accounts.js b/ui/scripts/accounts.js index 382510e849a..6692f855a66 100644 --- a/ui/scripts/accounts.js +++ b/ui/scripts/accounts.js @@ -804,6 +804,9 @@ success: function(json) { var item = json.updateuserresponse.user; args.response.success({data:item}); + }, + error: function(data) { + args.response.error(parseXMLHttpResponse(data)); } });