The VO Frontend

Description

The VO Frontend is, as the name suggests, the user interface of a glidein based WMS.

Index

Overview

The main task of the VO frontend is to look for user jobs and ask the Glidein Factories to provide glideins, if needed. See the picture below for a general overview.

The VO frontend knows nothing about the glideins or Grid sites; the only information in has are the attributes that the various Glidein Factories publish. This makes the life of the frontend much easier, as it only has to worry about matching user job requirements to the factory attributes.

Implementation

The current implementation of the VO frontend is Python based. It uses a tree of process like the factory does.

The sub-process (group) code is composed of 4 logical pieces:

The top two elements simply contact the appropriate Condor Collector and store the data in memory.

The matchmaking procedure loops over all the factory ads and counts the number of idle user jobs that match the attributes of that particular factory entry point.

The matching expression is a Python expression, having as inputs

Both objects are dictionaries, with keys being attribute names, and values being attribute values.

A few examples:

job["CDFMaxHours"]<glidein["attrs"]["WMSMaxHours"]
job["HasData"] or (glidein["site"] in string.split(job["SitesWithRequiredData"]))
(job["Arch"] == glidein["Arch"]) and (job["gccVersion"]==glidein["attrs"]["gccVersion"])

Finally, the advertise procedure loops over the counts and converts them into appropriate Condor Class Ads.

The glue code is responsible of parsing the input parameters, loading the configuration values and loop over the above steps.

The frontend also can handle multiple proxies. The proxy selection is handled by a plugin mechanism.

The VO Frontend management

The VO Frontend configuration involves creating the configuration directory and files and then creating the daemons. As in the Glidein Factory set up, an XML file is converted into a configuration tree by a configuration tool.

For the installer to create the VO Frontend instance from the configuration directory and grid mapfile, the following objects can be defined:

The following group parameters are used to configure multiple frontends. If only one group is specified, they apply to all frontends. The objects specified are used for creating and monitoring glideins.

Starting a VO Frontent Daemons

Once you have the desired configuration file, move to the VO frontend directory  and launch the command:

./frontend_startup start

All the activity messages will go into
group_*/log/frontend_info.<date>.log
while the warnings go into
group_*/log/frontend_err.<date>.log<

The frontend logs are deleted after a week.



Repository

CVSROOT

cvsuser@cdcvs.fnal.gov:/cvs/cd

Package(s)

glideinWMS/frontend

Author(s)

Since Aug. 14th - Igor Sfiligoi (Fermilab Computing Division)