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