Transit: blur the file sizes too
This commit is contained in:
parent
6537e59e09
commit
bd912a73ee
|
@ -10,6 +10,18 @@ HOUR = 60*MINUTE
|
||||||
DAY = 24*HOUR
|
DAY = 24*HOUR
|
||||||
MB = 1000*1000
|
MB = 1000*1000
|
||||||
|
|
||||||
|
def round_to(size, coarseness):
|
||||||
|
return int(coarseness*(1+int((size-1)/coarseness)))
|
||||||
|
|
||||||
|
def blur_size(size):
|
||||||
|
if size == 0:
|
||||||
|
return 0
|
||||||
|
if size < 1e6:
|
||||||
|
return round_to(size, 10e3)
|
||||||
|
if size < 1e9:
|
||||||
|
return round_to(size, 1e6)
|
||||||
|
return round_to(size, 100e6)
|
||||||
|
|
||||||
class TransitConnection(protocol.Protocol):
|
class TransitConnection(protocol.Protocol):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._got_token = False
|
self._got_token = False
|
||||||
|
@ -173,6 +185,7 @@ class Transit(protocol.ServerFactory, service.MultiService):
|
||||||
log.msg("Transit.recordUsage (%dB)" % total_bytes)
|
log.msg("Transit.recordUsage (%dB)" % total_bytes)
|
||||||
if self._blur_usage:
|
if self._blur_usage:
|
||||||
started = self._blur_usage * (started // self._blur_usage)
|
started = self._blur_usage * (started // self._blur_usage)
|
||||||
|
total_bytes = blur_size(total_bytes)
|
||||||
self._db.execute("INSERT INTO `usage`"
|
self._db.execute("INSERT INTO `usage`"
|
||||||
" (`type`, `started`, `result`, `total_bytes`,"
|
" (`type`, `started`, `result`, `total_bytes`,"
|
||||||
" `total_time`, `waiting_time`)"
|
" `total_time`, `waiting_time`)"
|
||||||
|
|
|
@ -8,7 +8,7 @@ from twisted.internet.threads import deferToThread
|
||||||
from twisted.web.client import getPage, Agent, readBody
|
from twisted.web.client import getPage, Agent, readBody
|
||||||
from .. import __version__
|
from .. import __version__
|
||||||
from .common import ServerBase
|
from .common import ServerBase
|
||||||
from ..servers import relay_server
|
from ..servers import relay_server, transit_server
|
||||||
from ..twisted.eventsource_twisted import EventSource
|
from ..twisted.eventsource_twisted import EventSource
|
||||||
|
|
||||||
class Reachable(ServerBase, unittest.TestCase):
|
class Reachable(ServerBase, unittest.TestCase):
|
||||||
|
@ -429,3 +429,23 @@ class Summary(unittest.TestCase):
|
||||||
(1, "quiet", 40, 9))
|
(1, "quiet", 40, 9))
|
||||||
self.failUnlessEqual(c._summarize(make_moods(None, "scary"), 41),
|
self.failUnlessEqual(c._summarize(make_moods(None, "scary"), 41),
|
||||||
(1, "scary", 40, 9))
|
(1, "scary", 40, 9))
|
||||||
|
|
||||||
|
class Transit(unittest.TestCase):
|
||||||
|
def test_blur_size(self):
|
||||||
|
blur = transit_server.blur_size
|
||||||
|
self.failUnlessEqual(blur(0), 0)
|
||||||
|
self.failUnlessEqual(blur(1), 10e3)
|
||||||
|
self.failUnlessEqual(blur(10e3), 10e3)
|
||||||
|
self.failUnlessEqual(blur(10e3+1), 20e3)
|
||||||
|
self.failUnlessEqual(blur(15e3), 20e3)
|
||||||
|
self.failUnlessEqual(blur(20e3), 20e3)
|
||||||
|
self.failUnlessEqual(blur(1e6), 1e6)
|
||||||
|
self.failUnlessEqual(blur(1e6+1), 2e6)
|
||||||
|
self.failUnlessEqual(blur(1.5e6), 2e6)
|
||||||
|
self.failUnlessEqual(blur(2e6), 2e6)
|
||||||
|
self.failUnlessEqual(blur(900e6), 900e6)
|
||||||
|
self.failUnlessEqual(blur(1000e6), 1000e6)
|
||||||
|
self.failUnlessEqual(blur(1050e6), 1100e6)
|
||||||
|
self.failUnlessEqual(blur(1100e6), 1100e6)
|
||||||
|
self.failUnlessEqual(blur(1150e6), 1200e6)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user