mirror of https://github.com/nucypher/nucypher.git
Introducing designation of a WorkOrder that is 'replete' with CFrags for each PRETask.
parent
74fa1803ab
commit
c4937b78bf
|
@ -607,7 +607,7 @@ class Bob(Character):
|
|||
capsules_to_include = []
|
||||
for capsule in capsules:
|
||||
try:
|
||||
precedent_work_order = self._completed_work_orders[node_id][capsule]
|
||||
precedent_work_order = self._completed_work_orders.most_recent_replete(capsule)[node_id]
|
||||
self.log.debug(f"{capsule} already has a saved WorkOrder for this Node:{node_id}.")
|
||||
complete_work_orders[node_id] = precedent_work_order
|
||||
except KeyError:
|
||||
|
|
|
@ -411,6 +411,21 @@ class WorkOrderHistory:
|
|||
def ursulas(self):
|
||||
return self.by_ursula.keys()
|
||||
|
||||
def most_recent_replete(self, capsule):
|
||||
"""
|
||||
Returns most recent WorkOrders for each Ursula which contain a complete task (with CFrag attached) for this Capsule.
|
||||
"""
|
||||
return self._latest_replete[capsule]
|
||||
|
||||
def save_work_order(self, work_order, as_replete=False):
|
||||
for task in work_order.tasks.values():
|
||||
if as_replete:
|
||||
work_orders_for_ursula = self._latest_replete.setdefault(task.capsule, {})
|
||||
work_orders_for_ursula[work_order.ursula.checksum_address] = work_order
|
||||
|
||||
work_orders_for_ursula = self.by_ursula.setdefault(work_order.ursula.checksum_address, {})
|
||||
work_orders_for_ursula[task.capsule] = work_order
|
||||
|
||||
def by_checksum_address(self, checksum_address):
|
||||
return self.by_ursula.setdefault(checksum_address, {})
|
||||
|
||||
|
|
|
@ -344,7 +344,7 @@ def test_federated_bob_retrieves(federated_bob,
|
|||
alices_verifying_key = federated_alice.stamp.as_umbral_pubkey()
|
||||
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kit=the_message_kit,
|
||||
data_source=the_data_source,
|
||||
enrico=the_data_source,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label)
|
||||
|
||||
|
|
Loading…
Reference in New Issue