def __init__(self, app, config, mount): DatabaseRESTApi.__init__(self, app, config, mount) self.formats = [ ('application/json', JSONFormat()) ] status, serverdn = getstatusoutput('openssl x509 -noout -subject -in %s | cut -f2- -d\ ' % config.serverhostcert) if status is not 0: raise ExecutionError("Internal issue when retrieving crabserver service DN.") extconfig = Utils.ConfigCache(centralconfig=Utils.getCentralConfig(extconfigurl=config.extconfigurl, mode=config.mode), cachetime=mktime(gmtime())) #Global initialization of Data objects. Parameters coming from the config should go here DataUserWorkflow.globalinit(config) DataWorkflow.globalinit(dbapi=self, phedexargs={'endpoint': config.phedexurl},\ credpath=config.credpath, centralcfg=extconfig, config=config) DataFileMetadata.globalinit(dbapi=self, config=config) RESTTask.globalinit(centralcfg=extconfig) Utils.globalinit(config.serverhostkey, config.serverhostcert, serverdn, config.credpath) ## TODO need a check to verify the format depending on the resource ## the RESTFileMetadata has the specifc requirement of getting xml reports self._add( {'workflow': RESTUserWorkflow(app, self, config, mount, extconfig), 'campaign': RESTCampaign(app, self, config, mount), 'info': RESTServerInfo(app, self, config, mount, serverdn, extconfig), 'filemetadata': RESTFileMetadata(app, self, config, mount), 'workflowdb': RESTWorkerWorkflow(app, self, config, mount), 'task': RESTTask(app, self, config, mount), } ) self._initLogger( getattr(config, 'loggingFile', None), getattr(config, 'loggingLevel', None) )
def __init__(self, app, config, mount): DatabaseRESTApi.__init__(self, app, config, mount) self.formats = [ ('application/json', JSONFormat()) ] status, serverdn = getstatusoutput('openssl x509 -noout -subject -in %s | cut -f2- -d\ ' % config.serverhostcert) if status is not 0: raise ExecutionError("Internal issue when retrieving crabserver service DN.") extconfig = Utils.ConfigCache(centralconfig=Utils.getCentralConfig(extconfigurl=config.extconfigurl, mode=config.mode), cachetime=mktime(gmtime())) #Global initialization of Data objects. Parameters coming from the config should go here DataUserWorkflow.globalinit(config) DataWorkflow.globalinit(dbapi=self, phedexargs={'endpoint': config.phedexurl},\ credpath=config.credpath, centralcfg=extconfig, config=config) DataFileMetadata.globalinit(dbapi=self, config=config) RESTTask.globalinit(centralcfg=extconfig) Utils.globalinit(config.serverhostkey, config.serverhostcert, serverdn, config.credpath) ## TODO need a check to verify the format depending on the resource ## the RESTFileMetadata has the specifc requirement of getting xml reports self._add( {'workflow': RESTUserWorkflow(app, self, config, mount, extconfig), 'info': RESTServerInfo(app, self, config, mount, serverdn, extconfig), 'filemetadata': RESTFileMetadata(app, self, config, mount), 'workflowdb': RESTWorkerWorkflow(app, self, config, mount), 'task': RESTTask(app, self, config, mount), 'filetransfers': RESTFileTransfers(app, self, config, mount), 'fileusertransfers': RESTFileUserTransfers(app, self, config, mount), }) self._initLogger( getattr(config, 'loggingFile', None), getattr(config, 'loggingLevel', None) )
def __init__(self, app, config, mount): DatabaseRESTApi.__init__(self, app, config, mount) self.formats = [('application/json', JSONFormat())] status, serverdn = getstatusoutput( 'openssl x509 -noout -subject -in %s | cut -f2- -d\ ' % config.serverhostcert) if status is not 0: raise ExecutionError( "Internal issue when retrieving crabserver service DN.") hbuf = StringIO.StringIO() bbuf = StringIO.StringIO() curl = pycurl.Curl() curl.setopt(pycurl.URL, config.extconfigurl) curl.setopt(pycurl.WRITEFUNCTION, bbuf.write) curl.setopt(pycurl.HEADERFUNCTION, hbuf.write) curl.setopt(pycurl.FOLLOWLOCATION, 1) curl.perform() curl.close() header = ResponseHeader(hbuf.getvalue()) if header.status < 200 or header.status >= 300: cherrypy.log("Problem %d reading from %s." % (config.extconfigurl, header.status)) raise ExecutionError( "Internal issue when retrieving external confifuration") extconfig = json.decode(bbuf.getvalue()) #Global initialization of Data objects. Parameters coming from the config should go here DataUserWorkflow.globalinit(config.workflowManager) DataWorkflow.globalinit(dbapi=self, phedexargs={'endpoint': config.phedexurl}, dbsurl=config.dbsurl,\ credpath=config.credpath, transformation=config.transformation) DataFileMetadata.globalinit(dbapi=self) Utils.globalinit(config.serverhostkey, config.serverhostcert, serverdn, config.credpath) ## TODO need a check to verify the format depending on the resource ## the RESTFileMetadata has the specifc requirement of getting xml reports self._add({ 'workflow': RESTUserWorkflow(app, self, config, mount), 'campaign': RESTCampaign(app, self, config, mount), 'info': RESTServerInfo(app, self, config, mount, serverdn, extconfig.get('delegate-dn', [])), 'filemetadata': RESTFileMetadata(app, self, config, mount), }) self._initLogger(getattr(config, 'loggingFile', None), getattr(config, 'loggingLevel', None))
def __init__(self, app, config, mount): DatabaseRESTApi.__init__(self, app, config, mount) self.formats = [ ('application/json', JSONFormat()) ] status, serverdn = getstatusoutput('openssl x509 -noout -subject -in %s | cut -f2- -d\ ' % config.serverhostcert) if status is not 0: raise ExecutionError("Internal issue when retrieving crabserver service DN.") hbuf = StringIO.StringIO() bbuf = StringIO.StringIO() curl = pycurl.Curl() curl.setopt(pycurl.URL, config.extconfigurl) curl.setopt(pycurl.WRITEFUNCTION, bbuf.write) curl.setopt(pycurl.HEADERFUNCTION, hbuf.write) curl.setopt(pycurl.FOLLOWLOCATION, 1) curl.perform() curl.close() header = ResponseHeader(hbuf.getvalue()) if header.status < 200 or header.status >= 300: cherrypy.log("Problem %d reading from %s." %(config.extconfigurl, header.status)) raise ExecutionError("Internal issue when retrieving external confifuration") extconfig = json.decode(bbuf.getvalue()) #Global initialization of Data objects. Parameters coming from the config should go here DataUserWorkflow.globalinit(config.workflowManager) DataWorkflow.globalinit(dbapi=self, phedexargs={'endpoint': config.phedexurl}, dbsurl=config.dbsurl,\ credpath=config.credpath, transformation=config.transformation) DataFileMetadata.globalinit(dbapi=self) Utils.globalinit(config.serverhostkey, config.serverhostcert, serverdn, config.credpath) ## TODO need a check to verify the format depending on the resource ## the RESTFileMetadata has the specifc requirement of getting xml reports self._add( {'workflow': RESTUserWorkflow(app, self, config, mount), 'campaign': RESTCampaign(app, self, config, mount), 'info': RESTServerInfo(app, self, config, mount, serverdn, extconfig.get('delegate-dn', [])), 'filemetadata': RESTFileMetadata(app, self, config, mount), } ) self._initLogger( getattr(config, 'loggingFile', None), getattr(config, 'loggingLevel', None) )