95cbd0e1c8
test / image-input-builds (pull_request) Failing after 11m32s
test / unit (pull_request) Has started running
test / coverage (pull_request) Blocked by required conditions
test / integration-docker (pull_request) Blocked by required conditions
tracker-policy-pr / check-pr (pull_request) Failing after 12m21s
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
"""Cleanup plan for the macOS Apple Container backend."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
from ...log import info
|
|
from .. import BottleCleanupPlan
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class MacosContainerBottleCleanupPlan(BottleCleanupPlan):
|
|
containers: tuple[str, ...] = ()
|
|
networks: tuple[str, ...] = ()
|
|
|
|
def print(self) -> None:
|
|
if not self.containers and not self.networks:
|
|
info("macos-container cleanup: nothing to remove")
|
|
return
|
|
for name in self.containers:
|
|
info(f"macos-container container: {name}")
|
|
for name in self.networks:
|
|
info(f"macos-container network: {name}")
|
|
|
|
@property
|
|
def empty(self) -> bool:
|
|
return not self.containers and not self.networks
|
|
|
|
def intersect(self, current: BottleCleanupPlan) -> "MacosContainerBottleCleanupPlan":
|
|
if not isinstance(current, MacosContainerBottleCleanupPlan):
|
|
raise TypeError("cleanup plans must have the same backend type")
|
|
return MacosContainerBottleCleanupPlan(
|
|
containers=tuple(x for x in self.containers if x in current.containers),
|
|
networks=tuple(x for x in self.networks if x in current.networks),
|
|
)
|