Difference between revisions of "ARC CE Tips"

From GridPP Wiki
Jump to: navigation, search
(Setup for LHCb)
Line 6: Line 6:
  
 
  authplugin="PREPARING timeout=60,onfailure=pass,onsuccess=pass /usr/local/bin/default_rte_plugin.py %S %C %I ENV/GLITE"
 
  authplugin="PREPARING timeout=60,onfailure=pass,onsuccess=pass /usr/local/bin/default_rte_plugin.py %S %C %I ENV/GLITE"
 +
 +
This sets ENV/GLITE as a default runtime environment. The file ''/usr/local/bin/default_rte_plugin.py'' is:
 +
 +
#!/usr/bin/python
 +
 +
"""Usage: default_rte_plugin.py <status> <control dir> <jobid> <runtime environment>
 +
 +
Authplugin for PREPARING STATE
 +
 +
Example:
 +
 +
  authplugin="PREPARING timeout=60,onfailure=pass,onsuccess=pass /usr/local/bin/default_rte_plugin.py %S %C %I <rte>"
 +
 +
"""
 +
 +
def ExitError(msg,code):
 +
    """Print error message and exit"""
 +
    from sys import exit
 +
    print(msg)
 +
    exit(code)
 +
 +
def SetDefaultRTE(control_dir, jobid, default_rte):
 +
 +
    from os.path import isfile
 +
 +
    desc_file = '%s/job.%s.description' %(control_dir,jobid)
 +
 +
    if not isfile(desc_file):
 +
      ExitError("No such description file: %s"%desc_file,1)
 +
 +
    f = open(desc_file)
 +
    desc = f.read()
 +
    f.close()
 +
 +
    if default_rte not in desc:
 +
      with open(desc_file, "a") as myfile:
 +
          myfile.write("( runtimeenvironment = \"" + default_rte + "\" )")
 +
 +
    return 0
 +
 +
def main():
 +
    """Main"""
 +
 +
    import sys
 +
 +
    # Parse arguments
 +
 +
    if len(sys.argv) == 5:
 +
        (exe, status, control_dir, jobid, default_rte) = sys.argv
 +
    else:
 +
        ExitError("Wrong number of arguments\n"+__doc__,1)
 +
 +
    if status == "PREPARING":
 +
        SetDefaultRTE(control_dir, jobid, default_rte)
 +
        sys.exit(0)
 +
 +
    sys.exit(1)
 +
 +
if __name__ == "__main__":
 +
    main()

Revision as of 12:31, 13 May 2014

Setup to allow gLite-WMS jobs to run

Create an empty file /usr/etc/globus-user-env.sh on all worker nodes.

Setup for LHCb

A default runtime environment must be setup. This can be done by adding the following line to the [grid-manager] section of /etc/arc.conf:

authplugin="PREPARING timeout=60,onfailure=pass,onsuccess=pass /usr/local/bin/default_rte_plugin.py %S %C %I ENV/GLITE"

This sets ENV/GLITE as a default runtime environment. The file /usr/local/bin/default_rte_plugin.py is:

  1. !/usr/bin/python

"""Usage: default_rte_plugin.py <status> <control dir> <jobid> <runtime environment>

Authplugin for PREPARING STATE

Example:

 authplugin="PREPARING timeout=60,onfailure=pass,onsuccess=pass /usr/local/bin/default_rte_plugin.py %S %C %I <rte>"

"""

def ExitError(msg,code):

   """Print error message and exit"""
   from sys import exit
   print(msg)
   exit(code)

def SetDefaultRTE(control_dir, jobid, default_rte):

   from os.path import isfile
   desc_file = '%s/job.%s.description' %(control_dir,jobid)
   if not isfile(desc_file):
      ExitError("No such description file: %s"%desc_file,1)
   f = open(desc_file)
   desc = f.read()
   f.close()
   if default_rte not in desc:
      with open(desc_file, "a") as myfile:
         myfile.write("( runtimeenvironment = \"" + default_rte + "\" )")
   return 0

def main():

   """Main"""
   import sys
   # Parse arguments
   if len(sys.argv) == 5:
       (exe, status, control_dir, jobid, default_rte) = sys.argv
   else:
       ExitError("Wrong number of arguments\n"+__doc__,1)
   if status == "PREPARING":
       SetDefaultRTE(control_dir, jobid, default_rte)
       sys.exit(0)
   sys.exit(1)

if __name__ == "__main__":

   main()