mirror of https://github.com/rancher/ui.git
82 lines
2.0 KiB
JavaScript
82 lines
2.0 KiB
JavaScript
import { alias } from '@ember/object/computed';
|
|
import { get, set, computed } from '@ember/object';
|
|
import Component from '@ember/component';
|
|
import NodeDriver from 'shared/mixins/node-driver';
|
|
import layout from './template';
|
|
import { inject as service } from '@ember/service';
|
|
import C from 'shared/utils/constants';
|
|
|
|
const DRIVER = 'vmwarevsphere';
|
|
const CONFIG = 'vmwarevsphereConfig';
|
|
|
|
export default Component.extend(NodeDriver, {
|
|
settings: service(),
|
|
|
|
layout,
|
|
driverName: DRIVER,
|
|
model: null,
|
|
showEngineUrl: false,
|
|
initParamArray: null,
|
|
|
|
config: alias(`model.${ CONFIG }`),
|
|
init() {
|
|
this._super(...arguments);
|
|
this.initCfgParam();
|
|
},
|
|
|
|
actions: {
|
|
paramChanged(array) {
|
|
const out = [];
|
|
|
|
array.filter((param) => param.value && param.key).forEach((param) => {
|
|
out.push(`${ param.key }=${ param.value }`);
|
|
});
|
|
set(this, 'config.cfgparam', out);
|
|
}
|
|
},
|
|
|
|
network: computed('config.network', {
|
|
get() {
|
|
return get(this, 'config.network.firstObject');
|
|
},
|
|
set(k, value) {
|
|
set(this, 'config.network', [value]);
|
|
|
|
return value;
|
|
}
|
|
}),
|
|
|
|
bootstrap() {
|
|
let iso = get(this, `settings.${ C.SETTING.ENGINE_ISO_URL }`) || 'https://releases.rancher.com/os/latest/rancheros-vmware.iso';
|
|
|
|
let config = get(this, 'globalStore').createRecord({
|
|
type: CONFIG,
|
|
password: '',
|
|
cpuCount: 2,
|
|
memorySize: 2048,
|
|
diskSize: 20000,
|
|
vcenterPort: 443,
|
|
network: [],
|
|
boot2dockerUrl: iso,
|
|
});
|
|
|
|
set(this, `model.${ CONFIG }`, config);
|
|
},
|
|
|
|
initCfgParam() {
|
|
const cfgparam = get(this, 'config.cfgparam') || [];
|
|
|
|
set(this, 'initParamArray', []);
|
|
(cfgparam || []).forEach((param) => {
|
|
const index = (param || '').indexOf('=');
|
|
|
|
if ( index > -1 ) {
|
|
get(this, 'initParamArray').push({
|
|
key: param.slice(0, index),
|
|
value: param.slice(index + 1),
|
|
});
|
|
}
|
|
});
|
|
},
|
|
});
|