Changeset 473:b1a12e7a1aa4
- 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
| r472 |
r473 |
|
| 1 | 1 | 2008-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 |
|---|
| 2 | 8 | |
|---|
| 3 | 9 | * foolscap/logging/gatherer.py (IncidentObserver): only fetch one |
|---|
| r459 |
r473 |
|
| 34 | 34 | t = e["header"]["trigger"] |
|---|
| 35 | 35 | self.trigger = (t["incarnation"], t["num"]) |
|---|
| | 36 | if self.options['verbose']: |
|---|
| | 37 | print >>self.options.stdout, e |
|---|
| 36 | 38 | if "d" in e: |
|---|
| 37 | 39 | self.print_event(e) |
|---|
| r416 |
r473 |
|
| 19 | 19 | self.nodeid_s = nodeid_s |
|---|
| 20 | 20 | self.f = savefile |
|---|
| | 21 | |
|---|
| | 22 | def emit_header(self, versions): |
|---|
| | 23 | header = {"header": {"type": "tail", |
|---|
| | 24 | "versions": versions}} |
|---|
| | 25 | pickle.dump(header, self.f) |
|---|
| 21 | 26 | |
|---|
| 22 | 27 | def remote_msg(self, d): |
|---|
| … | … | |
| 64 | 69 | if options["save-to"]: |
|---|
| 65 | 70 | f = open(options["save-to"], "wb") |
|---|
| 66 | | header = {"header": {"type": "tail"}} |
|---|
| 67 | | pickle.dump(header, f) |
|---|
| 68 | 71 | self.saver = LogSaver(target_tubid_s[:8], f) |
|---|
| 69 | 72 | 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) |
|---|
| 70 | 80 | |
|---|
| 71 | 81 | def remote_msg(self, d): |
|---|
| … | … | |
| 119 | 129 | self._tub.connectTo(target_furl, self._got_logpublisher, target_tubid) |
|---|
| 120 | 130 | |
|---|
| 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 | | |
|---|
| 126 | 131 | def _got_logpublisher(self, publisher, target_tubid): |
|---|
| 127 | 132 | d = publisher.callRemote("get_pid") |
|---|
| … | … | |
| 137 | 142 | lp = LogPrinter(self.options, target_tubid) |
|---|
| 138 | 143 | d.addCallback(lambda res: publisher.callRemote("get_versions")) |
|---|
| 139 | | d.addCallback(self._print_versions) |
|---|
| | 144 | d.addCallback(lp.got_versions) |
|---|
| 140 | 145 | catch_up = bool(self.options["catch-up"]) |
|---|
| 141 | 146 | if catch_up: |
|---|