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. The only exception is the
Project ID passed by Corral Frontends.
- GlideinEncParamProjectId = "abcx123"
- 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. The only exception is the
Project ID passed by Corral Frontends.
- Information used to identify the Classad.
- Values used to manage Classads in the Collector. The id is the credential ID in this
classad and is the grid_proxy, public cert, public key, or username, depending on
the authentication method for this entry. Each request classad contains one set of credentials.
- Name = "id_entry@glidein_name@factory_name @frontend_name.group_name"
- 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. The id is the credential ID in this
classad and is the grid_proxy, public cert, public key, or username, depending on
the authentication method for this entry. Each request classad contains one set of credentials.
- 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
- ReqMaxGlideins = 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" attribute in the entry classad.
- ReqGlidein = "entry_name@glidein_name@factory_name"
- Information on the numbers related to how many glideins needed.
- Encryption information. 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"
- The Factory Key ID must match the one published by the Factory.
- Security Credentials. All glideins are submitted with some kind of credentials. The Factory
Entry specifies what credentials are needed in the authentication method and the Frontend passes the required info in the
request. Only one (set) of credentials is allowed in a request. All proxy information is prefaced with GlideinEncParam and
the values are encrypted with the symmetric key. The identifier for a given credential does not change between requests (it
is a hash based on filename and not the contents of the credentials).
- Authentication method contains "grid_proxy"
- GlideinEncParamSubmitProxy = ID
- Authentication method contains "cert_pair"
- GlideinEncParamPublicCert = ID
- GlideinEncParamPrivateCert = ID
- GlideinEncParamGlideinProxy = ID
- Authentication method contains "key_pair"
- GlideinEncParamPublicKey = ID
- GlideinEncParamPrivateKey = ID
- GlideinEncParamGlideinProxy = ID
- Authentication method contains "username_password"
- GlideinEncParamUsername = ID
- GlideinEncParamPassword = ID
- GlideinEncParamGlideinProxy = ID
- Authentication method contains "grid_proxy"
- Identity Credentials. The Factory may also require the Frontend to
pass identity information in addition to the authenication methods for glidein submission.
- Authentication method contains "+project_id". This is only applicable for Corral Frontends and for TeraGrid sites.
- GlideinEncParamProjectId = encrypted project id
- Authentication method contains "+vm_id". This is used on cloud sites.
- GlideinEncParamVMId = encrypted VM id
- Authentication method contains "+vm_type". This is used on cloud sites.
- GlideinEncParamVMType = encrypted VM type
- Authentication method contains "+voms_attr"
- The Frontend must validate that the submit or glidein proxy contains the VOMS extension. No additional parameter is passed.
- Authentication method contains "+project_id". This is only applicable for Corral Frontends and for TeraGrid sites.
- Security Information. The Factory needs additional security information to
make sure the request is allowed. These values are encrypted using the symmetric key.
- Encrypted identity information.
- ReqEncIdentity = "frontend_name@factorynode.domain.name"
- 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 this is not correct, the
Frontend request will be denied.
- GlideinEncParamSecurityName = "frontend_name"
- GlideinEncParamSecurityClass = "frontend"
- Encrypted identity information.
- 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.
- This not used by the Factory but in VO Frontends, where it is used for monitoring and debugging.
- ReqName = "entry_name@glidein_name@factory_name"
- 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 ReqMaxGlideins = 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.