mirror of https://github.com/rancher/ui.git
95 lines
2.3 KiB
JavaScript
95 lines
2.3 KiB
JavaScript
import Component from '@ember/component';
|
|
import layout from './template';
|
|
import { inject as service } from '@ember/service';
|
|
import { computed, get, set } from '@ember/object';
|
|
import Semver from 'semver';
|
|
import { sortVersions } from 'shared/utils/sort';
|
|
|
|
export default Component.extend({
|
|
releaseVersions: service(),
|
|
intl: service(),
|
|
|
|
layout,
|
|
|
|
editing: false,
|
|
configField: 'k3sConfig',
|
|
|
|
config: computed('cluster.{k3sConfig,rke2Config}', 'configField', function() {
|
|
return get(this, `cluster.${ this.configField }`);
|
|
}),
|
|
|
|
upgradeStrategy: computed('config.{k3supgradeStrategy,rke2upgradeStrategy}', 'configField', function() {
|
|
const { configField } = this;
|
|
const upgradeStrategyPath = configField === 'k3sConfig' ? 'k3supgradeStrategy' : 'rke2upgradeStrategy';
|
|
|
|
return get(this.config, upgradeStrategyPath);
|
|
}),
|
|
|
|
serverConcurrency: computed('upgradeStrategy.serverConcurrency', {
|
|
get() {
|
|
return get(this, 'upgradeStrategy.serverConcurrency');
|
|
},
|
|
|
|
set(key, value) {
|
|
set(this, 'upgradeStrategy.serverConcurrency', this.coerceToInt(value));
|
|
|
|
return value;
|
|
}
|
|
}),
|
|
|
|
workerConcurrency: computed('upgradeStrategy.workerConcurrency', {
|
|
get() {
|
|
return get(this, 'upgradeStrategy.workerConcurrency');
|
|
},
|
|
|
|
set(key, value) {
|
|
set(this, 'upgradeStrategy.workerConcurrency', this.coerceToInt(value));
|
|
|
|
return value;
|
|
}
|
|
}),
|
|
|
|
allVersions: computed('releaseVersions.allVersions.[]', function() {
|
|
const currentVersion = get(this, `config.kubernetesVersion`);
|
|
const versionsMapped = [];
|
|
let allVersions = this.releaseVersions.allVersions || [];
|
|
|
|
if (!allVersions.includes(currentVersion)) {
|
|
allVersions.unshift(currentVersion);
|
|
}
|
|
|
|
allVersions = [...sortVersions(allVersions).reverse()];
|
|
|
|
allVersions.forEach((v) => {
|
|
if (Semver.gte(v, currentVersion)) {
|
|
versionsMapped.pushObject({
|
|
value: v,
|
|
label: v,
|
|
});
|
|
}
|
|
});
|
|
|
|
return versionsMapped;
|
|
}),
|
|
|
|
coerceToInt(value) {
|
|
let errors;
|
|
let coerced = value;
|
|
|
|
errors = set(this, 'errors', []);
|
|
|
|
coerced = parseInt(value, 10);
|
|
|
|
if (isNaN(coerced)) {
|
|
errors.push(this.intl.t('managedImportClusterInfo.error.int'));
|
|
|
|
set(this, 'errors', errors);
|
|
|
|
return value;
|
|
}
|
|
|
|
return coerced;
|
|
},
|
|
|
|
});
|