Skip to content
Snippets Groups Projects
Commit a2207f4d authored by Robin Leber's avatar Robin Leber
Browse files

feat: stop, modify and restart architecture

parent 0e1ae2c7
No related branches found
No related tags found
No related merge requests found
...@@ -366,4 +366,5 @@ module.exports = { ...@@ -366,4 +366,5 @@ module.exports = {
pauseDockerContainer, pauseDockerContainer,
unpauseDockerContainer, unpauseDockerContainer,
dockerCleanUp, dockerCleanUp,
killDockerContainer,
}; };
...@@ -5,6 +5,9 @@ const { ...@@ -5,6 +5,9 @@ const {
runDockerContainer, runDockerContainer,
pauseDockerContainer, pauseDockerContainer,
unpauseDockerContainer, unpauseDockerContainer,
removeDockerContainer,
removeDockerImage,
killDockerContainer,
} = require("../docker/dockerManager"); } = require("../docker/dockerManager");
const fillDockerJS = async (code) => { const fillDockerJS = async (code) => {
...@@ -55,7 +58,11 @@ const addCustomCodeToJson = async (newElement) => { ...@@ -55,7 +58,11 @@ const addCustomCodeToJson = async (newElement) => {
(element) => element.id === newElement.id (element) => element.id === newElement.id
); );
if (existingFilter) { if (existingFilter) {
await killDockerContainer(newElement.id);
await removeDockerContainer(newElement.id);
await removeDockerImage(newElement.id);
existingFilter.code = newElement.code; existingFilter.code = newElement.code;
existingFilter.isDeployed = false;
} else { } else {
jsonArray.push(newElement); jsonArray.push(newElement);
} }
...@@ -72,6 +79,24 @@ const addCustomCodeToJson = async (newElement) => { ...@@ -72,6 +79,24 @@ 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);
elementToChange.isDeployed = true;
await fs.writeFile(
dataFilePath,
JSON.stringify(jsonArray, null, 2),
"utf8"
);
} catch (err) {
console.error(err);
}
};
const getCustomCodes = async () => { const getCustomCodes = async () => {
const dataFilePath = path.resolve(__dirname, "../../customCodeDatabase.json"); const dataFilePath = path.resolve(__dirname, "../../customCodeDatabase.json");
...@@ -95,6 +120,7 @@ let CONTAINERPORT = 9090; ...@@ -95,6 +120,7 @@ let CONTAINERPORT = 9090;
const deployArchitecture = async () => { const deployArchitecture = async () => {
const customCodes = await getCustomCodes(); const customCodes = await getCustomCodes();
for (const customCode of customCodes) { for (const customCode of customCodes) {
if (!customCode.isDeployed) {
await fillDockerJS(customCode.code); await fillDockerJS(customCode.code);
const filePath = path.join(__dirname, "../../"); const filePath = path.join(__dirname, "../../");
const dockerImageName = customCode.id; const dockerImageName = customCode.id;
...@@ -109,6 +135,8 @@ const deployArchitecture = async () => { ...@@ -109,6 +135,8 @@ const deployArchitecture = async () => {
await emptyDockerJS(); await emptyDockerJS();
HOSTPORT++; HOSTPORT++;
CONTAINERPORT++; CONTAINERPORT++;
await setIsDeployed(customCode.id);
}
} }
}; };
...@@ -122,8 +150,11 @@ const stopArchitecture = async () => { ...@@ -122,8 +150,11 @@ const stopArchitecture = async () => {
const restartArchitecture = async () => { const restartArchitecture = async () => {
const customCodes = await getCustomCodes(); const customCodes = await getCustomCodes();
for (const customCode of customCodes) { for (const customCode of customCodes) {
if (customCode.isDeployed) {
await unpauseDockerContainer(customCode.id); await unpauseDockerContainer(customCode.id);
} }
}
await deployArchitecture();
}; };
const clearDocker = () => { const clearDocker = () => {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment