Changeset 473:b1a12e7a1aa4

Show
Ignore:
Timestamp:
08/28/08 18:48:19 (4 months ago)
Author:
Brian Warner <warner@allmydata.com>
branch:
default
Message:

flogtool tail: record remote application versions to the savefile, and show them in 'flogtool dump'. For #80.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ChangeLog

    r472 r473  
    112008-08-28  Brian Warner  <warner@lothar.com> 
     2 
     3        * foolscap/logging/tail.py (LogPrinter.got_versions): record 
     4        remote application versions to the --save-to file, in the header. 
     5        Part of #80. 
     6        * foolscap/logging/dumper.py (LogDumper.start): show those 
     7        versions with --verbose 
    28 
    39        * foolscap/logging/gatherer.py (IncidentObserver): only fetch one 
  • foolscap/logging/dumper.py

    r459 r473  
    3434                    t = e["header"]["trigger"] 
    3535                    self.trigger = (t["incarnation"], t["num"]) 
     36                if self.options['verbose']: 
     37                    print >>self.options.stdout, e 
    3638            if "d" in e: 
    3739                self.print_event(e) 
  • foolscap/logging/tail.py

    r416 r473  
    1919        self.nodeid_s = nodeid_s 
    2020        self.f = savefile 
     21 
     22    def emit_header(self, versions): 
     23        header = {"header": {"type": "tail", 
     24                             "versions": versions}} 
     25        pickle.dump(header, self.f) 
    2126 
    2227    def remote_msg(self, d): 
     
    6469        if options["save-to"]: 
    6570            f = open(options["save-to"], "wb") 
    66             header = {"header": {"type": "tail"}} 
    67             pickle.dump(header, f) 
    6871            self.saver = LogSaver(target_tubid_s[:8], f) 
    6972        self.output = output 
     73 
     74    def got_versions(self, versions): 
     75        print "Remote Versions:" 
     76        for k in sorted(versions.keys()): 
     77            print " %s: %s" % (k, versions[k]) 
     78        if self.saver: 
     79            self.saver.emit_header(versions) 
    7080 
    7181    def remote_msg(self, d): 
     
    119129        self._tub.connectTo(target_furl, self._got_logpublisher, target_tubid) 
    120130 
    121     def _print_versions(self, versions): 
    122         print "Remote Versions:" 
    123         for k in sorted(versions.keys()): 
    124             print " %s: %s" % (k, versions[k]) 
    125  
    126131    def _got_logpublisher(self, publisher, target_tubid): 
    127132        d = publisher.callRemote("get_pid") 
     
    137142        lp = LogPrinter(self.options, target_tubid) 
    138143        d.addCallback(lambda res: publisher.callRemote("get_versions")) 
    139         d.addCallback(self._print_versions) 
     144        d.addCallback(lp.got_versions) 
    140145        catch_up = bool(self.options["catch-up"]) 
    141146        if catch_up: