Compare commits

..

2 Commits

Author SHA1 Message Date
8035fc15af Get entity by did or name
Some checks failed
checks-impure / test (pull_request) Successful in 25s
checks / test (pull_request) Failing after 1m22s
2024-01-14 15:26:54 +01:00
9ebdf48459 Added AP get repository 2024-01-14 15:23:43 +01:00
4 changed files with 17 additions and 25 deletions

View File

@@ -1,13 +0,0 @@
from enum import Enum
class Status(Enum):
ONLINE = "online"
OFFLINE = "offline"
UNKNOWN = "unknown"
class Role(Enum):
PROSUMER = "service_prosumer"
AP = "AP"
DLG = "DLG"

View File

@@ -231,8 +231,6 @@ def get_rpc_by_role(db: Session, role: Role, path: str) -> Any:
raise ClanError(f"No {role} found") raise ClanError(f"No {role} found")
if len(matching_entities) > 1: if len(matching_entities) > 1:
raise ClanError(f"More than one {role} found") raise ClanError(f"More than one {role} found")
if len(matching_entities) == 0:
raise ClanError(f"No {role} found")
dlg = matching_entities[0] dlg = matching_entities[0]
url = f"http://{dlg.ip}/{path}" url = f"http://{dlg.ip}/{path}"
@@ -307,6 +305,7 @@ def get_all_eventmessages(
# # # #
############################## ##############################
@router.get("/emulate", response_class=HTMLResponse) @router.get("/emulate", response_class=HTMLResponse)
@router.get("/emu", response_class=HTMLResponse)
def get_emulated_enpoints() -> HTMLResponse: def get_emulated_enpoints() -> HTMLResponse:
from clan_cli.config import ap_url, c1_url, c2_url, dlg_url from clan_cli.config import ap_url, c1_url, c2_url, dlg_url

View File

@@ -1,15 +1,25 @@
import logging import logging
from datetime import datetime from datetime import datetime
from enum import Enum
from typing import List from typing import List
from pydantic import BaseModel, Field, validator from pydantic import BaseModel, Field, validator
from . import sql_models
from .db_types import Role, Status
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
class Status(Enum):
ONLINE = "online"
OFFLINE = "offline"
UNKNOWN = "unknown"
class Role(Enum):
PROSUMER = "service_prosumer"
AP = "AP"
DLG = "DLG"
class Machine(BaseModel): class Machine(BaseModel):
name: str name: str
status: Status status: Status
@@ -62,12 +72,8 @@ class Entity(EntityBase):
# define a custom getter function for roles # define a custom getter function for roles
@validator("roles", pre=True) @validator("roles", pre=True)
def get_roles(cls, v: List[sql_models.EntityRoles | Role]) -> List[Role]: def get_roles(cls, v: List[EntityRoles | Role]) -> List[Role]:
if ( if isinstance(v, list) and len(v) > 0 and isinstance(v[0], EntityRoles):
isinstance(v, list)
and len(v) > 0
and isinstance(v[0], sql_models.EntityRoles)
):
return [x.role for x in v] # type: ignore return [x.role for x in v] # type: ignore
else: else:
return v # type: ignore return v # type: ignore

View File

@@ -1,7 +1,7 @@
from sqlalchemy import JSON, Boolean, Column, Enum, ForeignKey, Integer, String, Text from sqlalchemy import JSON, Boolean, Column, Enum, ForeignKey, Integer, String, Text
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from .db_types import Role from .schemas import Role
from .sql_db import Base from .sql_db import Base
# Relationsship example # Relationsship example