90 likes | 227 Views
Request Manager. R. Wilkinson & the DMWM team. REST Interface. Communication done via HTTP GET, PUT, POST, & DELETE See https://twiki.cern.ch/twiki/bin/view/CMS/ReqMgrSystemDesign. Command Line Request Submission. User makes a small “RequestSchema” file requestSchema = {}
E N D
Request Manager R. Wilkinson & the DMWM team
REST Interface • Communication done via HTTP GET, PUT, POST, & DELETE • See https://twiki.cern.ch/twiki/bin/view/CMS/ReqMgrSystemDesign
Command Line Request Submission • User makes a small “RequestSchema” file requestSchema = {} requestSchema['ConfigFile'] = ‘my_cfg.py' requestSchema["Group"] = "Offline" requestSchema["InputDatasets"] = [] requestSchema["PileupDatasets"] = [] requestSchema["RequestType"] = 'CmsGen' requestSchema["RequestSizeEvents"] = 1000 • “submitRequest” script accepts the RequestSchema • Uploads three documents to CouchDB: • Original configuration • Fully expanded configuration • PSetTweaks which can be used to modify configs outside of the CMSSW environment • Calculates PSet hashes • Sends the RequestSchema to the ReqMgr, via a REST “PUT”. reqMgrHost = 'cmssrv49.fnal.gov:8585' jsonSender = JSONRequests(reqMgrHost) response = jsonSender.put('/reqMgr/request/'+requestSchema['RequestName'], requestSchema) • When the ReqMgr receives a Request, it: • Builds a new Workload • Saves the Request in the RequestDB
Web cmsDriver Interface May be useful on its own
Interaction with WorkQueues • Communication done using REST URIs • WorkQueue GETs requests assigned to its Team • Response is JSON-encoded list of Requests • WorkQueue downloads the Request Workloads • WorkQueue POSTs to acquire a request • ReqMgr updates the database • WorkQueue POSTs updates & final status
To Do • Authentication • Site whitelists & blacklists • Run & lumi block whitelists & blacklists • Document installation procedures • Deploy on Oracle at CERN