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.
- 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.
-
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 applied 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 applied 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.