mirror of https://github.com/rancher/ui.git
78 lines
2.0 KiB
JavaScript
78 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,
|
|
config : alias(`model.${CONFIG}`),
|
|
showEngineUrl : false,
|
|
initParamArray : null,
|
|
|
|
network: computed('config.network', {
|
|
get() {
|
|
return get(this,'config.network.firstObject');
|
|
},
|
|
set(k, value) {
|
|
set(this,'config.network', [value]);
|
|
return value;
|
|
}
|
|
}),
|
|
|
|
init() {
|
|
this._super(...arguments);
|
|
this.initCfgParam();
|
|
},
|
|
|
|
bootstrap: function() {
|
|
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);
|
|
},
|
|
|
|
actions: {
|
|
paramChanged: function(array) {
|
|
const out = [];
|
|
array.filter((param) => param.value && param.key).forEach((param) => {
|
|
out.push(`${param.key}=${param.value}`);
|
|
});
|
|
set(this, 'config.cfgparam', out);
|
|
}
|
|
},
|
|
|
|
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),
|
|
});
|
|
}
|
|
});
|
|
},
|
|
});
|