From a864ac6a5d46e280238ab8901a23fe1846583130 Mon Sep 17 00:00:00 2001 From: Andrea Cattaneo Date: Fri, 5 May 2023 15:24:41 +0200 Subject: [PATCH 1/5] fix: kill chromium istances --- command/scanManager.ts | 21 +++++++++++++++++++++ package-lock.json | 15 +++++++++++++++ package.json | 2 ++ 3 files changed, 38 insertions(+) diff --git a/command/scanManager.ts b/command/scanManager.ts index 4050119..91f20ed 100644 --- a/command/scanManager.ts +++ b/command/scanManager.ts @@ -27,6 +27,8 @@ import { } from "../controller/PA2026/integrationController"; import { urlExists } from "../utils/utils"; import { entityController } from "../controller/entityController"; +import psList from 'ps-list'; +import treeKill from 'tree-kill'; dbSM .authenticate() @@ -171,6 +173,9 @@ const scan = async (jobId) => { ); console.log("JOB DELETED: ", jobDeleted); + const pidKilled = await killProcessByName('Chromium'); + console.log("PID KILLED: ", pidKilled); + return true; } catch (e) { console.log("SCAN EXCEPTION: ", e.toString()); @@ -180,6 +185,9 @@ const scan = async (jobId) => { end_at: Date.now(), }); + const pidKilled = await killProcessByName('Chromium'); + console.log("PID KILLED: ", pidKilled); + return false; } }; @@ -247,3 +255,16 @@ const uploadFiles = async ( }; } }; + +const killProcessByName = async (name: string) => { + const list = await psList(); + const pidKilled = []; + for (const element of list) { + if (element.name === name) { + await treeKill(element.pid); + pidKilled.push(element.pid) + } + } + + return pidKilled; +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9b81519..dcbffae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,10 +26,12 @@ "npm-run-all": "^4.1.5", "pa-website-validator": "github:italia/pa-website-validator#v2.3.0", "pg": "^8.7.3", + "ps-list": "^8.1.1", "redis": "^4.1.0", "sequelize": "^6.6.5", "swagger-jsdoc": "^6.1.0", "swagger-ui-express": "^4.4.0", + "tree-kill": "^1.2.2", "ts-node": "^10.7.0", "typescript": "^4.6.4", "winston": "^3.7.2", @@ -6507,6 +6509,14 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/triple-beam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", @@ -11923,6 +11933,11 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==" + }, "triple-beam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", diff --git a/package.json b/package.json index 08bd9ca..e652ab1 100644 --- a/package.json +++ b/package.json @@ -43,10 +43,12 @@ "npm-run-all": "^4.1.5", "pa-website-validator": "github:italia/pa-website-validator#v2.3.0", "pg": "^8.7.3", + "ps-list": "^8.1.1", "redis": "^4.1.0", "sequelize": "^6.6.5", "swagger-jsdoc": "^6.1.0", "swagger-ui-express": "^4.4.0", + "tree-kill": "^1.2.2", "ts-node": "^10.7.0", "typescript": "^4.6.4", "winston": "^3.7.2", From 51fb05fe5367c958512816989f6d84e6f1fbdff0 Mon Sep 17 00:00:00 2001 From: Andrea Cattaneo Date: Fri, 5 May 2023 15:27:08 +0200 Subject: [PATCH 2/5] fix: prettier --- command/scanManager.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/command/scanManager.ts b/command/scanManager.ts index 91f20ed..aa51a7b 100644 --- a/command/scanManager.ts +++ b/command/scanManager.ts @@ -27,8 +27,8 @@ import { } from "../controller/PA2026/integrationController"; import { urlExists } from "../utils/utils"; import { entityController } from "../controller/entityController"; -import psList from 'ps-list'; -import treeKill from 'tree-kill'; +import psList from "ps-list"; +import treeKill from "tree-kill"; dbSM .authenticate() @@ -173,7 +173,7 @@ const scan = async (jobId) => { ); console.log("JOB DELETED: ", jobDeleted); - const pidKilled = await killProcessByName('Chromium'); + const pidKilled = await killProcessByName("Chromium"); console.log("PID KILLED: ", pidKilled); return true; @@ -185,7 +185,7 @@ const scan = async (jobId) => { end_at: Date.now(), }); - const pidKilled = await killProcessByName('Chromium'); + const pidKilled = await killProcessByName("Chromium"); console.log("PID KILLED: ", pidKilled); return false; @@ -262,9 +262,9 @@ const killProcessByName = async (name: string) => { for (const element of list) { if (element.name === name) { await treeKill(element.pid); - pidKilled.push(element.pid) + pidKilled.push(element.pid); } } return pidKilled; -} \ No newline at end of file +}; From 41666d058378bbc2d1efc901e9ca1311db827cbc Mon Sep 17 00:00:00 2001 From: Andrea Cattaneo Date: Fri, 5 May 2023 16:04:53 +0200 Subject: [PATCH 3/5] fix: add try-catch --- command/scanManager.ts | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/command/scanManager.ts b/command/scanManager.ts index aa51a7b..8670595 100644 --- a/command/scanManager.ts +++ b/command/scanManager.ts @@ -257,14 +257,27 @@ const uploadFiles = async ( }; const killProcessByName = async (name: string) => { - const list = await psList(); const pidKilled = []; - for (const element of list) { - if (element.name === name) { - await treeKill(element.pid); - pidKilled.push(element.pid); + + try { + const list = await psList(); + + for (const element of list) { + try { + if (element.name === name) { + await treeKill(element.pid); + pidKilled.push(element.pid); + } + } catch (e) { + console.log("ELEMENT IN ERROR: ", element); + console.log("KILL PROCESS BY NAME FOR-STATEMENT EXCEPTION: ", e); + } } - } - return pidKilled; + return pidKilled; + } catch (e) { + console.log("KILL PROCESS BY NAME EXCEPTION: ", e); + + return pidKilled; + } }; From 41467b85718c73323bca0091a4af575cfd4051d0 Mon Sep 17 00:00:00 2001 From: Andrea Cattaneo Date: Tue, 9 May 2023 14:17:41 +0200 Subject: [PATCH 4/5] fix: condition for countJobsFromEntityId --- controller/PA2026/integrationController.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/controller/PA2026/integrationController.ts b/controller/PA2026/integrationController.ts index 813debd..f980d80 100644 --- a/controller/PA2026/integrationController.ts +++ b/controller/PA2026/integrationController.ts @@ -19,6 +19,7 @@ import { mapPA2026Body, mapPA2026BodyUrlNotExists, } from "../../utils/utils"; +import { Op } from "sequelize"; const retrieveToken = async () => { try { @@ -185,6 +186,8 @@ const pushResult = async ( const countJobsFromEntityId = await jobDefine(dbSM).count({ where: { entity_id: entity.id, + [Op.not]: [{ preserve_reason: preserveReasons[0] }], + data_sent_status: "COMPLETED", }, }); From 3b5e6e381dfd40d05d43a9f29f7836ed15fc8e2c Mon Sep 17 00:00:00 2001 From: Andrea Cattaneo Date: Tue, 9 May 2023 14:28:15 +0200 Subject: [PATCH 5/5] feat: update validator to v2.3.2 --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index dcbffae..2d3cc44 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "mysql2": "^2.3.3", "nodemon": "^2.0.16", "npm-run-all": "^4.1.5", - "pa-website-validator": "github:italia/pa-website-validator#v2.3.0", + "pa-website-validator": "github:italia/pa-website-validator#v2.3.2", "pg": "^8.7.3", "ps-list": "^8.1.1", "redis": "^4.1.0", @@ -4951,8 +4951,8 @@ } }, "node_modules/pa-website-validator": { - "version": "2.3.0", - "resolved": "git+ssh://git@github.com/italia/pa-website-validator.git#4e70a2b30744a69d8f1a9707225e2fec4fb8eea1", + "version": "2.3.2", + "resolved": "git+ssh://git@github.com/italia/pa-website-validator.git#de04ed66d14f3b1a6be81da5302b74ef6fee0f91", "license": "BSD-3-Clause", "dependencies": { "axios": "^1.1.3", @@ -10835,8 +10835,8 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pa-website-validator": { - "version": "git+ssh://git@github.com/italia/pa-website-validator.git#4e70a2b30744a69d8f1a9707225e2fec4fb8eea1", - "from": "pa-website-validator@github:italia/pa-website-validator#v2.3.0", + "version": "git+ssh://git@github.com/italia/pa-website-validator.git#de04ed66d14f3b1a6be81da5302b74ef6fee0f91", + "from": "pa-website-validator@github:italia/pa-website-validator#v2.3.2", "requires": { "axios": "^1.1.3", "cheerio": "^1.0.0-rc.10", diff --git a/package.json b/package.json index e652ab1..29f9e1e 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "mysql2": "^2.3.3", "nodemon": "^2.0.16", "npm-run-all": "^4.1.5", - "pa-website-validator": "github:italia/pa-website-validator#v2.3.0", + "pa-website-validator": "github:italia/pa-website-validator#v2.3.2", "pg": "^8.7.3", "ps-list": "^8.1.1", "redis": "^4.1.0",