def getPlotImg( self ): """ Get plot image """ if 'file' not in request.params: c.error = "Maybe you forgot the file?" return render( "/error.mako" ) plotImageFile = str( request.params[ 'file' ] ) if plotImageFile.find( ".png" ) < -1: c.error = "Not a valid image!" return render( "/error.mako" ) transferClient = getTransferClient( "Accounting/ReportGenerator" ) tempFile = tempfile.TemporaryFile() retVal = transferClient.receiveFile( tempFile, plotImageFile ) if not retVal[ 'OK' ]: c.error = retVal[ 'Message' ] return render( "/error.mako" ) tempFile.seek( 0 ) data = tempFile.read() response.headers['Content-type'] = 'image/png' response.headers['Content-Disposition'] = 'attachment; filename="%s.png"' % md5( plotImageFile ).hexdigest() response.headers['Content-Length'] = len( data ) response.headers['Content-Transfer-Encoding'] = 'Binary' response.headers['Cache-Control'] = "no-cache, no-store, must-revalidate, max-age=0" response.headers['Pragma'] = "no-cache" response.headers['Expires'] = ( datetime.datetime.utcnow() - datetime.timedelta( minutes = -10 ) ).strftime( "%d %b %Y %H:%M:%S GMT" ) return data
def getPlotImg( self ): """ Get plot image """ if 'file' not in request.params: c.error( "Maybe you forgot the file?" ) return render( "/error.mako" ) plotImageFile = request.params[ 'file' ] if plotImageFile.find( ".png" ) < -1: c.error( "Not a valid image!" ) return render( "/error.mako" ) transferClient = getTransferClient( "Framework/Monitoring" ) tempFile = tempfile.TemporaryFile() retVal = transferClient.receiveFile( tempFile, plotImageFile ) if not retVal[ 'OK' ]: c.error = retVal[ 'Message' ] return render( "/error.mako" ) tempFile.seek( 0 ) data = tempFile.read() response.headers['Content-type'] = 'image/png' #response.headers['Content-Disposition'] = 'attachment; filename="%s"' % plotImageFile response.headers['Content-Length'] = len( data ) response.headers['Content-Transfer-Encoding'] = 'Binary' print len( data ) return data
def getPlotImg(self): """ Get plot image """ if 'file' not in request.params: c.error("Maybe you forgot the file?") return render("/error.mako") plotImageFile = request.params['file'] if plotImageFile.find(".png") < -1: c.error("Not a valid image!") return render("/error.mako") transferClient = getTransferClient("Framework/Monitoring") tempFile = tempfile.TemporaryFile() retVal = transferClient.receiveFile(tempFile, plotImageFile) if not retVal['OK']: c.error = retVal['Message'] return render("/error.mako") tempFile.seek(0) data = tempFile.read() response.headers['Content-type'] = 'image/png' #response.headers['Content-Disposition'] = 'attachment; filename="%s"' % plotImageFile response.headers['Content-Length'] = len(data) response.headers['Content-Transfer-Encoding'] = 'Binary' print len(data) return data
def getPlotImg(self): """ Get plot image """ if 'file' not in request.params: c.error = "Maybe you forgot the file?" return render("/error.mako") plotImageFile = str(request.params['file']) if plotImageFile.find(".png") < -1: c.error = "Not a valid image!" return render("/error.mako") transferClient = getTransferClient("Accounting/ReportGenerator") tempFile = tempfile.TemporaryFile() retVal = transferClient.receiveFile(tempFile, plotImageFile) if not retVal['OK']: c.error = retVal['Message'] return render("/error.mako") tempFile.seek(0) data = tempFile.read() response.headers['Content-type'] = 'image/png' response.headers[ 'Content-Disposition'] = 'attachment; filename="%s.png"' % md5( plotImageFile).hexdigest() response.headers['Content-Length'] = len(data) response.headers['Content-Transfer-Encoding'] = 'Binary' response.headers[ 'Cache-Control'] = "no-cache, no-store, must-revalidate, max-age=0" response.headers['Pragma'] = "no-cache" response.headers['Expires'] = ( datetime.datetime.utcnow() - datetime.timedelta(minutes=-10)).strftime("%d %b %Y %H:%M:%S GMT") return data
def getImg(self): pagestart = time() transferClient = getTransferClient("Monitoring/SiteMapping") if "name" not in request.params: c.result = "file name is absent" return c.result name = request.params["name"] # if name.find( ".png" ) < -1: # c.result = "Not a valid image file" # return c.result gLogger.info("request for the file:", name) #data = self.__imgCache.get(name) #if not data: tmpFile = tempfile.NamedTemporaryFile() result = transferClient.receiveFile(tmpFile.name,name) teststring = "operation result for request file " + name + ": " gLogger.info(teststring, result) if not result["OK"]: c.result = result["Message"] return c.result tmpFile.seek( 0 ) data = tmpFile.read() #self.__imgCache.add(name, 600, data) #else: # gLogger.info("this file taken from cache:", name) response.headers['Content-type'] = 'image/png' response.headers['Content-Disposition'] = 'attachment; filename="%s"' % name response.headers['Content-Length'] = len(data) response.headers['Content-Transfer-Encoding'] = 'Binary' return data
def getKML(self): pagestart = time() transferClient = getTransferClient('Monitoring/SiteMapping') name = request.params["name"] tmpFile = tempfile.NamedTemporaryFile() gLogger.info('-- Arguments to SiteMapping service: %s %s ' %(tmpFile.name,name)) result = transferClient.receiveFile(tmpFile.name,name) teststring = "operation result for request file " + name + ": " gLogger.info(teststring, result) if not result["OK"]: c.result = result["Message"] return c.result tmpFile.seek( 0 ) data = tmpFile.read() #self.__imgCache.add(name, 600, data) return data transferClient = getTransferClient('Monitoring/SiteMapping') if "name" not in request.params: c.result = "file name is absent" return c.result name = request.params["name"] # if name.find( ".kml" ) < -1: # c.result = "Not a valid file" # return c.result gLogger.info("request for the file:", name) data = self.__imgCache.get(name) gLogger.info("data from cache:", data) if not data: tmpFile = tempfile.NamedTemporaryFile() result = transferClient.receiveFile(tmpFile.name,name) teststring = "operation result for request file " + name + ": " gLogger.info(teststring, result) if not result["OK"]: c.result = result["Message"] return c.result tmpFile.seek( 0 ) data = tmpFile.read() self.__imgCache.add(name, 600, data) # gLogger.info("CACHE after add:", self.__imgCache.getKeys(100)) else: gLogger.info("this file taken from cache:", name) response.headers['Content-type'] = 'text/xml; charset=utf-8' gLogger.info("CACHE:", self.__imgCache.getKeys(600)) return data
file.file.close() tFile.close() fileNameList.append(name) except Exception,x: exception_counter = 1 c.result = {"success":"false","error":"An EXCEPTION happens during saving your sandbox file(s): %s" % str(x)} if len(fileNameList) > 0 and exception_counter == 0: sndBox = "InputSandbox = {\"" + "\",\"".join(fileNameList) + "\"};" else: sndBox = "" if exception_counter == 0: jdl = jdl + sndBox from DIRAC.WorkloadManagementSystem.Client.WMSClient import WMSClient jobManager = WMSClient(getRPCClient("WorkloadManagement/JobManager"), getRPCClient("WorkloadManagement/SandboxStore"), getTransferClient("WorkloadManagement/SandboxStore")) jdl = str(jdl) gLogger.info("J D L : ",jdl) try: result = jobManager.submitJob(jdl) if result["OK"]: c.result = {"success":"true","result":result["Value"]} else: c.result = {"success":"false","error":result["Message"]} except Exception,x: c.result = {"success":"false","error":"An EXCEPTION happens during job submittion: %s" % str(x)} if clearFS: shutil.rmtree(storePath) return c.result ################################################################################