From 8f5232ac739b3d24b3c4ad39479093f3cd5e148f Mon Sep 17 00:00:00 2001
From: James Kafader <jkafader@archive.org>
Date: Tue, 26 Sep 2017 17:00:17 -0700
Subject: [PATCH] a few more revisions after consultation with noah.

---
 doublethink/cli.py      | 14 ++++++++++++--
 doublethink/services.py |  7 +++++--
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/doublethink/cli.py b/doublethink/cli.py
index de6543b..ef76019 100644
--- a/doublethink/cli.py
+++ b/doublethink/cli.py
@@ -31,12 +31,22 @@ def purge_stale_services(argv=None):
             prog=os.path.basename(argv[0]),
             description='purge-stale-services: utility to periodically purge stale entries from the "services" table.')
 
-    arg_parser.add_argument("db", help="A RethinkDB database containing a 'services' table")
+    arg_parser.add_argument("-d", "--rethinkdb-db", required=True,
+        help="A RethinkDB database containing a 'services' table")
 
     arg_parser.add_argument("-s", "--rethinkdb-servers",
         metavar="SERVERS", dest="servers", required=True,
-        help="a comma-separated list of hostnames of rethinkdb servers. Required.")
+        help="rethinkdb servers, e.g. db0.foo.org,db0.foo.org:38015,db1.foo.org")
+
+    arg_parser.add_argument(
+        '-v', '--verbose', dest='log_level', action='store_const',
+        default=logging.INFO, const=logging.DEBUG, help=(
+                'verbose logging'))
     args = arg_parser.parse_args(argv[1:])
+    logging.basicConfig(
+            stream=sys.stdout, level=args.log_level, format=(
+                '%(asctime)s %(process)d %(levelname)s %(threadName)s '
+                '%(name)s.%(funcName)s(%(filename)s:%(lineno)d) %(message)s'))
 
     args.servers = [srv.strip() for srv in args.servers.split(",")]
 
diff --git a/doublethink/services.py b/doublethink/services.py
index aeeed29..2289190 100644
--- a/doublethink/services.py
+++ b/doublethink/services.py
@@ -313,7 +313,10 @@ class ServiceRegistry(object):
     available_services = healthy_services
 
     def purge_stale_services(self, ttls_until_deletion=2):
-        result = self.rr.table('services').filter(
+        query = self.rr.table('services').filter(
                 lambda svc: r.now().sub(svc["last_heartbeat"]).gt(svc["ttl"] * ttls_until_deletion)
-            ).delete().run()
+            ).delete()
+        logging.debug("Running query: %s", query)
+        result = query.run()
+        logging.debug("Results: %s", result)
         return result