add stub api for machines

This commit is contained in:
Jörg Thalheim 2023-08-24 16:11:08 +02:00
parent 4b2c1772d0
commit 80d3349ce0
2 changed files with 67 additions and 1 deletions

View File

@ -1,7 +1,8 @@
from fastapi import FastAPI
from .routers import health, root
from .routers import health, machines, root
app = FastAPI()
app.include_router(health.router)
app.include_router(machines.router)
app.include_router(root.router)

View File

@ -0,0 +1,65 @@
from enum import Enum
from fastapi import APIRouter
from pydantic import BaseModel, Field
router = APIRouter()
class Status(Enum):
ONLINE = "online"
OFFLINE = "offline"
class Machine(BaseModel):
name: str
status: Status
class MachinesResponse(BaseModel):
machines: list[Machine]
class MachineResponse(BaseModel):
machine: Machine
class Config(BaseModel):
pass
class ConfigResponse(BaseModel):
config: Config
class Schema(BaseModel):
pass
class SchemaResponse(BaseModel):
schema_: Schema = Field(alias="schema")
@router.get("/api/machines")
async def list_machines() -> MachinesResponse:
return MachinesResponse(machines=[])
@router.get("/api/machines/{machine}")
async def get_machine(machine: str) -> MachineResponse:
return MachineResponse(machine=Machine(name=machine, status=Status.ONLINE))
@router.get("/api/machines/{machine}/config")
async def get_machine_config(machine: str) -> ConfigResponse:
return ConfigResponse(config=Config())
@router.post("/api/machines/{machine}/config")
async def set_machine_config(machine: str, config: Config) -> ConfigResponse:
return ConfigResponse(config=config)
@router.get("/api/machines/{machine}/schema")
async def get_machine_schema(machine: str) -> SchemaResponse:
return SchemaResponse(schema=Schema())