Database context¶
- class luna_events.db.db_context.DBContext(logger, adaptor, streams, storageTime)¶
Class to work with database.
- logger¶
the current request logger
- streams¶
streams with data
- adaptor¶
A DBAdaptor instance
- storageTime¶
A str, storage time setting
- async checkEvent(eventId, accountId=None)¶
Check event existence :type eventId:
str:param eventId: event id :type accountId:Optional[str,None] :param accountId: account id- Return type:
bool- Returns:
True if event exists otherwise False
- property dbType: str¶
Returns a string, database type (‘postgres’ only).
- Return type:
str
- async deleteDescriptors(filters)¶
Delete events descriptors
- Parameters:
filters (
DescriptorsFilters) – DescriptorsFilters instance- Return type:
list[str]- Returns:
event ids which descriptors have been deleted
- async deleteEvents(targets, createTimeGte=None, createTimeLt=None, insertTimeGte=None, insertTimeLt=None, accountId=None, handlerId=None)¶
Delete events from database :type targets:
list[str] :param targets: deletion info targets :type createTimeGte:Optional[datetime,None] :param createTimeGte: lower create time boundary :type createTimeLt:Optional[datetime,None] :param createTimeLt: upper create time boundary :type insertTimeGte:Optional[datetime,None] :param insertTimeGte: lower insert time boundary :type insertTimeLt:Optional[datetime,None] :param insertTimeLt: upper insert time boundary :type accountId:Optional[str,None] :param accountId: account id :type handlerId:Optional[str,None] :param handlerId: handler id- Returns:
event_id with deletion info attributes
- Return type:
list with dicts for each deleted event
- async getDescriptorById(eventId, accountId=None, descriptorVersion=None, descriptorModel=<class 'db.events_db_tools.models.events_models.Descriptor'>)¶
Search event descriptor by event id.
- Parameters:
eventId (
str) – event idaccountId (
Optional[str,None]) – account iddescriptorVersion (
Optional[int,None]) – descriptor versiondescriptorModel (
UnionType[Descriptor,BodyDescriptor]) – descriptor model. Either Descriptor or BodyDescriptor
- Raises:
VLException(Error.EventNotFound) if no event found –
VLException(Error.DescriptorNotFound) if no descriptor of specified version found –
- Return type:
bytes- Returns:
descriptor as bytes
- async getSequenceValues(eventCount)¶
Get several sequence.next_val values from db for new events :type eventCount:
int:param eventCount: count of incoming event- Return type:
list[int]- Returns:
list of ids for incoming events
- static prepareSearchQueryFilters(filters, meta)¶
Prepare search query filters.
- Parameters:
filters (
SearchEventsFilters) – query filtersmeta (
list[UDFilter]) – user-defined event meta’s filters
- Return type:
tuple[BooleanClauseList,list[FromClause]]- Returns:
filters for Event select query
- static prepareTarget(targets)¶
Extend query targets if needed.
- Return type:
list[str]
- async searchEvents(filters, *, meta=None, target=None, page=1, pageSize=100, order='desc')¶
Search events by given filters.
- Parameters:
target (
Optional[list[str],None]) – target Event columns’ names to get info onfilters (
SearchEventsFilters) – raw search request filtersmeta (
Optional[list[UDFilter],None]) – user-defined event meta’s filterspage (
UnionType[int,None]) – number of result pagepage_size – count of results in page
order (
UnionType[str,None]) – result sort order (ask or desc)
- Return type:
list[dict]- Returns:
events
- async searchEventsMissing(filters, page=1, pageSize=100)¶
Get events with samples without specified attributes (filters.kind).
- Parameters:
filters (
SearchEventsMissingFilters) – A SearchEventsMissingFilters instancepage (
UnionType[int,None]) – number of result pagepageSize (
UnionType[int,None]) – count of results in page
- Return type:
list[dict[str,object]]- Returns:
List of events
- async searchEventsMissingCount(filters)¶
Get number of events with samples without specified attributes (filters.kind).
- Parameters:
filters (
SearchEventsMissingFilters) – A SearchEventsMissingFilters instance- Return type:
int- Returns:
An integer, count of events.
- async updateEvent(eventId, accountId, eventForUpdate)¶
Update event.
- Parameters:
eventId (
str) – event idaccountId (
UnionType[str,None]) – account ideventForUpdate (
dict) – event containing data to update
- Raises:
VLException(Error.EventNotFound) if no event found –
- Return type:
None