dmwm / WMCore

Core workflow management components for CMS.
Apache License 2.0
46 stars 107 forks source link

Add the CMS SE name to the stageOut step in the spec and modify the stage out runtime code #387

Closed DMWMBot closed 12 years ago

DMWMBot commented 14 years ago

To allow the async. stage-out of user outputs, it is needed to add the CMS SE name (something like asynchDestination attribute) to the stageOut step in the spec and modify the stage out runtime code to add the aynchDestination attribute to each output module in the FWJR.

DMWMBot commented 14 years ago

riahi: The user DN is also needed.

drsm79 commented 14 years ago

metson: It needs to be the CMS name not the SE.

sfoulkes commented 14 years ago

sfoulkes: You'll need to do a couple things:

WMCore/WMSpec/WMStep.py

WMCore/WMSpec/StdSpecs/StdBase.py

WMCore/WMSpec/StdSpecs/Analysis.py

WMCore/WMSpec/Steps/Executor.py

WMCore/FwkJobReport/Report.py

drsm79 commented 14 years ago

metson: asyncSource should be included also - this should be the CMS name of the site the job ran at.

DMWMBot commented 13 years ago

riahi: Actually, the SE name of the site where the job ran is in FWJR and mapped therefore in JSM DB. The conversion from SE name to CMS name cannot be done in the WN (when the FWJR is built) since Phedex API in WMCore depend on httplib2 and it is not installed by default in WNs. So Maybe:

evansde77 commented 13 years ago

evansde: Looking things up from a central service on the WN is basically a DDoS attack on that service with enough jobs.

The components should keep a cache of SE:CMS name somewhere and just do the conversion at the agent side when you pull it from the JSM. Doing this in the async module makes the most sense, since doing it in the JSM will do it for all jobs wether it is needed or not, which will introduce overhead.

DMWMBot commented 13 years ago

riahi: comment/question about this point:

WMCore/WMSpec/Steps/Executor.py

* Modify the post() method to copy the asyncDN and asyncDest to the FWJR for each output module in the report 
evansde77 commented 13 years ago

evansde: Execute is for the execution of whatever you are doing, running binaries etc. Post is after execution logic, the main difference being that post can alter the flow of work in the job by returning the next step to execute.

In this case, you probably want to update the report with the async files after the job has run and you have made sure it was sucessful, which fits in with checking that things worked in the step specific post method

DMWMBot commented 13 years ago

riahi: Please review. Patches are enclosed to the ticket.