def process_ha_events(self, conn): try: tc = TaskCreator() auth = AuthorizationService() auth.user = User.by_user_name(u'admin') grps = conn.query(ServerGroup).all() for grp in grps: running_ha_evts = conn.query(HAEvent).filter(HAEvent.status == HAEvent.STARTED).filter(HAEvent.sp_id == grp.id).all() if running_ha_evts: continue ha_events = conn.query(HAEvent).filter(HAEvent.status == HAEvent.IDLE).filter(HAEvent.sp_id == grp.id).order_by(HAEvent.event_id.asc()).all() if len(ha_events) > 0: tc.ha_action(auth, grp.id, grp.name) finally: conn.commit()