From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 659EE138200 for ; Fri, 16 Aug 2013 12:42:28 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2E060E0C27; Fri, 16 Aug 2013 12:42:25 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 6DEFFE0C27 for ; Fri, 16 Aug 2013 12:42:24 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 33F7733EC9D for ; Fri, 16 Aug 2013 12:42:23 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id B85DAE468F for ; Fri, 16 Aug 2013 12:42:21 +0000 (UTC) From: "André Erdmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "André Erdmann" Message-ID: <1376656570.cb7c0eddabe5e7211d51efa7779f1fac344288b4.dywi@gentoo> Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/db/ X-VCS-Repository: proj/R_overlay X-VCS-Files: roverlay/db/rrdtool.py X-VCS-Directories: roverlay/db/ X-VCS-Committer: dywi X-VCS-Committer-Name: André Erdmann X-VCS-Revision: cb7c0eddabe5e7211d51efa7779f1fac344288b4 X-VCS-Branch: master Date: Fri, 16 Aug 2013 12:42:21 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 9fb07edf-f2ab-48ba-8970-6fdf33ccbb29 X-Archives-Hash: 7ecb55dfefc887351f826e386ca918f8 commit: cb7c0eddabe5e7211d51efa7779f1fac344288b4 Author: André Erdmann mailerd de> AuthorDate: Fri Aug 16 12:36:10 2013 +0000 Commit: André Erdmann mailerd de> CommitDate: Fri Aug 16 12:36:10 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=cb7c0edd roverlay/db/rrdtool: handle UNKNOWN values --- roverlay/db/rrdtool.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/roverlay/db/rrdtool.py b/roverlay/db/rrdtool.py index d3c9d6d..bd98492 100644 --- a/roverlay/db/rrdtool.py +++ b/roverlay/db/rrdtool.py @@ -20,6 +20,7 @@ from roverlay.tools.runcmd import run_command, run_command_get_output import roverlay.util import roverlay.util.objects + class RRDVariable ( object ): DST = frozenset ({ 'GAUGE', 'COUNTER', 'DERIVE', 'ABSOLUTE', }) @@ -131,6 +132,8 @@ class RRDArchive ( object ): class RRD ( object ): # should be subclassed 'cause _do_create() is not implemented here + KNOWN_UNKNOWN = frozenset ({ 'U', 'UNKNOWN', '-nan', 'nan', }) + RRDTOOL_CMDV_HEAD = ( 'rrdtool', ) LOGGER = logging.getLogger ( 'RRD' ) @@ -278,17 +281,20 @@ class RRD ( object ): def make_cache ( self, mask=-1, clear_cache=False ): def convert_value ( str_value, value_type ): - try: - if value_type == 'GAUGE': - ret = float ( str_value ) - elif value_type in { 'COUNTER', 'DERIVE', 'ABSOLUTE' }: - ret = int ( str_value ) - else: - ret = str_value - except ValueError: - return str_value + if str_value.lower() in self.KNOWN_UNKNOWN: + return None else: - return ret + try: + if value_type == 'GAUGE': + ret = float ( str_value ) + elif value_type in { 'COUNTER', 'DERIVE', 'ABSOLUTE' }: + ret = int ( str_value ) + else: + ret = str_value + except ValueError: + return str_value + else: + return ret # --- end of convert_value (...) --- if clear_cache or not self.cache: