Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar_network/toolkit/rrd.py
diff options
context:
space:
mode:
Diffstat (limited to 'sugar_network/toolkit/rrd.py')
-rw-r--r--sugar_network/toolkit/rrd.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/sugar_network/toolkit/rrd.py b/sugar_network/toolkit/rrd.py
index d8386e5..bacf519 100644
--- a/sugar_network/toolkit/rrd.py
+++ b/sugar_network/toolkit/rrd.py
@@ -203,14 +203,20 @@ class _Db(object):
def first(self):
return self._meta['first'] or 0
- def values(self, timestamp):
+ def values(self, timestamp=None):
+ result = None
if timestamp and timestamp - self.last <= self.step and \
'pending' in self._meta:
- return self._meta['pending']
- info = rrdtool.info(self.path)
- result = {}
- for field in self.field_names:
- result[field] = float(info.get('ds[%s].last_ds' % field) or 0)
+ result = self._meta['pending']
+ elif not timestamp or timestamp == self.last:
+ info = rrdtool.info(self.path)
+ result = {}
+ for field in self.field_names:
+ result[field] = float(info.get('ds[%s].last_ds' % field) or 0)
+ else:
+ timestamp -= self.step
+ for __, result in self.get(timestamp, timestamp, self.step):
+ pass
return result
def put(self, values, timestamp):