disable cluster link if harvester version lower than v1.3.0

Signed-off-by: andy.lee <andy.lee@suse.com>
This commit is contained in:
andy.lee 2024-11-11 12:25:32 +08:00 committed by Francesco Torchia
parent 244a3f8e06
commit b566caf2e1
No known key found for this signature in database
GPG Key ID: E6D011B7415D4393
4 changed files with 40 additions and 2 deletions

View File

@ -113,6 +113,12 @@ export default {
@finish="saveOverride"
@error="e=>errors = e"
>
<Banner
v-if="isCreate"
color="info"
>
{{ t('harvesterManager.cluster.supportMessage') }}
</Banner>>
<div class="mt-20">
<NameNsDescription
v-if="!isView"

View File

@ -5,6 +5,7 @@ harvesterManager:
none: There are no Harvester Clusters
learnMore: Learn more about Harvester from the <a target="_blank" href="https://harvesterhci.io/" rel="noopener noreferrer nofollow">Harvester Web Site</a> or read the the <a target="_blank" href="https://docs.harvesterhci.io/" rel="noopener noreferrer nofollow">Harvester Docs</a>
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
plugins:
loadError: Error loading harvester plugin
rke:

View File

@ -87,6 +87,16 @@ 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
@ -148,7 +158,7 @@ export default {
<a
v-if="row.isReady"
class="link"
:disabled="navigating ? true : null"
:disabled="disableClusterLink(row)"
@click="goToCluster(row)"
>{{ row.nameDisplay }}</a>
<span v-else>

View File

@ -2,7 +2,8 @@ import ProvCluster from '@shell/models/provisioning.cattle.io.cluster';
import { DEFAULT_WORKSPACE, HCI, MANAGEMENT } from '@shell/config/types';
import { HARVESTER_NAME, HARVESTER_NAME as VIRTUAL } from '@shell/config/features';
import { SETTING } from '@shell/config/settings';
import semver from 'semver';
import { serverVersion } from '../utils/feature-flags';
export default class HciCluster extends ProvCluster {
get stateObj() {
return this._stateObj;
@ -29,6 +30,26 @@ export default class HciCluster extends ProvCluster {
return false;
}
get stateDescription() {
if (!this.isSupportedHarvesterVersion) {
return this.t('harvesterManager.cluster.supportMessage');
}
return '';
}
/**
* harvester ui extension only supports harvester cluster version >= 1.3.0
*/
get isSupportedHarvesterVersion() {
const version = serverVersion(this.$rootGetters);
// eslint-disable-next-line no-console
console.log('🚀 ~ HciCluster ~ getisSupportedHarvesterVersion ~ version:', version);
return semver.gte(version, '1.3.0');
}
/**
* Fetch and cache the response for /ui-info
*