diff --git a/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java b/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java index 2754b254e50..bf3febb5c7f 100644 --- a/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java +++ b/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java @@ -32,9 +32,12 @@ public abstract class BaseUpdateTemplateOrIsoCmd extends BaseCmd { //////////////// API parameters ///////////////////// ///////////////////////////////////////////////////// - @Parameter(name = ApiConstants.BOOTABLE, type = CommandType.BOOLEAN, description = "true if image is bootable, false otherwise") + @Parameter(name = ApiConstants.BOOTABLE, type = CommandType.BOOLEAN, description = "true if image is bootable, false otherwise; available only for updateIso API") private Boolean bootable; + @Parameter(name = ApiConstants.REQUIRES_HVM, type = CommandType.BOOLEAN, description = "true if the template requres HVM, false otherwise; available only for updateTemplate API") + private Boolean requiresHvm; + @Parameter(name = ApiConstants.DISPLAY_TEXT, type = CommandType.STRING, description = "the display text of the image", length = 4096) private String displayText; @@ -78,6 +81,10 @@ public abstract class BaseUpdateTemplateOrIsoCmd extends BaseCmd { return bootable; } + public Boolean getRequiresHvm() { + return requiresHvm; + } + public String getDisplayText() { return displayText; } diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java index b569d657beb..5e61160cd04 100644 --- a/api/src/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java @@ -38,6 +38,11 @@ public class UpdateIsoCmd extends BaseUpdateTemplateOrIsoCmd { /////////////////// Accessors /////////////////////// ///////////////////////////////////////////////////// + @Override + public Boolean getRequiresHvm() { + return null; + } + @Override public Boolean isPasswordEnabled() { return null; diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index 8bd7b21602a..81f75353b92 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -1745,6 +1745,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, Boolean isDynamicallyScalable = cmd.isDynamicallyScalable(); Boolean isRoutingTemplate = cmd.isRoutingType(); Boolean bootable = cmd.isBootable(); + Boolean requiresHvm = cmd.getRequiresHvm(); Integer sortKey = cmd.getSortKey(); Map details = cmd.getDetails(); Account account = CallContext.current().getCallingAccount(); @@ -1768,7 +1769,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, } boolean updateNeeded = - !(name == null && displayText == null && format == null && guestOSId == null && passwordEnabled == null && bootable == null && sortKey == null && + !(name == null && displayText == null && format == null && guestOSId == null && passwordEnabled == null && bootable == null && requiresHvm == null && sortKey == null && isDynamicallyScalable == null && isRoutingTemplate == null && details == null); if (!updateNeeded) { return template; @@ -1817,6 +1818,10 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, template.setBootable(bootable); } + if (requiresHvm != null) { + template.setRequiresHvm(requiresHvm); + } + if (isDynamicallyScalable != null) { template.setDynamicallyScalable(isDynamicallyScalable); }