Version 0.4.0 - Ajout des metrics
All checks were successful
Neutral/pipeline/head This commit looks good
All checks were successful
Neutral/pipeline/head This commit looks good
This commit is contained in:
27
bin/files.js
27
bin/files.js
@ -6,7 +6,7 @@ const clog = new LogType("Fichier")
|
||||
const os = require("os");
|
||||
const uuid = require('uuid');
|
||||
var mime = require('mime-types');
|
||||
const { set } = require("../main")
|
||||
|
||||
|
||||
// check if shared folder exist, if not create it
|
||||
if(!fs.existsSync(__glob.SHARED)) {
|
||||
@ -229,4 +229,27 @@ module.exports.newFile = function(settings) {
|
||||
|
||||
return "EXIST"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.pasteFile = function(settings) {
|
||||
if(settings.action == "cut") {
|
||||
|
||||
try {
|
||||
|
||||
fs.renameSync(settings.file.fileDirectory, settings.newPath + path.sep + settings.name)
|
||||
return "OK"
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
} else if(settings.action == "copy") {
|
||||
|
||||
try {
|
||||
fs.copyFileSync(settings.file.fileDirectory, settings.newPath + path.sep + settings.name)
|
||||
return "OK"
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
}
|
||||
}
|
74
bin/server-metrics.js
Normal file
74
bin/server-metrics.js
Normal file
@ -0,0 +1,74 @@
|
||||
const { LogType } = require("loguix")
|
||||
const fs = require("fs")
|
||||
const path = require("path")
|
||||
const { __glob } = require("./global-variables")
|
||||
const clog = new LogType("Serveur Metrics")
|
||||
const osutils = require("os-utils")
|
||||
const os = require("os")
|
||||
const { statfs } = require("fs")
|
||||
const config = require("./config")
|
||||
|
||||
|
||||
|
||||
module.exports.getMetrics = async function(server) {
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if(server == "Alpha") {
|
||||
var resp = "NULL"
|
||||
const space = statfs("/", (err, stats) => {
|
||||
if (err) {
|
||||
throw err
|
||||
}
|
||||
|
||||
|
||||
|
||||
osutils.cpuUsage(function(cpuUsage) {
|
||||
resp = {
|
||||
cpu: Math.round(cpuUsage * 1000),
|
||||
usedram: osutils.totalmem() - osutils.freemem(),
|
||||
totalram: osutils.totalmem(),
|
||||
usedisk: stats.blocks - stats.bfree,
|
||||
totaldisk: stats.blocks,
|
||||
name: server
|
||||
}
|
||||
|
||||
resolve(resp)
|
||||
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
|
||||
} else if(server == "Omega") {
|
||||
|
||||
const key = config.getFile().OMEGA_KEY;
|
||||
|
||||
fetch("http://omega.raphix.fr:4000/metrics?key="+key, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
|
||||
"Accept-Encoding": "gzip, deflate",
|
||||
"Accept-Language": "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7",
|
||||
"Cache-Control": "no-cache",
|
||||
"Connection": "keep-alive"
|
||||
}
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(raw => {
|
||||
raw.name = server;
|
||||
resolve(raw);
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
reject(error);
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
}
|
@ -1,14 +1,15 @@
|
||||
const { LogType } = require("loguix")
|
||||
const fs = require("fs")
|
||||
const path = require("path")
|
||||
const { __glob } = require("./global-variables")
|
||||
const auth = require("./auth")
|
||||
const files = require("./files")
|
||||
const { __glob } = require("./global-variables.js")
|
||||
const auth = require("./auth.js")
|
||||
const files = require("./files.js")
|
||||
const links = require("./links.js")
|
||||
const service = require("./services")
|
||||
const service = require("./services.js")
|
||||
const plog = new LogType("Web")
|
||||
const cook = require("cookie")
|
||||
const http = require("http")
|
||||
const servermetrics = require("./server-metrics.js")
|
||||
|
||||
/**
|
||||
* NOTE INTERNE
|
||||
@ -94,6 +95,11 @@ module.exports.serverIO = function(server) {
|
||||
|
||||
})
|
||||
|
||||
PostRequest("FX_PASTE", (settings) => {
|
||||
|
||||
PostAnswer("FX_PASTE", files.pasteFile(settings))
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
if(user.checkPermission("SERVICES")) {
|
||||
@ -136,6 +142,15 @@ module.exports.serverIO = function(server) {
|
||||
|
||||
}
|
||||
|
||||
if(user.checkPermission("SERVERS")) {
|
||||
PostRequest("SERVER_GET_METRICS_Alpha", async (settings) => {
|
||||
PostAnswer("SERVER_GET_METRICS_Alpha", {answer: "OK", metrics: await servermetrics.getMetrics(settings), name: settings});
|
||||
});
|
||||
PostRequest("SERVER_GET_METRICS_Omega", async (settings) => {
|
||||
PostAnswer("SERVER_GET_METRICS_Omega", {answer: "OK", metrics: await servermetrics.getMetrics(settings), name: settings});
|
||||
});
|
||||
}
|
||||
|
||||
socket.on("disconnect", () => {
|
||||
|
||||
plog.log("Déconnexion du panel par '" + user.username + "' avec le socket : " + socket.id)
|
2
bin/www
2
bin/www
@ -20,7 +20,7 @@ wlog.step.init("start_server", "Démarrage du serveur Express JS")
|
||||
var app = require('../main');
|
||||
var http = require('http');
|
||||
var config = require("./config")
|
||||
var serverIO = require("./server")
|
||||
var serverIO = require("./servers")
|
||||
|
||||
/**
|
||||
* Get port from environment and store in Express.
|
||||
|
Reference in New Issue
Block a user