From 714ab83fa177a84ffaf62d6215ca46375c41d9ba Mon Sep 17 00:00:00 2001 From: nit Date: Fri, 27 May 2011 16:19:26 +0530 Subject: [PATCH] bug 9596 : Make the iso extractable by default. status 9596: resolved fixed --- api/src/com/cloud/api/commands/RegisterIsoCmd.java | 8 ++++++++ server/src/com/cloud/api/ApiResponseHelper.java | 1 + server/src/com/cloud/template/TemplateAdapterBase.java | 8 ++++---- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/api/src/com/cloud/api/commands/RegisterIsoCmd.java b/api/src/com/cloud/api/commands/RegisterIsoCmd.java index fdc9cbeb755..2c30246878d 100755 --- a/api/src/com/cloud/api/commands/RegisterIsoCmd.java +++ b/api/src/com/cloud/api/commands/RegisterIsoCmd.java @@ -24,6 +24,7 @@ import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; +import com.cloud.api.BaseCmd.CommandType; import com.cloud.api.response.ListResponse; import com.cloud.api.response.TemplateResponse; import com.cloud.exception.InvalidParameterValueException; @@ -54,6 +55,9 @@ public class RegisterIsoCmd extends BaseCmd { @Parameter(name=ApiConstants.IS_PUBLIC, type=CommandType.BOOLEAN, description="true if you want to register the ISO to be publicly available to all users, false otherwise.") private Boolean publicIso; + @Parameter(name=ApiConstants.IS_EXTRACTABLE, type=CommandType.BOOLEAN, description="true if the iso or its derivatives are extractable; default is true") + private Boolean extractable; + @Parameter(name=ApiConstants.NAME, type=CommandType.STRING, required=true, description="the name of the ISO") private String isoName; @@ -92,6 +96,10 @@ public class RegisterIsoCmd extends BaseCmd { return publicIso; } + public Boolean isExtractable() { + return extractable; + } + public String getIsoName() { return isoName; } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 58b56347193..cc4dd5b0dba 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -1612,6 +1612,7 @@ public class ApiResponseHelper implements ResponseGenerator { } templateResponse.setFeatured(template.isFeatured()); + templateResponse.setExtractable(template.isExtractable()); templateResponse.setBootable(template.isBootable()); templateResponse.setOsTypeId(template.getGuestOSId()); templateResponse.setOsTypeName(ApiDBUtils.findGuestOSById(template.getGuestOSId()).getDisplayName()); diff --git a/server/src/com/cloud/template/TemplateAdapterBase.java b/server/src/com/cloud/template/TemplateAdapterBase.java index 20fd58dc761..3b2383ef4c1 100755 --- a/server/src/com/cloud/template/TemplateAdapterBase.java +++ b/server/src/com/cloud/template/TemplateAdapterBase.java @@ -113,9 +113,6 @@ public abstract class TemplateAdapterBase implements TemplateAdapter { guestOSId = 138L; //Guest os id of None. } } else { - if (isExtractable == null) { - isExtractable = Boolean.TRUE; - } if (bits == null) { bits = Integer.valueOf(64); } @@ -127,6 +124,9 @@ public abstract class TemplateAdapterBase implements TemplateAdapter { } } + if (isExtractable == null) { + isExtractable = Boolean.TRUE; + } if ((accountName == null) ^ (domainId == null)) {// XOR - Both have to be passed or don't pass any of them throw new InvalidParameterValueException("Please specify both account and domainId or dont specify any of them"); } @@ -241,7 +241,7 @@ public abstract class TemplateAdapterBase implements TemplateAdapter { public TemplateProfile prepare(RegisterIsoCmd cmd) throws ResourceAllocationException { return prepare(true, UserContext.current().getCallerUserId(), cmd.getIsoName(), cmd.getDisplayText(), 64, false, - true, cmd.getUrl(), cmd.isPublic(), cmd.isFeatured(), true, ImageFormat.ISO.toString(), cmd.getOsTypeId(), + true, cmd.getUrl(), cmd.isPublic(), cmd.isFeatured(), cmd.isExtractable(), ImageFormat.ISO.toString(), cmd.getOsTypeId(), cmd.getZoneId(), HypervisorType.None, cmd.getAccountName(), cmd.getDomainId(), null, cmd.isBootable()); }