X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Fall%2Fcollector.py;h=4729e0153b7774d4973b4e4d22bbc6d0eed0a753;hb=6285ca51026efb69642eea9dfc7c480e722d84a9;hp=bb8c1c8d348c381b64d9d33d8a02b4f1f4637c4c;hpb=620a552f640d6d604fc5cb1656a5f91d49343fce;p=nepi.git diff --git a/src/nepi/resources/all/collector.py b/src/nepi/resources/all/collector.py index bb8c1c8d..4729e015 100644 --- a/src/nepi/resources/all/collector.py +++ b/src/nepi/resources/all/collector.py @@ -3,9 +3,8 @@ # Copyright (C) 2013 INRIA # # This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation; # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -28,7 +27,7 @@ import tempfile @clsinit_copy class Collector(ResourceManager): - """ The collector is reponsible of collecting traces + """ The collector entity is reponsible of collecting traces of a same type associated to RMs into a local directory. .. class:: Class Args : @@ -43,7 +42,7 @@ class Collector(ResourceManager): _help = "A Collector can be attached to a trace name on another " \ "ResourceManager and will retrieve and store the trace content " \ "in a local file at the end of the experiment" - _backend_type = "all" + _platform = "all" @classmethod def _register_attributes(cls): @@ -51,18 +50,6 @@ class Collector(ResourceManager): "Name of the trace to be collected", flags = Flags.Design) - store_dir = Attribute("storeDir", - "Path to local directory to store trace results", - default = tempfile.gettempdir(), - flags = Flags.Design) - - use_run_id = Attribute("useRunId", - "If set to True stores traces into a sub directory named after " - "the RUN ID assigned by the EC", - type = Types.Bool, - default = False, - flags = Flags.Design) - sub_dir = Attribute("subDir", "Sub directory to collect traces into", flags = Flags.Design) @@ -72,10 +59,8 @@ class Collector(ResourceManager): flags = Flags.Design) cls._register_attribute(trace_name) - cls._register_attribute(store_dir) cls._register_attribute(sub_dir) cls._register_attribute(rename) - cls._register_attribute(use_run_id) def __init__(self, ec, guid): super(Collector, self).__init__(ec, guid) @@ -92,19 +77,16 @@ class Collector(ResourceManager): msg = "No traceName was specified" self.error(msg) - raise RuntimeError, msg - - self._store_path = self.get("storeDir") + raise RuntimeError(msg) - if self.get("useRunId"): - self._store_path = os.path.join(self._store_path, self.ec.run_id) + self._store_path = self.ec.run_dir subdir = self.get("subDir") if subdir: - self._store_path = os.path.join(self._store_path, subdir) + self._store_path = os.path.join(self.store_path, subdir) msg = "Creating local directory at %s to store %s traces " % ( - self._store_path, trace_name) + self.store_path, trace_name) self.info(msg) try: @@ -130,13 +112,13 @@ class Collector(ResourceManager): 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)) + rename)) + try: - f = open(fpath, "w") - f.write(result) - f.close() + result = self.ec.trace(rm.guid, trace_name) + with open(fpath, "w") as f: + f.write(result) except: import traceback err = traceback.format_exc()