2024-01-13 06:53:43 +00:00
|
|
|
import { docker } from "../server.js";
|
|
|
|
import { Syslog } from "../database/models.js";
|
2024-01-11 05:31:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
export const Uninstall = async (req, res) => {
|
|
|
|
|
2024-01-12 07:43:58 +00:00
|
|
|
let { confirm, service_name } = req.body;
|
|
|
|
|
2024-02-12 00:50:21 +00:00
|
|
|
console.log(`Uninstalling ${service_name}...`);
|
|
|
|
|
2024-01-12 07:43:58 +00:00
|
|
|
if (confirm == 'Yes') {
|
2024-02-12 00:50:21 +00:00
|
|
|
|
2024-03-19 00:14:47 +00:00
|
|
|
let containerName = docker.getContainer(service_name);
|
|
|
|
console.log(`Stopping ${service_name}...`)
|
2024-01-12 07:43:58 +00:00
|
|
|
try {
|
|
|
|
await containerName.stop();
|
|
|
|
} catch {
|
|
|
|
console.log(`Error stopping ${service_name} container`);
|
|
|
|
}
|
2024-02-12 00:50:21 +00:00
|
|
|
|
2024-01-12 07:43:58 +00:00
|
|
|
try {
|
2024-03-19 00:14:47 +00:00
|
|
|
console.log(`Removing ${service_name}...`);
|
2024-02-12 00:50:21 +00:00
|
|
|
containerName.remove();
|
2024-01-13 06:53:43 +00:00
|
|
|
|
|
|
|
const syslog = await Syslog.create({
|
|
|
|
user: req.session.user,
|
|
|
|
email: null,
|
|
|
|
event: "App Removal",
|
2024-01-13 08:04:01 +00:00
|
|
|
message: `${service_name} uninstalled successfully`,
|
2024-01-13 06:53:43 +00:00
|
|
|
ip: req.socket.remoteAddress
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2024-01-12 07:43:58 +00:00
|
|
|
} catch {
|
2024-01-14 10:23:14 +00:00
|
|
|
const syslog = await Syslog.create({
|
|
|
|
user: req.session.user,
|
|
|
|
email: null,
|
|
|
|
event: "App Removal",
|
|
|
|
message: `${service_name} uninstallation failed`,
|
|
|
|
ip: req.socket.remoteAddress
|
|
|
|
});
|
2024-01-12 07:43:58 +00:00
|
|
|
}
|
2024-03-19 00:14:47 +00:00
|
|
|
} else {
|
|
|
|
console.log(`Didn't confirm uninstallation of ${service_name}...`);
|
2024-01-12 07:43:58 +00:00
|
|
|
}
|
2024-03-19 00:14:47 +00:00
|
|
|
|
2024-01-12 07:43:58 +00:00
|
|
|
res.redirect('/');
|
2024-01-11 05:31:13 +00:00
|
|
|
}
|
|
|
|
|