Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions app/demo_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -414,9 +414,9 @@ async def get_resource(self: "DemoAdapter", id_: str) -> status_models.Resource:

async def get_events(
self: "DemoAdapter",
incident_id: str,
offset: int,
limit: int,
incident_id: str | None = None,
resource_id: str | None = None,
name: str | None = None,
description: str | None = None,
Expand All @@ -427,7 +427,8 @@ async def get_events(
modified_since: datetime.datetime | None = None,
) -> list[status_models.Event]:
events = status_models.Event.find(
[e for e in self.events if e.incident_id == incident_id],
self.events,
incident_id=incident_id,
resource_id=resource_id,
name=name,
description=description,
Expand All @@ -439,7 +440,7 @@ async def get_events(
)
return paginate_list(events, offset, limit)

async def get_event(self: "DemoAdapter", incident_id: str, id_: str) -> status_models.Event:
async def get_event(self: "DemoAdapter", id_: str) -> status_models.Event:
return status_models.Event.find_by_id(self.events, id_)

async def get_incidents(
Expand Down
2 changes: 1 addition & 1 deletion app/routers/compute/compute.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ async def get_job_status(
async def get_job_statuses(
resource_id: str,
request: Request,
offset: int = Query(default=0, ge=0, le=1000),
offset: int = Query(default=0, ge=0),
limit: int = Query(default=100, ge=0, le=1000),
filters: dict[str, object] | None = None,
historical: StrictHTTPBool | None = Query(default=False, description="Whether to include historical jobs. Defaults to false"),
Expand Down
2 changes: 1 addition & 1 deletion app/routers/facility/facility.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ async def list_sites(
request: Request,
modified_since: StrictDateTime = Query(default=None),
name: str | None = Query(default=None, min_length=1),
offset: int = Query(default=0, ge=0, le=1000),
offset: int = Query(default=0, ge=0),
limit: int = Query(default=100, ge=0, le=1000),
short_name: str | None = Query(default=None, min_length=1),
_forbid=Depends(forbidExtraQueryParams("modified_since", "name", "offset", "limit", "short_name")),
Expand Down
4 changes: 2 additions & 2 deletions app/routers/status/facility_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ async def get_resource(self: "FacilityAdapter", id_: str) -> status_models.Resou
@abstractmethod
async def get_events(
self: "FacilityAdapter",
incident_id: str,
offset: int,
limit: int,
incident_id: str | None = None,
resource_id: str | None = None,
name: str | None = None,
description: str | None = None,
Expand All @@ -50,7 +50,7 @@ async def get_events(
pass

@abstractmethod
async def get_event(self: "FacilityAdapter", incident_id: str, id_: str) -> status_models.Event:
async def get_event(self: "FacilityAdapter", id_: str) -> status_models.Event:
pass

@abstractmethod
Expand Down
4 changes: 3 additions & 1 deletion app/routers/status/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,11 @@ def incident_uri(self) -> str | None:
return f"{config.API_URL_ROOT}{config.API_PREFIX}{config.API_URL}/status/incidents/{self.incident_id}" if self.incident_id else None

@classmethod
def find(cls, items, name=None, description=None, modified_since=None, resource_id=None, status=None, from_=None, to=None, time_=None) -> list:
def find(cls, items, incident_id=None, name=None, description=None, modified_since=None, resource_id=None, status=None, from_=None, to=None, time_=None) -> list:
items = super().find(items, name=name, description=description, modified_since=modified_since)

if incident_id:
items = [e for e in items if e.incident_id == incident_id]
if resource_id:
items = [e for e in items if e.resource_id == resource_id]
if status:
Expand Down
24 changes: 12 additions & 12 deletions app/routers/status/status.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ async def get_resources(
name: str = Query(default=None, min_length=1),
description: str = Query(default=None, min_length=1),
group: str = Query(default=None, min_length=1),
offset: int = Query(default=0, ge=0, le=1000),
offset: int = Query(default=0, ge=0),
limit: int = Query(default=100, ge=0, le=1000),
modified_since: StrictDateTime = Query(default=None),
resource_type: models.ResourceType = Query(default=None),
Expand Down Expand Up @@ -76,7 +76,7 @@ async def get_incidents(
to: StrictDateTime = Query(default=None),
modified_since: StrictDateTime = Query(default=None),
resource_id: str | None = Query(default=None, min_length=1),
offset: int = Query(default=0, ge=0, le=1000),
offset: int = Query(default=0, ge=0),
limit: int = Query(default=100, ge=0, le=1000),
resolution: models.Resolution = Query(default=None),
_forbid=Depends(
Expand Down Expand Up @@ -132,15 +132,15 @@ async def get_incident(request: Request, incident_id: str) -> models.Incident:


@router.get(
"/incidents/{incident_id}/events",
summary="Get all events for an incident",
description="Get a list of all events in this incident. You can optionally filter the returned list by specifying attribtes.",
"/events",
summary="Get all events",
description="Get a list of all events. You can optionally filter the returned list by specifying attribtes.",
responses=DEFAULT_RESPONSES,
operation_id="getEventsByIncident",
)
async def get_events(
request: Request,
incident_id: str,
incident_id: str | None = Query(default=None, min_length=1),
resource_id: str | None = Query(default=None, min_length=1),
name: str | None = Query(default=None, min_length=1),
description: str | None = Query(default=None, min_length=1),
Expand All @@ -149,27 +149,27 @@ async def get_events(
time_: StrictDateTime = Query(alias="time", default=None),
to: StrictDateTime = Query(default=None),
modified_since: StrictDateTime = Query(default=None),
offset: int = Query(default=0, ge=0, le=1000),
offset: int = Query(default=0, ge=0),
limit: int = Query(default=100, ge=0, le=1000),
_forbid=Depends(forbidExtraQueryParams("resource_id", "name", "description", "status", "from", "to", "time", "modified_since", "offset", "limit")),
_forbid=Depends(forbidExtraQueryParams("incident_id", "resource_id", "name", "description", "status", "from", "to", "time", "modified_since", "offset", "limit")),
) -> list[models.Event]:
events = await router.adapter.get_events(
incident_id, offset=offset, limit=limit, resource_id=resource_id, name=name, description=description, status=status, from_=from_, to=to, time_=time_, modified_since=modified_since
incident_id=incident_id, offset=offset, limit=limit, resource_id=resource_id, name=name, description=description, status=status, from_=from_, to=to, time_=time_, modified_since=modified_since
)
if not events:
raise HTTPException(status_code=404, detail="No events found")
return events


@router.get(
"/incidents/{incident_id}/events/{event_id}",
"/events/{event_id}",
summary="Get a specific event",
description="Get a specific event for a given id",
responses=DEFAULT_RESPONSES,
operation_id="getEventByIncident",
)
async def get_event(request: Request, incident_id: str, event_id: str) -> models.Event:
item = await router.adapter.get_event(incident_id, event_id)
async def get_event(request: Request, event_id: str) -> models.Event:
item = await router.adapter.get_event(event_id)
if not item:
raise HTTPException(status_code=404, detail="Item not found")
return item
Loading