From 92b8007f98b5be5dd413a699f68aa73781ba2a38 Mon Sep 17 00:00:00 2001 From: Noah Levitt Date: Tue, 19 Apr 2016 19:16:46 +0000 Subject: [PATCH] support calling ServiceRegistry.available_services() with no arguments to get all available services (services with a recent heartbeat) --- rethinkstuff/__init__.py | 10 +++++++--- setup.py | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/rethinkstuff/__init__.py b/rethinkstuff/__init__.py index 82652a8..8be31a7 100644 --- a/rethinkstuff/__init__.py +++ b/rethinkstuff/__init__.py @@ -174,11 +174,15 @@ class ServiceRegistry(object): except r.ReqlNonExistenceError: return None - def available_services(self, role): + def available_services(self, role=None): 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) - ).order_by("load").run() + ).order_by("load") + result = query.run() return result except r.ReqlNonExistenceError: return [] diff --git a/setup.py b/setup.py index 24f129b..66c11b9 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ import setuptools setuptools.setup( name='rethinkstuff', - version='0.1.4', + version='0.1.5', packages=['rethinkstuff'], classifiers=[ 'Programming Language :: Python :: 2.7',