This is an automated email from the ASF dual-hosted git repository.

dahn pushed a commit to branch 4.20
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.20 by this push:
     new c453aaea2cf ui: improve metrics api use in list views (#9825)
c453aaea2cf is described below

commit c453aaea2cf5c7e5eb13adb05e1761a58aa10e5e
Author: Abhishek Kumar <[email protected]>
AuthorDate: Fri May 9 15:03:57 2025 +0530

    ui: improve metrics api use in list views (#9825)
    
    Signed-off-by: Abhishek Kumar <[email protected]>
---
 ui/src/config/router.js                 | 1 -
 ui/src/config/section/compute.js        | 3 +--
 ui/src/config/section/infra/clusters.js | 4 ++--
 ui/src/config/section/infra/hosts.js    | 8 +++-----
 ui/src/config/section/infra/zones.js    | 4 ++--
 ui/src/views/AutogenView.vue            | 7 ++++++-
 6 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/ui/src/config/router.js b/ui/src/config/router.js
index 16599a0c367..aa85f452b73 100644
--- a/ui/src/config/router.js
+++ b/ui/src/config/router.js
@@ -75,7 +75,6 @@ function generateRouterMap (section) {
           icon: child.icon,
           docHelp: vueProps.$applyDocHelpMappings(child.docHelp),
           permission: child.permission,
-          getApiToCall: child.getApiToCall,
           resourceType: child.resourceType,
           filters: child.filters,
           params: child.params ? child.params : {},
diff --git a/ui/src/config/section/compute.js b/ui/src/config/section/compute.js
index 5b7bd0f8b9b..b6a72b82f91 100644
--- a/ui/src/config/section/compute.js
+++ b/ui/src/config/section/compute.js
@@ -29,8 +29,7 @@ export default {
       title: 'label.instances',
       icon: 'cloud-server-outlined',
       docHelp: 'adminguide/virtual_machines.html',
-      permission: ['listVirtualMachines', 'listVirtualMachinesMetrics'],
-      getApiToCall: () => store.getters.metrics ? 'listVirtualMachinesMetrics' 
: 'listVirtualMachines',
+      permission: ['listVirtualMachinesMetrics'],
       resourceType: 'UserVm',
       params: () => {
         var params = { details: 
'group,nics,secgrp,tmpl,servoff,diskoff,iso,volume,affgrp,backoff' }
diff --git a/ui/src/config/section/infra/clusters.js 
b/ui/src/config/section/infra/clusters.js
index 8021b1f6760..883efd463c3 100644
--- a/ui/src/config/section/infra/clusters.js
+++ b/ui/src/config/section/infra/clusters.js
@@ -26,8 +26,8 @@ export default {
   permission: ['listClustersMetrics'],
   searchFilters: ['name', 'zoneid', 'podid', 'arch', 'hypervisor'],
   columns: () => {
-    const fields = ['name', 'state', 'allocationstate', 'clustertype', 'arch', 
'hypervisortype', 'hosts']
-    const metricsFields = ['cpuused', 'cpumaxdeviation', 'cpuallocated', 
'cputotal', 'memoryused', 'memorymaxdeviation', 'memoryallocated', 
'memorytotal', 'drsimbalance']
+    const fields = ['name', 'allocationstate', 'clustertype', 'arch', 
'hypervisortype']
+    const metricsFields = ['state', 'hosts', 'cpuused', 'cpumaxdeviation', 
'cpuallocated', 'cputotal', 'memoryused', 'memorymaxdeviation', 
'memoryallocated', 'memorytotal', 'drsimbalance']
     if (store.getters.metrics) {
       fields.push(...metricsFields)
     }
diff --git a/ui/src/config/section/infra/hosts.js 
b/ui/src/config/section/infra/hosts.js
index 617fc85d478..f81d19b136d 100644
--- a/ui/src/config/section/infra/hosts.js
+++ b/ui/src/config/section/infra/hosts.js
@@ -33,12 +33,10 @@ export default {
   params: { type: 'routing' },
   columns: () => {
     const fields = [
-      'name', 'state', 'resourcestate', 'ipaddress',
-      'arch', 'hypervisor', 'instances',
-      { field: 'systeminstances', customTitle: 'system.vms' },
-      'powerstate', 'version'
+      'name', 'state', 'resourcestate', 'ipaddress', 'arch', 'hypervisor',
+      { field: 'systeminstances', customTitle: 'system.vms' }, 'version'
     ]
-    const metricsFields = ['cpunumber', 'cputotalghz', 'cpuusedghz', 
'cpuallocatedghz', 'memorytotalgb', 'memoryusedgb', 'memoryallocatedgb', 
'networkread', 'networkwrite']
+    const metricsFields = ['instances', 'powerstate', 'cpunumber', 
'cputotalghz', 'cpuusedghz', 'cpuallocatedghz', 'memorytotalgb', 
'memoryusedgb', 'memoryallocatedgb', 'networkread', 'networkwrite']
     if (store.getters.metrics) {
       fields.push(...metricsFields)
     }
diff --git a/ui/src/config/section/infra/zones.js 
b/ui/src/config/section/infra/zones.js
index b4a34372e10..cb95bce8f75 100644
--- a/ui/src/config/section/infra/zones.js
+++ b/ui/src/config/section/infra/zones.js
@@ -26,8 +26,8 @@ export default {
   permission: ['listZonesMetrics'],
   searchFilters: ['name', 'domainid', 'tags'],
   columns: () => {
-    const fields = ['name', 'allocationstate', 'type', 'networktype', 
'clusters']
-    const metricsFields = ['cpuused', 'cpumaxdeviation', 'cpuallocated', 
'cputotal', 'memoryused', 'memorymaxdeviation', 'memoryallocated', 
'memorytotal']
+    const fields = ['name', 'allocationstate', 'type', 'networktype']
+    const metricsFields = ['clusters', 'cpuused', 'cpumaxdeviation', 
'cpuallocated', 'cputotal', 'memoryused', 'memorymaxdeviation', 
'memoryallocated', 'memorytotal']
     if (store.getters.metrics) {
       fields.push(...metricsFields)
     }
diff --git a/ui/src/views/AutogenView.vue b/ui/src/views/AutogenView.vue
index 27445ddeb29..63cd60ab068 100644
--- a/ui/src/views/AutogenView.vue
+++ b/ui/src/views/AutogenView.vue
@@ -829,7 +829,12 @@ export default {
       }
 
       if (this.$route && this.$route.meta && this.$route.meta.permission) {
-        this.apiName = (this.$route.meta.getApiToCall && 
this.$route.meta.getApiToCall()) || this.$route.meta.permission[0]
+        this.apiName = this.$route.meta.permission[0]
+        if (!store.getters.metrics && !this.dataView &&
+            this.apiName && this.apiName.endsWith('Metrics') &&
+            store.getters.apis[this.apiName.replace(/Metrics$/, '')]) {
+          this.apiName = this.apiName.replace(/Metrics$/, '')
+        }
         if (this.$route.meta.columns) {
           const columns = this.$route.meta.columns
           if (columns && typeof columns === 'function') {

Reply via email to