mirror of
https://scm.tikali.ai/tikali/applications/monky/monky-deployd.git
synced 2026-09-18 04:36:15 +00:00
fix(agent): reuse a valid lease token across applies; a rate-limited lease no longer blocks a deploy; 0.1.6
Every apply requested a new lease, so a failing deploy retried by the 60 s timer burned tenancy's 5-leases-per-hour budget and then failed on LEASE_RATE_LIMITED forever (env-qa-02 pilot). Now: reuse a lease-derived token while lookup-self says it is valid; swap the bootstrap token for a lease once; if tenancy rate-limits the lease while a working token exists, apply with it and defer the swap. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KLB7jieMNRkTsJ2epr4Ds1
This commit is contained in:
+28
-5
@@ -107,7 +107,7 @@ def test_rollback_refused_unless_allowed(bootstrapped, tenancy, fake_docker):
|
||||
tenancy.set_files(first)
|
||||
assert tick(cfg) == EX_FAIL
|
||||
assert tenancy.reports[-1]["result"] == "failed" and "ROLLBACK_REFUSED" in tenancy.reports[-1]["detail"]
|
||||
assert len(tenancy.leases) == 2 # a refused bundle never leases
|
||||
assert len(tenancy.leases) == 1 # a refused bundle never leases; the 2nd apply reused the lease token
|
||||
tenancy.set_files(make_files(meta={"agent": {"allow_rollback": True}}))
|
||||
assert tick(cfg) == EX_OK
|
||||
|
||||
@@ -246,10 +246,9 @@ def test_legacy_approle_lease_is_refused_loudly(bootstrapped, tenancy, fake_dock
|
||||
assert "compose up" not in fake_docker.subcommands()
|
||||
|
||||
|
||||
def test_lease_rate_limited_is_temporary(bootstrapped, tenancy, fake_docker):
|
||||
cfg = bootstrapped
|
||||
tenancy.lease_limit = 0
|
||||
assert tick(cfg) == EX_TEMPFAIL
|
||||
# (test_lease_rate_limited_is_temporary was retired in 0.1.6: a rate-limited lease is only a
|
||||
# temporary failure when NO working token exists; with one, the agent applies and defers the swap —
|
||||
# see test_rate_limited_lease_does_not_block_an_apply_when_a_token_exists.)
|
||||
|
||||
|
||||
def test_unhealthy_after_up_reports_failed_with_compose_logs(bootstrapped, tenancy, fake_docker):
|
||||
@@ -320,3 +319,27 @@ def test_write_private_mode(tmp_path):
|
||||
p = tmp_path / "d" / "f"
|
||||
statemod.write_private(p, b"x")
|
||||
assert oct(p.stat().st_mode & 0o777) == "0o600" and not any(n.startswith(".f.") for n in os.listdir(p.parent))
|
||||
|
||||
|
||||
def test_second_apply_reuses_the_lease_token(bootstrapped, tenancy, bao, fake_docker):
|
||||
"""A valid lease-derived token is reused: a new bundle does NOT lease again (5/h budget —
|
||||
env-qa-02 pilot: a retried deploy re-leased every 60 s and hit LEASE_RATE_LIMITED forever)."""
|
||||
cfg = bootstrapped
|
||||
assert tick(cfg) == EX_OK
|
||||
assert len(tenancy.leases) == 1
|
||||
tenancy.set_files(make_files(manifest=make_manifest(versions={"gemini_api_key": 1})))
|
||||
assert tick(cfg) == EX_OK
|
||||
assert len(tenancy.leases) == 1 # reused
|
||||
st = statemod.load(cfg.state_path, ENV)
|
||||
assert st.applied_sha == tenancy.desired_sha and st.token.source == "lease"
|
||||
|
||||
|
||||
def test_rate_limited_lease_does_not_block_an_apply_when_a_token_exists(bootstrapped, tenancy, bao, fake_docker):
|
||||
"""tenancy 429 on lease while the bootstrap token still works → apply with it, swap deferred."""
|
||||
cfg = bootstrapped
|
||||
tenancy.lease_limit = 0
|
||||
assert tick(cfg) == EX_OK
|
||||
assert tenancy.leases == []
|
||||
st = statemod.load(cfg.state_path, ENV)
|
||||
assert st.applied_sha == tenancy.desired_sha and st.token.source == "bootstrap"
|
||||
assert tenancy.reports[-1]["result"] == "applied"
|
||||
|
||||
Reference in New Issue
Block a user