
WMS Factory Design
glideclient classad
Jump to:
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.
- User defined values.
- 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.
- Information used to identify the Classad.
- 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
- Values used to distinguish the different classad types
- GlideinMyType = "glideclient"
- Values set by glideinWMS for consistency but are not used
- MyType = "glideclient"
- Values used to manage Classads in the Collector.
- Information about the configuration and installation. This is used by admins for
querying the collector or possibly in match expressions.
- These describe the frontend and group making the request.
- ClientName = "frontend_name.group_name"
- FrontendName = "frontend_name"
- GroupName = "group_name"
- GlideinWMSVersion = "glideinWMS UNKNOWN"
- These describe the frontend and group making the request.
- Information specific to a request.
- Information on the numbers related to how many glideins needed.
- ReqIdleGlideins = 0
- ReqMaxRunningGlideins = 1
- 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"
- 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"
- Information on the numbers related to how many glideins needed.
- Encrypted security parameters. The Factory and Frontend use these to identify and talk with each other.
- The Factory Key ID must match the one published by the Factory.
- ReqPubKeyID = "03910dfe2d1101f80fd4f7c388fd2e1c"
- Encrypted symmetric key.
- ReqPubKeyCode = "03910dfe2d1101f80fd4f7c388fd2e1c"
- Encrypted identity and security mapping information. These values will be encrypted in the actual Classad.
- ReqEncIdentity = "frontend_name@factorynode.domain.name"
- The Factory Key ID must match the one published by the Factory.
- 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.
- The number of proxies being sent.
- GlideinEncParamnr_x509_proxies = "5"
- 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.
- 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.
- The number of proxies being sent.
- Frontend defined information for affecting glideins.
- Optional Frontend Admin defined variables. They will be prefaced with GlideinParam.
- GlideinParamUSE_MATCH_AUTH = "True"
- GlideinParamGLIDEIN_Entry_Start = "True"
- Etc.
- 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"
- 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"
- Optional Frontend Admin defined variables. They will be prefaced with GlideinParam.
- Monitoring and debugging values.
- 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.
- 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.
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.