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