From 84f908026bd1989fc075d26b4f1e7cb5d4b14300 Mon Sep 17 00:00:00 2001
From: "gioacchino.vino" <gioacchino.vino@infn.it>
Date: Tue, 9 Jan 2024 17:56:04 +0100
Subject: [PATCH] Reviewed scan python code

---
 files/gvm_library.py | 16 ++++++++++++----
 files/scan.py        |  8 ++------
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/files/gvm_library.py b/files/gvm_library.py
index 300073d..85df49f 100644
--- a/files/gvm_library.py
+++ b/files/gvm_library.py
@@ -80,12 +80,14 @@ class Target:
                  id: str = "",
                  in_use: str = "",
                  hosts: str = "",
-                 client = None):
+                 client = None, 
+                 port_list: PortList = None):
         self.client = client
         self.name = name
         self.id = id
         self.in_use = in_use
         self.hosts = hosts
+        self.port_list = port_list
         
     def __str__(self):
         d = {'name': self.name, 
@@ -96,6 +98,7 @@ class Target:
     
     def __del__(self):
         self.delete()
+        del self.port_list
         
     def delete(self):
         res = self.client.delete_target(self.id)
@@ -134,7 +137,8 @@ class Task:
                  in_use: str = "",
                  status: str = "",
                  progress: str = "",
-                 report_id: str = None):
+                 report_id: str = None, 
+                 target: Target = None):
         self.client = client
         self.name = name
         self.id = id
@@ -142,6 +146,7 @@ class Task:
         self.status = status
         self.progress = progress
         self.report_id = report_id
+        self.target = target
         
     def __str__(self):
         d = {'name': self.name, 
@@ -172,6 +177,7 @@ class Task:
     
     def __del__(self):
         self.delete()
+        del self.target
     
     def update_status(self):
         tasks_info = self.client.get_tasks(filter_string = self.id)
@@ -357,12 +363,13 @@ class GVMClient():
         else:
             logging.error(f"ERROR {status}: {status_text}")
 
-    def get_or_create_target(self, name: str, ip: str, port_list: List[str]) -> Target:
+    def get_or_create_target(self, name: str, ip: str, port_list: PortList) -> Target:
         res = self.get_targets(name)
         if len(res) == 0:
-            t = self.create_target(name,ip,port_list)
+            t = self.create_target(name, ip, port_list)
             return self.get_targets(t.id)[0]
         elif len(res) == 1:
+            res[0].port_list = port_list
             return res[0]
         else:
             print(f"Found {len(res)} results. Return None")
@@ -418,6 +425,7 @@ class GVMClient():
             t = self.create_task(task_name, target)
             return self.get_tasks(t.id)[0]
         elif len(res) == 1:
+            res[0].target = target
             return res[0]
         else:
             print(f"Found {len(res)} results. Return None")
diff --git a/files/scan.py b/files/scan.py
index 5a5c916..9d0cbda 100644
--- a/files/scan.py
+++ b/files/scan.py
@@ -96,13 +96,9 @@ for host,ports in endpoints.items():
     else:
         reports[host] = f"ERROR Task: {task.id}"
     
-    print(port_list)
-    print(target)
-    print(task)
-    
     del task 
-    del target
-    del port_list
+    #del target
+    #del port_list
 
 reports = process_global_reports_info(reports)
 logging.info(pretty_json(reports))
-- 
GitLab