Skip to content

Commit 06f3ff0

Browse files
davidjumaniyadvr
andauthored
api: listVirtualMachinesMetrics should extend ListVMsCmd instead of ListVMsCmdByAdmin (#4145)
Fixes #4143 Co-authored-by: Rohit Yadav <rohit.yadav@shapeblue.com>
1 parent e9f59e2 commit 06f3ff0

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsMetricsCmd.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
package org.apache.cloudstack.api;
1919

2020
import org.apache.cloudstack.acl.RoleType;
21-
import org.apache.cloudstack.api.command.admin.vm.ListVMsCmdByAdmin;
21+
import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
2222
import org.apache.cloudstack.api.response.ListResponse;
2323
import org.apache.cloudstack.api.response.UserVmResponse;
2424
import org.apache.cloudstack.metrics.MetricsService;
@@ -30,7 +30,7 @@
3030
@APICommand(name = ListVMsMetricsCmd.APINAME, description = "Lists VM metrics", responseObject = VmMetricsResponse.class,
3131
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, responseView = ResponseObject.ResponseView.Full,
3232
since = "4.9.3", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
33-
public class ListVMsMetricsCmd extends ListVMsCmdByAdmin {
33+
public class ListVMsMetricsCmd extends ListVMsCmd {
3434
public static final String APINAME = "listVirtualMachinesMetrics";
3535

3636
@Inject

server/src/main/java/com/cloud/api/query/QueryManagerImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -781,7 +781,8 @@ public ListResponse<UserVmResponse> searchForUserVMs(ListVMsCmd cmd) {
781781
Pair<List<UserVmJoinVO>, Integer> result = searchForUserVMsInternal(cmd);
782782
ListResponse<UserVmResponse> response = new ListResponse<UserVmResponse>();
783783
ResponseView respView = ResponseView.Restricted;
784-
if (cmd instanceof ListVMsCmdByAdmin) {
784+
Account caller = CallContext.current().getCallingAccount();
785+
if (_accountMgr.isRootAdmin(caller.getId())) {
785786
respView = ResponseView.Full;
786787
}
787788
List<UserVmResponse> vmResponses = ViewResponseHelper.createUserVmResponse(respView, "virtualmachine", cmd.getDetails(), result.first().toArray(new UserVmJoinVO[result.first().size()]));
@@ -1691,7 +1692,7 @@ public ListResponse<VolumeResponse> searchForVolumes(ListVolumesCmd cmd) {
16911692

16921693
ResponseView respView = ResponseView.Restricted;
16931694
Account account = CallContext.current().getCallingAccount();
1694-
if (_accountMgr.isAdmin(account.getAccountId())) {
1695+
if (_accountMgr.isRootAdmin(account.getAccountId())) {
16951696
respView = ResponseView.Full;
16961697
}
16971698

0 commit comments

Comments
 (0)