KazV2/dockers/quotas/html/express_webapp/routes/serviceg.js

69 lines
2.1 KiB
JavaScript
Raw Normal View History

2024-06-03 18:43:35 +02:00
var express = require('express');
var router = express.Router();
const {Sequelize} = require("sequelize");
//___________________________________________________________________________________
// Ce petit script permet de connaitre la taille des services de kaz
// -Nextcloud
// -Postfix
// -Agora
//!
// le script cherche dans la base mariaDB les differents données qui correspond à chaque
// services
//
// Auteur : Nathaniel Guiquerro Lauryne Gaultier
// Retourne : Une page serviceg.jade qui permet de afficher les tailles globales des
// services kaz
// Exemple : Taille Postfix : 50 Mio
// Taille Nextcloud : 50 Mio
// Taille Agora : 10 Mio
//___________________________________________________________________________________
function formatBytes(bytes, decimals = 2) {
if (bytes === 0) return '0 Bytes';
const k = 1024;
const dm = decimals < 0 ? 0 : decimals;
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
}
router.get('/', function(req, res, next) {
console.log("Demande de tailles aux scriptes de services");
//__________________________________________________
//
// Services Global de kaz
// concu de : Postfix, Nextcloud, Agora
//
//__________________________________________________
// XXX Felix
// const sequelize = new Sequelize("quotas","root","tartelette",{
// host: "quotasDB",
// dialect:"mariadb"
// });
(async ()=>{
try{
await sequelize.authenticate();
//connecté
const query = "SELECT * FROM Global Order by date desc";
sequelize.query(query).then(([results, metadata]) => {
var R = {"Agora: ":formatBytes(results[0].agora),
"Postfix: ":formatBytes(results[0].postfix),
"NextCloud: ":formatBytes(results[0].nextcloud),
"Total: ":formatBytes(results[0].total)};
console.log(R);
res.render('serviceg',{data:R});
})
} catch (error){
//pas connecté
console.log(error);
}
})();
});
module.exports = router;