mirror of
https://github.com/harvester/harvester-ui-extension.git
synced 2026-10-01 03:36:04 +08:00
Fix isSupportedHarvester
Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>
This commit is contained in:
@@ -2,13 +2,17 @@ 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';
|
||||
import { colorForState, stateDisplay, STATES_ENUM } from '@shell/plugins/dashboard-store/resource-class';
|
||||
|
||||
export default class HciCluster extends ProvCluster {
|
||||
_isSupportedHarvester = undefined;
|
||||
|
||||
get isSupportedHarvester() {
|
||||
return this._isSupportedHarvester === undefined ? true : this._isSupportedHarvester;
|
||||
}
|
||||
|
||||
get stateObj() {
|
||||
if (!this.isSupportedHarvesterVersion) {
|
||||
if (!this.isSupportedHarvester) {
|
||||
return { error: true, message: this.t('harvesterManager.cluster.supportMessage') };
|
||||
}
|
||||
|
||||
@@ -37,7 +41,7 @@ export default class HciCluster extends ProvCluster {
|
||||
}
|
||||
|
||||
get stateColor() {
|
||||
if (!this.isSupportedHarvesterVersion) {
|
||||
if (!this.isSupportedHarvester) {
|
||||
return colorForState(STATES_ENUM.DENIED);
|
||||
}
|
||||
|
||||
@@ -45,25 +49,13 @@ export default class HciCluster extends ProvCluster {
|
||||
}
|
||||
|
||||
get stateDisplay() {
|
||||
if (!this.isSupportedHarvesterVersion) {
|
||||
if (!this.isSupportedHarvester) {
|
||||
return stateDisplay(STATES_ENUM.DENIED);
|
||||
}
|
||||
|
||||
return stateDisplay(this.state);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
@@ -209,4 +201,19 @@ export default class HciCluster extends ProvCluster {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async setSupportedHarvesterVersion() {
|
||||
if (this._isSupportedHarvester !== undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
const url = `/k8s/clusters/${ this.status.clusterName }/v1`;
|
||||
|
||||
try {
|
||||
const setting = await this.$dispatch('request', { url: `${ url }/${ HCI.SETTING }s/server-version` });
|
||||
|
||||
this._isSupportedHarvester = this.$rootGetters['harvester-common/getFeatureEnabled']('supportHarvesterClusterVersion', setting?.value);
|
||||
} catch (error) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user