GlideinWMS The Glidein-based Workflow Management System

Search Results

WMS Factory Design

glideclient classad

Frontend Advertisement of Requests

The Frontend creates request Classads for the factory to submit glideins. In the Frontend configuration, you can either match to all entries or customize the match string to request pilots at specific sites. This match string will use information published in the Factory entry Classads and the user’s job Classads.

  1. User defined values.
    1. Users are not supposed to affect how glideins are submitted. Users can affect where they are submitted when the Frontend configures match expressions and the user provides supported requirements but this all takes place in the Frontend. User requirements are not put into the Frontend request for the Factory to interpret.
  2. Information used to identify the Classad.
    1. Values used to manage Classads in the Collector.
      • Name = "ReqName@ClientName" This is arbitrary except that it has to be unique for the WMS Collector.
      • Internal classad type of Master
    2. Values used to distinguish the different classad types
      • GlideinMyType = "glideclient"
    3. Values set by glideinWMS for consistency but are not used
      • MyType = "glideclient"
  3. Information about the configuration and installation. This is used by admins for querying the collector or possibly in match expressions.
    1. These describe the frontend and group making the request.
      • ClientName = "frontend_name.group_name"
      • FrontendName = "frontend_name"
      • GroupName = "group_name"
      • GlideinWMSVersion = "glideinWMS UNKNOWN"
  4. Information specific to a request.
    1. Information on the numbers related to how many glideins needed.
      • ReqIdleGlideins = 0
      • ReqMaxRunningGlideins = 1
    2. The entry that the Frontend needs glideins from. This value is used to match the request to the entry so it must exactly match the "Name" variable in the entry Classad.
      • ReqGlidein = "entry_name@glidein_name@factory_name"
    3. This not used by the Factory so it may contain an arbitrary value. In VO Frontends, it is used for monitoring and debugging.
      • ReqName = "entry_name@glidein_name@factory_name"
  5. Encrypted security parameters. The Factory and Frontend use these to identify and talk with each other.
    1. The Factory Key ID must match the one published by the Factory.
      • ReqPubKeyID = "03910dfe2d1101f80fd4f7c388fd2e1c"
    2. Encrypted symmetric key.
      • ReqPubKeyCode = "03910dfe2d1101f80fd4f7c388fd2e1c"
    3. Encrypted identity and security mapping information. These values will be encrypted in the actual Classad.
      • ReqEncIdentity = "frontend_name@factorynode.domain.name"
  6. Proxy Information. All glideins are submitted with a proxy and a Frontend can specify multiple proxies in each request. All proxy information is prefaced with GlideinEncParam and the values are encrypted.
    1. The number of proxies being sent.
      • GlideinEncParamnr_x509_proxies = "5"
    2. For each proxy, the identifier is listed as well as the proxy itself. The identifier must not change for a given proxy DN between updates.
      • GlideinEncParamx509_proxy_0_identifier = "identifier_for_proxy_0"
      • GlideinEncParamx509_proxy_0 = "actual_proxy_0"
      • GlideinEncParamx509_proxy_1_identifier = "identifier_for_proxy_0"
      • GlideinEncParamx509_proxy_1 = "actual_proxy_0"
      • Etc.
    3. The Factory uses the security name for whitelisting Frontends in an entry. The security class must be agreed upon with the Factory to ensure the correct security mappings exist. If these are not correct, the Frontend request will be denied.
      • GlideinEncParamSecurityName = "frontend_name"
      • GlideinEncParamx509_proxy_0_security_class = "frontend"
      • GlideinEncParamx509_proxy_1_security_class = "frontend"
      • Etc.
  7. Frontend defined information for affecting glideins.
    1. Optional Frontend Admin defined variables. They will be prefaced with GlideinParam.
      • GlideinParamUSE_MATCH_AUTH = "True"
      • GlideinParamGLIDEIN_Entry_Start = "True"
      • Etc.
    2. The Frontend specifies what Collector the glideins will report to and is required. This value is passed through to the glideins and is not used by the Factory.
      • GlideinParamGLIDEIN_Collector = "collectornode.domain.name:9618"
    3. The Frontend specifies the web staging area where the glideins will download Frontend provided files. A descript file (and signature for verification) is used to point to the files and their signs that will be used in starting the glideins. A Frontend can also contain groups with additional information so both the Frontend and group descript files are specified. Refer to here for the structure of the web area on the Frontend as well as the type and format of files expected.
      • WebURL = "http:⁄⁄frontend.domain.name⁄path-to-staging-area⁄stage⁄frontend_name"
      • WebSignType = "sha1"
      • WebDescriptFile = "description.abtfgq.cfg"
      • WebDescriptSign = "15af90be49a498528828d321f91ca2302"
      • WebGroupURL = "http:⁄⁄cms- frontend.domain.name⁄path-to-staging-area⁄stage⁄frontend_name⁄group_name"
      • WebGroupDescriptFile = "description.abtfgq.cfg"
      • WebGroupDescriptSign = "b7fde1fd2bc02b02dafd85a655c93f090cfa1e51"
  8. Monitoring and debugging values.
    1. These are generated by the Frontend and used for generating the monitoring data. All are prefaced with GlideinMonitor. Monitoring values may be shared between services but are only used in generating monitoring data and not to affect glidein requests.
      • Any Classad variable that begins with GlideinMonitor: GlideinMonitorRunning = 0, GlideinMonitorGlideinsIdle = 0, etc.

