def get_wampagent(self, hostname): try: return (model_query(models.WampAgent) .filter_by(hostname=hostname, online=True) .one()) except NoResultFound: raise exception.WampAgentNotFound(wampagent=hostname)
def unregister_wampagent(self, hostname): session = get_session() with session.begin(): query = (model_query(models.WampAgent, session=session) .filter_by(hostname=hostname, online=True)) count = query.update({'online': False}) if count == 0: raise exception.WampAgentNotFound(wampagent=hostname)
def touch_wampagent(self, hostname): session = get_session() with session.begin(): query = (model_query(models.WampAgent, session=session) .filter_by(hostname=hostname)) # since we're not changing any other field, manually set updated_at # and since we're heartbeating, make sure that online=True count = query.update({'updated_at': timeutils.utcnow(), 'online': True}) if count == 0: raise exception.WampAgentNotFound(wampagent=hostname)