def _event(self): """Tries to commit event. If there is an event in Blazar DB to be done, do it and change its status to 'DONE'. """ LOG.debug('Trying to get event from DB.') events = db_api.event_get_all_sorted_by_filters( sort_key='time', sort_dir='asc', filters={'status': status.event.UNDONE, 'time': {'op': 'le', 'border': datetime.datetime.utcnow()}} ) if not events: return LOG.info("Trying to execute events: %s", events) for event in events: if not status.LeaseStatus.is_stable(event['lease_id']): LOG.info("Skip event %s because the status of the lease %s " "is still transitional", event, event['lease_id']) continue db_api.event_update(event['id'], {'status': status.event.IN_PROGRESS}) try: eventlet.spawn_n( service_utils.with_empty_context(self._exec_event), event) except Exception: db_api.event_update(event['id'], {'status': status.event.ERROR}) LOG.exception('Error occurred while event %s handling.', event['id'])
def _event(self): """Tries to commit event. If there is an event in Blazar DB to be done, do it and change its status to 'DONE'. """ LOG.debug('Trying to get event from DB.') event = db_api.event_get_first_sorted_by_filters( sort_key='time', sort_dir='asc', filters={'status': status.event.UNDONE} ) if not event: return if event['time'] < datetime.datetime.utcnow(): db_api.event_update(event['id'], {'status': status.event.IN_PROGRESS}) try: eventlet.spawn_n( service_utils.with_empty_context(self._exec_event), event) except Exception: db_api.event_update(event['id'], {'status': status.event.ERROR}) LOG.exception('Error occurred while event handling.')