Events¶
InfiniSDK represents system events through the system.events collection, which contains Event
objects. Querying system events can be done in several ways. We can, for instance, iterate over all events:
>>> for event in system.events:
... print(event)
<...:Event id=1000, code=SNAPSHOT_POLICY_CREATED>
<...:Event id=1001, code=SNAPSHOT_SCHEDULE_CREATED>
<...:Event id=1002, code=SNAPSHOT_SCHEDULE_ENABLED>
<...:Event id=1003, code=SNAPSHOT_SCHEDULE_CREATED>
<...:Event id=1004, code=SNAPSHOT_SCHEDULE_ENABLED>
<...:Event id=1005, code=VOLUME_CREATED>
<...:Event id=1006, code=VOLUME_DELETED>
<...:Event id=1007, code=VOLUME_CREATED>
<...:Event id=1008, code=VOLUME_DELETED>
<...:Event id=1009, code=VOLUME_CREATED>
<...:Event id=1010, code=VOLUME_DELETED>
<...:Event id=1011, code=USER_LOGIN_SUCCESS>
Sorting is determined by the system by default, but we can easily change that. For instance, we can order the events by descending id:
>>> for event in system.events.find().sort(-system.events.fields.id):
... print(event)
<...:Event id=1011, code=USER_LOGIN_SUCCESS>
<...:Event id=1010, code=VOLUME_DELETED>
<...:Event id=1009, code=VOLUME_CREATED>
<...:Event id=1008, code=VOLUME_DELETED>
<...:Event id=1007, code=VOLUME_CREATED>
<...:Event id=1006, code=VOLUME_DELETED>
<...:Event id=1005, code=VOLUME_CREATED>
<...:Event id=1004, code=SNAPSHOT_SCHEDULE_ENABLED>
<...:Event id=1003, code=SNAPSHOT_SCHEDULE_CREATED>
<...:Event id=1002, code=SNAPSHOT_SCHEDULE_ENABLED>
<...:Event id=1001, code=SNAPSHOT_SCHEDULE_CREATED>
<...:Event id=1000, code=SNAPSHOT_POLICY_CREATED>
We can also combine this with filtering. The following example filters by specific event code:
>>> for event in system.events.find(code='VOLUME_CREATED').sort(-system.events.fields.id):
... print(event)
<...:Event id=1009, code=VOLUME_CREATED>
<...:Event id=1007, code=VOLUME_CREATED>
<...:Event id=1005, code=VOLUME_CREATED>
Example: Getting all Events Newer than a Specific Sequence Number¶
>>> from infinisdk import Q
>>> for e in system.events.find(Q.seq_num>=1004):
... print(e)
<...:Event id=1004, code=SNAPSHOT_SCHEDULE_ENABLED>
<...:Event id=1005, code=VOLUME_CREATED>
<...:Event id=1006, code=VOLUME_DELETED>
<...:Event id=1007, code=VOLUME_CREATED>
<...:Event id=1008, code=VOLUME_DELETED>
<...:Event id=1009, code=VOLUME_CREATED>
<...:Event id=1010, code=VOLUME_DELETED>
<...:Event id=1011, code=USER_LOGIN_SUCCESS>