X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Fall%2Fcollector.py;h=0b6ad2302c7327735a1a09a6fd761fa3d4ae0f4f;hb=09ac796bac9aa2c41c5ad830f404fe128fffb22d;hp=864750e62107e39402e1b18fefa6e3c366564eb5;hpb=332038a4a4e7e8c74db87dea003e4c02418175d6;p=nepi.git diff --git a/src/nepi/resources/all/collector.py b/src/nepi/resources/all/collector.py index 864750e6..0b6ad230 100644 --- a/src/nepi/resources/all/collector.py +++ b/src/nepi/resources/all/collector.py @@ -20,7 +20,7 @@ from nepi.execution.attribute import Attribute, Flags, Types from nepi.execution.trace import Trace, TraceAttr from nepi.execution.resource import ResourceManager, clsinit_copy, \ - ResourceState, ResourceAction, failtrap + ResourceState, ResourceAction from nepi.util.sshfuncs import ProcStatus import os @@ -70,8 +70,7 @@ class Collector(ResourceManager): def store_path(self): return self._store_path - @failtrap - def provision(self): + def do_provision(self): trace_name = self.get("traceName") if not trace_name: self.fail() @@ -96,44 +95,38 @@ class Collector(ResourceManager): except OSError: pass - super(Collector, self).provision() + super(Collector, self).do_provision() - @failtrap - def deploy(self): - self.discover() - self.provision() + def do_deploy(self): + self.do_discover() + self.do_provision() - super(Collector, self).deploy() + super(Collector, self).do_deploy() - def release(self): - try: - trace_name = self.get("traceName") - rename = self.get("rename") or trace_name - - msg = "Collecting '%s' traces to local directory %s" % ( - trace_name, self.store_path) - self.info(msg) - - rms = self.get_connected() - for rm in rms: - result = self.ec.trace(rm.guid, trace_name) - fpath = os.path.join(self.store_path, "%d.%s" % (rm.guid, - rename)) - try: - f = open(fpath, "w") - f.write(result) - f.close() - except: - msg = "Couldn't retrieve trace %s for %d at %s " % (trace_name, - rm.guid, fpath) - self.error(msg) - continue - except: - import traceback - err = traceback.format_exc() - self.error(err) - - super(Collector, self).release() + def do_release(self): + trace_name = self.get("traceName") + rename = self.get("rename") or trace_name + + msg = "Collecting '%s' traces to local directory %s" % ( + trace_name, self.store_path) + self.info(msg) + + rms = self.get_connected() + for rm in rms: + result = self.ec.trace(rm.guid, trace_name) + fpath = os.path.join(self.store_path, "%d.%s" % (rm.guid, + rename)) + try: + f = open(fpath, "w") + f.write(result) + f.close() + except: + msg = "Couldn't retrieve trace %s for %d at %s " % (trace_name, + rm.guid, fpath) + self.error(msg) + continue + + super(Collector, self).do_release() def valid_connection(self, guid): # TODO: Validate!