@@ 174-197 (lines=24) @@ | ||
171 | See get_raw_history for a full description""" |
|
172 | return self.get_raw_history(item=item) |
|
173 | ||
174 | def get_stats_history(self, item=None, nb=0): |
|
175 | """Return the stats history as a JSON object (dict or None). |
|
176 | Limit to lasts nb items (all if nb=0)""" |
|
177 | s = self.get_json_history(nb=nb) |
|
178 | ||
179 | if item is None: |
|
180 | return self._json_dumps(s) |
|
181 | ||
182 | if isinstance(s, dict): |
|
183 | try: |
|
184 | return self._json_dumps({item: s[item]}) |
|
185 | except KeyError as e: |
|
186 | logger.error("Cannot get item history {0} ({1})".format(item, e)) |
|
187 | return None |
|
188 | elif isinstance(s, list): |
|
189 | try: |
|
190 | # Source: |
|
191 | # http://stackoverflow.com/questions/4573875/python-get-index-of-dictionary-item-in-list |
|
192 | return self._json_dumps({item: map(itemgetter(item), s)}) |
|
193 | except (KeyError, ValueError) as e: |
|
194 | logger.error("Cannot get item history {0} ({1})".format(item, e)) |
|
195 | return None |
|
196 | else: |
|
197 | return None |
|
198 | ||
199 | @property |
|
200 | def input_method(self): |
|
@@ 295-315 (lines=21) @@ | ||
292 | """Return the stats object in JSON format.""" |
|
293 | return self._json_dumps(self.stats) |
|
294 | ||
295 | def get_stats_item(self, item): |
|
296 | """Return the stats object for a specific item in JSON format. |
|
297 | ||
298 | Stats should be a list of dict (processlist, network...) |
|
299 | """ |
|
300 | if isinstance(self.stats, dict): |
|
301 | try: |
|
302 | return self._json_dumps({item: self.stats[item]}) |
|
303 | except KeyError as e: |
|
304 | logger.error("Cannot get item {} ({})".format(item, e)) |
|
305 | return None |
|
306 | elif isinstance(self.stats, list): |
|
307 | try: |
|
308 | # Source: |
|
309 | # http://stackoverflow.com/questions/4573875/python-get-index-of-dictionary-item-in-list |
|
310 | return self._json_dumps({item: map(itemgetter(item), self.stats)}) |
|
311 | except (KeyError, ValueError) as e: |
|
312 | logger.error("Cannot get item {} ({})".format(item, e)) |
|
313 | return None |
|
314 | else: |
|
315 | return None |
|
316 | ||
317 | def get_stats_value(self, item, value): |
|
318 | """Return the stats object for a specific item=value in JSON format. |