From 665d270c1beec77358a3d0c2dd29fbb1d27f354f Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 31 Jul 2019 13:28:12 +0530 Subject: [PATCH 1/4] api: allow getUploadParamsForIso for all user role types This allows getUploadParamsForIso for all user role types, also fixes authorised field for getUploadParamsForTemplate API. Signed-off-by: Rohit Yadav --- .../user/iso/GetUploadParamsForIsoCmd.java | 15 +++++++++------ .../template/GetUploadParamsForTemplateCmd.java | 7 +++++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/GetUploadParamsForIsoCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/GetUploadParamsForIsoCmd.java index 92e3b979885b..b1d252ccd2fb 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/GetUploadParamsForIsoCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/GetUploadParamsForIsoCmd.java @@ -16,11 +16,9 @@ // under the License. package org.apache.cloudstack.api.command.user.iso; -import com.cloud.exception.ConcurrentOperationException; -import com.cloud.exception.InsufficientCapacityException; -import com.cloud.exception.NetworkRuleConflictException; -import com.cloud.exception.ResourceAllocationException; -import com.cloud.exception.ResourceUnavailableException; +import java.net.MalformedURLException; + +import org.apache.cloudstack.acl.RoleType; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.AbstractGetUploadParamsCmd; import org.apache.cloudstack.api.ApiConstants; @@ -33,11 +31,16 @@ import org.apache.cloudstack.api.response.ZoneResponse; import org.apache.cloudstack.context.CallContext; -import java.net.MalformedURLException; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.NetworkRuleConflictException; +import com.cloud.exception.ResourceAllocationException; +import com.cloud.exception.ResourceUnavailableException; @APICommand(name = GetUploadParamsForIsoCmd.APINAME, description = "upload an existing ISO into the CloudStack cloud.", responseObject = GetUploadParamsResponse.class, since = "4.13", + authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false) public class GetUploadParamsForIsoCmd extends AbstractGetUploadParamsCmd { diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/template/GetUploadParamsForTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/template/GetUploadParamsForTemplateCmd.java index 248e892d897d..00e956a56f30 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/template/GetUploadParamsForTemplateCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/template/GetUploadParamsForTemplateCmd.java @@ -22,6 +22,7 @@ import java.util.Collection; import java.util.Map; +import org.apache.cloudstack.acl.RoleType; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.AbstractGetUploadParamsCmd; import org.apache.cloudstack.api.ApiConstants; @@ -35,8 +36,10 @@ import com.cloud.exception.ResourceAllocationException; -@APICommand(name = "getUploadParamsForTemplate", description = "upload an existing template into the CloudStack cloud. ", responseObject = GetUploadParamsResponse.class, since = - "4.6.0", requestHasSensitiveInfo = false, responseHasSensitiveInfo = false) +@APICommand(name = "getUploadParamsForTemplate", description = "upload an existing template into the CloudStack cloud. ", + responseObject = GetUploadParamsResponse.class, since = "4.6.0", + authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User}, + requestHasSensitiveInfo = false, responseHasSensitiveInfo = false) public class GetUploadParamsForTemplateCmd extends AbstractGetUploadParamsCmd { public static final Logger s_logger = Logger.getLogger(GetUploadParamsForTemplateCmd.class.getName()); From 787d075d46371d136243f8da58e4286af7b7db72 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 31 Jul 2019 13:38:27 +0530 Subject: [PATCH 2/4] fix config key setting description Signed-off-by: Rohit Yadav --- api/src/main/java/org/apache/cloudstack/query/QueryService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/org/apache/cloudstack/query/QueryService.java b/api/src/main/java/org/apache/cloudstack/query/QueryService.java index b9010cb89010..e5ef658dce8b 100644 --- a/api/src/main/java/org/apache/cloudstack/query/QueryService.java +++ b/api/src/main/java/org/apache/cloudstack/query/QueryService.java @@ -92,7 +92,7 @@ public interface QueryService { static final ConfigKey UserVMBlacklistedDetails = new ConfigKey("Advanced", String.class, "user.vm.blacklisted.details", "rootdisksize, cpuOvercommitRatio, memoryOvercommitRatio, Message.ReservedCapacityFreed.Flag", - "Determines whether users can view certain VM settings", true); + "Determines whether users can view certain VM settings. When set to empty, default value used is: rootdisksize, cpuOvercommitRatio, memoryOvercommitRatio, Message.ReservedCapacityFreed.Flag.", true); static final ConfigKey UserVMReadOnlyUIDetails = new ConfigKey("Advanced", String.class, "user.vm.readonly.ui.details", "dataDiskController, rootDiskController", From b4b718be4ccd2134f450e714ee3a84f6c0b7ed78 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 31 Jul 2019 13:47:35 +0530 Subject: [PATCH 3/4] fix usage description to not use comma, put ID in another parenthesis Signed-off-by: Rohit Yadav --- server/src/main/java/com/cloud/api/ApiResponseHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/com/cloud/api/ApiResponseHelper.java b/server/src/main/java/com/cloud/api/ApiResponseHelper.java index 90d4ff01fbfc..df1eedb90ab7 100644 --- a/server/src/main/java/com/cloud/api/ApiResponseHelper.java +++ b/server/src/main/java/com/cloud/api/ApiResponseHelper.java @@ -3373,7 +3373,7 @@ public UsageRecordResponse createUsageResponse(Usage usageRecord, Map Date: Wed, 31 Jul 2019 13:47:54 +0530 Subject: [PATCH 4/4] show template progress when template belong to a project Signed-off-by: Rohit Yadav --- .../java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java index 155fd14b5311..54686f73df2a 100644 --- a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java @@ -166,8 +166,10 @@ public TemplateResponse newTemplateResponse(ResponseView view, TemplateJoinVO te templateResponse.setDomainId(template.getDomainUuid()); templateResponse.setDomainName(template.getDomainName()); - // If the user is an 'Admin' or 'the owner of template', add the template download status - if (view == ResponseView.Full || template.getAccountId() == CallContext.current().getCallingAccount().getId() ) { + // If the user is an 'Admin' or 'the owner of template' or template belongs to a project, add the template download status + if (view == ResponseView.Full || + template.getAccountId() == CallContext.current().getCallingAccount().getId() || + template.getAccountType() == Account.ACCOUNT_TYPE_PROJECT) { String templateStatus = getTemplateStatus(template); if (templateStatus != null) { templateResponse.setStatus(templateStatus);