#!/usr/bin/env python3
# Fixtures for phase-00-teardown.sh. Machine roster + sids measured 2026-06-29.
import json, os
FIX=os.path.join(os.path.dirname(os.path.abspath(__file__)),"fix"); os.makedirs(FIX,exist_ok=True)
def m(host,sid,st): return {"hostname":host,"system_id":sid,"status_name":st}
ROSTER=[
m("juju","88fkyf","Deployed"), m("lxd","mfewpp","Deployed"), m("tailscale","rkd3da","Deployed"),
m("capi-mgmt","cffxxg","Ready"),
m("openstack0","6xey8x","Deployed"), m("openstack1","4667xm","Deployed"),
m("openstack2","f6t87k","Deployed"), m("openstack3","htbft7","Deployed"),
]
def dump(scn, machines, models):
open(os.path.join(FIX,f"{scn}_machines.json"),"w").write(json.dumps(machines,indent=2)+"\n")
open(os.path.join(FIX,f"{scn}_models.json"),"w").write(json.dumps({"models":models},indent=2)+"\n")
MODELS_WITH=[{"name":"admin/openstack"},{"name":"admin/controller"}]
MODELS_WITHOUT=[{"name":"admin/controller"}]
dump("live", ROSTER, MODELS_WITH) # normal: model present, all machines
dump("hostmissing", [x for x in ROSTER if x["hostname"]!="openstack2"], MODELS_WITH) # openstack2 gone
dump("modelgone", ROSTER, MODELS_WITHOUT) # model already destroyed
print("fixtures written")