Record archive recovery lifecycle and validate receipt provenance
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a06ecb-456a-71c2-b41e-0755d336e883
This commit is contained in:
parent
445f1361dc
commit
a867ec269a
9 changed files with 203 additions and 11 deletions
|
|
@ -70,7 +70,7 @@ def main():
|
|||
p.add_argument('--output',required=True,type=Path);p.add_argument('--receipt',required=True,type=Path)
|
||||
p.add_argument('--kubeconfig',required=True)
|
||||
a=p.parse_args()
|
||||
receipt={'schema':'platform.forgejo-primary-archive.v1','status':'running'}
|
||||
receipt={'schema':'platform.forgejo-primary-archive.v1','status':'running','started_at':datetime.now(timezone.utc).isoformat()}
|
||||
fd=os.open(a.receipt,os.O_CREAT|os.O_EXCL|os.O_WRONLY,0o600);os.close(fd)
|
||||
def checkpoint(): a.receipt.write_text(json.dumps(receipt,indent=2)+'\n')
|
||||
try:
|
||||
|
|
@ -99,6 +99,9 @@ def main():
|
|||
receipt['exception_type']=type(error).__name__
|
||||
receipt.update(status='failed',error='bounded_primary_archive_transfer_failed');checkpoint()
|
||||
return 1
|
||||
finally:
|
||||
receipt['finished_at']=datetime.now(timezone.utc).isoformat()
|
||||
checkpoint()
|
||||
return 0
|
||||
|
||||
if __name__=='__main__': raise SystemExit(main())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue