From 03e641549e744fe6d2344f7dcb200fd6f84167f8 Mon Sep 17 00:00:00 2001 From: Noah Levitt Date: Wed, 6 Sep 2017 17:25:35 -0700 Subject: [PATCH] use new index "role" in service registry --- doublethink/services.py | 12 ++++++------ setup.py | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doublethink/services.py b/doublethink/services.py index 30e5499..38a0f93 100644 --- a/doublethink/services.py +++ b/doublethink/services.py @@ -110,7 +110,7 @@ class ServiceRegistry(object): self.rr.table_create( 'services', shards=1, replicas=min(3, len(self.rr.servers))).run() - # self.rr.table('services').index_create...? + self.rr.table('services').index_create('role').run() def heartbeat(self, status_info): ''' @@ -218,7 +218,7 @@ class ServiceRegistry(object): the unique service, if there is one and it is healthy, otherwise None ''' - # use the same concept of 'now' for all queries + # use the same concept of 'now' for all queries now = doublethink.utcnow() if candidate is not None: candidate['id'] = role @@ -275,9 +275,9 @@ class ServiceRegistry(object): value of 'load' ''' try: - result = self.rr.table('services').filter({"role":role}).filter( - lambda svc: r.now().sub(svc["last_heartbeat"]) < svc["ttl"] - ).order_by("load")[0].run() + result = self.rr.table('services').get_all(role, index='role').filter( + lambda svc: r.now().sub(svc["last_heartbeat"]) < svc["ttl"] + ).order_by("load")[0].run() return result except r.ReqlNonExistenceError: return None @@ -300,7 +300,7 @@ class ServiceRegistry(object): try: query = self.rr.table('services') if role: - query = query.filter({"role":role}) + query = query.get_all(role, index='role') query = query.filter( lambda svc: r.now().sub(svc["last_heartbeat"]) < svc["ttl"] #.default(20.0) ).order_by("load") diff --git a/setup.py b/setup.py index 5cd7e5a..48d7ea7 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ import codecs setuptools.setup( name='doublethink', - version='0.2.0.dev83', + version='0.2.0.dev84', packages=['doublethink'], classifiers=[ 'Programming Language :: Python :: 2.7',