INNER CODE UNIT · Python
instances
oneclickvirt/ecs · agent/server.py:161
def instances(self):
backend = self.profile["runtime"]
binary = self.binary()
if backend in ("docker", "podman", "containerd"):
raw = execute([binary, "ps", "-a", "--format", "{{json .}}"])
if isinstance(raw, dict):
rows = [raw]
elif not raw:
rows = []
else:
rows = [json.loads(line) for line in raw.splitlines()]
result = []
for row in rows:
item = {key: row.get(key) for key in ("ID", "Names", "Image", "State", "Status")}
if isinstance(item["Names"], list):
item["Names"] = ",".join(item["Names"])
result.append(item)
return result