init
This commit is contained in:
commit
d05799fe65
60 changed files with 7078 additions and 0 deletions
7
server/app/models/__init__.py
Normal file
7
server/app/models/__init__.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
from .container import Container, ContainerLog, ContainerUpdate, ContainerStats
|
||||
from .agent import Agent, AgentRegistration
|
||||
|
||||
__all__ = [
|
||||
'Container', 'ContainerLog', 'ContainerUpdate', 'ContainerStats',
|
||||
'Agent', 'AgentRegistration'
|
||||
]
|
BIN
server/app/models/__pycache__/__init__.cpython-313.pyc
Normal file
BIN
server/app/models/__pycache__/__init__.cpython-313.pyc
Normal file
Binary file not shown.
BIN
server/app/models/__pycache__/agent.cpython-313.pyc
Normal file
BIN
server/app/models/__pycache__/agent.cpython-313.pyc
Normal file
Binary file not shown.
BIN
server/app/models/__pycache__/container.cpython-313.pyc
Normal file
BIN
server/app/models/__pycache__/container.cpython-313.pyc
Normal file
Binary file not shown.
54
server/app/models/agent.py
Normal file
54
server/app/models/agent.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
from pydantic import BaseModel
|
||||
from typing import Optional, Dict, List
|
||||
from datetime import datetime
|
||||
from .container import Container
|
||||
|
||||
class AgentBase(BaseModel):
|
||||
name: str
|
||||
host: str
|
||||
port: int
|
||||
token: str
|
||||
|
||||
class AgentCreate(AgentBase):
|
||||
pass
|
||||
|
||||
class AgentUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
host: Optional[str] = None
|
||||
port: Optional[int] = None
|
||||
token: Optional[str] = None
|
||||
|
||||
class Agent(AgentBase):
|
||||
id: str
|
||||
status: str
|
||||
version: str
|
||||
last_seen: datetime
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
containers: List[Container]
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class AgentStatus(BaseModel):
|
||||
status: str
|
||||
version: str
|
||||
last_seen: datetime
|
||||
containers_count: int
|
||||
system_info: Dict[str, str]
|
||||
|
||||
class AgentRegistration(BaseModel):
|
||||
name: str
|
||||
hostname: str
|
||||
ip_address: str
|
||||
docker_version: str
|
||||
|
||||
class Agent(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
hostname: str
|
||||
ip_address: str
|
||||
docker_version: str
|
||||
status: str
|
||||
last_seen: datetime
|
||||
containers: List[Container]
|
54
server/app/models/container.py
Normal file
54
server/app/models/container.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
from pydantic import BaseModel
|
||||
from typing import Dict, List, Optional, Any
|
||||
from datetime import datetime
|
||||
|
||||
class PortBinding(BaseModel):
|
||||
host_ip: str = "0.0.0.0"
|
||||
host_port: int
|
||||
container_port: int
|
||||
protocol: str = "tcp"
|
||||
|
||||
class NetworkStats(BaseModel):
|
||||
rx_bytes: int
|
||||
rx_packets: int
|
||||
rx_errors: int
|
||||
rx_dropped: int
|
||||
tx_bytes: int
|
||||
tx_packets: int
|
||||
tx_errors: int
|
||||
tx_dropped: int
|
||||
|
||||
class ContainerStats(BaseModel):
|
||||
cpu_percent: float
|
||||
memory_usage: int
|
||||
memory_limit: int
|
||||
network: Dict[str, NetworkStats]
|
||||
block_read: int
|
||||
block_write: int
|
||||
|
||||
class Container(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
status: str
|
||||
image: str
|
||||
created: str
|
||||
ports: Optional[List[PortBinding]] = None
|
||||
volumes: Optional[List[str]] = None
|
||||
environment: Optional[Dict[str, str]] = None
|
||||
networks: Optional[List[str]] = None
|
||||
health_status: Optional[str] = None
|
||||
restart_policy: Optional[str] = None
|
||||
command: Optional[str] = None
|
||||
|
||||
class ContainerUpdate(BaseModel):
|
||||
image: Optional[str] = None
|
||||
command: Optional[str] = None
|
||||
environment: Optional[Dict[str, str]] = None
|
||||
ports: Optional[List[PortBinding]] = None
|
||||
volumes: Optional[List[str]] = None
|
||||
restart_policy: Optional[str] = None
|
||||
|
||||
class ContainerLog(BaseModel):
|
||||
timestamp: datetime
|
||||
message: str
|
||||
stream: str = "stdout"
|
Loading…
Add table
Add a link
Reference in a new issue