diff --git a/plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsMetricsCmd.java b/plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsMetricsCmd.java index 38001cedb09..55af69e623c 100644 --- a/plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsMetricsCmd.java +++ b/plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsMetricsCmd.java @@ -43,7 +43,7 @@ import org.apache.cloudstack.response.VmMetricsResponse; * */ @APICommand(name = ListVMsMetricsCmd.APINAME, description = "Lists VM metrics", responseObject = VmMetricsResponse.class, - requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, responseView = ResponseObject.ResponseView.Full, + requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, responseView = ResponseObject.ResponseView.Restricted, since = "4.9.3", authorized = {RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User}) public class ListVMsMetricsCmd extends ListVMsCmd implements UserCmd { public static final String APINAME = "listVirtualMachinesMetrics"; diff --git a/test/integration/smoke/test_metrics_api.py b/test/integration/smoke/test_metrics_api.py index aeb3d883cfa..3ff602c1a71 100644 --- a/test/integration/smoke/test_metrics_api.py +++ b/test/integration/smoke/test_metrics_api.py @@ -58,16 +58,28 @@ class TestMetrics(cloudstackTestCase): cls.hypervisor ) cls._cleanup.append(cls.service_offering) + cls.domain = get_domain(cls.apiclient) + cls.account = Account.create( + cls.apiclient, + cls.services["account"], + admin=False, + domainid=cls.domain.id + ) + cls._cleanup.append(cls.account) @classmethod def tearDownClass(cls): super(TestMetrics, cls).tearDownClass() def setUp(self): + self.userapiclient = self.testClient.getUserApiClient( + UserName=self.account.name, + DomainName=self.account.domain + ) self.cleanup = [] def tearDown(self): - super(TestMetrics, self).tearDown(); + super(TestMetrics, self).tearDown() @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="false") def test_list_hosts_metrics(self): @@ -117,23 +129,24 @@ class TestMetrics(cloudstackTestCase): return - @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="false") - def test_list_vms_metrics(self): - #deploy VM + def run_list_vm_metrics_test(self, is_user): + apiclient = self.apiclient + if is_user: + apiclient = self.userapiclient self.small_virtual_machine = VirtualMachine.create( - self.apiclient, - self.services["virtual_machine"], - serviceofferingid=self.service_offering.id, - templateid=self.template.id, - zoneid=self.zone.id - ) + apiclient, + self.services["virtual_machine"], + serviceofferingid=self.service_offering.id, + templateid=self.template.id, + zoneid=self.zone.id + ) self.cleanup.append(self.small_virtual_machine) cmd = listVirtualMachinesMetrics.listVirtualMachinesMetricsCmd() cmd.id = self.small_virtual_machine.id - lvmm = self.apiclient.listVirtualMachinesMetrics(cmd)[0] + lvmm = apiclient.listVirtualMachinesMetrics(cmd)[0] self.assertEqual(lvmm.id, self.small_virtual_machine.id) @@ -144,7 +157,13 @@ class TestMetrics(cloudstackTestCase): self.assertTrue(hasattr(lvmm, 'networkread')) self.assertTrue(hasattr(lvmm, 'networkwrite')) - return + @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="false") + def test_list_vms_metrics_admin(self): + self.run_list_vm_metrics_test(False) + + @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="false") + def test_list_vms_metrics_user(self): + self.run_list_vm_metrics_test(True) @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="false") def test_list_pstorage_metrics(self):