diff --git a/index.js b/index.js index f0716bb7ca2fd444ab9487ddf7921661c3ba7ee7..2550c3e304b760939274918a9aafac17c196cf0a 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 891cb2248acd315cb9c2e4f32c1f91b99d954d77..b3420fcd6797a292fb24535e0e68243181650a05 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 db25102c80df1f1b066c74ba581e899dd129e8f2..3df6fbf00465d63e63e5721b36704b0d15cf5340 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 bffdc2aad49ff01198350864827ee317319eaf79..2f34cb62a31c51747d418676f9530845d7ca2e4f 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);