support calling ServiceRegistry.available_services() with no arguments to get all available services (services with a recent heartbeat)

This commit is contained in:
Noah Levitt 2016-04-19 19:16:46 +00:00
parent 7a8963b7c4
commit 92b8007f98
2 changed files with 8 additions and 4 deletions

View File

@ -174,11 +174,15 @@ class ServiceRegistry(object):
except r.ReqlNonExistenceError: except r.ReqlNonExistenceError:
return None return None
def available_services(self, role): def available_services(self, role=None):
try: try:
result = self.r.table('services').filter({"role":role}).filter( query = self.r.table('services')
if role:
query = query.filter({"role":role})
query = query.filter(
lambda svc: r.now().sub(svc["last_heartbeat"]) < 3 * svc["heartbeat_interval"] #.default(20.0) lambda svc: r.now().sub(svc["last_heartbeat"]) < 3 * svc["heartbeat_interval"] #.default(20.0)
).order_by("load").run() ).order_by("load")
result = query.run()
return result return result
except r.ReqlNonExistenceError: except r.ReqlNonExistenceError:
return [] return []

View File

@ -2,7 +2,7 @@ import setuptools
setuptools.setup( setuptools.setup(
name='rethinkstuff', name='rethinkstuff',
version='0.1.4', version='0.1.5',
packages=['rethinkstuff'], packages=['rethinkstuff'],
classifiers=[ classifiers=[
'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 2.7',