mirror of https://github.com/rancher/ui.git
58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
import Resource from '@rancher/ember-api-store/models/resource';
|
|
import { reference } from '@rancher/ember-api-store/utils/denormalize';
|
|
import { cancel, later } from '@ember/runloop'
|
|
import { set, computed } from '@ember/object';
|
|
import { ucFirst } from 'shared/utils/util';
|
|
|
|
const NodePool = Resource.extend({
|
|
type: 'nodePool',
|
|
quantityTimer: null,
|
|
|
|
nodeTemplate: reference('nodeTemplateId'),
|
|
|
|
displayProvider: computed('driver', 'nodeTemplate.driver', 'intl.locale', function() {
|
|
const intl = this.intl;
|
|
const driver = this.driver;
|
|
const key = `nodeDriver.displayName.${ driver }`;
|
|
|
|
if ( intl.exists(key) ) {
|
|
return intl.t(key);
|
|
} else {
|
|
return ucFirst(driver);
|
|
}
|
|
}),
|
|
|
|
incrementQuantity(by) {
|
|
let quantity = this.quantity;
|
|
|
|
quantity += by;
|
|
quantity = Math.max(0, quantity);
|
|
|
|
set(this, 'quantity', quantity);
|
|
|
|
if ( this.quantityTimer ) {
|
|
cancel(this.quantityTimer);
|
|
}
|
|
|
|
var timer = later(this, function() {
|
|
this.save().catch((err) => {
|
|
this.growl.fromError('Error updating node pool scale', err);
|
|
});
|
|
}, 500);
|
|
|
|
set(this, 'quantityTimer', timer);
|
|
},
|
|
});
|
|
|
|
NodePool.reopenClass({
|
|
mangleOut(data) {
|
|
if ( data && data.hostnamePrefix ) {
|
|
data.hostnamePrefix = data.hostnamePrefix.toLowerCase();
|
|
}
|
|
|
|
return data;
|
|
}
|
|
});
|
|
|
|
export default NodePool;
|