Example glideclient classad

MyType = "glideclient"
TargetType = ""
GlideinMyType = "glideclient"
GlideinWMSVersion = "glideinWMS UNKNOWN"
Name = "entry@glidein@factory@frontend-instance.main"
ClientName = "frontend-instance.main"
FrontendName = "frontend-instance"
GroupName = "main"
ReqName = "entry@glidein@factory"
ReqGlidein = " entry@glidein@factory "
WebURL = "http://node.domain.name/vofrontend/stage/frontend"
WebSignType = "sha1"
WebDescriptFile = "description.acgfgp.cfg"
WebDescriptSign = "f878f3762273245aa3d87f05b8c7306be0eff51c"
WebGroupURL = "http://cms-node.domain.name/vofrontend/stage/frontend /group_main"
WebGroupDescriptFile = "description.acgdrf.cfg"
WebGroupDescriptSign = "0e832bcc4e47d388803255ac7a98fbe4580f4961"
ReqPubKeyID = "60b25b1dca401abad2d17c2f5f15e887"
**ReqEncKeyCode = "f8ee5f9f031141071ef5a40f0e0911de3c09f35517335f721fbbe912b32f73"
**ReqEncIdentity = "1dcd10a1ca601b5a55fe27db93b2c8f7242559cd15fed974ac28f153236689d06"
ReqIdleGlideins = 0
ReqMaxRunningGlideins = 1
ReqIdleChunkSize = 1
GlideinParamUSE_MATCH_AUTH = "True"
GlideinParamGLIDEIN_Entry_Start = "True"
GlideinParamGLIDEIN_Entry_Rank = "1"
GlideinParamGLIDEIN_Collector = "node.domain.name"
GlideinMonitorRunning = 0
GlideinMonitorGlideinsRunning = 0
GlideinMonitorIdle = 0
GlideinMonitorGlideinsTotal = 0
GlideinMonitorOldIdle = 0
GlideinMonitorGlideinsIdle = 0
GlideinMonitorRunningHere = 0
GlideinEncParamx509_proxy_0_identifier = "e5e86dea2bc94f357b922ff41866385d"
GlideinEncParamSecurityName = "798a603c1d9017ab1f250d79388e7fe9"
**GlideinEncParamx509_proxy_0 = "79dbcbba4de07ac0578b342db4b63b91a1b12020dc89ab17601d2b634"
GlideinEncParamnr_x509_proxies = "36d9444ae0177f649c492a01e3575806"
GlideinEncParamx509_proxy_0_security_class = "160d7ca0e441da3407675d2003571a3e"
MyAddress = "<111.222.333.44:0>"
AuthenticatedIdentity = "frontend_user@node.domain.name"
LastHeardFrom = 1294182587
UpdatesTotal = 159
UpdatesSequenced = 0
UpdatesLost = 0
UpdatesHistory = "0x00000000000000000000000000000000"

**Note:  This attribute was shortened to fit into this document.