19 lines
846 B
Python
19 lines
846 B
Python
#!/usr/bin/env python3
|
|
"""Read-only diagnostic boot of a retained failed disposable guest."""
|
|
import json
|
|
from pathlib import Path
|
|
import subprocess
|
|
|
|
assert 'QEMU' in Path('/sys/class/dmi/id/sys_vendor').read_text()
|
|
assert subprocess.check_output(['findmnt','-n','-o','SOURCE','/'],text=True).strip()=='/dev/vda'
|
|
root=Path('/var/log/os-ota-stage')
|
|
v=json.loads(Path('/var/lib/archipelago-d09/ledger.json').read_text())
|
|
units=['archipelago.service','archipelago-d09-lifecycle.service']
|
|
if v.get('execution'):units.append(v['execution']['unit'])
|
|
command=['journalctl','--no-pager','-b','-1']
|
|
for unit in units:command+=['-u',unit]
|
|
r=subprocess.run(command,capture_output=True,text=True)
|
|
(root/'retained-failed-boot-journal.log').write_text(r.stdout+r.stderr)
|
|
print(r.stdout,r.stderr)
|
|
print('READ_ONLY_DIAGNOSTICS_NO_READMISSION_OR_PACKAGE_REPLAY')
|