                     else
                         ans = (r[0] for r in results)
                     opts.cb(false, ans)
+
+    update_project_count: (cb) =>
+        @count
+            table : 'projects'
+            cb    : (err, value) =>
+                @set_table_counter
+                    table : 'projects'
+                    value : value
+                    cb    : cb
+
     # If there is a cached version of stats (which has given ttl) return that -- this could have
     # been computed by any of the hubs.  If there is no cached version, compute anew and store
     # in cache for ttl seconds.

            keyspace : undefined
            username : undefined
            password : undefined

        @keyspace = opts.keyspace
        @consistency = 1  # the default consistency (for now)

        #winston.debug("connect using: #{JSON.stringify(opts)}")  # DEBUG ONLY!! output contains sensitive info (the password)!!!


                    else
                        opts.cb(false, results[0][0])

    random_snap_server: (opts) =>
        opts = defaults opts,
            cb        : required
