def __init__(self): cfg_file = File.normalize(ARGS.config or 'rippled.cfg') self.config = ConfigFile.read(open(cfg_file)) if ARGS.database != ARGS.NONE: reader = DatabaseReader.DatabaseReader(self.config) else: reader = RippledReader.RippledReader(self.config) self.reader = reader self.complete = reader.complete names = { 'closed': reader.name_to_ledger_index('closed'), 'current': reader.name_to_ledger_index('current'), 'validated': reader.name_to_ledger_index('validated'), 'first': self.complete[0] if self.complete else None, 'last': self.complete[-1] if self.complete else None, } self.__dict__.update(names) self.ledgers = sorted(Range.join_ranges(*ARGS.ledgers, **names)) def make_cache(is_full): name = 'full' if is_full else 'summary' filepath = os.path.join(ARGS.cache, name) creator = lambda n: reader.get_ledger(n, is_full) return FileCache(filepath, creator) self._caches = [make_cache(False), make_cache(True)]
def __init__(self): if ARGS.rippled: reader = RippledReader.RippledReader() else: reader = ServerReader.ServerReader() self.reader = reader self.complete = reader.complete names = { 'closed': reader.name_to_ledger_index('closed'), 'current': reader.name_to_ledger_index('current'), 'validated': reader.name_to_ledger_index('validated'), 'first': self.complete[0] if self.complete else None, 'last': self.complete[-1] if self.complete else None, } self.__dict__.update(names) self.ledgers = sorted(Range.join_ranges(*ARGS.ledgers, **names)) def make_cache(is_full): name = 'full' if is_full else 'summary' filepath = os.path.join(ARGS.cache, name) creator = lambda n: reader.get_ledger(n, is_full) return FileCache(filepath, creator) self._caches = [make_cache(False), make_cache(True)]
def __init__(self): if ARGS.rippled: reader = RippledReader.RippledReader() else: reader = ServerReader.ServerReader() self.reader = reader self.complete = reader.complete names = { 'closed': reader.name_to_ledger_index('closed'), 'current': reader.name_to_ledger_index('current'), 'validated': reader.name_to_ledger_index('validated'), 'first': self.complete[0] if self.complete else None, 'last': self.complete[-1] if self.complete else None , } self.__dict__.update(names) self.ledgers = sorted(Range.join_ranges(*ARGS.ledgers, **names)) def make_cache(is_full): name = 'full' if is_full else 'summary' filepath = os.path.join(ARGS.cache, name) creator = lambda n: reader.get_ledger(n, is_full) return FileCache(filepath, creator) self._caches = [make_cache(False), make_cache(True)]
def info(server): Log.out('first =', server.first) Log.out('last =', server.last) Log.out('closed =', server.closed) Log.out('current =', server.current) Log.out('validated =', server.validated) Log.out('complete =', Range.to_string(server.complete)) if ARGS.full: Log.out(pretty_print(server.info()))
def info(server): Log.out('first = ', server.first) Log.out('last = ', server.last) Log.out('closed =', server.closed) Log.out('current =', server.current) Log.out('validated =', server.validated) Log.out('complete =', Range.to_string(server.complete)) if ARGS.full: Log.out(pretty_print(server.info()))
def __init__(self, config): fname = File.normalize(ARGS.rippled) if not os.path.exists(fname): raise Exception('No rippled found at %s.' % fname) self.cmd = [fname] if ARGS.config: self.cmd.extend(['--conf', File.normalize(ARGS.config)]) self.info = self._command('server_info')['info'] c = self.info.get('complete_ledgers') if c == 'empty': self.complete = [] else: self.complete = sorted(Range.from_string(c))
def __init__(self): fname = File.normalize(ARGS.rippled) if not os.path.exists(fname): raise Exception('No rippled found at %s.' % fname) self.cmd = [fname] if ARGS.config: self.cmd.extend(['--conf', _normalize(ARGS.config)]) self.info = self._command('server_info')['info'] c = self.info.get('complete_ledgers') if c == 'empty': self.complete = [] else: self.complete = sorted(Range.from_string(c))
def cache(server, clear=False): cache = server.cache(ARGS.full) name = ['summary', 'full'][ARGS.full] files = cache.file_count() if not files: Log.error('No files in %s cache.' % name) elif clear: if not clear.strip() == 'clear': raise Exception("Don't understand 'clear %s'." % clear) if not ARGS.yes: yes = raw_input('OK to clear %s cache? (y/N) ' % name) if not yes.lower().startswith('y'): Log.out('Cancelled.') return cache.clear(ARGS.full) Log.out('%s cache cleared - %d file%s deleted.' % (name.capitalize(), files, '' if files == 1 else 's')) else: caches = (int(c) for c in cache.cache_list()) Log.out(Range.to_string(caches))
def ledger_number(print, server, numbers): print(Range.to_string(numbers))
def round_trip(self, s, *items): self.assertEquals(Range.from_string(s), set(items)) self.assertEquals(Range.to_string(items), s)
def test_is_range(self): self.assertTrue(Range.is_range('')) self.assertTrue(Range.is_range('10')) self.assertTrue(Range.is_range('10,12')) self.assertFalse(Range.is_range('10,12,fred')) self.assertTrue(Range.is_range('10,12,fred', 'fred'))
def test_names(self): self.assertEquals( Range.from_string('first,last,current', first=1, last=3, current=5), set([1, 3, 5]))
action='store_true', help='If true, don\'t ask for confirmation on large commands.', ) # Read the arguments from the command line. ARGS = _parser.parse_args() ARGS.NONE = NONE Log.VERBOSE = ARGS.verbose # Now remove any items that look like ledger numbers from the command line. _command = ARGS.command _parts = (ARGS.command, ARGS.ledgers) = ([], []) for c in _command: _parts[Range.is_range(c, *LedgerNumber.LEDGERS)].append(c) ARGS.command = ARGS.command or ['print' if ARGS.ledgers else 'info'] ARGS.cache = File.normalize(ARGS.cache) if not ARGS.ledgers: if ARGS.condition: Log.warn('--condition needs a range of ledgers') if ARGS.display: Log.warn('--display needs a range of ledgers') ARGS.condition = Function( ARGS.condition or 'all_ledgers', 'ripple.ledger.conditions') ARGS.display = Function( ARGS.display or 'ledger_number', 'ripple.ledger.displays')
def ledger_number(server, numbers): yield Range.to_string(numbers)
action='store_true', help='If true, don\'t ask for confirmation on large commands.', ) # Read the arguments from the command line. ARGS = _parser.parse_args() ARGS.NONE = NONE Log.VERBOSE = ARGS.verbose # Now remove any items that look like ledger numbers from the command line. _command = ARGS.command _parts = (ARGS.command, ARGS.ledgers) = ([], []) for c in _command: _parts[Range.is_range(c, *LedgerNumber.LEDGERS)].append(c) ARGS.command = ARGS.command or ['print' if ARGS.ledgers else 'info'] ARGS.cache = File.normalize(ARGS.cache) if not ARGS.ledgers: if ARGS.condition: Log.warn('--condition needs a range of ledgers') if ARGS.display: Log.warn('--display needs a range of ledgers') ARGS.condition = Function(ARGS.condition or 'all_ledgers', 'ripple.ledger.conditions') ARGS.display = Function(ARGS.display or 'ledger_number', 'ripple.ledger.displays')