Skip to content
Open
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
52 changes: 52 additions & 0 deletions kubespawner/spawner.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,22 @@ def __init__(self, *args, **kwargs):
""",
)

custom_event_queue = List(
[],
config=False,
help="""
Queue of custom events to be reported to the user on the spawn page.
""",
)

_sent_custom_events = List(
[],
config=False,
help="""
List of (index, event) tuples of custom events that have been sent to the user.
""",
)

enable_user_namespaces = Bool(
False,
config=True,
Expand Down Expand Up @@ -2558,6 +2574,28 @@ def clear_state(self):
)
# reset namespace as well?

def add_custom_event(
self, eventTime, lastTimestamp, message, type, involvedObject, metadata
):
"""Add an event to the event queue

This is used to add custom events that are not part of the normal
kubernetes event stream.
"""
if not self.events_enabled:
return

event = {
"eventTime": eventTime,
"lastTimestamp": lastTimestamp,
"message": message,
"type": type,
"involvedObject": involvedObject,
"metadata": metadata,
}

self.custom_event_queue.append(event)

async def poll(self):
"""
Check if the pod is still running.
Expand Down Expand Up @@ -2639,7 +2677,9 @@ def events(self):
return []

events = []

for event in self.event_reflector.events:

if event["involvedObject"]["name"] != self.pod_name:
# only consider events for my pod name
continue
Expand All @@ -2649,8 +2689,20 @@ def events(self):
# and only consider future events
# only include events *after* our _last_event marker
events = []

else:
events.append(event)

for idx, event in self._sent_custom_events:
events.insert(idx, event)

for event in self.custom_event_queue:
idx = len(events)
events.append(event)
self._sent_custom_events.append((idx, event))

self.custom_event_queue = []

return events

async def progress(self):
Expand Down