From e1d2ed9dc93e11ba4f56d741c344afffad40f9cf Mon Sep 17 00:00:00 2001 From: Robin Leber <rleber98@gmail.com> Date: Mon, 10 Jun 2024 17:06:21 +0200 Subject: [PATCH] FIX: Clear Architecture --- index.js | 1 - src/docker/dockerManager.js | 1 - src/functions/helperFunctions.js | 44 ++++++++++++++++++++------------ src/routes/deployRouter.js | 6 ++--- 4 files changed, 31 insertions(+), 21 deletions(-) diff --git a/index.js b/index.js index f0716bb..2550c3e 100644 --- a/index.js +++ b/index.js @@ -22,7 +22,6 @@ app.get("/", (req, res) => { }); emptyCustomCodeDatabase(); -// clearDocker(); const server = http.createServer(app); diff --git a/src/docker/dockerManager.js b/src/docker/dockerManager.js index 891cb22..b3420fc 100644 --- a/src/docker/dockerManager.js +++ b/src/docker/dockerManager.js @@ -366,5 +366,4 @@ module.exports = { pauseDockerContainer, unpauseDockerContainer, dockerCleanUp, - killDockerContainer, }; diff --git a/src/functions/helperFunctions.js b/src/functions/helperFunctions.js index db25102..3df6fbf 100644 --- a/src/functions/helperFunctions.js +++ b/src/functions/helperFunctions.js @@ -51,10 +51,8 @@ const addCustomCodeToJson = async (newElement) => { const dataFilePath = path.resolve(__dirname, "../../customCodeDatabase.json"); try { - const data = await fs.readFile(dataFilePath, "utf-8"); - let jsonArray; - jsonArray = JSON.parse(data); - const existingFilter = jsonArray.find( + const customCodes = await getCustomCodes(); + const existingFilter = customCodes.find( (element) => element.id === newElement.id ); if (existingFilter) { @@ -64,12 +62,12 @@ const addCustomCodeToJson = async (newElement) => { existingFilter.code = newElement.code; existingFilter.isDeployed = false; } else { - jsonArray.push(newElement); + customCodes.push(newElement); } await fs.writeFile( dataFilePath, - JSON.stringify(jsonArray, null, 2), + JSON.stringify(customCodes, null, 2), "utf8" ); console.log("Neues Element erfolgreich hinzugefügt."); @@ -82,14 +80,12 @@ const addCustomCodeToJson = async (newElement) => { const setIsDeployed = async (id) => { const dataFilePath = path.resolve(__dirname, "../../customCodeDatabase.json"); try { - const data = await fs.readFile(dataFilePath, "utf-8"); - let jsonArray; - jsonArray = JSON.parse(data); - let elementToChange = jsonArray.find((element) => element.id === id); + const customCodes = await getCustomCodes(); + let elementToChange = customCodes.find((element) => element.id === id); elementToChange.isDeployed = true; await fs.writeFile( dataFilePath, - JSON.stringify(jsonArray, null, 2), + JSON.stringify(customCodes, null, 2), "utf8" ); } catch (err) { @@ -157,10 +153,26 @@ const restartArchitecture = async () => { await deployArchitecture(); }; -const clearDocker = () => { - // Docker Container - // Docker Files - // Docker Network +const clearArchitecture = async () => { + try { + const dataFilePath = path.resolve( + __dirname, + "../../customCodeDatabase.json" + ); + const customCodes = await getCustomCodes(); + for (const customCode of customCodes) { + if (customCode.isDeployed) { + await killDockerContainer(customCode.id); + await removeDockerContainer(customCode.id); + await removeDockerImage(customCode.id); + } + } + await fs.writeFile(dataFilePath, "[]", "utf8"); + console.log("Docker erfolgreich geleert, JSON erfolgreich geleert"); + } catch (err) { + console.error(err); + throw err; + } }; module.exports = { @@ -170,7 +182,7 @@ module.exports = { addCustomCodeToJson, getCustomCodes, deployArchitecture, - clearDocker, + clearArchitecture, stopArchitecture, restartArchitecture, }; diff --git a/src/routes/deployRouter.js b/src/routes/deployRouter.js index bffdc2a..2f34cb6 100644 --- a/src/routes/deployRouter.js +++ b/src/routes/deployRouter.js @@ -3,8 +3,8 @@ const { deployArchitecture, stopArchitecture, restartArchitecture, + clearArchitecture, } = require("../functions/helperFunctions"); -const { dockerCleanUp } = require("../docker/dockerManager"); const deployRouter = express.Router(); @@ -38,9 +38,9 @@ deployRouter.post("/restart", async (req, res) => { } }); -deployRouter.get("/clearDocker", async (rey, res) => { +deployRouter.get("/clearArchitecture", async (rey, res) => { try { - await dockerCleanUp(); + await clearArchitecture(); res.status(200).json({ message: "Docker leeren erfoglreich" }); } catch (e) { console.error(e); -- GitLab