X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fsfiprocess.py;h=6f131a766b03db5229e24e637490be1257be55f5;hp=00f9df374e1e5c4d3c150d3b28dca48a83a494d6;hb=955398020858a5c3efb59a6cbe02ebfbc15d833f;hpb=44743e4122a7a015518988f8b5ef07aca9a5f01e diff --git a/sface/sfiprocess.py b/sface/sfiprocess.py index 00f9df3..6f131a7 100644 --- a/sface/sfiprocess.py +++ b/sface/sfiprocess.py @@ -44,7 +44,7 @@ class SfiProcess(QObject): self.connect(self.process, SIGNAL("readyReadStandardError()"), self.processStandardError) - def __init_command(self, args): + def __init_command(self, args, save_filename=None): self.args = QStringList() self.args << "-d" self.args << config.get_dirname() @@ -63,6 +63,8 @@ class SfiProcess(QObject): else: self.raw_filename = None + self.save_filename = save_filename + for arg in args: self.args << QString(arg) @@ -111,9 +113,9 @@ class SfiProcess(QObject): self.raw_data = None if (self.raw_filename != None) and os.path.exists(self.raw_filename): if hasattr(json, "loads"): - self.raw_data = json.loads(open(self.raw_filename,"r").read()) + self.raw_data = json.loads(open(self.raw_filename,"r").read()) # python 2.6 else: - self.raw_data = json.read(open(self.raw_filename,"r").read()) + self.raw_data = json.read(open(self.raw_filename,"r").read()) # python 2.5 os.remove(self.raw_filename) @@ -124,6 +126,18 @@ class SfiProcess(QObject): self.geni_code = code.get("geni_code",None) self.geni_output = self.raw_data.get("output","") + if self.save_filename: + value = self.raw_data.get("value", None) + if value == None: + if os.path.exists(self.save_filename): + os.remove(self.save_filename) + elif type(value) == str: + open(self.save_filename, "w").write(value) + elif hasattr(json, "dumps"): + open(self.save_filename, "w").write(json.dumps(value)) # python 2.6 + else: + open(self.save_filename, "w").write(json.write(value)) # python 2.5 + # extract any faults from the XMLRPC response(s) self.xmlrpcreader.responses = [] self.xmlrpcreader.store(self.output) @@ -295,8 +309,8 @@ class SfiProcess(QObject): args = ["-u", config.getUser(), "-a", config.getAuthority(), "-r", config.getRegistry(), "-s", config.getSlicemgr(), "status", - "-o", filename, "-F", "pickled", slice] - self.__init_command(args) + slice] + self.__init_command(args, save_filename = filename) self.start() def getSliceMgrVersion(self, filename=None):