         opts.member_host =  opts.member_host > 0
         dbg = @dbg("set_member_host(member_host=#{opts.member_host})")
         dbg()
-        opts.cb?('set_member_host -- not implemented')
+        opts.cb() # TODO
 
     set_quotas: (opts) =>
         opts = misc.copy_with(opts, ['disk_quota', 'cores', 'memory', 'cpu_shares', 'network',
                                      'mintime', 'member_host', 'cb'])
         dbg = @dbg("set_quotas")
         dbg()
-        opts.cb?('set_quotas -- not implemented')
+        opts.cb() # TODO
 
     set_all_quotas: (opts) =>
         opts = defaults opts,
             cb : required
         dbg = @dbg("set_all_quotas")
         dbg()
-        opts.cb?('set_all_quotas -- not implemented')
-
-
-
-
+        opts.cb() # TODO
+
+
+
+

- Provide the project secret token to the hub

###

{EventEmitter} = require('events')


            cb     : required     # cb(err, {state:?, time:?, error:?})
        dbg = @dbg("state")
        dbg()
        opts.cb(undefined, {state:'running', time:new Date()})

    status: (opts) =>
        opts = defaults opts,
            cb     : required
        dbg = @dbg("status")
        dbg()
        status =
            "sage_server.pid"     : false
            "secret_token"        : 'secret'  # TODO
            "local_hub.port"      : LOCAL_HUB_PORT
            "raw.port"            : RAW_PORT
            "sage_server.port"    : false
            "local_hub.pid"       : 5     # TODO
            "console_server.pid"  : false
            "console_server.port" : false
        status.quotas = {}
        status.host = status.ssh = 'host'
        opts.cb(undefined, status)

    open: (opts) =>
        opts = defaults opts,
            cb   : required
        dbg = @dbg("open")
        dbg()
        opts.cb()

    start: (opts) =>
        opts = defaults opts,
