Commit 6feb55c8 authored by Hines, Jesse's avatar Hines, Jesse
Browse files

Remove SimSystem

parent 8173b6f8
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -10,10 +10,6 @@ from ..util.misc import omit
from ..util.api_queries import filter_params, sort_params


SimSystem = Literal["frontier", "fugaku", "lassen", "marconi100"]
SIM_SYSTEMS: tuple[str] = get_args(SimSystem)


class Sim(BaseModel):
    """ Represents a single simulation run """

@@ -23,7 +19,7 @@ class Sim(BaseModel):
    user: Optional[str] = None
    """ User who launched the simulation """

    system: SimSystem
    system: str

    state: Optional[Literal['running', 'success', 'fail']] = None

+4 −4
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ from ..models.output import (
    CoolingSimCDU, COOLING_CDU_FILTERS, COOLING_CDU_FIELD_SELECTORS,
    CoolingSimCEP, COOLING_CEP_FIELD_SELECTORS,
)
from ..models.sim import Sim, SIM_FIELD_SELECTORS, SIM_FILTERS, SIM_SORT, SimConfig, SimSystem
from ..models.sim import Sim, SIM_FIELD_SELECTORS, SIM_FILTERS, SIM_SORT, ServerSimConfig
from ..models.output import SystemInfo
from ..util.api_queries import Granularity, granularity_params, Filters, Sort, get_selectors
from .config import AppDeps
@@ -27,10 +27,10 @@ GranularityDep = A[Granularity, Depends(granularity_params(default_granularity=t


@router.post("/simulation/run", response_model=Sim)
def run(*, sim_config: A[SimConfig, Body()], deps: AppDeps):
def run(*, sim_config: A[ServerSimConfig, Body()], deps: AppDeps):
    """
    Start running a simulation in the background. POST the configuration for the simulation. Returns
    a Sim object containing an id you can use to query the results as they are generated. Foo
    a Sim object containing an id you can use to query the results as they are generated.
    """
    return run_simulation(sim_config, deps)

@@ -213,5 +213,5 @@ def scheduler_system(*,


@router.get("/system-info/{system}", response_model=SystemInfo)
def system_info(system: SimSystem):
def system_info(system: str):
    return get_system_info(system = system)
+4 −4
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import uuid, time, json, base64, os, sys, subprocess
import sqlalchemy as sqla
from loguru import logger
from pydantic import ValidationError
from ..models.sim import Sim, SimConfig, SIM_FILTERS, SIM_FIELD_SELECTORS, SimSystem
from ..models.sim import Sim, ServerSimConfig, SIM_FILTERS, SIM_FIELD_SELECTORS
from ..models.base import ResponseFormat
from ..models.output import (
    COOLING_CDU_API_FIELDS, COOLING_CDU_FIELD_SELECTORS,
@@ -51,12 +51,12 @@ def wait_until_exists(stmt: sqla.Select, *, timeout: timedelta = timedelta(minut



def run_simulation(sim_config: SimConfig, deps: AppDeps):
def run_simulation(sim_config: ServerSimConfig, deps: AppDeps):
    sim = Sim(
        # Random sim id, use base32 to make it a bit shorter
        id = base64.b32encode(uuid.uuid4().bytes).decode().rstrip('=').lower(),
        user = "unknown", # TODO pull this from cookie/auth header
        system = sim_config.system,
        system = sim_config.system_configs[0].system_name,
        state = "running",
        start = sim_config.start,
        end = sim_config.end,
@@ -696,7 +696,7 @@ def build_scheduler_sim_power_history_query(*,
    )


def get_system_info(system: SimSystem):
def get_system_info(system: str):
    from ..simulation.simulation import get_scheduler
    sc = get_scheduler(system = system)
    return sc.get_gauge_limits()