summaryrefslogtreecommitdiffstats
path: root/pyfirstaidkit
diff options
context:
space:
mode:
authorMartin Sivak <msivak@redhat.com>2010-09-07 14:57:14 +0200
committerMartin Sivak <msivak@redhat.com>2010-09-07 14:57:14 +0200
commitb6a8761af9a3e8ae547cf12992192931b95f0861 (patch)
treeb91604ae00cdfbf953511902a8ff8c051568698e /pyfirstaidkit
parent1d4ec7084f6368c16a1f81f29c869012f2c271c8 (diff)
downloadfirstaidkit-b6a8761af9a3e8ae547cf12992192931b95f0861.tar.gz
firstaidkit-b6a8761af9a3e8ae547cf12992192931b95f0861.tar.xz
firstaidkit-b6a8761af9a3e8ae547cf12992192931b95f0861.zip
Changes to FAK Gui and Info object
- Gui allows to save results in info object - Info object allows attaching files and saving as .zip archive
Diffstat (limited to 'pyfirstaidkit')
-rw-r--r--pyfirstaidkit/__init__.py2
-rw-r--r--pyfirstaidkit/configuration.py22
-rw-r--r--pyfirstaidkit/plugins.py2
3 files changed, 22 insertions, 4 deletions
diff --git a/pyfirstaidkit/__init__.py b/pyfirstaidkit/__init__.py
index 874f57c..6bfe5ad 100644
--- a/pyfirstaidkit/__init__.py
+++ b/pyfirstaidkit/__init__.py
@@ -16,7 +16,7 @@
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
from interpret import Tasker
-from configuration import Config
+from configuration import Config, Info
import logging
import sys
diff --git a/pyfirstaidkit/configuration.py b/pyfirstaidkit/configuration.py
index a4cedf1..fc534fb 100644
--- a/pyfirstaidkit/configuration.py
+++ b/pyfirstaidkit/configuration.py
@@ -20,6 +20,7 @@ import os
import sys
from cStringIO import StringIO
from shlex import shlex
+import zipfile
if os.environ.has_key("FIRST_AID_KIT_CONF"):
cfgfile = os.environ["FIRST_AID_KIT_CONF"].split(":")
@@ -95,6 +96,9 @@ class FAKConfigSection(object):
def unlock(self):
self.__dict__["__use_lock"] = False
+ def attach(self, file):
+ self.__dict__["__configuration"].attach(file)
+
def __getattr__(self, key):
if not self.__dict__["__configuration"]. \
has_section(self.__dict__["__section_name"]) and \
@@ -179,13 +183,27 @@ def getConfigBits(name, cfg = Config):
return c
class FAKInfo(ConfigParser.SafeConfigParser, FAKConfigMixIn):
+ def __init__(self, *args, **kwargs):
+ ConfigParser.SafeConfigParser.__init__(self, *args, **kwargs)
+ FAKConfigMixIn.__init__(self)
+ self._attachments = []
+
def write(self, fd=sys.stdout):
fd.write("--- Info section ---\n")
ConfigParser.SafeConfigParser.write(self, fd)
fd.write("--------------------\n")
- pass
+ def dump(self, filename):
+ fd = zipfile.ZipFile(filename, "w", zipfile.ZIP_DEFLATED)
+ temp = StringIO()
+ ConfigParser.SafeConfigParser.write(self, temp)
+ fd.writestr("results.ini", temp.getvalue())
+ for f in self._attachments:
+ fd.write(f)
+ fd.close()
+
+ def attach(self, file):
+ self._attachments.append(file)
Info = FAKInfo()
Info.lock()
-
diff --git a/pyfirstaidkit/plugins.py b/pyfirstaidkit/plugins.py
index 5b95dfa..b104953 100644
--- a/pyfirstaidkit/plugins.py
+++ b/pyfirstaidkit/plugins.py
@@ -283,7 +283,7 @@ class Plugin(object):
message = func+" raised "+str(e))
self._reporting.stop(level = TASK, origin = self,
message = func)
- if self._interpret._config.system.debug:
+ if Config.system.debug:
raise
return (self._state, self._result)