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') {