WMS Factory Design
glidefactory ClassAd
Jump to:
Factory Advertisement of Entries
Each Factory entry advertises information about itself that Frontends
use when creating requests. The Frontend also uses this information to
publish resource ClassAds to the User Collector.
There is one ClassAd per entry point and it includes the following:
-
Information used to identify the ClassAd. FactoryName and
GlideinName are used by the Frontend to identify the factory needed
when generating requests.
-
Values used to manage Classads in the Collector
- Name = "entry_name@glidein_name@factory_name"
- Internal ClassAd type of Master
-
Values used to distinguish the different ClassAd types and used
by GlideinWMS to query the Collector
- GlideinMyType = "glidefactory"
-
Values set by GlideinWMS to be used by HTCondor but not by
GlideinWMS
- MyType = "glidefactory"
-
Values used to manage Classads in the Collector
-
Requirements of the Factory.
-
The Factory and Frontend agree on trust domains and are used to
determine what credentials are valid for a site. This is used by
the Frontend to map a credential to an entry so each entry
publishes its trust domain. The Factory does not interpret this
value and it is used by Frontends.
- GLIDEIN_TrustDomain = "OSG"
-
Each entry supports an authentication method that describes the
credential requirements for submitting glideins. Only one method
is allowed per entry and these attributes are only used by v3+
Frontends. The glidein proxy attribute is True for
non-grid-proxy entries.
- GLIDEIN_SupportedAuthenticationMethod = "grid_proxy"
- GlideinRequireGlideinProxy = False
- Additional requirements may need to be supplied by the Frontend. An entry may require the Frontend to pass the VM Id and Type.
-
The Factory and Frontend agree on trust domains and are used to
determine what credentials are valid for a site. This is used by
the Frontend to map a credential to an entry so each entry
publishes its trust domain. The Factory does not interpret this
value and it is used by Frontends.
-
Information about the configuration and installation. This
is used by admins for querying the collector or possibly in match
expressions.
-
Factory information
- FactoryName = "factory_name"
- GlideinName = "glidein_name"
- GlideinWMSVersion = "glideinWMS UNKNOWN"
-
Entry information. These values are specific to each entry and
may be used by the Frontends in matching user requirements to
jobs.
- EntryName = "entry_name"
- GLIDEIN_GridType = "condor"
- GLIDEIN_GlobusRSL = "(queue=default)"
- GLIDEIN_Gatekeeper = "entry.domain.name entry.domain.name:port"
- DaemonStartTime = 1291848363
-
Factory information
-
Optional Factory admin defined attributes. If const=False,
they will be prefaced with GlideinParam. The intention of this is to
indicate that the Frontend can override but this functionality is
broken.
-
Values used to affect glidein behavior.
- CCB = "True"
- GlideinParamGLIDEIN_Max_Idle = 1200
- Etc.
-
Information published about an entry that can be used by the
Frontend, for example, something used in a Match expression for
matching user jobs to entries.
- GLIDEIN_Site = "site_name"
- Etc.
-
Glidein Collector: This special value is automatically added by
the Factory in every Classad. The Frontend is required to
overwrite it (define in the Frontend request).
- GlideinParamGLIDEIN_Collector = "Fake"
-
Values used to affect glidein behavior.
-
Communication requirements.
-
The Factory publishes the security information that the Frontend
uses to communicate requests. This is needed for legacy reasons.
- PubKeyID = "03910dfe2d1101f80fd4f7c388fd2e1c"
- PubKeyType = "RSA"
- SupportedSignTypes = "sha1"
- PubKeyValue = "-----BEGIN PUBLIC KEY-----\nMIIBIjAG9w0BAQ32m ... eZWnULjTB\n-----END PUBLIC KEY-----\n"
-
The Factory publishes the security information that the Frontend
uses to communicate requests. This is needed for legacy reasons.
-
Downtime information.
-
An entry can go into downtime when there are issues. The
Frontend can then use this information in selecting entries so
that it only requests glideins from entries that can service the
request.
- GLIDEIN_In_Downtime = "True"
-
An entry can go into downtime when there are issues. The
Frontend can then use this information in selecting entries so
that it only requests glideins from entries that can service the
request.
-
Monitoring values.
-
These are generated by the Factory 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 information and not to affect
glidein submission.
- GlideinMonitorTotalStatusPending = 0
- GlideinMonitorTotalStatusIdle = 0
- Etc.
-
These are generated by the Factory 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 information and not to affect
glidein submission.
The Factory does not advertise all configuration information for an entry. There may be additional values may affect glidein submission, such as limits on how many pilots are allowed in the queue, or glidein behavior at the site, such as unpublished attributes.
Example glidefactory ClassAd
MyType = "glidefactory" TargetType = "" GlideinMyType = "glidefactory" GlideinWMSVersion = "glideinWMS UNKNOWN" Name = "entry@glidein@factory" FactoryName = "factory" GlideinName = "glidein" EntryName = "entry" SupportedSignTypes = "sha1" PubKeyID = "60b25b1dca401abad2d17c2f5f15e887" PubKeyType = "RSA" PubKeyValue = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+dfogrc8+zSaK5vnfsgd\n4qbC2E0lD95QoCHGI6bevjCN2oeZzWgsY7Wug5esmuStgYSKC7XR2zu30rpfrD9V\ /EpsWCDIvBkDi\nU6v33EfFnUOUtp0pOxWk5JT/k+yo4i1hP4KTPjQt4K1tLeY7CGxqtMbD/wTGTgH+\nLo/UwtDIFXacL8tKXJTNZGjzlpaC/tWdKT8RJN09J6ioejAXgDXJ7a+VRbBOZNZb\njQIDAQAB\n-----END PUBLIC KEY-----\n" GlideinAllowx509_Proxy = TRUE GlideinRequirex509_Proxy = TRUE DaemonStartTime = 1293038517 UpdateSequenceNumber = 3794 GLIDEIN_In_Downtime = "False" GLIDEIN_GridType = "condor" USE_CCB = "True" GCB_ORDER = "NONE" GLIDEIN_Site = "xen13" GLIDEIN_GlobusRSL = "(queue=default)" GLIDEIN_Gatekeeper = "node.domain.name/jobmanager-condor" GlideinParamUSE_MATCH_AUTH = "True" GlideinParamGLIDEIN_Collector = "node.domain.name" GlideinMonitorTotalClientMonitorGlideTotal = 0 GlideinMonitorTotalStatusPending = 0 GlideinMonitorTotalStatusStageIn = 0 GlideinMonitorTotalStatusIdle = 0 GlideinMonitorTotalClientMonitorJobsRunning = 0 GlideinMonitorTotalRequestedMaxGlideins = 1 GlideinMonitorTotalClientMonitorGlideRunning = 0 GlideinMonitorTotalStatusIdleOther = 0 GlideinMonitorTotalStatusStageOut = 0 GlideinMonitorTotalRequestedIdle = 0 GlideinMonitorTotalStatusRunning = 0 GlideinMonitorTotalClientMonitorInfoAge = 22 GlideinMonitorTotalStatusWait = 0 GlideinMonitorTotalClientMonitorJobsRunHere = 0 GlideinMonitorTotalClientMonitorJobsIdle = 0 GlideinMonitorTotalClientMonitorGlideIdle = 0 GlideinMonitorTotalStatusHeld = 0 MyAddress = "<131.225.206.30:0>" AuthenticatedIdentity = "factory_user@node.domain.name" LastHeardFrom = 1294181640 UpdatesTotal = 11713 UpdatesSequenced = 11665 UpdatesLost = 1 UpdatesHistory = "0x00000000000000000000000000000000" **Note: This attribute was shortened to fit into this document.