70a22fa210
test / run tests/run_tests.py (pull_request) Successful in 21s
Across the package: - claude_bottle/platform/ -> claude_bottle/backend/ - platform/docker/platform.py -> backend/docker/backend.py - class BottlePlatform -> BottleBackend - class DockerBottlePlatform -> DockerBottleBackend - get_bottle_platform() -> get_bottle_backend() - env var CLAUDE_BOTTLE_PLATFORM -> CLAUDE_BOTTLE_BACKEND - dict _PLATFORMS -> _BACKENDS "Backend" is shorter and more established as the term for a pluggable strategy-pattern implementation. "Platform" was vague (could mean OS, hardware, cloud) and mildly redundant — Docker is itself a platform. The previous PRD section claiming "the Backend protocol was rejected" referred to a low-level run/exec/cp/network_connect protocol; the name was never the reason. The PRD is updated to describe that rejected design by shape rather than by name. The bottle/agent concepts and the manifest schema are unchanged.
37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
"""DockerBottleCleanupPlan — concrete subclass of BottleCleanupPlan.
|
|
|
|
Holds the tuples of container and network names that
|
|
DockerBottleBackend.cleanup will remove. The y/N preflight reads
|
|
these via `print`; the CLI short-circuits via `empty`.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
from dataclasses import dataclass
|
|
|
|
from ...log import info
|
|
from .. import BottleCleanupPlan
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class DockerBottleCleanupPlan(BottleCleanupPlan):
|
|
"""Resources DockerBottleBackend.cleanup will remove. Produced by
|
|
`prepare_cleanup` from a snapshot of `docker ps -a` + `docker
|
|
network ls`; sorted so the y/N output is stable."""
|
|
|
|
containers: tuple[str, ...]
|
|
networks: tuple[str, ...]
|
|
|
|
@property
|
|
def empty(self) -> bool:
|
|
return not self.containers and not self.networks
|
|
|
|
def print(self) -> None:
|
|
print(file=sys.stderr)
|
|
for name in self.containers:
|
|
info(f"container: {name}")
|
|
for name in self.networks:
|
|
info(f"network: {name}")
|
|
print(file=sys.stderr)
|