diff --git a/allmydata/manhole.py b/allmydata/manhole.py index dfc7af3f8..02daaf5bc 100644 --- a/allmydata/manhole.py +++ b/allmydata/manhole.py @@ -133,9 +133,14 @@ class _BaseManhole(service.MultiService): def makeNamespace(): # close over 'self' so we can get access to .parent later - namespace = { - 'app': self.parent, - } + import types + import debugshell + debugshell.app = self.parent # make client/queen accesible via 'app' + namespace = {} + for sym in dir(debugshell): + if sym.startswith('__') and sym.endswith('__'): + continue + namespace[sym] = getattr(debugshell, sym) return namespace def makeProtocol(): diff --git a/debugshell.py b/debugshell.py new file mode 100644 index 000000000..130c90999 --- /dev/null +++ b/debugshell.py @@ -0,0 +1,17 @@ +import os + +def get_random_bucket_on(nodeid, size=200): + d = app.get_remote_service(nodeid, 'storageserver') + def get_bucket(rss): + return rss.callRemote('allocate_bucket', + verifierid=os.urandom(20), + bucket_num=26, + size=size, + leaser=app.tub.tubID, + ) + d.addCallback(get_bucket) + return d + +def write_to_bucket(bucket, bytes=100): + return bucket.callRemote('write', data=os.urandom(bytes)) +