Extracted the release function -> getReleaseInformation in the shell.js controller

This commit is contained in:
Mathias Wagner 2023-06-03 19:57:30 +02:00
parent 0e105588da
commit fa2d20e72d
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

View File

@ -13,6 +13,24 @@ const mapLines = (data) => {
return infoData;
}
module.exports.getReleaseInformation = (session, endSession = true) => {
let infoData = {};
return new Promise((resolve, reject) => {
session.exec("cat /etc/os-release", (err, stream) => {
stream.on("close", (code) => {
if (endSession) session.end();
if (code === 0) return resolve(infoData);
reject("Error while checking distro");
}).on("data", (data) => {
infoData = {...infoData, ...mapLines(data)};
});
});
});
}
module.exports.checkServer = async ({hostname, username = "root", password, privateKey}) => {
const port = hostname.split(":")[1] || 22;
hostname = hostname.split(":")[0];
@ -21,19 +39,11 @@ module.exports.checkServer = async ({hostname, username = "root", password, priv
return new Promise((resolve, reject) => {
session.on("ready", () => {
let infoData = {};
session.exec("cat /etc/os-release", (err, stream) => {
stream.on("close", (code) => {
session.end();
if (code === 0) return resolve(infoData);
reject("Error while checking distro");
}).on("data", (data) => {
infoData = {...infoData, ...mapLines(data)};
});
this.getReleaseInformation(session).then((infoData) => {
resolve(infoData);
}).catch((err) => {
reject(err);
});
}).connect({host: hostname, port, username, password, privateKey, readyTimeout: 5000}).on("error", () => {
reject("Error while connecting to server");
session.end();