diff options
author | Martin Sivak <msivak@redhat.com> | 2010-09-08 14:28:25 +0200 |
---|---|---|
committer | Martin Sivak <msivak@redhat.com> | 2010-09-08 14:28:25 +0200 |
commit | 13ce1b07f909e34e32f2299f35696290789c2ee9 (patch) | |
tree | b8a288ca496c8999763e708f2c0f29212e3abf2b | |
parent | cf7c1bfe2e9619dce8a7e4b2bf6a30f0dc1bc9db (diff) | |
download | firstaidkit-13ce1b07f909e34e32f2299f35696290789c2ee9.tar.gz firstaidkit-13ce1b07f909e34e32f2299f35696290789c2ee9.tar.xz firstaidkit-13ce1b07f909e34e32f2299f35696290789c2ee9.zip |
Support error and skipped states in issues, show progress in status bar
-rw-r--r-- | frontend/frontend_gtk.py | 25 | ||||
-rw-r--r-- | plugins/openscap_plugin.py | 29 | ||||
-rw-r--r-- | pyfirstaidkit/issue.py | 26 |
3 files changed, 56 insertions, 24 deletions
diff --git a/frontend/frontend_gtk.py b/frontend/frontend_gtk.py index 679fd9a..823de03 100644 --- a/frontend/frontend_gtk.py +++ b/frontend/frontend_gtk.py @@ -327,6 +327,7 @@ class CallbacksMainWindow(object): def on_b_StopResults_activate(self, widget, *args): print("on_b_StopResults_activate") self._tasker.interrupt() + widget.set_sensitive(False) return True class CallbacksFlagList(object): @@ -654,22 +655,23 @@ class MainWindow(object): state = tree_model.get_value(iter, 3) + if use_state_fg and state!=2 and state!=0: + cell_renderer.set_property("foreground-set", True) + cell_renderer.set_property("foreground-gdk", + gtk.gdk.Color(red=50000, green=50000, blue=50000)) + else: + cell_renderer.set_property("foreground-set", False) + if colors[state] and use_state_bg: cell_renderer.set_property("cell-background-set", True) cell_renderer.set_property("cell-background-gdk", colors[state]) if state==4: cell_renderer.set_property("foreground-set", True) cell_renderer.set_property("foreground-gdk", - gtk.gdk.Color(red=50000, green=50000, blue=50000)) + gtk.gdk.Color(red=65000, green=50000, blue=50000)) else: cell_renderer.set_property("cell-background-set", False) - if use_state_fg and state!=2: - cell_renderer.set_property("foreground-set", True) - cell_renderer.set_property("foreground-gdk", - gtk.gdk.Color(red=40000, green=40000, blue=40000)) - else: - cell_renderer.set_property("foreground-set", False) cell_renderer.set_property("text", tree_model.get_value(iter, col)) @@ -706,8 +708,10 @@ class MainWindow(object): def update(self, mailbox, message): def issue_state(self): - if self._exception: - return ("Exception", 4) + if self._exception or self._error: + return ("Error", 4) + elif self._skipped: + return ("No result", 0) elif self._fixed: return ("Fixed", 3) elif self._happened and self._checked: @@ -803,6 +807,9 @@ class MainWindow(object): elif message["action"]==reporting.ISSUE: i = message["message"] + ctx = self.status_text.get_context_id(message["origin"].name) + gobject.idle_add(_o, self.status_text.push, ctx, + "%s: %s" % (str(i), i.description)) t,ids = issue_state(i) if not self.result_list_iter.has_key(i): self.result_list_iter[i] = self.result_list_store.append( diff --git a/plugins/openscap_plugin.py b/plugins/openscap_plugin.py index 7995f10..c54a19d 100644 --- a/plugins/openscap_plugin.py +++ b/plugins/openscap_plugin.py @@ -69,7 +69,7 @@ class OpenSCAPPlugin(Plugin): self._policy = self._xccdf_policy_model.policies[0] return - if not Config.operation.interactive: + if not Config.operation.interactive == "True": self._result=ReturnSuccess self._policy = self._xccdf_policy_model.policies[-1] return @@ -105,7 +105,7 @@ class OpenSCAPPlugin(Plugin): self._result=ReturnSuccess def rules(self): - if not Config.operation.interactive: + if not Config.operation.interactive == "True": self._result=ReturnSuccess return @@ -144,7 +144,7 @@ class OpenSCAPPlugin(Plugin): self._result=ReturnSuccess def tailoring(self): - if not Config.operation.interactive: + if not Config.operation.interactive == "True": self._result=ReturnSuccess return @@ -193,14 +193,21 @@ class OpenSCAPPlugin(Plugin): result = Msg.user2num setattr(self._info, Id, unicode(result)) Issue = Plugin._issues.get(Id, None) - Issue.set(checked = (result in - (openscap.OSCAP.XCCDF_RESULT_FAIL, - openscap.OSCAP.XCCDF_RESULT_PASS)), - happened = (result == openscap.OSCAP.XCCDF_RESULT_FAIL), - fixed = False, - reporting = Plugin._reporting, - origin = Plugin, - level = PLUGIN) + Issue.set(skipped = (result in + (openscap.OSCAP.XCCDF_RESULT_NOT_CHECKED, + openscap.OSCAP.XCCDF_RESULT_NOT_SELECTED, + openscap.OSCAP.XCCDF_RESULT_NOT_APPLICABLE)), + checked = (result in + (openscap.OSCAP.XCCDF_RESULT_FAIL, + openscap.OSCAP.XCCDF_RESULT_PASS)), + error = (result in + (openscap.OSCAP.XCCDF_RESULT_ERROR, + openscap.OSCAP.XCCDF_RESULT_UNKNOWN)), + happened = (result == openscap.OSCAP.XCCDF_RESULT_FAIL), + fixed = False, + reporting = Plugin._reporting, + origin = Plugin, + level = PLUGIN) except Exception, e: print e diff --git a/pyfirstaidkit/issue.py b/pyfirstaidkit/issue.py index b4bcee2..4376964 100644 --- a/pyfirstaidkit/issue.py +++ b/pyfirstaidkit/issue.py @@ -31,8 +31,11 @@ class SimpleIssue(object): self._happened = False self._fixed = False self._exception = None + self._error = False + self._skipped = False def set(self, happened = None, fixed = None, checked = None, + skipped = None, error = None, reporting = None, **kwreportingargs): """Set the state of this issue and send a report @@ -43,6 +46,10 @@ class SimpleIssue(object): self._fixed = fixed if checked: self._checked = checked + if error: + self._error = error + if skipped: + self._skipped = skipped if reporting: reporting.issue(issue = self, **kwreportingargs) @@ -54,7 +61,7 @@ Return values: False - NO, it is OK None - I don't know, there was an error""" #if the issue was fixed or not checked, the check si needed - if not self._checked or self._fixed: + if not self._checked or self._error or self._skipped or self._fixed: return None else: return self._happened @@ -67,15 +74,25 @@ Return values: False - NO, it is still broken None - I don't know""" #if the issue was not checked, the check si needed - if not self._checked: + if not self._checked or self._error or self._skipped: return None else: #issue didn't happened or is fixed -> True return not self._happened or self._fixed + def skipped(self): + return self._skipped + + def error(self): + return self._error + def __str__(self): s = [] - if self._fixed: + if self._error: + s.append("Error evaluating") + elif self._skipped: + s.append("Skipped checking of") + elif self._fixed: s.append("Fixed") elif self._happened and self._checked: s.append("Detected") @@ -86,7 +103,8 @@ Return values: s.append(self.name) - if self._happened and self._checked: + if not self._error and not self._skipped and \ + self._happened and self._checked: s.append("--") s.append(self.description) |