diff --git a/files/gvm_library.py b/files/gvm_library.py index 300073dc6db3db9d69ef4482560b22b7807df66f..85df49fd5787f3010af8873efa40c519ad3a686d 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 5a5c9160a209a33d9b8ce2b6abfacda07ef3a41a..9d0cbdaf59e7c2cf6f1368732a84c61fa7dbd930 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))