Пример #1
0
    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)]
Пример #2
0
    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)]
Пример #3
0
    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)]
Пример #4
0
    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)]
Пример #5
0
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()))
Пример #6
0
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()))
Пример #7
0
 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))
Пример #8
0
 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))
Пример #9
0
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))
Пример #10
0
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))
Пример #11
0
def ledger_number(print, server, numbers):
    print(Range.to_string(numbers))
Пример #12
0
 def round_trip(self, s, *items):
     self.assertEquals(Range.from_string(s), set(items))
     self.assertEquals(Range.to_string(items), s)
Пример #13
0
def ledger_number(print, server, numbers):
    print(Range.to_string(numbers))
Пример #14
0
 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'))
Пример #15
0
 def test_names(self):
     self.assertEquals(
         Range.from_string('first,last,current', first=1, last=3, current=5),
         set([1, 3, 5]))
Пример #16
0
    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')
Пример #17
0
def ledger_number(server, numbers):
    yield Range.to_string(numbers)
Пример #18
0
 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'))
Пример #19
0
 def test_names(self):
     self.assertEquals(
         Range.from_string('first,last,current', first=1, last=3,
                           current=5), set([1, 3, 5]))
Пример #20
0
    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')
Пример #21
0
 def round_trip(self, s, *items):
     self.assertEquals(Range.from_string(s), set(items))
     self.assertEquals(Range.to_string(items), s)
Пример #22
0
def ledger_number(server, numbers):
    yield Range.to_string(numbers)