WMS Factory Design
Factory - Frontend Protocol
Introduction
This document describes the v3+ protocol between the glideinWMS Factory and the supported Frontend services.
The protocol defines how the Frontend describes "what" needs to be done and the Factory knows "how" to do it.
The VO Frontend, Corral Frontend, OSG, TeraGrid, and the Cloud all have special requirements where the frontends and users
have some information on the "how" that is needed by the Factory. This means that the Frontend cannot pass information
that will affect glidein submission; instead, they pick entry configurations that best suits their needs. The only exception is
the ability of the Corral Frontend to pass a TeraGrid Project Id and either the VO Frotnend or Corral Frontend to pass VM Id and
Type for cloud entries. The Frontends maintain the ability to affect glidein behavior with glidein attributes.
Communication between the Factory and Frontend
The Factory and Frontends communicate through the WMS Collector using Condor Classads. The Classads have an internal Condor type of "Master" except for the monitoring classad which has the "License" internal type. These classads contain information generated by both glideinWMS and Condor.
- The Factory creates a Classad for each entry point to advertise that entry’s attributes.
- GlideinMyType = glidefactory
- The Frontend creates a request Classad for a specific entry at a Factory from which the Frontend wants glideins. This Classad contains information needed to submit and start the glideins per the Frontend’s requirements.
- GlideinMyType = glideclient
- The Factory creates a Classad for each Frontend that it handles a request from with monitoring values.
- GlideinMyType = glidefactoryclient
- The Factory creates a global Classad that describes the global Factory parameters to be used by the Frontends.
- GlideinMyType = glidefactoryglobal
- The Frontend creates a global Classad that contains the credential information for a Frontend for a specific Factory.
- GlideinMyType = glideclientglobal
Two of the generated values are used in maintaining unique Classads in the Collector. GlideinWMS services provide Name and an internal classad type (Master or License). The Name is published in the Classad and can be queried in the Collector. The internal classad type is only used by Condor and is not published. The Condor Collector may also add other values to the request Classad that are used in determining uniqueness, such as MyAddress.
Authentication
If encryption is used, the encrypted identity in the Frontend request must match the AuthenticatedIdentity attribute inserted by the Condor Collector. This is fundamental for the security of the glideinWMS protocol and is added to all Classads.
- AuthenticatedIdentity = "user@node.domain.name"
Condor Attributes
Each Classad will contain additional Condor attributes automatically added by Condor. These are reserved names and cannot be overridden. The list below may be slightly different depending on what version of Condor is used, please see the Condor documentation for more information.
- MyAddress = "<111.222.333.44:0>"
- LastHeardFrom = 1292273491
- UpdatesTotal = 5418
- UpdatesSequenced = 5380
- UpdateSequenceNumber = 1405
- UpdatesLost = 1
- UpdatesHistory = "0x00000000000000000000000000000000"
- TargetType = ""
- CurrentTime = time()