mirror of https://github.com/rancher/ui.git
190 lines
5.5 KiB
JavaScript
190 lines
5.5 KiB
JavaScript
import Component from '@ember/component';
|
|
import { later, cancel } from '@ember/runloop';
|
|
import { set, get, computed, setProperties } from '@ember/object';
|
|
import { inject as service } from '@ember/service';
|
|
import { convertToMillis } from 'shared/utils/util';
|
|
import { parseSi } from 'shared/utils/parse-unit';
|
|
import { all as PromiseAll } from 'rsvp';
|
|
|
|
export default Component.extend({
|
|
growl: service(),
|
|
|
|
classNames: ['accordion-wrapper'],
|
|
|
|
selectedOauthType: 'github',
|
|
|
|
oauthModel: {},
|
|
scale: null,
|
|
confirmDisable: false,
|
|
showCert: false,
|
|
scaleTimer: null,
|
|
cacerts: null,
|
|
|
|
didReceiveAttrs() {
|
|
const quota = get(this, 'settings').findBy('name', 'executor-quota');
|
|
const cacerts = get(this, 'settings').findBy('name', 'git-cacerts');
|
|
const cpuRequest = get(this, 'settings').findBy('name', 'executor-cpu-request');
|
|
const cpuLimit = get(this, 'settings').findBy('name', 'executor-cpu-limit');
|
|
const memoryRequest = get(this, 'settings').findBy('name', 'executor-memory-request');
|
|
const memoryLimit = get(this, 'settings').findBy('name', 'executor-memory-limit');
|
|
|
|
setProperties(this, {
|
|
scale: quota,
|
|
cacerts,
|
|
cpuRequest: convertToMillis(get(cpuRequest, 'value')),
|
|
cpuLimit: convertToMillis(get(cpuLimit, 'value')),
|
|
memoryRequest: parseSi(get(memoryRequest, 'value'), 1024) / 1048576,
|
|
memoryLimit: parseSi(get(memoryLimit, 'value'), 1024) / 1048576,
|
|
'oauthModel.clientId': '',
|
|
'oauthModel.clientSecret': ''
|
|
})
|
|
|
|
const provider = get(this, 'provider');
|
|
|
|
if ( provider ) {
|
|
set(this, 'selectedOauthType', get(provider, 'name'));
|
|
}
|
|
},
|
|
|
|
actions: {
|
|
showCert() {
|
|
set(this, 'showCert', true);
|
|
},
|
|
|
|
hideCert() {
|
|
set(this, 'showCert', false);
|
|
},
|
|
|
|
saveCert(cb) {
|
|
get(this, 'cacerts').save()
|
|
.then(() => {
|
|
cb(true);
|
|
})
|
|
.catch((err) => {
|
|
get(this, 'growl').fromError('Error saving cacerts', err);
|
|
cb(false);
|
|
});
|
|
},
|
|
|
|
saveLimit(cb) {
|
|
const cpuRequest = get(this, 'settings').findBy('name', 'executor-cpu-request');
|
|
const cpuLimit = get(this, 'settings').findBy('name', 'executor-cpu-limit');
|
|
const memoryRequest = get(this, 'settings').findBy('name', 'executor-memory-request');
|
|
const memoryLimit = get(this, 'settings').findBy('name', 'executor-memory-limit');
|
|
|
|
set(cpuRequest, 'value', `${ get(this, 'cpuRequest') }m`);
|
|
set(cpuLimit, 'value', `${ get(this, 'cpuLimit') }m`);
|
|
set(memoryRequest, 'value', `${ get(this, 'memoryRequest') }Mi`);
|
|
set(memoryLimit, 'value', `${ get(this, 'memoryLimit') }Mi`);
|
|
|
|
return PromiseAll([
|
|
cpuRequest.save(),
|
|
cpuLimit.save(),
|
|
memoryRequest.save(),
|
|
memoryLimit.save(),
|
|
]).then(() => {
|
|
cb(true);
|
|
}).catch((err) => {
|
|
get(this, 'growl').fromError('Error saving limit and reqeust', err);
|
|
cb(false);
|
|
});
|
|
},
|
|
|
|
scaleDown() {
|
|
set(this, 'scale.value', parseInt(get(this, 'scale.value'), 10) - 1);
|
|
this.saveScale();
|
|
},
|
|
|
|
scaleUp() {
|
|
set(this, 'scale.value', parseInt(get(this, 'scale.value'), 10) + 1);
|
|
this.saveScale();
|
|
},
|
|
|
|
changeOauthType(type) {
|
|
set(this, 'selectedOauthType', type);
|
|
const store = get(this, 'store');
|
|
|
|
set(this, 'oauthModel', store.createRecord({
|
|
type: 'sourcecodecredential',
|
|
scheme: true,
|
|
}));
|
|
},
|
|
|
|
disable() {
|
|
const provider = get(this, 'provider');
|
|
|
|
set(this, 'disabling', true);
|
|
provider.doAction('disable').then(() => {
|
|
window.location.reload();
|
|
});
|
|
},
|
|
|
|
promptDisable() {
|
|
set(this, 'confirmDisable', true);
|
|
later(this, function() {
|
|
if ( this.isDestroyed || this.isDestroying ) {
|
|
return;
|
|
}
|
|
set(this, 'confirmDisable', false);
|
|
}, 10000);
|
|
},
|
|
},
|
|
|
|
providerComponent: computed('selectedOauthType', function() {
|
|
return `${ get(this, 'selectedOauthType') }-setting`
|
|
}),
|
|
|
|
provider: computed('selectedOauthType', 'providers.@each.enabled', function() {
|
|
const enabled = get(this, 'providers').findBy('enabled', true);
|
|
const selected = get(this, 'providers').findBy('name', get(this, 'selectedOauthType'));
|
|
|
|
if ( enabled ) {
|
|
return enabled;
|
|
} else if ( selected ) {
|
|
return selected;
|
|
} else {
|
|
return get(this, 'providers.firstObject');
|
|
}
|
|
}),
|
|
|
|
isBitbucket: computed('selectedOauthType', function() {
|
|
const selected = get(this, 'selectedOauthType');
|
|
|
|
return selected === 'bitbucketcloud' || selected === 'bitbucketserver';
|
|
}),
|
|
|
|
isBitbucketCloud: computed('selectedOauthType', function() {
|
|
const selected = get(this, 'selectedOauthType');
|
|
|
|
return selected === 'bitbucketcloud';
|
|
}),
|
|
|
|
isGithub: computed('selectedOauthType', function() {
|
|
const selected = get(this, 'selectedOauthType');
|
|
|
|
return selected === 'github';
|
|
}),
|
|
|
|
isGitlab: computed('selectedOauthType', function() {
|
|
const selected = get(this, 'selectedOauthType');
|
|
|
|
return selected === 'gitlab';
|
|
}),
|
|
|
|
saveScale() {
|
|
if ( get(this, 'scaleTimer') ) {
|
|
cancel(get(this, 'scaleTimer'));
|
|
}
|
|
|
|
const timer = later(this, function() {
|
|
get(this, 'scale').save()
|
|
.catch((err) => {
|
|
get(this, 'growl').fromError('Error updating executor quota', err);
|
|
});
|
|
}, 500);
|
|
|
|
set(this, 'scaleTimer', timer);
|
|
},
|
|
|
|
});
|