mirror of https://github.com/rancher/dashboard.git
64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
import { DESCRIPTION } from '@shell/config/labels-annotations';
|
|
import NormanModel from '@shell/plugins/steve/norman-class';
|
|
import { KONTAINER_TO_DRIVER } from './management.cattle.io.kontainerdriver';
|
|
import capitalize from 'lodash/capitalize';
|
|
|
|
export default class Driver extends NormanModel {
|
|
get canViewYaml() {
|
|
return false;
|
|
}
|
|
|
|
get driverName() {
|
|
if (!this.builtIn) {
|
|
// if the driver is not built in, there's a good change its a custom one
|
|
// custom drivers have a random id, so shouldn't be used as the type
|
|
// instead use the status.displayName. this will map to the name extracted from the binary
|
|
const driverName = this.status?.displayName?.toLowerCase();
|
|
|
|
if (driverName) {
|
|
// some drivers are built in but don't have the builtIn flag. ensure we pass these through K_TO_D
|
|
return KONTAINER_TO_DRIVER[driverName] || driverName;
|
|
}
|
|
}
|
|
|
|
return KONTAINER_TO_DRIVER[this.id] || this.name || this.id;
|
|
}
|
|
|
|
get nameDisplay() {
|
|
const path = `cluster.provider.${ this.driverName }`;
|
|
const label = capitalize(this.driverName);
|
|
|
|
return this.$rootGetters['i18n/withFallback'](path, label);
|
|
}
|
|
|
|
get description() {
|
|
if (!!this.builtIn || !!this.builtin) {
|
|
return this.$rootGetters['i18n/withFallback']('tableHeaders.builtIn');
|
|
} else {
|
|
return this.url;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Set description based on the type of model available with private fallback
|
|
*/
|
|
set description(value) {
|
|
if (this.annotations) {
|
|
this.annotations[DESCRIPTION] = value;
|
|
}
|
|
|
|
this._description = value;
|
|
}
|
|
|
|
cleanForSave(data, forNew) {
|
|
const val = super.cleanForSave(data, forNew);
|
|
|
|
if (forNew) {
|
|
val.active = true;
|
|
}
|
|
delete val.metadata;
|
|
|
|
return val;
|
|
}
|
|
}
|