@@ 193-216 (lines=24) @@ | ||
190 | See get_raw_history for a full description""" |
|
191 | return self.get_raw_history(item=item) |
|
192 | ||
193 | def get_stats_history(self, item=None, nb=0): |
|
194 | """Return the stats history as a JSON object (dict or None). |
|
195 | Limit to lasts nb items (all if nb=0)""" |
|
196 | s = self.get_json_history(nb=nb) |
|
197 | ||
198 | if item is None: |
|
199 | return self._json_dumps(s) |
|
200 | ||
201 | if isinstance(s, dict): |
|
202 | try: |
|
203 | return self._json_dumps({item: s[item]}) |
|
204 | except KeyError as e: |
|
205 | logger.error("Cannot get item history {} ({})".format(item, e)) |
|
206 | return None |
|
207 | elif isinstance(s, list): |
|
208 | try: |
|
209 | # Source: |
|
210 | # http://stackoverflow.com/questions/4573875/python-get-index-of-dictionary-item-in-list |
|
211 | return self._json_dumps({item: map(itemgetter(item), s)}) |
|
212 | except (KeyError, ValueError) as e: |
|
213 | logger.error("Cannot get item history {} ({})".format(item, e)) |
|
214 | return None |
|
215 | else: |
|
216 | return None |
|
217 | ||
218 | @property |
|
219 | def input_method(self): |
|
@@ 314-334 (lines=21) @@ | ||
311 | """Return the stats object in JSON format.""" |
|
312 | return self._json_dumps(self.stats) |
|
313 | ||
314 | def get_stats_item(self, item): |
|
315 | """Return the stats object for a specific item in JSON format. |
|
316 | ||
317 | Stats should be a list of dict (processlist, network...) |
|
318 | """ |
|
319 | if isinstance(self.stats, dict): |
|
320 | try: |
|
321 | return self._json_dumps({item: self.stats[item]}) |
|
322 | except KeyError as e: |
|
323 | logger.error("Cannot get item {} ({})".format(item, e)) |
|
324 | return None |
|
325 | elif isinstance(self.stats, list): |
|
326 | try: |
|
327 | # Source: |
|
328 | # http://stackoverflow.com/questions/4573875/python-get-index-of-dictionary-item-in-list |
|
329 | return self._json_dumps({item: map(itemgetter(item), self.stats)}) |
|
330 | except (KeyError, ValueError) as e: |
|
331 | logger.error("Cannot get item {} ({})".format(item, e)) |
|
332 | return None |
|
333 | else: |
|
334 | return None |
|
335 | ||
336 | def get_stats_value(self, item, value): |
|
337 | """Return the stats object for a specific item=value in JSON format. |