Difference between revisions of "ARC CE Tips"

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

Revision as of 12:32, 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:

#!/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()