From c3d2bab81b653354eab5ddefadafbcfc87d0e4f9 Mon Sep 17 00:00:00 2001 From: prachi Date: Mon, 11 Apr 2011 13:17:23 -0700 Subject: [PATCH] Some more changes for Bug 8932 - add md5 sum to list templates call: Also changed 'RegisterTemplate' to take in a new optional parameter 'checksum'. The value set to it is stored as-is in the DB in vm_template table, 'checksum' column. --- api/src/com/cloud/api/ApiConstants.java | 1 + api/src/com/cloud/api/commands/RegisterTemplateCmd.java | 8 ++++++++ server/src/com/cloud/api/ApiResponseHelper.java | 3 ++- server/src/com/cloud/template/TemplateManagerImpl.java | 3 ++- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/api/src/com/cloud/api/ApiConstants.java b/api/src/com/cloud/api/ApiConstants.java index 19f299dc367..115bd79b88f 100755 --- a/api/src/com/cloud/api/ApiConstants.java +++ b/api/src/com/cloud/api/ApiConstants.java @@ -215,5 +215,6 @@ public class ApiConstants { public static final String PRIVATE_NETWORK_ID = "privatenetworkid"; public static final String ALLOCATION_STATE = "allocationstate"; public static final String STORAGE_ID="storageid"; + public static final String CHECKSUM="checksum"; } diff --git a/api/src/com/cloud/api/commands/RegisterTemplateCmd.java b/api/src/com/cloud/api/commands/RegisterTemplateCmd.java index 33edc5e264e..8f49fca75f2 100755 --- a/api/src/com/cloud/api/commands/RegisterTemplateCmd.java +++ b/api/src/com/cloud/api/commands/RegisterTemplateCmd.java @@ -26,6 +26,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.async.AsyncJob; @@ -88,6 +89,9 @@ public class RegisterTemplateCmd extends BaseCmd { @Parameter(name=ApiConstants.ACCOUNT, type=CommandType.STRING, description="an optional accountName. Must be used with domainId.") private String accountName; + + @Parameter(name=ApiConstants.CHECKSUM, type=CommandType.STRING, description="the MD5 checksum value of this template") + private String checksum; ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// @@ -153,6 +157,10 @@ public class RegisterTemplateCmd extends BaseCmd { return accountName; } + public String getChecksum() { + return checksum; + } + ///////////////////////////////////////////////////// /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 9d92e7b4dde..51cc4a64564 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -1562,7 +1562,8 @@ public class ApiResponseHelper implements ResponseGenerator { templateResponse.setZoneId(zone.getId()); templateResponse.setZoneName(zone.getName()); templateResponse.setHypervisor(template.getHypervisorType().toString()); - templateResponse.setObjectName("template"); + templateResponse.setObjectName("template"); + templateResponse.setChecksum(template.getChecksum()); responses.add(templateResponse); } diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index 65199b3c378..861f3be6de6 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -282,6 +282,7 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe Long domainId = cmd.getDomainId(); Account resourceAccount = null; Long accountId = null; + String chksum = cmd.getChecksum(); //parameters verification if (bits == null) { @@ -369,7 +370,7 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe userId = Long.valueOf(1); } - return createTemplateOrIso(userId, accountId, zoneId, name, displayText, isPublic, featured, isExtractable, format, TemplateType.USER, url, null, requiresHVM, bits, passwordEnabled, guestOSId, true, hypervisorType); + return createTemplateOrIso(userId, accountId, zoneId, name, displayText, isPublic, featured, isExtractable, format, TemplateType.USER, url, chksum, requiresHVM, bits, passwordEnabled, guestOSId, true, hypervisorType); }