mirror of https://github.com/rancher/ui.git
126 lines
3.8 KiB
JavaScript
126 lines
3.8 KiB
JavaScript
import Mixin from '@ember/object/mixin';
|
|
import { get, computed } from '@ember/object';
|
|
import { formatPercent } from 'shared/utils/util';
|
|
import { formatSi, parseSi, exponentNeeded } from 'shared/utils/parse-unit';
|
|
import { inject as service } from '@ember/service';
|
|
|
|
export default Mixin.create({
|
|
intl: service(),
|
|
|
|
cpuTotal: computed('allocatable.cpu', function() {
|
|
const total = parseSi(get(this, 'allocatable.cpu'));
|
|
|
|
if ( total ) {
|
|
const minExp = exponentNeeded(total);
|
|
const totalStr = formatSi(total, 1000, '', '', 0, minExp, 1);
|
|
|
|
return `${ totalStr } Core${ totalStr === '1' ? '' : 's' }`;
|
|
} else {
|
|
return null;
|
|
}
|
|
}),
|
|
|
|
memoryTotal: computed('allocatable.memory', function() {
|
|
const total = parseSi(get(this, 'allocatable.memory'));
|
|
|
|
if ( total ) {
|
|
const minExp = exponentNeeded(total);
|
|
const totalStr = formatSi(total, 1024, 'iB', 'B', 0, minExp, 1);
|
|
|
|
return totalStr;
|
|
} else {
|
|
return null;
|
|
}
|
|
}),
|
|
|
|
cpuUsage: computed('requested.cpu', 'allocatable.cpu', function() {
|
|
const used = parseSi(get(this, 'requested.cpu')) || 0;
|
|
const total = parseSi(get(this, 'allocatable.cpu'));
|
|
|
|
if ( total ) {
|
|
const minExp = exponentNeeded(total);
|
|
const usedStr = formatSi(used, 1000, '', '', 0, minExp, 1).replace(/\s.*$/, '');
|
|
const totalStr = formatSi(total, 1000, '', '', 0, minExp, 1);
|
|
|
|
return `${ usedStr }/${ totalStr } Core${ totalStr === '1' ? '' : 's' }`;
|
|
} else {
|
|
return null;
|
|
}
|
|
}),
|
|
|
|
cpuUsageCount: computed('requested.cpu', function() {
|
|
return parseSi(get(this, 'requested.cpu')) || 0;
|
|
}),
|
|
|
|
cpuPercent: computed('requested.cpu', 'allocatable.cpu', function() {
|
|
const used = parseSi(get(this, 'requested.cpu')) || 0;
|
|
const total = parseSi(get(this, 'allocatable.cpu'));
|
|
|
|
if ( total ) {
|
|
return formatPercent(100 * used / total, 0);
|
|
} else {
|
|
return null;
|
|
}
|
|
}),
|
|
|
|
memoryUsage: computed('requested.memory', 'allocatable.memory', function() {
|
|
const used = parseSi(get(this, 'requested.memory')) || 0;
|
|
const total = parseSi(get(this, 'allocatable.memory'));
|
|
|
|
if ( total ) {
|
|
const minExp = exponentNeeded(total);
|
|
const usedStr = formatSi(used, 1024, '', '', 0, minExp, 1).replace(/\s.*/, '');
|
|
const totalStr = formatSi(total, 1024, 'iB', 'B', 0, minExp, 1);
|
|
|
|
return `${ usedStr }/${ totalStr }`
|
|
} else {
|
|
return null;
|
|
}
|
|
}),
|
|
|
|
memoryUsageCount: computed('requested.memory', function() {
|
|
return parseSi(get(this, 'requested.memory')) || 0;
|
|
}),
|
|
|
|
memoryPercent: computed('requested.memory', 'allocatable.memory', function() {
|
|
const used = parseSi(get(this, 'requested.memory')) || 0;
|
|
const total = parseSi(get(this, 'allocatable.memory'));
|
|
|
|
if ( total ) {
|
|
return formatPercent(100 * used / total, 0);
|
|
} else {
|
|
return null;
|
|
}
|
|
}),
|
|
|
|
podUsage: computed('requested.pods', 'allocatable.pods', function() {
|
|
const used = parseSi(get(this, 'requested.pods')) || 0;
|
|
const total = parseSi(get(this, 'allocatable.pods'));
|
|
|
|
if ( total ) {
|
|
const minExp = exponentNeeded(total);
|
|
const usedStr = formatSi(used, 1000, '', '', 0, minExp, 1).replace(/\s.*$/, '');
|
|
const totalStr = formatSi(total, 1000, '', '', 0, minExp, 1);
|
|
|
|
return `${ usedStr }/${ totalStr }`
|
|
} else {
|
|
return null;
|
|
}
|
|
}),
|
|
|
|
podUsageCount: computed('requested.pods', function() {
|
|
return parseSi(get(this, 'requested.pods')) || 0;
|
|
}),
|
|
|
|
podPercent: computed('requested.pods', 'allocatable.pods', function() {
|
|
const used = parseSi(get(this, 'requested.pods')) || 0;
|
|
const total = parseSi(get(this, 'allocatable.pods'));
|
|
|
|
if ( total ) {
|
|
return formatPercent(100 * used / total, 0);
|
|
} else {
|
|
return null;
|
|
}
|
|
}),
|
|
});
|