From 4d2eef3b6cb0e51b0ee6246d19575fe5fbe94cfb Mon Sep 17 00:00:00 2001 From: "andy.lee" Date: Mon, 11 Nov 2024 14:23:00 +0800 Subject: [PATCH] show denied status if harvester version is not supported Signed-off-by: andy.lee --- .../harvesterhci.io.management.cluster.vue | 4 ++-- pkg/harvester/l10n/en-us.yaml | 2 +- .../harvesterhci.io.management.cluster.vue | 14 ++----------- .../harvesterhci.io.management.cluster.js | 20 ++++++++++++++++--- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/pkg/harvester/edit/harvesterhci.io.management.cluster.vue b/pkg/harvester/edit/harvesterhci.io.management.cluster.vue index 41c8484e..d9ff48dd 100644 --- a/pkg/harvester/edit/harvesterhci.io.management.cluster.vue +++ b/pkg/harvester/edit/harvesterhci.io.management.cluster.vue @@ -115,10 +115,10 @@ export default { > {{ t('harvesterManager.cluster.supportMessage') }} - > +
Harvester Web Site or read the the Harvester Docs description: Harvester is a modern Hyperconverged infrastructure (HCI) solution built for bare metal servers using enterprise-grade open source technologies including Kubernetes, Kubevirt and Longhorn. - supportMessage: Harvester UI Extension only supports Harvester cluster version >= 1.3.0 + supportMessage: Harvester ui extension only supports Harvester cluster version greater or equal to 1.3.0 plugins: loadError: Error loading harvester plugin rke: diff --git a/pkg/harvester/list/harvesterhci.io.management.cluster.vue b/pkg/harvester/list/harvesterhci.io.management.cluster.vue index ac52bc64..8626b8ef 100644 --- a/pkg/harvester/list/harvesterhci.io.management.cluster.vue +++ b/pkg/harvester/list/harvesterhci.io.management.cluster.vue @@ -87,16 +87,6 @@ export default { }, methods: { - disableClusterLink(row) { - // eslint-disable-next-line no-console - console.log('🚀 ~ disableClusterLink ~ row:', row); - if (!row.isSupportedHarvesterVersion) { - return true; - } - - return this.navigating ? true : null; - }, - async goToCluster(row) { const timeout = setTimeout(() => { // Don't show loading indicator for quickly fetched plugins @@ -156,9 +146,9 @@ export default { {{ row.nameDisplay }} diff --git a/pkg/harvester/models/harvesterhci.io.management.cluster.js b/pkg/harvester/models/harvesterhci.io.management.cluster.js index 758dae60..020a31ec 100644 --- a/pkg/harvester/models/harvesterhci.io.management.cluster.js +++ b/pkg/harvester/models/harvesterhci.io.management.cluster.js @@ -4,8 +4,14 @@ import { HARVESTER_NAME, HARVESTER_NAME as VIRTUAL } from '@shell/config/feature import { SETTING } from '@shell/config/settings'; import semver from 'semver'; import { serverVersion } from '../utils/feature-flags'; +import { colorForState, stateDisplay, STATES_ENUM } from '@shell/plugins/dashboard-store/resource-class'; + export default class HciCluster extends ProvCluster { get stateObj() { + if (!this.isSupportedHarvesterVersion) { + return { error: true, message: this.t('harvesterManager.cluster.supportMessage') }; + } + return this._stateObj; } @@ -30,12 +36,20 @@ export default class HciCluster extends ProvCluster { return false; } - get stateDescription() { + get stateColor() { if (!this.isSupportedHarvesterVersion) { - return this.t('harvesterManager.cluster.supportMessage'); + return colorForState(STATES_ENUM.DENIED); } - return ''; + return colorForState(this.state); + } + + get stateDisplay() { + if (!this.isSupportedHarvesterVersion) { + return stateDisplay(STATES_ENUM.DENIED); + } + + return stateDisplay(this.state); } /**