Skip to content

Commit f13e472

Browse files
cjen1-msftCopilotachamayou
authored
Wait for sealed secrets (#7450)
Co-authored-by: Copilot <[email protected]> Co-authored-by: Amaury Chamayou <[email protected]>
1 parent f8928ca commit f13e472

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

tests/e2e_operations.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1428,6 +1428,29 @@ def run_initial_tcb_version_checks(const_args):
14281428
assert False, "No TCB_version found in recovery ledger"
14291429

14301430

1431+
def wait_for_sealed_secrets(node, min_seqno=0, timeout=10):
1432+
out, _ = node.remote.get_logs()
1433+
start = time.time()
1434+
while time.time() < start + timeout:
1435+
with open(out, "r") as outf:
1436+
for line in outf.readlines():
1437+
if "Sealing complete of ledger secret to" in line:
1438+
try:
1439+
path = line.split()[-1]
1440+
filename = os.path.basename(path)
1441+
seqno = int(filename.split(".")[0])
1442+
if seqno >= min_seqno:
1443+
return
1444+
except (IndexError, ValueError):
1445+
continue
1446+
1447+
time.sleep(0.1)
1448+
1449+
raise TimeoutError(
1450+
f"Could not find sealed secrets for seqno {min_seqno} after {timeout}s in logs"
1451+
)
1452+
1453+
14311454
def run_recovery_local_unsealing(
14321455
const_args, recovery_f=0, rekey=False, recovery_shares_refresh=False
14331456
):
@@ -1444,10 +1467,19 @@ def run_recovery_local_unsealing(
14441467

14451468
primary, _ = network.find_primary()
14461469
if rekey:
1470+
network.wait_for_node_commit_sync()
1471+
with primary.client() as c:
1472+
r = c.get("/node/commit").body.json()
1473+
min_seqno = TxID.from_str(r["transaction_id"]).seqno
14471474
network.consortium.trigger_ledger_rekey(primary)
1475+
else:
1476+
min_seqno = 0
14481477
if recovery_shares_refresh:
14491478
network.consortium.trigger_recovery_shares_refresh(primary)
14501479

1480+
for node in network.nodes:
1481+
wait_for_sealed_secrets(node, min_seqno=min_seqno)
1482+
14511483
node_secret_map = {
14521484
node.local_node_id: node.save_sealed_ledger_secret()
14531485
for node in network.nodes
@@ -1503,6 +1535,8 @@ def run_recovery_unsealing_validate_audit(const_args):
15031535
network.start_and_open(args)
15041536

15051537
network.save_service_identity(args)
1538+
for node in network.nodes:
1539+
wait_for_sealed_secrets(node)
15061540
node0_secrets = network.nodes[0].save_sealed_ledger_secret()
15071541

15081542
latest_public_tables, _ = network.get_latest_ledger_public_state()
@@ -1586,6 +1620,8 @@ def run_recovery_unsealing_corrupt(const_args, recovery_f=0):
15861620
network.start_and_open(args)
15871621

15881622
network.save_service_identity(args)
1623+
for node in network.nodes:
1624+
wait_for_sealed_secrets(node)
15891625

15901626
node_secret_map = {
15911627
node.local_node_id: node.save_sealed_ledger_secret()

0 commit comments

Comments
 (0)