Current Submission Process
Main Function
Arguments:
parent_pid: The pid for the Factory daemon process
sleep_time: Time to sleep bewteen iterations
advertize_rate: --- Don't know yet... ---
startup_dir: The directory for the Factory Entry
entry_name: The name of the Factory Entry
Logic:
The main function reads in all the configuration files that were generated at create/reconfig time. It sets up the monitoring, logging, and internal configuration details. It then calls the iterate function which does the actual work.
Available Submit Information:
Factory Level:
glideinDescript -> glidein.descript
frontendDescript -> frintend.descript
Entry Level:
jobDescript -> job.descript
jobAttributes -> attributes.cfg
jobParams -> params.cfg
iterate function
Called by Main
iterate_one function
The entry main function calls iterate which calls iterate_one. The following information is available in the python code:
Entry level info:
attributes.cfg
job.descript
params.cfg
Factory level info:
glidein.descript
frontend.descript
Through this call chain, there is some monitoring work and logging work being done, but at this point information is just being passed down to the functions that do the submission setup and actual submission.
2) iterate_one calls find_and_perform_work which calls perform_work. find_and_perform_work queries the VO Frontend for work,
sets up the job parameters, checks whitelisting for frontend/entry combo, checks downtime info, and performs proxy validation prior to calling perform work. perform_work basically splits up the number of glideins requested to be evenly distributed across proxies (not sure what the motivation for this is). Within find_and_perform_work and perform work, the following information is available:
Entry level info:
job.descript
params.cfg
Factory level info:
glidein.descript
frontend.descript
* WE LOSE attributes.cfg
3) perform_work calls keepIdleGlideins. Note: This is per proxy
EMPTY SUBMIT ATTRS list!??
vo frontend name (some version)
min idle per proxy
max running per proxy
max held per proxy
proxy id
proxy filename
client_web - staging area info (descript files with hash names)
params = work info - Passed directly through
4) submitGlideins
EMPTY SUBMIT ATTRS list
entry name
schedd name
username
client name
number of glideins submitted for the proxy
proxy id
proxy filename
client_web
params
5) job_submit.sh ...
--
AnthonyTiradani - 2010/09/09