#!/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")
