Ejemplo n.º 1
0
def interactive_client(file, host, port, cache_size, readonly, repair,
                       startup):
    if file:
        storage = FileStorage(file, readonly=readonly, repair=repair)
        description = file
    else:
        wait_for_server(host, port)
        storage = ClientStorage(host=host, port=port)
        description = "%s:%s" % (host, port)
    connection = Connection(storage, cache_size=cache_size)
    namespace = {'connection': connection,
                 'root': connection.get(0),
                 'get': connection.get,
                 'sys': sys,
                 'os': os,
                 'p64': p64,
                 'u64': u64,
                 'pp': pprint}
    configure_readline(namespace, os.path.expanduser("~/.durushistory"))
    console = InteractiveConsole(namespace)
    if startup:
        console.runsource('execfile("%s")' % os.path.expanduser(startup))
    help = ('    connection -> the connection\n'
            '    root       -> get(0)\n'
            '    get(oid)   -> get an object\n'
            '    pp(object) -> pretty-print')
    console.interact('Durus (%s)\n%s' % (description, help))
Ejemplo n.º 2
0
def interactive_client(file, address, cache_size, readonly, repair,
                       startup, storage_class=None):
    if file:
        storage = get_storage(file, storage_class=storage_class,
                readonly=readonly, repair=repair)
        description = file
    else:
        socket_address = SocketAddress.new(address)
        wait_for_server(address=socket_address)
        storage = ClientStorage(address=socket_address)
        description = socket_address
    connection = Connection(storage, cache_size=cache_size)
    console_module = ModuleType('__console__')
    sys.modules['__console__'] = console_module
    namespace = {'connection': connection,
                 'root': connection.get_root(),
                 'get': connection.get,
                 'sys': sys,
                 'os': os,
                 'int8_to_str': int8_to_str,
                 'str_to_int8': str_to_int8,
                 'pp': pprint}
    vars(console_module).update(namespace)
    configure_readline(
        vars(console_module), os.path.expanduser("~/.durushistory"))
    console = InteractiveConsole(vars(console_module))
    if startup:
        console.runsource('execfile("%s")' % os.path.expanduser(startup))
    help = ('    connection -> the Connection\n'
            '    root       -> the root instance')
    console.interact('Durus %s\n%s' % (description, help))
Ejemplo n.º 3
0
def interactive_client(file, address, cache_size, readonly, repair,
                       startup):
    if file:
        storage = FileStorage(file, readonly=readonly, repair=repair)
        description = file
    else:
        socket_address = SocketAddress.new(address)
        wait_for_server(address=socket_address)
        storage = ClientStorage(address=socket_address)
        description = socket_address
    connection = Connection(storage, cache_size=cache_size)
    console_module = ModuleType('__console__')
    sys.modules['__console__'] = console_module
    namespace = {'connection': connection,
                 'root': connection.get_root(),
                 'get': connection.get,
                 'sys': sys,
                 'os': os,
                 'int8_to_str': int8_to_str,
                 'str_to_int8': str_to_int8,
                 'pp': pprint}
    vars(console_module).update(namespace)
    configure_readline(
        vars(console_module), os.path.expanduser("~/.durushistory"))
    console = InteractiveConsole(vars(console_module))
    if startup:
        src = '''with open('{fn}', 'rb') as _:
                     _ = compile(_.read(), '{fn}', 'exec')
                     exec(globals().pop('_'))
        '''.format(fn = os.path.expanduser(startup)).rstrip()
        console.runsource(src, '-stub-', 'exec')
    help = ('    connection -> the Connection\n'
            '    root       -> the root instance')
    console.interact('Durus %s\n%s' % (description, help))
Ejemplo n.º 4
0
def pack_storage_main():
    parser = OptionParser()
    parser.set_description("Packs a Durus storage.")
    parser.add_option(
        '--file',
        dest="file",
        default=None,
        help="If this is not given, the storage is through a Durus server.")
    parser.add_option('--port',
                      dest="port",
                      default=DEFAULT_PORT,
                      type="int",
                      help="Port the server is on. (default=%s)" %
                      DEFAULT_PORT)
    parser.add_option('--host',
                      dest="host",
                      default=DEFAULT_HOST,
                      help="Host of the server. (default=%s)" % DEFAULT_HOST)
    (options, args) = parser.parse_args()
    if options.file is None:
        wait_for_server(options.host, options.port)
        storage = ClientStorage(host=options.host, port=options.port)
    else:
        storage = FileStorage(options.file)
    connection = Connection(storage)
    connection.pack()
Ejemplo n.º 5
0
 def _pre(self):
     self.port = 9123
     self.filename = mktemp()
     cmd = [sys.executable, __main__.__file__,
         '-s', '--file=%s' % self.filename]
     cmd.append("--port=%s" % self.address[1])
     output = open(devnull, 'w')
     x = Popen(cmd, stdout=output, stderr=output)
     wait_for_server(address=self.address, sleeptime=1)
Ejemplo n.º 6
0
 def _pre(self):
     self.port = 9123
     self.filename = mktemp()
     cmd = [
         sys.executable, __main__.__file__, '-s',
         '--file=%s' % self.filename
     ]
     cmd.append("--port=%s" % self.address[1])
     output = open(devnull, 'w')
     x = Popen(cmd, stdout=output, stderr=output)
     wait_for_server(address=self.address, sleeptime=1)
Ejemplo n.º 7
0
 def _pre(self):
     self.filename = mktemp()
     cmd = [sys.executable, __main__.__file__, 
         '-s', '--file=%s' % self.filename]
     if isinstance(self.address, tuple):
         cmd.append("--port=%s" % self.address[1])
     else:
         cmd.append("--address=%s" % self.address)
     cmd.append("--logginglevel=1")
     output = open(devnull, 'w')
     #output = sys.__stdout__
     Popen(cmd, stdout=output, stderr=output)
     wait_for_server(address=self.address, sleeptime=1, maxtries=10)
Ejemplo n.º 8
0
def pack_storage_main():
    parser = ArgumentParser("Packs a Durus storage.")
    parser.add_argument(
        '--file', dest="file", default=None,
        help="If this is not given, the storage is through a Durus server.")
    parser.add_argument(
        '--port', dest="port", default=DEFAULT_PORT,
        type=int,
        help="Port the server is on. (default=%s)" % DEFAULT_PORT)
    parser.add_argument(
        '--host', dest="host", default=DEFAULT_HOST,
        help="Host of the server. (default=%s)" % DEFAULT_HOST)
    args = parser.parse_args()
    if args.file is None:
        wait_for_server(args.host, args.port)
        storage = ClientStorage(host=args.host, port=args.port)
    else:
        storage = FileStorage(args.file)
    connection = Connection(storage)
    connection.pack()
Ejemplo n.º 9
0
def pack_storage_main():
    parser = OptionParser()
    parser.set_description("Packs a Durus storage.")
    parser.add_option(
        '--file', dest="file", default=None,
        help="If this is not given, the storage is through a Durus server.")
    parser.add_option(
        '--port', dest="port", default=DEFAULT_PORT,
        type="int",
        help="Port the server is on. (default=%s)" % DEFAULT_PORT)
    parser.add_option(
        '--host', dest="host", default=DEFAULT_HOST,
        help="Host of the server. (default=%s)" % DEFAULT_HOST)
    (options, args) = parser.parse_args()
    if options.file is None:
        wait_for_server(options.host, options.port)
        storage = ClientStorage(host=options.host, port=options.port)
    else:
        storage = get_storage(options.file)
    connection = Connection(storage)
    connection.pack()