Improves modularity of the code

Adds cleaner and block processor to increase the modularity and reuse of the code
This commit is contained in:
Sergi Delgado Segura
2019-10-03 11:49:24 +01:00
parent e9832e4408
commit 5ba6fcb9ef
2 changed files with 102 additions and 0 deletions

45
pisa/cleaner.py Normal file
View File

@@ -0,0 +1,45 @@
import pisa.conf as conf
from pisa import logging
class Cleaner:
@staticmethod
def delete_expired_appointment(block, appointments, locator_uuid_map):
to_delete = [uuid for uuid, appointment in appointments.items()
if block["height"] > appointment.end_time + conf.EXPIRY_DELTA]
for uuid in to_delete:
locator = appointments[uuid].locator
appointments.pop(uuid)
if len(locator_uuid_map[locator]) == 1:
locator_uuid_map.pop(locator)
else:
locator_uuid_map[locator].remove(uuid)
logging.info("[Cleaner] end time reached with no match! Deleting appointment {} (uuid: {})".format(locator,
uuid))
return appointments, locator_uuid_map
@staticmethod
def delete_completed_jobs(jobs, tx_job_map, completed_jobs, height):
for uuid in completed_jobs:
logging.info("[Cleaner] job completed (uuid = {}). Appointment ended at block {} after {} confirmations"
.format(uuid, jobs[uuid].justice_txid, height, jobs[uuid].confirmations))
# ToDo: #9-add-data-persistence
justice_txid = jobs[uuid].justice_txid
jobs.pop(uuid)
if len(tx_job_map[justice_txid]) == 1:
tx_job_map.pop(justice_txid)
logging.info("[Cleaner] no more jobs for justice_txid {}".format(justice_txid))
else:
tx_job_map[justice_txid].remove(uuid)
return jobs, tx_job_map