diff --git a/src/common/client.py b/src/common/client.py index 34c9b34..271db5c 100644 --- a/src/common/client.py +++ b/src/common/client.py @@ -149,3 +149,15 @@ def dns(self, op_id, params, credits_): ) self.operations_manager.add_operation(operation) + + def delete(self, op_id, params, credits_): + print(f"Deleting operation ${op_id}") + operation = Operation( + op_id, + None, + credits_, + params["cron"], + params["times_per_minute"], + params["stop_time"] + ) + self.operations_manager.cancel_operation(operation) diff --git a/src/common/communicator.py b/src/common/communicator.py index 71a17c3..cf4b291 100644 --- a/src/common/communicator.py +++ b/src/common/communicator.py @@ -26,6 +26,7 @@ def add_operation(self, operation): ]) def finish_operation(self, operation): + print(f"Finishing operation with id: ${operation.id}") self.operations_queue.put([ NEW_DATA, FINISHED, diff --git a/src/common/operations_manager.py b/src/common/operations_manager.py index b38b4eb..bb651ac 100644 --- a/src/common/operations_manager.py +++ b/src/common/operations_manager.py @@ -175,15 +175,21 @@ def schedule_operation(self, operation): if is_over(operation): print("Operation has to stop due to finish date") - self.remove_cron_task(operation) - self.communicator.finish_operation(operation) + self.cancel_operation(operation) return print("Jobs all set") def remove_cron_task(self, operation): + print(f"Removing crontab jobs with op_id: ${operation.id}") with CronTab(user=True) as cron: job_iter = cron.find_comment(operation.id) for job in job_iter: + print(f"Found a contab job to delete ${job}") cron.remove(job) + + def cancel_operation(self, operation): + self.remove_cron_task(operation) + self.communicator.finish_operation(operation) + diff --git a/src/config/connection.py b/src/config/connection.py index 5a26db5..bca956e 100644 --- a/src/config/connection.py +++ b/src/config/connection.py @@ -1,3 +1,4 @@ +HOST = "ws://192.168.100.8:5000" # Delay between retries to reconnect in first instance DELAY_BETWEEN_RETRY = 5 RESULT_FOLDER = "../safe_storage/results/" diff --git a/src/main.py b/src/main.py index 716f98b..9392a31 100644 --- a/src/main.py +++ b/src/main.py @@ -41,11 +41,16 @@ def on_traceroute(data): @client.sio.on('ping') def on_ping(data): client.ping(data["_id"], data["params"], data["credits"]) - + @client.sio.on('dns') def on_dns(data): client.dns(data["_id"], data["params"], data["credits"]) + @client.sio.on('delete') + def on_delete(data): + print(f"Got a delete message with params ${data}") + client.delete(data["_id"], data["params"], data["credits"]) + def connect_to_server(client): backend_url = 'ws://' + \