#!/usr/bin/env python3 """probe.py up|down — deploy a catalog template at its CURRENT pins on the bench and leave it running (fixture discovery).""" import sys, json, importlib.util sys.argv0 = sys.argv[:] spec = importlib.util.spec_from_file_location("ut", "/opt/upg/upgrade-test.py"); ut = importlib.util.module_from_spec(spec) sys.argv = ["x"]; spec.loader.exec_module(ut) act, app = sys.argv0[1], sys.argv0[2] wd = ut.ROOT / "work" / f"probe-{app}"; proj = f"probe{app.replace('-','')}" if act == "down": print(ut.compose(wd, proj, "down", "-v", "--remove-orphans").returncode); sys.exit() felhom = (ut.TEMPLATES / app / ".felhom.yml").read_text(); ct = (ut.TEMPLATES / app / "docker-compose.yml").read_text() env = ut.cvp.build_env(app, felhom, ct) json.dump(env, open(f"/opt/upg/probe-{app}.env.json", "w")) ut.render(app, ut.template_images(app, ut.TEMPLATES), wd, env) r = ut.compose(wd, proj, "up", "-d"); print("up rc", r.returncode, r.stderr[-400:]) ok, secs, st = ut.settle(proj, wd); print("settled", ok, secs, json.dumps(st)) for n in st: print(n, ut.container_ip(n))