# GlideinWMS The Glidein-based Workflow Management System

- Home
- Download
- Glidein Frontend
- WMS Factory
- Components
- Recipes
- FAQ

## WMS Factory Design

- Overview
- Details
- Configuration
- Design
- Monitoring
- Troubleshooting

### glidefactoryclient ClassAd

Jump to:

1. Identify the ClassAd
2. Request details
3. Factory and Frontend attributes
4. Monitoring

Factory Design Topics:

- Factory Internals
- Entry Internals
- Glidein Internals
- Data Exchange

## Factory Advertisement of Frontends

The Factory will generate a Classad for each Frontend that it services. It contains monitoring information that may be used by either the Factory or Frontend.

1. Information used to identify the Classad.
   1. Values used to manage Classads in the Collector
      - Name = "entry_name@glidein_name@factory_name"
      - Internal ClassAd type of License
   2. Values used to distinguish the different ClassAd types
      - GlideinMyType = "glidefactoryclient"
   3. Values set by GlideinWMS for consistency but are not used
      - MyType = "glidefactoryclient"
2. Information about a specific request for a specific entry.
   1. Factory information
      - ReqGlidein = "entry_name@glidein_name@factory_name"
      - ReqFactoryName = "factory_name"
      - ReqGlideinName = "glidein_name"
      - GlideinWMSVersion = "glideinWMS UNKNOWN"
   2. Entry information
      - ReqEntryName = "entry_name"
      - GLIDEIN_GridType = "condor"
      - GLIDEIN_Gatekeeper = "entry.domain.name entry.domain.name:port"
   3. Frontend information
      - ReqClientName = "frontend_name.group_name"
      - ReqClientReqName = "entry_name@glidein_name@factory_name@frontend_name.group_name"
      - GlideinParamGLIDEIN_Collector = "user_collector_node.domain.name"
3. Factory and Frontend defined attributes. These may or may not be prefaced by GlideinParam depending on how the Factory and Frontend requests have defined them. All attributes are optional except GLIDEIN_Collector; this is always required to be defined by the Frontend.
   1. Values used to affect glidein behavior.
      - USE_CCB = "True"
      - USE_MATCH_AUTH = "True"
      - Etc.
   2. 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.
4. Monitoring values.
   1. 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 do not to affect glidein submission.
      - GlideinMonitorClientMonitorGlideRunning = 0
      - GlideinMonitorClientMonitorJobsRunning = 0
      - GlideinMonitorStatusIdle = 0
      - GlideinMonitorStatusHeld = 0
      - GlideinMonitorStatusPending = 0
      - GlideinMonitorStatusStageOut = 0
      - GlideinMonitorStatusIdleOther = 0
      - GlideinMonitorStatusRunning = 0
      - GlideinMonitorClientMonitorInfoAge = 23
      - GlideinMonitorClientMonitorGlideIdle = 0
      - GlideinMonitorClientMonitorJobsRunHere = 0
      - GlideinMonitorStatusStageIn = 0
      - GlideinMonitorClientMonitorGlideTotal = 0
      - GlideinMonitorRequestedIdle = 0
      - GlideinMonitorStatusWait = 0
      - GlideinMonitorRequestedMaxGlideins = 1
      - GlideinMonitorClientMonitorJobsIdle = 0

## Example glidefactoryclient ClassAd

    MyType = "glidefactoryclient"
    TargetType = ""
    GlideinMyType = "glidefactoryclient"
    GlideinWMSVersion = "glideinWMS UNKNOWN"
    Name = "entry@ glidein @factory@frontend-instance.main"
    ReqGlidein = "entry@glidein@factory"
    ReqFactoryName = "factory_name"
    ReqGlideinName = "instance_name"
    ReqEntryName = "entry"
    ReqClientName = " frontend-instance.main"
    ReqClientReqName = " entry@glidein@factory "
    GLIDEIN_GridType = "condor"
    USE_CCB = "True"
    GCB_ORDER = "NONE"
    GLIDEIN_Site = "entry"
    GLIDEIN_GlobusRSL = "(queue=default)"
    GLIDEIN_Gatekeeper = "node.domain.name node.domain.name:port"
    GlideinParamUSE_MATCH_AUTH = "True"
    GlideinParamGLIDEIN_Collector = "user_collector_node.domain.name"
    GlideinMonitorClientMonitorGlideRunning = 0
    GlideinMonitorClientMonitorJobsRunning = 0
    GlideinMonitorStatusIdle = 0
    GlideinMonitorStatusHeld = 0
    GlideinMonitorStatusPending = 0
    GlideinMonitorStatusStageOut = 0
    GlideinMonitorStatusIdleOther = 0
    GlideinMonitorStatusRunning = 0
    GlideinMonitorClientMonitorInfoAge = 23
    GlideinMonitorClientMonitorGlideIdle = 0
    GlideinMonitorClientMonitorJobsRunHere = 0
    GlideinMonitorStatusStageIn = 0
    GlideinMonitorClientMonitorGlideTotal = 0
    GlideinMonitorRequestedIdle = 0
    GlideinMonitorStatusWait = 0
    GlideinMonitorRequestedMaxGlideins = 1
    GlideinMonitorClientMonitorJobsIdle = 0
    MyAddress = "<131.225.206.30:0>"
    AuthenticatedIdentity = "factory_user@node.domain.name"
    LastHeardFrom = 1294181338
    UpdatesTotal = 30
    UpdatesSequenced = 0
    UpdatesLost = 0
    UpdatesHistory = "0x00000000000000000000000000000000"