From 204f1ce8a4a72d0d9634d002900e475e11680269 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Fri, 18 Oct 2024 12:24:59 +0530 Subject: [PATCH 1/2] ui: use *metrics apis only when metrics enabled for list In UI for the list views it is regular API view by default and *Metrics API response may not be needed. *Metrics APIs will take more time to return response so this PR tries to improve the behaviour and enables calling regular API without metrics when metrics toggle is not enabled. Signed-off-by: Abhishek Kumar --- ui/src/config/router.js | 1 - ui/src/config/section/compute.js | 3 +-- ui/src/config/section/infra/clusters.js | 4 ++-- ui/src/views/AutogenView.vue | 7 ++++++- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ui/src/config/router.js b/ui/src/config/router.js index 16599a0c3673..aa85f452b734 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 6bbcf38e9b55..367d0a73346b 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 c304a8a7e6c2..74fc0f602d55 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', 'hypervisor'], columns: () => { - const fields = ['name', 'state', 'allocationstate', 'clustertype', 'hypervisortype', 'hosts'] - const metricsFields = ['cpuused', 'cpumaxdeviation', 'cpuallocated', 'cputotal', 'memoryused', 'memorymaxdeviation', 'memoryallocated', 'memorytotal', 'drsimbalance'] + const fields = ['name', 'allocationstate', 'clustertype', 'hypervisortype', 'hosts'] + const metricsFields = ['state', 'cpuused', 'cpumaxdeviation', 'cpuallocated', 'cputotal', 'memoryused', 'memorymaxdeviation', 'memoryallocated', 'memorytotal', 'drsimbalance'] if (store.getters.metrics) { fields.push(...metricsFields) } diff --git a/ui/src/views/AutogenView.vue b/ui/src/views/AutogenView.vue index 27445ddeb297..63cd60ab0688 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') { From c64aa4b401ddc20eb5f9fb7e78493bb57c552507 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Wed, 29 Jan 2025 14:05:59 +0530 Subject: [PATCH 2/2] move metricsresponse fields to metricsFields Signed-off-by: Abhishek Kumar --- ui/src/config/section/infra/clusters.js | 4 ++-- ui/src/config/section/infra/hosts.js | 4 ++-- ui/src/config/section/infra/zones.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ui/src/config/section/infra/clusters.js b/ui/src/config/section/infra/clusters.js index 74fc0f602d55..9672a11dc569 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', 'hypervisor'], columns: () => { - const fields = ['name', 'allocationstate', 'clustertype', 'hypervisortype', 'hosts'] - const metricsFields = ['state', 'cpuused', 'cpumaxdeviation', 'cpuallocated', 'cputotal', 'memoryused', 'memorymaxdeviation', 'memoryallocated', 'memorytotal', 'drsimbalance'] + const fields = ['name', 'allocationstate', 'clustertype', '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 2dba77fa4df6..22c3954e2730 100644 --- a/ui/src/config/section/infra/hosts.js +++ b/ui/src/config/section/infra/hosts.js @@ -32,8 +32,8 @@ export default { }, params: { type: 'routing' }, columns: () => { - const fields = ['name', 'state', 'resourcestate', 'ipaddress', 'hypervisor', 'instances', 'powerstate', 'version'] - const metricsFields = ['cpunumber', 'cputotalghz', 'cpuusedghz', 'cpuallocatedghz', 'memorytotalgb', 'memoryusedgb', 'memoryallocatedgb', 'networkread', 'networkwrite'] + const fields = ['name', 'state', 'resourcestate', 'ipaddress', 'hypervisor', 'version'] + 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 b4a34372e101..cb95bce8f75e 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) }