Files
TheTree_mock/docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-r06-20261015/tree-offload-cold-r06-verify-cloud.py
T

15 lines
1.4 KiB
Python

globals().update(__import__('runpy').run_path('/private/tmp/tree-offload-cold-r06.py',run_name='offload_library'))
p=json.loads((D/'PREPARED.json').read_bytes());m=json.loads((D/'MANIFEST.json').read_bytes());a=T/'cloud-readback.tar.gz';parts=[json.loads((T/f'cloud-{i:04d}.json').read_bytes())for i in range(4)];assert all(x['actual_cloud_readback_verified']for x in parts)
assert a.stat().st_size==p['bytes']==sum(x['bytes']for x in parts) and sha(a)==p['sha256'];objs={x['sha256']:x for x in m['members']if x['type']=='file'};seen=set()
with tarfile.open(a,'r|gz')as t:
for e in t:
assert e.isfile() and e.name not in seen;seen.add(e.name)
with t.extractfile(e)as f:
if e.name=='MANIFEST.json':assert f.read()==(D/'MANIFEST.json').read_bytes()
else:
assert e.name.startswith('objects/');h=e.name[8:];assert h in objs and e.size==objs[h]['bytes'];v=hashlib.sha256()
for b in iter(lambda:f.read(1024**2),b''):v.update(b)
assert v.hexdigest()==h
assert seen=={'MANIFEST.json'}|{'objects/'+h for h in objs}
save(D/'CLOUD_PARTS.json',parts);save(D/'CLOUD_ARCHIVE_VERIFIED.json',dict(actual_cloud_readback=True,whole_archive_sha256=sha(a),bytes=a.stat().st_size,all_unique_payloads_verified=len(objs),original_file_mappings_verified=m['files'],manifest_identical=True,formal_credit=0));print('Complete cloud archive and all 14,259 file mappings verified',flush=True)