Ticket #1160: patch-3-tolerate-unretired-DYHB.diff
File patch-3-tolerate-unretired-DYHB.diff, 3.7 KB (added by warner, at 2010-08-09T22:30:26Z) |
---|
-
src/allmydata/test/test_web.py
diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py index e2bd985..dfaaabd 100644
a b 1 1 2 import os.path, re, urllib 2 import os.path, re, urllib, time 3 3 import simplejson 4 4 from StringIO import StringIO 5 5 from twisted.application import service … … class FakeUploader(service.Service): 74 74 def get_helper_info(self): 75 75 return (None, False) 76 76 77 def build_one_ds(): 78 ds = DownloadStatus("storage_index", 1234) 79 now = time.time() 80 81 ds.add_segment_request(0, now) 82 # segnum, when, start,len, decodetime 83 ds.add_segment_delivery(0, now+1, 0, 100, 0.5) 84 ds.add_segment_request(1, now+2) 85 ds.add_segment_error(1, now+3) 86 87 e = ds.add_dyhb_sent("serverid_a", now) 88 e.finished([1,2], now+1) 89 e = ds.add_dyhb_sent("serverid_b", now+2) # left unfinished 90 91 e = ds.add_read_event(0, 120, now) 92 e.update(60, 0.5, 0.1) # bytes, decrypttime, pausetime 93 e.finished(now+1) 94 e = ds.add_read_event(120, 30, now+2) # left unfinished 95 96 e = ds.add_request_sent("serverid_a", 1, 100, 20, now) 97 e.finished(20, now+1) 98 e = ds.add_request_sent("serverid_a", 1, 120, 30, now+1) # left unfinished 99 100 # make sure that add_read_event() can come first too 101 ds1 = DownloadStatus("storage_index", 1234) 102 e = ds1.add_read_event(0, 120, now) 103 e.update(60, 0.5, 0.1) # bytes, decrypttime, pausetime 104 e.finished(now+1) 105 106 return ds 107 77 108 class FakeHistory: 78 109 _all_upload_status = [upload.UploadStatus()] 79 _all_download_status = [ DownloadStatus("storage_index", 1234)]110 _all_download_status = [build_one_ds()] 80 111 _all_mapupdate_statuses = [servermap.UpdateStatus()] 81 112 _all_publish_statuses = [publish.PublishStatus()] 82 113 _all_retrieve_statuses = [retrieve.RetrieveStatus()] … … class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi 516 547 def _check_dl(res): 517 548 self.failUnless("File Download Status" in res, res) 518 549 d.addCallback(_check_dl) 550 d.addCallback(lambda res: self.GET("/status/down-%d?t=json" % dl_num)) 551 def _check_dl_json(res): 552 data = simplejson.loads(res) 553 self.failUnless(isinstance(data, dict)) 554 d.addCallback(_check_dl_json) 519 555 d.addCallback(lambda res: self.GET("/status/up-%d" % ul_num)) 520 556 def _check_ul(res): 521 557 self.failUnless("File Upload Status" in res, res) -
src/allmydata/web/status.py
diff --git a/src/allmydata/web/status.py b/src/allmydata/web/status.py index 636a2db..8af453c 100644
a b class DownloadStatusPage(DownloadResultsRendererMixin, rend.Page): 413 413 for d_ev in dyhb_events: 414 414 (serverid, sent, shnums, received) = d_ev 415 415 serverid_s = idlib.shortnodeid_b2a(serverid) 416 rtt = received - sent 416 rtt = None 417 if received is not None: 418 rtt = received - sent 419 if not shnums: 420 shnums = [] 417 421 t[T.tr(style="background: %s" % self.color(serverid))[ 418 422 [T.td[serverid_s], T.td[srt(sent)], T.td[srt(received)], 419 423 T.td[",".join([str(shnum) for shnum in shnums])], … … class DownloadStatusPage(DownloadResultsRendererMixin, rend.Page): 427 431 T.td["speed"]]] 428 432 for r_ev in self.download_status.read_events: 429 433 (start, length, requesttime, finishtime, bytes, decrypt, paused) = r_ev 430 #print r_ev431 434 if finishtime is not None: 432 435 rtt = finishtime - requesttime - paused 433 436 speed = self.render_rate(None, 1.0 * bytes / rtt)