Project

General

Profile

Configuring GlideinWMS 2 5 1 to use multiple proxies uniquely assigned to multiple factory entry points

The Frontend

  • Frontend.xml has one group defined, named 'main' with one proxy by default. Multiple proxies for one group are discussed at http://www.uscms.org/SoftwareComputing/Grid/WMS/glideinWMS/doc.prd/frontend/configuration.html#multiple_proxy
  • This is related to what we want, but we need a proxy for each experiment.
  • To do this,
    • we create a group for each experiment, which use their own proxies. For instance:
         <groups>
            <group name="FNAL_argoneut" enabled="True">
         
    • we set up match criteria between the frontend group and entry points in the glideinwms.xml This fragment matches group FNAL_argoeneut with entry point FNAL_argoneut defined in glideinWMS.xml
               <match match_expr='glidein["attrs"]["GLIDEIN_Site"] in job["DESIRED_Sites"].split(",")'>
                  <factory query_expr='(GLIDEIN_Site=!=UNDEFINED)&amp;&amp;(GLIDEIN_Site=="FNAL_argoneut")'>
                     <match_attrs>
                        <match_attr name="GLIDEIN_Site" type="string"/>
                     </match_attrs>
                     <collectors>
                     </collectors>
                  </factory>
                  <job query_expr='(stringListMember("FNAL_argoneut",DESIRED_Sites)=?=True)'>
                     <match_attrs>
                        <match_attr name="DESIRED_Sites" type="string"/>
                     </match_attrs>
      
         
    • This fragment of group FNAL_argoneut tells it which proxy to use
                  <proxies>
                     <proxy absfname="/home/gfactory/.grid/pilot.argoneut.proxy" security_class="frontend"/>
                  </proxies>
      
    • see frontend.byexperiment.xml for the complete example

The Factory

  • we define an entry point in the glideinwms.xml for each group. Continuing with this example, here is entry FNAL_argoneut. Note two properties of this entry point that we will use to match:
    • the GLIDEIN_Site property is defined as FNAL_argoneut
    • the AGroup property is defined as group_argoneut
            <entry name="FNAL_argoneut" enabled="True" gatekeeper="fnpcfg1.fnal.gov/jobmanager-condor" gridtype="gt2" rsl="(queue=default)(jobtype=single)" schedd_name="schedd_glideins1@gpsn01.fnal.gov" verbosity="std" work_dir="Condor">
               <config>
                  <max_jobs held="1000" idle="2000" running="10000"/>
                  <release max_per_cycle="20" sleep="0.2"/>
                  <remove max_per_cycle="5" sleep="0.2"/>
                  <submit cluster_size="10" max_per_cycle="100" sleep="0.2"/>
               </config>
               <downtimes/>
               <allow_frontends>
               </allow_frontends>
               <attrs>
                  <attr name="AGroup" const="True" glidein_publish="True" job_publish="True" parameter="True" publish="True" type="string" value="group_argoneut"/>
                  <attr name="CONDOR_ARCH" const="True" glidein_publish="False" job_publish="False" parameter="True" publish="False" type="string" value="default"/>
                  <attr name="CONDOR_OS" const="True" glidein_publish="False" job_publish="False" parameter="True" publish="False" type="string" value="default"/>
                  <attr name="GLEXEC_BIN" const="True" glidein_publish="False" job_publish="False" parameter="True" publish="True" type="string" value="OSG"/>
                  <attr name="GLIDEIN_Site" const="True" glidein_publish="True" job_publish="True" parameter="True" publish="True" type="string" value="FNAL_argoneut"/>
                  <attr name="USE_CCB" const="True" glidein_publish="True" job_publish="False" parameter="True" publish="True" type="string" value="True"/>
               </attrs>
               <files>
               </files>
               <infosys_refs>
                  <infosys_ref ref="cms-xen9.fnal.gov:2119/jobmanager-condor-default.1165854729" server="osg-ress-4.fnal.gov" type="RESS"/>
               </infosys_refs>
               <monitorgroups>
               </monitorgroups>
            </entry>
      
      

The Submission Script

  • I can now force jobs to go only through the FNAL_argoneut entry point, using only the pilot.argoneut.proxy, by putting this in my condor submission file:
    +DESIRED_Sites = "FNAL_argoneut" 
    +Agroup = "group_argoneut" 
    requirements  = (GLIDEIN_Site=="FNAL_argoneut") && (TARGET.AGroup=="group_argoneut")