qubesadmin.events package¶
Submodules¶
qubesadmin.events.utils module¶
Utilities for common events-based actions
- qubesadmin.events.utils.interrupt_on_vm_shutdown(vms: set[QubesVM], dispatcher: EventsDispatcher, subject: QubesVM, event: str) None[source]¶
Interrupt events processing when given VM was shutdown
Module contents¶
Event handling implementation, require Python >=3.5.2 for asyncio.
- class qubesadmin.events.EventsDispatcher(app: QubesBase, api_method: str = 'admin.Events', enable_cache: bool = True)[source]¶
Bases:
objectEvents dispatcher, responsible for receiving events and calling appropriate handlers
- add_handler(event: str, handler: Callable[[QubesVM | None, str, ...], Any]) None[source]¶
Register handler for event
Use ‘*’ as event to register a handler for all events.
- Handler function is called with:
subject (VM object or None)
event name (str)
keyword arguments related to the event, if any - all values as str
:param event Event name, or ‘*’ for all events :param handler Handler function
- app¶
Qubes() object
- handlers¶
event handlers - dict of event -> handlers
- async listen_for_events(vm: QubesVM | None = None, reconnect: bool = True) None[source]¶
Listen for events and call appropriate handlers. This function do not exit until manually terminated.
This is coroutine.
- Parameters:
vm – Listen for events only for this VM, use None to listen for events about all VMs and not related to any particular VM.
reconnect – should reconnect to qubesd if connection is interrupted?
- Return type:
None