Docker outline
This commit is contained in:
parent
b18488a6d3
commit
7e189271e3
4 changed files with 69 additions and 0 deletions
40
app/model/containers.py
Normal file
40
app/model/containers.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
from dataclasses import dataclass, field
|
||||
from datetime import datetime
|
||||
|
||||
from docker.models.containers import Container
|
||||
|
||||
|
||||
@dataclass
|
||||
class SimpleContainer:
|
||||
name: str
|
||||
image: str
|
||||
status: str
|
||||
health: str
|
||||
created: datetime
|
||||
|
||||
@staticmethod
|
||||
def from_container(container: Container):
|
||||
created = datetime.strptime(container.attrs['Created'].split('.')[0], '%Y-%m-%dT%H:%M:%S')
|
||||
return SimpleContainer(
|
||||
name=container.name,
|
||||
image=container.image.tags[0],
|
||||
status=container.status,
|
||||
health=container.health,
|
||||
created=created
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Compose:
|
||||
directory: str
|
||||
containers: list[SimpleContainer] = field(default_factory=list)
|
||||
|
||||
@property
|
||||
def last_modified(self):
|
||||
return max(self.containers, key=lambda c: c.created).created
|
||||
|
||||
|
||||
@dataclass
|
||||
class Tree:
|
||||
composes: dict[str, Compose] = field(default_factory=dict)
|
||||
containers: list[SimpleContainer] = field(default_factory=list)
|
||||
Loading…
Add table
Add a link
Reference in a new issue