From f3e66bd5a68b65f9403bf02cb0bb18b85ced3078 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Sat, 23 Sep 2023 13:25:43 +0200 Subject: [PATCH] format python --- pkgs/clan-cli/clan_cli/webui/app.py | 2 +- pkgs/clan-cli/clan_cli/webui/routers/flake.py | 34 ++++++++----------- pkgs/clan-cli/clan_cli/webui/schemas.py | 6 ++-- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/webui/app.py b/pkgs/clan-cli/clan_cli/webui/app.py index 8ac149d9e..2eb53aade 100644 --- a/pkgs/clan-cli/clan_cli/webui/app.py +++ b/pkgs/clan-cli/clan_cli/webui/app.py @@ -4,7 +4,7 @@ from fastapi.routing import APIRoute from fastapi.staticfiles import StaticFiles from .assets import asset_path -from .routers import health, machines, root, vms, flake +from .routers import flake, health, machines, root, vms origins = [ "http://localhost:3000", diff --git a/pkgs/clan-cli/clan_cli/webui/routers/flake.py b/pkgs/clan-cli/clan_cli/webui/routers/flake.py index c4e4ad60a..ecfc1dbe7 100644 --- a/pkgs/clan-cli/clan_cli/webui/routers/flake.py +++ b/pkgs/clan-cli/clan_cli/webui/routers/flake.py @@ -1,26 +1,24 @@ import asyncio import json -from fastapi import APIRouter, HTTPException, status from pathlib import Path + +from fastapi import APIRouter, HTTPException, status + from clan_cli.webui.schemas import FlakeAction, FlakeResponse -from ...nix import nix_build, nix_eval, nix_command +from ...nix import nix_command router = APIRouter() + @router.get("/api/flake") async def inspect_flake( url: str, ) -> FlakeResponse: - actions = [] + actions = [] # Extract the flake from the given URL # We do this by running 'nix flake prefetch {url} --json' - cmd = nix_command([ - "flake", - "prefetch", - url, - "--json" - ]) + cmd = nix_command(["flake", "prefetch", url, "--json"]) proc = await asyncio.create_subprocess_exec( cmd[0], *cmd[1:], @@ -30,21 +28,19 @@ async def inspect_flake( stdout, stderr = await proc.communicate() if proc.returncode != 0: - raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST,detail=str(stderr)) - - - data: dict[str,str] = json.loads(stdout) + raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(stderr)) - if data.get("storePath") is None: - raise HTTPException(status_code=500,detail="Could not load flake") + data: dict[str, str] = json.loads(stdout) + + if data.get("storePath") is None: + raise HTTPException(status_code=500, detail="Could not load flake") content: str with open(Path(data.get("storePath", "")) / Path("flake.nix")) as f: content = f.read() - # TODO: Figure out some measure when it is insecure to inspect or create a VM - actions.append(FlakeAction(id="vms/inspect", uri = f"api/vms/inspect")) - actions.append(FlakeAction(id="vms/create", uri = f"api/vms/create")) + actions.append(FlakeAction(id="vms/inspect", uri="api/vms/inspect")) + actions.append(FlakeAction(id="vms/create", uri="api/vms/create")) - return FlakeResponse(content=content, actions=actions ) + return FlakeResponse(content=content, actions=actions) diff --git a/pkgs/clan-cli/clan_cli/webui/schemas.py b/pkgs/clan-cli/clan_cli/webui/schemas.py index 28087bd36..11a603718 100644 --- a/pkgs/clan-cli/clan_cli/webui/schemas.py +++ b/pkgs/clan-cli/clan_cli/webui/schemas.py @@ -1,7 +1,8 @@ from enum import Enum +from typing import List from pydantic import BaseModel, Field -from typing import List + class Status(Enum): ONLINE = "online" @@ -47,10 +48,11 @@ class VmInspectResponse(BaseModel): config: VmConfig -class FlakeAction(BaseModel): +class FlakeAction(BaseModel): id: str uri: str + class FlakeResponse(BaseModel): content: str actions: List[FlakeAction]