ÿØÿà JFIF ` ` ÿþ
|
Server : Apache System : Linux cloud.heroica.com.br 4.18.0-553.36.1.el8_10.x86_64 #1 SMP Wed Jan 22 03:07:54 EST 2025 x86_64 User : farolpborg ( 1053) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /proc/self/root/lib/python3.6/site-packages/glances/outputs/static/js/ |
Upload File : |
import { store } from './store.js';
import Favico from 'favico.js';
// prettier-ignore
const fetchAll = () => fetch('api/3/all', { method: 'GET' }).then((response) => response.json());
// prettier-ignore
const fetchAllViews = () => fetch('api/3/all/views', { method: 'GET' }).then((response) => response.json());
// prettier-ignore
const fetchAllLimits = () => fetch('api/3/all/limits', { method: 'GET' }).then((response) => response.json());
// prettier-ignore
const fetchArgs = () => fetch('api/3/args', { method: 'GET' }).then((response) => response.json());
// prettier-ignore
const fetchConfig = () => fetch('api/3/config', { method: 'GET' }).then((response) => response.json());
class GlancesHelperService {
limits = {};
limitSuffix = ['critical', 'careful', 'warning'];
setLimits(limits) {
this.limits = limits;
}
getAlert(pluginName, limitNamePrefix, current, maximum, log) {
current = current || 0;
maximum = maximum || 100;
log = log || false;
var log_str = log ? '_log' : '';
var value = (current * 100) / maximum;
if (this.limits[pluginName] != undefined) {
for (var i = 0; i < this.limitSuffix.length; i++) {
var limitName = limitNamePrefix + this.limitSuffix[i];
var limit = this.limits[pluginName][limitName];
if (value >= limit) {
var pos = limitName.lastIndexOf('_');
var className = limitName.substring(pos + 1);
return className + log_str;
}
}
}
return 'ok' + log_str;
}
getAlertLog(pluginName, limitNamePrefix, current, maximum) {
return this.getAlert(pluginName, limitNamePrefix, current, maximum, true);
}
}
export const GlancesHelper = new GlancesHelperService();
class GlancesStatsService {
data = undefined;
init(REFRESH_TIME = 60) {
let timeout = undefined;
const fetchData = () => {
store.status = 'PENDING';
return Promise.all([fetchAll(), fetchAllViews()])
.then((response) => {
const data = {
stats: response[0],
views: response[1],
isBsd: response[0]['system']['os_name'] === 'FreeBSD',
isLinux: response[0]['system']['os_name'] === 'Linux',
isSunOS: response[0]['system']['os_name'] === 'SunOS',
isMac: response[0]['system']['os_name'] === 'Darwin',
isWindows: response[0]['system']['os_name'] === 'Windows'
};
this.data = data;
store.data = data;
store.status = 'SUCCESS';
})
.catch((error) => {
console.log(error);
store.status = 'FAILURE';
})
.then(() => {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(fetchData, REFRESH_TIME * 1000); // in milliseconds
});
};
fetchData();
fetchAllLimits().then((response) => {
GlancesHelper.setLimits(response);
});
fetchArgs().then((response = {}) => {
store.args = { ...store.args, ...response };
});
fetchConfig().then((response = {}) => {
store.config = { ...store.config, ...response };
});
}
getData() {
return this.data;
}
}
export const GlancesStats = new GlancesStatsService();
class GlancesFavicoService {
constructor() {
this.favico = new Favico({
animation: 'none'
});
}
badge(nb) {
this.favico.badge(nb);
}
reset() {
this.favico.reset();
}
}
export const GlancesFavico = new GlancesFavicoService();