worked on pillar endpoints

This commit is contained in:
Linus Vogel 2026-02-17 22:46:54 +01:00
parent 37fa6bcbb3
commit 8ec26d53e4

View File

@ -12,7 +12,7 @@ from pillar_tool.db.models.top_data import State, StateAssignment
from pillar_tool.db.queries.pillar_queries import get_pillar_for_target
from pillar_tool.schemas import PillarParams, get_model_from_query
from pillar_tool.util.pillar_utilities import merge
from pillar_tool.util.validation import validate_state_name
from pillar_tool.util.validation import validate_state_name, validate_fqdn
router = APIRouter(
prefix="/pillar",
@ -57,13 +57,29 @@ def pillar_get(req: Request, fqdn: str):
@router.post("/{fqdn}")
def pillar_create(req: Request, fqdn: str, params: PillarParams):
# TODO: implement
@router.post("/{name}")
def pillar_create(req: Request, name: str, params: PillarParams):
db = req.state.db
# ensure that value and type have been set in the request parameters
if params.type is None or params.value is None:
@router.delete("/{fqdn}")
def pillar_delete(req: Request, fqdn: str):
target_stmt = select(Host).where(Host.name == name)
result = db.execute(target_stmt).fetchall()
if len(result) == 0:
return JSONResponse(status_code=404, content={})
# this should be enforced by the database
assert len(result) == 1
target: Host = result[0][0]
@router.delete("/{name}")
def pillar_delete(req: Request, name: str):
# TODO: implement
db = req.state.db