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 1964C1381F3 for ; Fri, 16 Aug 2013 13:13:46 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 93221E0D25; Fri, 16 Aug 2013 13:13:41 +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 0A1D4E0D25 for ; Fri, 16 Aug 2013 13:13:40 +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 ABDA033ECBE for ; Fri, 16 Aug 2013 13:13:39 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 2AF17E468F for ; Fri, 16 Aug 2013 13:13:38 +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: <1376658713.63f53086f703b1e7e85ebffecdbe3522beb516d4.dywi@gentoo> Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/db/, roverlay/stats/ X-VCS-Repository: proj/R_overlay X-VCS-Files: roverlay/db/rrdtool.py roverlay/stats/rating.py X-VCS-Directories: roverlay/db/ roverlay/stats/ X-VCS-Committer: dywi X-VCS-Committer-Name: André Erdmann X-VCS-Revision: 63f53086f703b1e7e85ebffecdbe3522beb516d4 X-VCS-Branch: master Date: Fri, 16 Aug 2013 13:13:38 +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: fa03846c-210a-4c3f-a8d0-a525d42375eb X-Archives-Hash: 08679f4050a8b48cc73c67d24b24906d commit: 63f53086f703b1e7e85ebffecdbe3522beb516d4 Author: André Erdmann mailerd de> AuthorDate: Fri Aug 16 13:11:53 2013 +0000 Commit: André Erdmann mailerd de> CommitDate: Fri Aug 16 13:11:53 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=63f53086 roverlay, stats rating: fixup * KNOWN_UNKNOWN must not contain mixed/uppercase words * using has_issues() instead of "not is_ok()" when generating suggestions * search for unknown values, not keys when generating suggestions --- roverlay/db/rrdtool.py | 2 +- roverlay/stats/rating.py | 45 +++++++++++++++++++++++++++++---------------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/roverlay/db/rrdtool.py b/roverlay/db/rrdtool.py index bd98492..b326e7d 100644 --- a/roverlay/db/rrdtool.py +++ b/roverlay/db/rrdtool.py @@ -132,7 +132,7 @@ class RRDArchive ( object ): class RRD ( object ): # should be subclassed 'cause _do_create() is not implemented here - KNOWN_UNKNOWN = frozenset ({ 'U', 'UNKNOWN', '-nan', 'nan', }) + KNOWN_UNKNOWN = frozenset ({ 'u', 'unknown', '-nan', 'nan', }) RRDTOOL_CMDV_HEAD = ( 'rrdtool', ) diff --git a/roverlay/stats/rating.py b/roverlay/stats/rating.py index 3f6b9e0..eb0559e 100644 --- a/roverlay/stats/rating.py +++ b/roverlay/stats/rating.py @@ -51,6 +51,8 @@ class StatsRating ( object ): STATUS_CRIT_LOW = STATUS_CRIT | STATUS_TOO_LOW STATUS_CRIT_HIGH = STATUS_CRIT | STATUS_TOO_HIGH + STATUS_ISSUES = STATUS_WARN | STATUS_ERR | STATUS_CRIT + STATUS_FAIL = ( ( 2**8 ) - 1 ) ^ STATUS_OK @@ -89,9 +91,20 @@ class NumStatsCounterRating ( StatsRating ): # --- end of new_fail_counter (...) --- def get_value ( self, unknown_value=0 ): - return self.value or unknown_value + v = self.value + return v if v is not None else unknown_value # --- end of get_value (...) --- + def get_value_str ( self, unknown_value="unknown" ): + v = self.value + return str ( v ) if v is not None else unknown_value + # --- end of get_value_str (...) --- + + @property + def value_str ( self ): + return self.get_value_str() + # --- end of value_str (...) --- + def get_rating ( self, value ): if value is None: return self.STATUS_UNDEF @@ -134,6 +147,10 @@ class NumStatsCounterRating ( StatsRating ): return self.status & self.STATUS_CRIT # --- end of is_critical (...) --- + def has_issues ( self ): + return self.status & self.STATUS_ISSUES + # --- end of has_issues (...) --- + def is_ok ( self ): return self.status == self.STATUS_OK # --- end of is_ok (...) --- @@ -152,7 +169,9 @@ class NumStatsCounterRating ( StatsRating ): def get_item ( self, item_ok, item_warn, item_err, item_crit, item_undef ): status = self.status - if self.status & self.STATUS_CRIT: + if self.status & self.STATUS_UNDEF: + return item_undef + elif self.status & self.STATUS_CRIT: return item_crit elif self.status & self.STATUS_ERR: return item_err @@ -326,19 +345,19 @@ class RoverlayNumStatsRating ( NumStatsRating ): code_format = { 'cstart': "", 'cend': "", } - if any ( value is None for value in self.values ): + if any ( value is None for value in self.values.values() ): yield ( "database contains UNKNOWNS", [ "run roverlay", ] ) - if not self.pc_repo.is_ok(): + if self.pc_repo.has_issues(): yield ( "low repo package count", [ "check the repo config file", "drop repos without packages" ] ) - if not self.pc_distmap.is_ok(): + if self.pc_distmap.has_issues(): details = [ 'run {cstart}roverlay --distmap-verify{cend} to fix ' 'the distmap'.format ( **code_format ) @@ -365,13 +384,9 @@ class RoverlayNumStatsRating ( NumStatsRating ): "no ebuilds created (not an issue in incremental mode)", None ) - elif not self.pc_success.is_ok(): - yield ( - "only a few ebuilds created (not an issue in incremental mode)", - None - ) - if self.pc_fail.get_value() > 0 or not self.pc_success.is_ok(): + + if self.pc_fail.get_value() > 0 or self.pc_success.has_issues(): details = [] if self.pc_fail_dep.get_value() > 0: details.append ( "write dependency rules" ) @@ -387,23 +402,21 @@ class RoverlayNumStatsRating ( NumStatsRating ): ) - if not self.pc_fail_err.is_ok(): + if self.pc_fail_err.has_issues(): yield ( "failures due to unknown errors", [ 'check the log files for python exceptions and report them', ] ) - if not self.ec_pre.is_ok() or not self.ec_post.is_ok(): + if self.ec_pre.has_issues() or self.ec_post.has_issues(): yield ( "ebuild loss occurred (no suggestions available)", None ) - if not self.ec_revbump.is_ok(): + if self.ec_revbump.has_issues(): yield ( "unexpected ebuild revbump count (no suggestions available)", None ) - # +++ UNKNOWNS - # --- end of get_suggestions (...) --- # --- end of RoverlayNumStatsRating ---