## Declarations for HTCondor params, each entry starts with
##
## [PARAM_NAME] and is followed by one or more keyword=value pairs. keywords are:
## default=<default_value>  The default value for this knob.  maybe empty if there is no default value
## win32_default=<winval>   The default value for windows if it is different from the normal default, may be empty if there is no default
## type=<value_type>        <value_type> is one of [string, int, bool, double, long, path], default is string
## range=<min>,<max>        either <min> or <max> may be blank, default is unbounded
## description=One sentence description of the param (a.k.a friendly_name)
## usage=One sentence description of the use of the param, should start with a verb
## tags=list of daemons/tools that use the param
## customization=<custtype> <custtype> is one of [const, common, normal, seldom, expert, devel, never], default is seldom
##                          const - should never be changed, e.g. HOUR
##                          common or normal - customization is likely.  code does not distinguish these two, e.g. DAEMON_LIST
##                          seldom - param exists to customize HTCondor, but most pools will not (this is the majority of params)
##                          expert - the default value will be likely to work for nearly all pools. e.g DC_DAEMON_LIST 
##                          devel - only developers are expected to customize this one, e.g. SYSTEM_STARTD_ATTRS
##                          never - proper operation depends on this, but it is not a constant
## restart=true             value must one of [true, false, never]. default is false
##                          true - if a restart is needed before the param takes effect
##                          never - the param is loaded at (job) start and never reloaded (i.e DAG, Shadow & Starter knobs)
##
## the default keyword is required, all others are optional.
## 
## Multiline values may be declared by using : @tag instead of = like this
## [PARAM_NAME]
## default: @end
##  <default_value_line1>
##  <default_value_line2>
## @end
## type=string
##
## Metaknobs go at the bottom of this file, after the metaknob banner
## metaknob names always start with $ and a category name.
##

[MAX_DRAINING_ACTIVATION_DELAY]
default=20
description=When draining, how many seconds should a claimed slot wait to be activated?  Draining will be extended by this delay..
tag=startd

[ENABLE_KERNEL_TUNING]
default=true
type=bool

[KERNEL_TUNING_LOG]
default=$(LOG)/KernelTuning.log
type=path

[LINUX_KERNEL_TUNING_SCRIPT]
default=$(LIBEXEC)/linux_kernel_tuning
type=path

[COLLECTOR_ENVIRONMENT]
# XXX follows pattern of %s_ENVIRONMENT
default=
type=string

[MASTER]
default=$(SBIN)/condor_master
win32_default=$(SBIN)\condor_master.exe
type=path
description=full path of the Master binary

[MASTER_ENVIRONMENT]
# XXX follows pattern of %s_ENVIRONMENT
default=
type=string

[MASTER_FLAG]
# XXX follows pattern of %s_FLAG
default=
type=string

[COLLECTOR_FLAG]
# XXX follows pattern of %s_FLAG
default=
type=string

[SHUTDOWN_FAST_TIMEOUT]
default=300
type=int

[PREEN_INTERVAL]
default=86400
type=int

[PREEN_COREFILE_MAX_SIZE]
default=50000000
type=long
description=Maximum size allowed for coredump files. Anything bigger gets erased. Default 50Mb.
tags=preen

[PREEN_COREFILE_STALE_AGE]
default=5184000
type=int
description=Age in seconds of a coredump file deemed stale. Default 60 days.
tags=preen

[PREEN_COREFILES_PER_PROCESS]
default=10
type=int
description=Number of recent core dump files to retain per process.
tags=preen

[DEFAULT_MASTER_SHUTDOWN_SCRIPT]
default=
type=path
description=Program to execute upon condor_master shutdown
tags=master

[MASTER_NEW_BINARY_DELAY]
default=120
type=int

[MASTER_NEW_BINARY_RESTART]
default=GRACEFUL
type=string
description=Master New Binary Restart Mode

[MASTER_CHECK_NEW_EXEC_INTERVAL]
default=300
type=int

[MASTER_UPDATE_INTERVAL]
default=300
type=int

[MASTER_RECOVER_FACTOR]
default=300
type=int
description=Master Recover Ceiling

[MASTER_BACKOFF_FACTOR]
default=2.0
type=double

[MASTER_BACKOFF_CEILING]
default=3600
type=int

[MASTER_BACKOFF_CONSTANT]
# XXX is this right?
default=9
type=int

[FULL_HOSTNAME]
default=
type=string
tags=config
description=Fully qualified hostname of the machine
customization=expert

[HOST_ALIAS]
default=$(FULL_HOSTNAME)
type=string
tags=config
description=Preferred DNS alias for this host
customization=expert

[USE_COLLECTOR_HOST_CNAME]
default=true
type=bool

[HOSTNAME]
default=
type=string
tags=config
description=Detected name of the machine
customization=const

[SUBSYSTEM]
default=
type=string
tags=config
description=Type of the Daemon or tool
usage=Set automatically to be MASTER, STARTD, SCHEDD, SUBMIT TOOL, etc. Used by the configuration.
customization=const

[LOCALNAME]
default=
type=string
tags=config
description=Instance name of the Dameon, usually the same as SUBSYSTEM
usage=Set automatically to be MASTER, STARTD, SCHEDD, SUBMIT TOOL, etc. Used by the configuration.
customization=const

[CCB_ADDRESS]
default=
type=string
customization=normal

[SETTABLE_ATTRS_CONFIG]
# This follows a form of SETTABLE_ATTRS_<PERM-LEVEL>, where CONFIG is the level most used for this feature
default=
type=string
description=List of configuration variables that can be set by condor_config_val -set
customization=normal

[SETTABLE_ATTRS_ADMINISTRATOR]
# This follows a form of SETTABLE_ATTRS_<PERM-LEVEL>, where CONFIG is the level most used for this feature
default=
type=string
description=List of configuration variables that can be set by condor_config_val -set
customization=normal

[MASTER_TIMEOUT_MULTIPLIER]
# This follows a form of <SUBSYS>_TIMEOUT_MULTIPLIER
default=0
type=int

[DNS_CACHE_REFRESH]
default=28800
type=int

[MASTER_INSTANCE_LOCK]
default=
type=string
description=Path to instance lock file for the Master

[MASTER_DAEMON_AD_FILE]
default=
type=string
description=Path to the daemon ad file for the Master

[COLLECTOR_TCP_SOCKET_BUFSIZE]
default=128*1024
range=1024,
type=int
description=Outgoing traffic TCP write size for Collector
restart=true

[COLLECTOR_PORT]
default=9618
range=0,65535
type=int
description=Default collector port

[COLLECTOR_QUERY_WORKERS]
default=4
range=0,
type=int
description=Max number of Collector child processes

[COLLECTOR_QUERY_WORKERS_RESERVE_FOR_HIGH_PRIO]
default=1
range=0,
type=int
description=Max number of Collector child processes reserved for high prioirty queries

[COLLECTOR_QUERY_WORKERS_PENDING]
default=50
range=0,
type=int
description=Max number of Collector queries to queue

[COLLECTOR_QUERY_MAX_WORKTIME]
default=0
range=0,
type=int
description=Max number of seconds to serve a Collector query, 0=no limit

[SOCKET_LISTEN_BACKLOG]
default=4096
range=1,
type=int
restart=true

[CONDOR_CREDENTIAL_DIR]
default=/tmp
type=string
description=Directory for condor credentials

[QUERY_TIMEOUT]
default=60
type=int

[LIBVIRT_XML_SCRIPT]
default=$(LIBEXEC)/libvirt_simple_script.awk

[VM_GAHP_SERVER]
default=$(SBIN)/condor_vm-gahp
win32_default=$(SBIN)\condor_vm-gahp.exe
type=path
tags=vm-gahp,vmgahp

[VM_GAHP_LOG]
default=$(LOG)/VMGahpLog
type=path
usage=$(LOG)/VMGahpLogs/VMGahpLog.$(USERNAME)
tags=vm-gahp

[MAX_VM_GAHP_LOG]
default=$(MAX_DEFAULT_LOG)
tags=vm-gahp

[XEN_BRIDGE_SCRIPT]
default=
type=string
tags=vm-gahp

[XEN_BOOTLOADER]
default=
type=string
tags=vm-gahp

[XEN_ALLOW_HARDWARE_VT_SUSPEND]
default=false
type=bool
tags=vm-gahp

[XEN_SCRIPT]
default=
type=string
tags=vm-gahp

[VM_TYPE]
default=
type=string
tags=vm-gahp

[VM_MAX_MEMORY]
default=0
type=int
tags=vm-gahp

[VM_NETWORKING]
default=false
type=bool
tags=vm-gahp

[VM_NETWORKING_TYPE]
default=
type=string
tags=vm-gahp

[VM_NETWORKING_DEFAULT_TYPE]
default=
type=string
tags=vm-gahp

[VM_NETWORKING_MAC_PREFIX]
default=
type=string
tags=vm-gahp

[VM_HARDWARE_VT]
default=false
type=bool
tags=vm-gahp

[USE_SCRIPT_TO_CREATE_CONFIG]
default=false
type=bool
tags=vm-gahp

[PROCD_ADDRESS]
default=$(RUN)/procd_pipe
win32_default=\\.\pipe\$Fpub(LOCK)
type=string
tags=master,starter

[BIND_ALL_INTERFACES]
default=true
type=bool
tags=daemons

[EXECUTE]
default=$(LOCAL_DIR)/execute
type=path
tags=startd,starter

[UID_DOMAIN]
default=$(FULL_HOSTNAME)
type=string
usage=to specify that each machine has its own UID space.
tags=starter

[ACCOUNTING_DOMAIN]
default=$(UID_DOMAIN)
type=string
usage=Specifies the accounting namespace for submitters.
tags=schedd

[TRUST_UID_DOMAIN]
default=
type=string
tags=starter

[TRUST_LOCAL_UID_DOMAIN]
default=true
type=bool

[FILESYSTEM_DOMAIN]
default=$(FULL_HOSTNAME)
type=string
usage=Used to indicate a shared file system, or to specify that each machine has its own file system.
tags=schedd,starter

[ARCH]
default=
tags=starter,submit
description=CPU architecture

[OPSYS]
default=
tags=starter,submit
description=Operating system

[OPSYSANDVER]
default=
tags=starter,submit
description=Operating system and major version number

[STARTER_LOG]
default=$(LOG)/StarterLog
type=path
tags=starter

[STARTER_DEBUG]
default=D_PID 
type=string
tags=starter
description=Debug logging options for the starter

[STARTER_LOG_NAME_APPEND]
description=What to append StarterLog filename, may be: false, true, Slot, Cluster, or JobId, true or undef gives 8.0 compatible behavior.
default=
type=string
tags=starter

[USER_JOB_WRAPPER]
default=
type=string
tags=starter

[SOFT_UID_DOMAIN]
default=
type=string
tags=starter

[DAGMAN_LOG_ON_NFS_IS_ERROR]
default=false
type=bool
tags=dagman,dagman_multi_dag
restart=never

[DAGMAN_RESET_RETRIES_UPON_RESCUE]
default=true
type=bool
tags=dagman,dag
restart=never

[DAGMAN_INSERT_SUB_FILE]
default=
type=path
tags=dagman,condor_submit_dag
restart=never

[DAGMAN_AUTO_RESCUE]
default=true
type=bool
tags=dagman,condor_submit_dag
restart=never

[DAGMAN_ON_EXIT_REMOVE]
default=(ExitSignal =?= 11 || (ExitCode =!= UNDEFINED && ExitCode >=0 && ExitCode <= 2))
type=string
tags=dagman,condor_submit_dag
restart=never

[DAGMAN_REMOVE_JOBS_AFTER_LIMIT_CHANGE]
default=false
type=bool
tags=dagman
restart=never

[DAGMAN_CONFIG_FILE]
default=
type=path
customization=normal
tags=dagman,dagman_main,condor_submit_dag
restart=never

[DAGMAN_MANAGER_JOB_APPEND_GETENV]
default=
type=string
tags=dagman,condor_submit_dag
restart=never

[DAGMAN_DEBUG_CACHE_ENABLE]
default=false
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_STARTUP_CYCLE_DETECT]
default=false
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_ALLOW_EVENTS]
# XXX 114 is really CheckEvents::ALLOW_TERM_ABORT | CheckEvents::ALLOW_EXEC_BEFORE_SUBMIT | CheckEvents::ALLOW_DOUBLE_TERMINATE | CheckEvents::ALLOW_DUPLICATE_EVENTS
default=114
type=int
customization=expert
tags=dagman,dagman_main
restart=never

[DAGMAN_RETRY_SUBMIT_FIRST]
default=true
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_RETRY_NODE_FIRST]
default=false
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_MUNGE_NODE_NAMES]
default=true
type=bool
customization=expert
tags=dagman,dagman_main
restart=never

[DAGMAN_ALLOW_ANY_NODE_NAME_CHARACTERS]
default=false
type=bool
tags=dagman
restart=never

[DAGMAN_PROHIBIT_MULTI_JOBS]
default=false
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_SUBMIT_DEPTH_FIRST]
default=false
type=bool
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_CONDOR_SUBMIT_EXE]
default=$(BIN)/condor_submit
win32_default=$(BIN)\condor_submit.exe
type=path
customization=expert
tags=dagman,dagman_main
restart=never

[DAGMAN_CONDOR_RM_EXE]
default=$(BIN)/condor_rm
win32_default=$(BIN)\condor_rm.exe
type=path
customization=expert
tags=dagman,dagman_main
restart=never

[DAGMAN_ABORT_DUPLICATES]
default=true
type=bool
customization=expert
tags=dagman,dagman_main
restart=never

[DAGMAN_ABORT_ON_SCARY_SUBMIT]
default=true
type=bool
customization=expert
tags=dagman,dagman_main
restart=never

[DAGMAN_PENDING_REPORT_INTERVAL]
default=600
type=int
tags=dagman,dagman_main
restart=never

[MAX_DAGMAN_LOG]
default=0
type=int
tags=dagman,dagman_main
restart=never

[DAGMAN_ALWAYS_RUN_POST]
default=false
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_COPY_TO_SPOOL]
default=false
type=bool
customization=expert
tags=dagman,dagman_main
restart=never

[DAGMAN_DEBUG]
default=
type=string
customization=normal
tags=dagman,dagman_main
restart=never
description=Debug log options for dagman

[DAGMAN_DEBUG_CACHE_SIZE]
default=5*1024*1024
type=int
tags=dagman,dagman_main
restart=never

[DAGMAN_DEFAULT_NODE_LOG]
default=@(DAG_DIR)/@(DAG_FILE).nodes.log
type=path
tags=dagman,dagman_main
restart=never

[DAGMAN_DEFAULT_PRIORITY]
default=0
type=int
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_GENERATE_SUBDAG_SUBMITS]
default=true
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_HOLD_CLAIM_TIME]
default=20
type=int
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_MAX_HOLD_SCRIPTS]
default=20
type=int
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_MAX_JOB_HOLDS]
default=100
type=int
tags=dagman,dagman_main
restart=never

[DAGMAN_MAX_JOBS_IDLE]
default=1000
type=int
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_MAX_JOBS_SUBMITTED]
default=0
type=int
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_MAX_POST_SCRIPTS]
default=20
type=int
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_MAX_PRE_SCRIPTS]
default=20
type=int
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_MAX_RESCUE_NUM]
default=100
type=int
tags=dagman,dagman_main
restart=never

[DAGMAN_MAX_SUBMIT_ATTEMPTS]
default=6
type=int
tags=dagman,dagman_main
restart=never

[DAGMAN_MAX_SUBMITS_PER_INTERVAL]
default=100
type=int
tags=dagman,dagman_main
restart=never

[DAGMAN_AGGRESSIVE_SUBMIT]
default=false
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_USE_DIRECT_SUBMIT]
default=true
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_DEFAULT_APPEND_VARS]
default=false
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_REPORT_GRAPH_METRICS]
default=false
type=bool
tags=dagman,dagman_main
restart=never

[DAGMAN_REMOVE_NODE_JOBS]
default=true
type=bool
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_SUBMIT_DELAY]
default=0
type=int
tags=dagman,dagman_main
restart=never

[DAGMAN_SUPPRESS_JOB_LOGS]
default=false
type=bool
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_SUPPRESS_NOTIFICATION]
default=true
type=bool
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_USER_LOG_SCAN_INTERVAL]
default=5
type=int
tags=dagman,dagman_main
restart=never

[DAGMAN_QUEUE_UPDATE_INTERVAL]
default=300
type=int
tags=dagman,dagman_main
restart=never

[DAGMAN_USE_STRICT]
default=1
type=int
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_VERBOSITY]
default=3
type=int
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_WRITE_PARTIAL_RESCUE]
default=true
type=bool
customization=expert
tags=dagman,dagman_main
restart=never

[DAGMAN_USE_JOIN_NODES]
default=true
type=bool
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_PUT_FAILED_JOBS_ON_HOLD]
default=false
type=bool
customization=normal
tags=dagman,dagman_main
restart=never

[DAGMAN_NODE_RECORD_INFO]
default=
type=string
tags=dagman,dagman_main
restart=never

[DAGMAN_RECORD_MACHINE_ATTRS]
default=
type=string
tags=dagman,dagman_main
restart=never

[LIBEXEC]
default=$(RELEASE_DIR)/libexec
win32_default=$(BIN)
type=string
tags=daemons

[LOG]
default=$(LOCAL_DIR)/log
type=path
description=Location of Log directory, used by other params
tags=daemons

[INCLUDE]
default=$(RELEASE_DIR)/include
type=path

[ETC]
default=$(RELEASE_DIR)/etc
type=path

[XAUTHORITY_USERS]
default=
type=string
tags=kbdd,XInterface

[GROUP_NAMES]
default=
type=string
tags=accountant

[PRIORITY_HALFLIFE]
default=86400
range=0.00001,
type=double
tags=accountant

[NICE_USER_PRIO_FACTOR]
default=1e10
type=double
tags=accountant

[NICE_USER_ACCOUNTING_GROUP_NAME]
default=nice-user
type=string
tags=accountant,submit


[REMOTE_PRIO_FACTOR]
default=1e7
type=double
tags=accountant

[DEFAULT_PRIO_FACTOR]
default=1000
type=double
tags=accountant

[ACCOUNTANT_LOCAL_DOMAIN]
default=
type=string
tags=accountant

[ACCOUNTANT_DATABASE_FILE]
default=$(SPOOL)/Accountantnew.log
win32_default=$(SPOOL)\Accountantnew.log
type=path
tags=accountant

[MAX_ACCOUNTANT_DATABASE_SIZE]
default=1000000
type=int
tags=accountant

[SPOOL]
default=$(LOCAL_DIR)/spool
type=path
tags=schedd,accountant

[NEGOTIATOR_DISCOUNT_SUSPENDED_RESOURCES]
default=false
type=bool
tags=accountant

[CONCURRENCY_LIMIT_DEFAULT]
default=2308032
type=int
tags=accountant

[REAL_TIME_JOB_SUSPEND_UPDATES]
default=
type=string
tags=q,queue

[PREEMPTION_REQUIREMENTS]
default=False
type=string
usage=Restrict when slots can be preempted for user priority
tags=matchmaker

[SEC_SCITOKENS_ALLOW_EXTRA_SLASH]
default=false
type=bool
usage=Allows SCITOKENS map file entries to match with an extra trailing slash.
tags=security

[SEC_SCITOKENS_ALLOW_FOREIGN_TOKEN_TYPES]
default=true
type=bool

[SEC_SCITOKENS_FOREIGN_TOKEN_ISSUERS]
default=https://aai-dev.egi.eu/auth/realms/egi
type=string

[SEC_SCITOKENS_CACHE]
default=$(RUN)/cache
type=string

[SEC_ENABLE_MATCH_PASSWORD_AUTHENTICATION]
default=true
type=bool
tags=shadow,remoteresource

[SEC_ENABLE_IMPERSONATION_TOKENS]
default=false
type=bool
tags=schedd
usage=Set to true to allow the pool collector(s) to create impersonation tokens.

[SEC_IMPERSONATION_TOKEN_LIMITS]
default=
type=string
usage=Restrict what authorizations can be enabled with impersonation toekns.
tags=schedd

[SEC_ENABLE_REMOTE_ADMINISTRATION]
default=true
type=bool
tags=master
usage=Set to true to allow the collector administrator(s) to manage the daemon

[DELEGATE_JOB_GSI_CREDENTIALS]
default=true
type=bool
tags=shadow,remoteresource

[USE_VOMS_ATTRIBUTES]
default=false
type=bool

[USE_NFS]
default=
type=string
tags=shadow,pseudo_ops

[RECONNECT_BACKOFF_CEILING]
default=300
type=int
tags=shadow,baseshadow

[SHADOW_MAX_JOB_CLEANUP_RETRIES]
default=5
type=int
tags=shadow,baseshadow

[SHADOW_JOB_CLEANUP_RETRY_DELAY]
default=30
type=int
tags=shadow,baseshadow

[SHADOW_LAZY_QUEUE_UPDATE]
default=true
type=bool
tags=shadow,baseshadow

[RESERVED_MEMORY]
default=0
type=int
tags=startd

[RESERVED_SWAP]
default=0
type=int
tags=shadow,baseshadow

[SCHEDD_NAME]
default=
type=string
tags=jobqueuedbmanager

[COUNT_HYPERTHREAD_CPUS]
default=true
type=bool
tags=startd
description=DETECTED_CPUS should count hyperthreads as CPUs
customization=normal

# we expect this to be overwritten by the config system, this is here just in case and to save space
[DETECTED_CPUS]
default=1
type=int
customization=never
usage=Number of detected cpus, includes hyperthreads if COUNT_HYPERTHREAD_CPUS
tags=

[DETECTED_PHYSICAL_CPUS]
default=1
type=int
customization=never
usage=Number of detected cpus. does not include hyperthreads

[DETECTED_CORES]
default=1
type=int
customization=never
usage=Number of detected cpus. does not include hyperthreads

[DETECTED_CPUS_LIMIT]
default=$(DETECTED_CPUS)
type=int
customization=seldom
usage=Detected max CPUs to use, The minimum of $(DETECTED_CPUS), $ENV(OMP_THREAD_LIMIT) and $ENV(SLURM_CPUS_ON_NODE)
tags=

[NUM_CPUS]
default=$(DETECTED_CPUS_LIMIT)
type=int
customization=normal
usage=Number of CPUs to provision in the startd
tags=startd

[CONSOLE_DEVICES]
default=mouse, console
type=string
usage='/dev/' portion of the pathname.
tags=startd

[SLOTS_CONNECTED_TO_CONSOLE]
default=0
type=int
description=Slots above this number do not have ConsoleIdle updated
tags=startd
restart=true

[SLOTS_CONNECTED_TO_KEYBOARD]
default=0
type=int
description=Slots above this number do not have KeyboardIdle updated
tags=startd
restart=true

[STARTD_HAS_BAD_UTMP]
# XXX This should be a bool
default=0
type=int
tags=sysapi,reconfig

[SYSAPI_GET_LOADAVG]
default=1
type=int
tags=sysapi,reconfig

[RELEASE_DIR]
default=/usr
win32_default=c:\condor
type=string
usage=Where have you installed the bin, sbin and lib condor directories?

[HAD_USE_PRIMARY]
default=false
type=bool
tags=had,StateMachine

[HAD_LIST]
default=
type=string
tags=had,StateMachine

[HAD_STAND_ALONE_DEBUG]
default=
type=string
tags=had,StateMachine

[HAD_CONNECTION_TIMEOUT]
default=5
type=string
tags=had,StateMachine

[HAD_USE_REPLICATION]
default=false
type=bool
tags=had,StateMachine

[HAD_UPDATE_INTERVAL]
default=300
type=string
tags=had,StateMachine

[HAD_FIPS_MODE]
default=1
type=int
tags=had,StateMachine

[REPLICATION_LIST]
default=
type=string
tags=had,StateMachine

[NEGOTIATOR_STATE_FILE]
default=
type=string
tags=had,AbstractReplicatorStateMachine

[MAX_TRANSFER_LIFETIME]
default=300
type=int
tags=had,BaseReplicaTransferer

[STARTD_FACTORY_SCRIPT_AVAILABLE_PARTITIONS]
default=
type=string
tags=startd_factory

[STARTD_FACTORY_SCRIPT_QUERY_WORK_LOADS]
default=
type=string
tags=startd_factory

[STARTD_FACTORY_SCRIPT_GENERATE_PARTITION]
default=
type=string
tags=startd_factory

[STARTD_FACTORY_SCRIPT_DESTROY_PARTITION]
default=
type=string
tags=startd_factory

[STARTD_FACTORY_SCRIPT_BOOT_PARTITION]
default=
type=string
tags=startd_factory

[STARTD_FACTORY_SCRIPT_SHUTDOWN_PARTITION]
default=
type=string
tags=startd_factory

[STARTD_FACTORY_SCRIPT_BACK_PARTITION]
default=
type=string
tags=startd_factory

[THINPOOL_BACKING_FILE]
default=$(SPOOL)/startd_disk.img
type=string
tags=startd

[THINPOOL_EXTRA_SIZE_MB]
default=2000
type=int
tags=starter

[THINPOOL_HIDE_MOUNT]
default=false
type=bool
tags=startd

[MAX_TIME_SKIP]
default=1200
range=0,
type=int
description=Max seconds system clock can skip without a restart
tags=daemon_core

[MAX_TIMER_EVENTS_PER_CYCLE]
default=0
range=0,
type=int

[MAX_ACCEPTS_PER_CYCLE]
default=8
range=0,
type=int

[MAX_UDP_MSGS_PER_CYCLE]
default=100
range=0,
type=int

[MAX_REAPS_PER_CYCLE]
default=0
range=0,
type=int

[PID_SNAPSHOT_INTERVAL]
default=15
type=int
tags=daemon_core,HookClientMgr

[MASTER.PID_SNAPSHOT_INTERVAL]
default=60
type=int
description=Pid Snapshot Interval for the Master
tags=daemon_core

[SEC_DEBUG_PRINT_KEYS]
default=false
type=bool
tags=daemon_core

[SEC_CREDENTIAL_SWEEP_INTERVAL]
default=300
type=int
description=Period to check for old (marked) credentials
tags=security

[SEC_CREDENTIAL_SWEEP_DELAY]
default=3600
type=int
description=Default delay before sweeping unused credentials
tags=security

[SEC_CREDENTIAL_REFRESH_INTERVAL]
default=-1
type=int
description=Default interval for re-storing credentials
tags=security

[SEC_DEFAULT_AUTHENTICATION_TIMEOUT]
default=20
type=int
description=Default timeout for all authentication methods
tags=daemon_core,security

[WANT_UDP_COMMAND_SOCKET]
default=true
type=bool
tags=daemon_core

[NETWORK_MAX_PENDING_CONNECTS]
default=0
type=int
tags=daemon_core

[TCP_FORWARDING_HOST]
default=
type=string
tags=daemon_core

[PRIVATE_NETWORK_INTERFACE]
default=
type=string
tags=daemon_core

[PRIVATE_NETWORK_NAME]
default=$(FULL_HOSTNAME)
type=string
tags=daemon_core

[USE_CLONE_TO_CREATE_PROCESSES]
default=true
type=bool
tags=daemon_core

[SEC_INVALIDATE_SESSIONS_VIA_TCP]
default=true
type=bool
tags=daemon_core

[SEC_USE_FAMILY_SESSION]
default=true
type=bool

[CERTIFICATE_MAPFILE]
default=
type=string
tags=daemon_core

[CERTIFICATE_MAPFILE_ASSUME_HASH_KEYS]
description=Assume keys in the CERTIFICATE_MAPFILE are hash keys, not regular expressions
usage=Set to true if your mapfile uses // to indicate which keys are regular expressions
default=false
type=bool
tags=daemon_core

[USER_MAPFILE]
default=
type=string
tags=daemon_core

[NOT_RESPONDING_TIMEOUT]
default=3600
range=1,
type=int
tags=daemon_core

[ENABLE_STDOUT_TESTING]
default=false
type=bool
tags=daemon_core

[EXCEPT_ON_ERROR]
default=
type=string
tags=daemon_core

[DISABLE_SETUID]
default=false
type=bool
tags=master

[DISABLE_AUTHENTICATION_IP_CHECK]
default=false
type=bool
tags=daemon_core

[SEC_C_GAHP_WORKER_THREAD_DEFAULT_SESSION_DURATION]
default=1800
range=0,
type=int

[SEC_SESSION_DURATION_SLOP]
default=20
range=0,
type=int
tags=daemon_core

[WINDOWS_SOFTKILL]
default=
win32_default=$(SBIN)\condor_softkill.exe
type=path
tags=daemon_core

[WINDOWS_RMDIR]
default=
win32_default=$(SBIN)\condor_rmdir.exe
description=Path to binary that does recursive directory removal for Windows
type=path

[USE_PROCESS_GROUPS]
default=true
type=bool
tags=daemon_core

[USE_VISIBLE_DESKTOP]
default=false
type=string
tags=daemon_core,Windows

[MAX_PID_COLLISION_RETRY]
default=9
range=0,
type=int
tags=daemon_core

[COLLECTOR_SOCKET_BUFSIZE]
default=10000*1024
type=int
range=1024,
description=Collector read buffer size for incoming UDP traffic
tags=daemon_core,collector
restart=true

[PIPE_BUFFER_MAX]
default=10240
type=int
description=Maximum buffer size for stdout/err pipes
tags=daemon_core
restart=true

[TOUCH_LOG_INTERVAL]
default=60
type=int
tags=daemon_core

[BIN]
default=$(RELEASE_DIR)/bin
win32_default=$(RELEASE_DIR)\bin
type=path
description=Path to directory of HTCondor tools
tags=daemons

[CREATE_CORE_FILES]
default=true
type=bool
tags=daemons

[CORE_FILE_NAME]
default=core.$(SUBSYSTEM)
win32_default=core.$(SUBSYSTEM).WIN32
type=string
usage=filename (not path) for daemon core files
tags=daemons

[DROP_CORE_ON_RECONFIG]
default=
type=string
tags=daemons

[SHUTDOWN_GRACEFUL_TIMEOUT]
default=
type=string
tags=daemons

[COLLECTOR_NAME]
default=My Pool - $(CONDOR_HOST)
type=string
usage=the UW-Madison Computer Science Condor Pool is ``UW-Madison CS''.
tags=collector

[COLLECTOR_UPDATE_INTERVAL]
default=900
type=int
tags=collector

[CONDOR_VIEW_HOST]
default=
type=string
tags=collector

[CONDOR_VIEW_CLASSAD_TYPES]
default=
type=string
tags=collector

[COLLECTOR_FORWARD_WATCH_LIST]
default=State,Cpus,Memory,IdleJobs,ClaimId,Capability,ClaimIdList,ChildClaimIds
type=string

[COLLECTOR_FORWARD_FILTERING]
default=false
type=bool

[COLLECTOR_FORWARD_CLAIMED_PRIVATE_ADS]
default=$(NEGOTIATOR_CONSIDER_PREEMPTION)
type=string

[COLLECTOR_FORWARD_PROJECTION]
default=
type=string
tags=collector
description=An expression that returns a list of attributes to forward for the current ad

[COLLECTOR_STATS_SWEEP]
default=14400
type=int
tags=collector

[CONDOR_ADMIN]
default=root@$(FULL_HOSTNAME)
type=string
customization=normal
description=HTCondor sends email to this address on pool failure
tags=collector

[COLLECTOR_REPEAT_STARTD_ADS]
default=0
type=int
tags=collector

[KEEP_POOL_HISTORY]
default=
type=string
tags=collector,view_server

[POOL_HISTORY_SAMPLING_INTERVAL]
default=60
type=int
tags=collector,view_server

[POOL_HISTORY_MAX_STORAGE]
default=10000000
type=int
tags=collector,view_server

[POOL_HISTORY_DIR]
default=
type=string
tags=collector,view_server

[LOCAL_DIR]
default=$(TILDE)
win32_default=$(RELEASE_DIR)
type=string
customization=normal
tags=daemons

[CRED_SUPER_USERS]
default=
type=string
tags=credd

[CREDD_HOST]
default=
type=string
tags=credd,win_credd

[GRIDMANAGER_GAHPCLIENT_DEBUG]
default=true
type=bool
tags=gridmanager,gahp-client

[GRIDMANAGER_GAHPCLIENT_DEBUG_SIZE]
default=0
type=int
tags=gridmanager,gahp-client

[GAHP_DEBUG_HIDE_SENSITIVE_DATA]
default=true
type=bool
tags=gridmanager,gahp-client

[GRIDMANAGER_MAX_PENDING_REQUESTS]
default=50
type=int
tags=gridmanager,gahp-client

[GRIDMANAGER_MAX_SUBMITTED_JOBS_PER_RESOURCE_EC2]
default=20
type=int

[BLAHPD_LOCATION]
default=$(RELEASE_DIR)
type=string
tags=gridmanager,gahp-client

[BATCH_GAHP]
default=$(BIN)/blahpd
type=string
tags=gridmanager,infnbatchjob

[REMOTE_GAHP]
default=$(SBIN)/remote_gahp
win32_default=$(SBIN)\remote_gahp.exe
type=path
tags=gridmanager,infnbatchjob

[GRIDMANAGER_CONTACT_SCHEDD_DELAY]
default=5
type=int
tags=gridmanager,gridmanager

[GRIDMANAGER_PROXY_REFRESH_TIME]
default=21600
type=string
tags=gridmanager,proxymanager

[CONDOR_GAHP]
default=$(SBIN)/condor_c-gahp
win32_default=$(SBIN)\condor_c-gahp.exe
type=path
tags=gridmanager,condorresource

[C_GAHP_CONTACT_SCHEDD_DELAY]
default=5
type=int

[CGAHP_SCHEDD_INTERACTION_TIME]
default=5
type=int

[C_GAHP_MAX_FILE_REQUESTS]
default=10
type=int

[JAVA_EXTRA_ARGUMENTS]
default=
type=string
tags=gridmanager,unicore_gahp_wrapper

[GRIDMANAGER_CONNECT_FAILURE_RETRY_COUNT]
default=3
type=int
tags=gridmanager,globusjob

[PERIODIC_EXPR_INTERVAL]
default=60
type=int

[MAX_PERIODIC_EXPR_INTERVAL]
default=1200
type=int

[PERIODIC_EXPR_TIMESLICE]
default=0.01
type=double
range=0.0,1.0

[GRIDMANAGER_CONNECT_FAILURE_RETRY_INTERVAL]
default=5
type=int
tags=gridmanager,globusjob

[GRIDMANAGER_MAX_PENDING_SUBMITS_PER_RESOURCE]
default=
type=string
tags=gridmanager,baseresource

[GRIDMANAGER_MAX_PENDING_SUBMITS]
default=
type=string
tags=gridmanager,baseresource

[GRIDMANAGER_MAX_SUBMITTED_JOBS_PER_RESOURCE]
default=1000
type=int
tags=gridmanager,baseresource

[GRIDMANAGER_GAHP_CALL_TIMEOUT_CONDOR]
default=28800
type=int
tags=gridmanager,condorjob

[GRIDMANAGER_GAHP_RESPONSE_TIMEOUT]
default=20
type=int
tags=gridmanager,gahp-client

[CONDORC_ATTRS_TO_COPY]
default=
type=string
tags=gridmanager,condorjob

[COLLECTOR_HOST]
default=$(CONDOR_HOST)
type=string
tags=gridmanager

# The STARTD_ATTRS entry allows you to have the startd advertise arbitrary attributes from the config file into it's ClassAd
[STARTD_ATTRS]
default=
description=Names of attibutes from config file to insert into STARTD ads
tags=startd

[STARTD_LATCH_EXPRS]
default=
description=STARTD_ATTRS that HTCondor will periodically evaluate and timestamp changes

[ENABLE_STARTD_DAEMON_AD]
default=false
description=Enable a singular daemon ad for Startds, and separate Slot ads for each slot.
usage=Set to False to advertise Machine ads only. True to use Slot and StartDaemon ads, Auto to use collector version to decide


# support the "$$(COLLECTOR_HOST)" syntax in the submit file
[COLLECTOR_HOST_STRING]
default="$(COLLECTOR_HOST)"
[SYSTEM_STARTD_ATTRS]
default=COLLECTOR_HOST_STRING DedicatedScheduler
description=Configuration attibutes that HTCondor needs to insert into STARTD ads
customization=devel

[SYSTEM_STARTD_LATCH_EXPRS]
default=NumDynamicSlots
description=SYSTEM_STARTD_ATTRS that HTCondor will periodically evaluate and timestamp changes
customization=devel

[NO_DNS]
default=false
type=bool

[NETWORK_HOSTNAME]
default=
type=string
restart=true

[NETWORK_INTERFACE]
default=*
type=string
restart=true

[DEFAULT_DOMAIN_NAME]
default=
type=string

[LOWPORT]
default=
type=int

[IN_LOWPORT]
default=
type=int

[OUT_LOWPORT]
default=
type=int

[LOWPORT]
default=
type=int

[IN_HIGHPORT]
default=
type=int

[OUT_HIGHPORT]
default=
type=int

[CRED_MIN_TIME_LEFT]
default=120
type=int

[ALL_DEBUG]
default=
type=string
description=Options for all debug logs
usage=Enable optional formatting or message categories for all debug logs

[LOGS_USE_TIMESTAMP]
default=false
type=bool

[FILE_LOCK_VIA_MUTEX]
default=true
type=bool

[IGNORE_NFS_LOCK_ERRORS]
default=false
type=string

[SENDMAIL]
# default location for mail on RHEL is /bin/mail, default on debian is /usr/bin/mail
default=sendmail
win32_default=
type=path
description=Path to sendmail
tags=MAIL,

[MAIL]
default=/usr/bin/mail
win32_default=$(BIN)\condor_mail.exe
type=path
tags=MAIL,

[SMTP_SERVER]
default=
type=string

[CONDOR_SUPPORT_EMAIL]
default=
type=string

[STARTD_RESOURCE_PREFIX]
default=
type=string
tags=startd,Resource

[STARTD_RECOMPUTE_DISK_FREE]
default=false
type=bool
tags=startd

[STARTD_JOB_HOOK_KEYWORD]
default=
type=string
tags=startd,Resource

[STARTER_LIST]
default=STARTER
win32_default=STARTER
type=string
tags=startd,starter_mgr

[SBIN]
default=$(RELEASE_DIR)/sbin
win32_default=$(BIN)
type=path
tags=startd,starter_mgr

[SINGULARITY]
default=/usr/bin/singularity
win32_default=
type=string
reconfig=true
customization=seldom
friendly_name=Singularity location
review=?
tags=startd,command

[SINGULARITY_JOB]
default=false
type=bool
reconfig=true
customization=seldom
friendly_name=Enable Singularity for a job
review=?
tags=startd

[SINGULARITY_VERBOSITY]
default=-s
type=string
reconfig=true
customization=seldom
friendly_name=singularity verbosity level
tags=starter

[SINGULARITY_IMAGE_EXPR]
default=SingularityImage
type=string
reconfig=true
customization=seldom
friendly_name=Expression to determine Singularity image
review=?
tags=startd

[SINGULARITY_MOUNT_HOME]
default=false
type=bool
reconfig=true
customization=seldom
friendly_name=Allow singluarity to bind moont home
tags=startd

[SINGULARITY_TEST_SANDBOX]
default=$(LIBEXEC)/singularity_test_sandbox
type=string
customization=seldom
friendly_name=Sandbox location used to test Singularity
tags=starter

[SINGULARITY_USE_PID_NAMESPACES]
default=auto
type=string
customization=seldom
friendly_name=Ask Singularity to contain pid namespace
tags=starter

[UPDATE_INTERVAL]
default=300
type=int
tags=startd
description=Rate at which the Startd sends updates to the Collector

[STARTD_SENDS_ALIVES]
default=peer
type=string
tags=startd,command

[STARTER_HANDLES_ALIVES]
default=true
type=bool
description=Startd should only send alives when slot idle
tags=schedd,claim

[VM_GAHP_CONFIG]
default=
type=string
tags=startd,vmuniverse_mgr

[VM_MAX_NUMBER]
default=
type=string
tags=startd,vmuniverse_mgr

[VM_MEMORY]
default=
type=string
tags=startd,vmuniverse_mgr

[VM_RECHECK_INTERVAL]
default=600
type=int
tags=startd,vmuniverse_mgr

[LOCK]
default=$(LOG)
type=string
tags=startd,Starter

[RUN]
default=$(LOCK)
type=path

[VM_KILLING_TIMEOUT]
default=60
type=int
tags=startd,Starter

[RunBenchmarks]
default=LastBenchmark == 0
type=string
description=Expression that when true, causes the STARTD to run benchmarks
tags=startd,startd_main

[POLLING_INTERVAL]
default=5
type=int
tags=startd,startd_main

[UPDATE_SPREAD_TIME]
default=$(UPDATE_COLLECTOR_WITH_TCP:0) ? 0 : 8
description=If nonzero, spreads the startd's updates to the collector over that many seconds.  8 used to be the default for both TCP and UDP.
type=int
tags=startd

[ACCOUNTANT_HOST]
default=
type=string
tags=startd,startd_main

[MATCH_TIMEOUT]
default=120
type=int
tags=startd,startd_main

[KILLING_TIMEOUT]
default=30
range=0,
type=int
tags=startd,startd_main

[MAX_CLAIM_ALIVES_MISSED]
default=6
type=int
tags=startd,startd_main

# ResidentSetSize is required by MemoryUsage.
[SYSTEM_STARTD_JOB_ATTRS]
default=ImageSize, ExecutableSize, JobUniverse, NiceUser, CPUsUsage, ResidentSetSize, ProportionalSetSizeKb, MemoryUsage, DiskUsage, ScratchDirFileCount
type=string
customization=devel
description=Job Attributes that must be copied into the STARTD ad for HTCondor to work correctly
tags=startd,startd_main

[STARTD_JOB_ATTRS]
default=
type=string
customization=normal
description=Job Attributes to copy into the STARTD ad
tags=startd,startd_main

[STARTD_SLOT_ATTRS]
default=
type=string
customization=normal
description=Names of Attributes that should be cross-posted from each Startd slot to all of the other slots
tags=startd,startd_main

[SYSTEM_STARTD_SLOT_ATTRS]
default=
type=string
customization=devel
description=Startd Slot Attrs needed by HTCondor
tags=startd,startd_main

[KEYBOARD_CPUS]
default=1
type=int
tags=startd,startd_main

[DISCONNECTED_KEYBOARD_IDLE_BOOST]
default=1200
type=int
tags=startd,startd_main

[STARTD_NOCLAIM_SHUTDOWN]
default=0
type=int
tags=startd,startd_main

[STARTD_NAME]
default=
type=string
tags=startd,startd_main

[VALID_COD_USERS]
default=
type=string
tags=startd,startd_main

[STARTD_SHOULD_WRITE_CLAIM_ID_FILE]
default=true
type=bool
tags=startd,claim

[START]
default=True
type=string
tags=startd,Reqexp

[ENABLE_BACKFILL]
default=false
type=bool
tags=startd,ResMgr

[BACKFILL_SYSTEM]
default=
type=string
tags=startd,ResMgr

[MAX_SLOT_TYPES]
default=10
type=int
tags=startd,ResMgr

[STARTD_CRON_NAME]
default=
type=string
description=Obsolete Startd Cron Name
tags=startd,startd_cronmgr

[STARTD_CRON_AUTOPUBLISH]
default=
type=string
tags=startd,startd_cronmgr

[CLASSAD_USER_LIBS]
default=
type=string
description=Classad Lib Path
tags=classad,ast

[CLASSAD_USER_PYTHON_LIB]
default=$(LIBEXEC)/libclassad_python_user.so
win32_default=$(BIN)\classad_python_user$(PYTHON3_MODULE_SUFFIX:.pyd)
type=string
description=ClassAd python library path
tags=classad

[CLASSAD_USER_PYTHON_MODULES]
default=
type=string
description=ClassAd python modules
tags=classad

[ENABLE_CLASSAD_CACHING]
default=true
win32_default=true
type=bool
tags=classad

[MASTER.ENABLE_CLASSAD_CACHING]
type=bool
default=false

[SHADOW.ENABLE_CLASSAD_CACHING]
type=bool
default=false

[STARTER.ENABLE_CLASSAD_CACHING]
type=bool
default=false

[WANT_XML_LOG]
default=false
type=bool
tags=tt,ttmanager

[SUBMIT_ALLOW_GETENV]
default=true
type=bool
tags=submit

[SUBMIT_SKIP_FILECHECKS]
default=true
type=string
tags=submit

[SUBMIT_GENERATE_CUSTOM_RESOURCE_REQUIREMENTS]
description=Submit should generate requirements clauses for job attributes that begin with Request
default=true
type=bool
tags=submit

[SUBMIT_GENERATE_CONDOR_C_REQUIREMENTS]
default=true
type=bool

[SUBMIT_DEFAULT_SHOULD_TRANSFER_FILES]
description=Set the default value submit should use for should_transfer_files for jobs that don't specify
default=
type=string
tags=submit
usage=Set to YES, NO, or IF_NEEDED.  IF_NEEDED is used if this is empty or invalid

[SUBMIT_SEND_RESCHEDULE]
default=true
type=bool
tags=submit

[SUBMIT_PUBLISH_WINDOWS_OSVERSIONINFO]
description=Submit should put attributes into jobs that show the Windows OSVERSIONINFO
default=false
type=bool
tags=submit

[DEFAULT_UNIVERSE]
default=
type=string
tags=submit

[DEFAULT_IO_BUFFER_SIZE]
default=
type=string
tags=submit

[DEFAULT_IO_BUFFER_BLOCK_SIZE]
default=
type=string
tags=submit

[SCHEDD_INTERVAL]
default=
type=string
tags=submit

[DEFAULT_RANK_STANDARD]
default=
type=string
tags=submit

[APPEND_RANK_STANDARD]
default=
type=string
tags=submit

[DEFAULT_RANK_VANILLA]
default=
type=string
tags=submit

[APPEND_RANK_VANILLA]
default=
type=string
tags=submit

[DEFAULT_RANK]
default=
type=string
tags=submit

[APPEND_RANK]
default=
type=string
tags=submit

[LOG_ON_NFS_IS_ERROR]
default=false
type=bool
tags=submit

[SUBMIT_ATTRS]
default=
type=string
description=Names of config attributes that should be automatically inserted into jobs by condor_submit
tags=submit

[APPEND_REQ_VANILLA]
default=
type=string
tags=submit

[APPEND_REQ_STANDARD]
default=
type=string
tags=submit

[APPEND_REQ_VM]
default=
type=string
tags=submit

[APPEND_REQUIREMENTS]
default=
type=string
tags=submit

[WARN_ON_UNUSED_SUBMIT_FILE_MACROS]
default=true
type=bool
tags=submit

[WINDOWS_FIREWALL_FAILURE_RETRY]
default=2
type=int
tags=master,windows_firewall

[CREDD_CACHE_LOCALLY]
default=false
type=bool
tags=uids

[CREDD_POLLING_TIMEOUT]
default=20
type=int
tags=credd

[Q_QUERY_TIMEOUT]
default=20
type=int
tags=condor_q

[PROCD_LOG]
default=$(LOG)/ProcLog
type=path
tags=procd,proc_family_proxy

[PROCD]
default=$(SBIN)/condor_procd
win32_default=$(SBIN)\condor_procd.exe
description=Path to Procd binary
type=path
tags=master,procd

[PROCD_MAX_SNAPSHOT_INTERVAL]
default=60
type=string
tags=procd,proc_family_proxy

[PROCD_DEBUG]
default=false
type=bool
tags=procd
description=Debug logging options for the procd

[USE_GID_PROCESS_TRACKING]
default=false
type=bool
tags=procd

[MIN_TRACKING_GID]
default=0
type=int
tags=procd

[MAX_TRACKING_GID]
default=0
type=int
tags=procd

[RESTART_PROCD_ON_ERROR]
default=true
type=bool
tags=master,procd

[LOCAL_CONFIG_DIR]
default=
type=string
tags=condor_config

[ABORT_ON_EXCEPTION]
default=false
type=bool
tags=condor_config

[REQUIRE_LOCAL_CONFIG_FILE]
default=true
win32_default=false
type=bool
tags=condor_config

[LOCAL_CONFIG_FILE]
default=
type=string
description=List of paths to local config files
tags=condor_config

[ENABLE_RUNTIME_CONFIG]
default=false
type=bool
tags=condor_config

[RUNTIME_CONFIG_ADMIN]
default=
type=string
tags=condor_config

[USER_CONFIG_FILE]
default=user_config
type=string
description=Name of User Config File
tags=condor_config

[ENABLE_PERSISTENT_CONFIG]
default=false
type=bool
tags=condor_config

[PERSISTENT_CONFIG_DIR]
default=
type=string
tags=condor_config

[USE_PROCD]
# All daemons want a procd (except for the master, defined above)
default=true
type=bool
tags=proc_family_interface

[PLUGINS]
default=
type=string
tags=LoadPlugins

[PLUGIN_DIR]
default=
type=string
tags=LoadPlugins

[JAVA]
default=/usr/bin/java
win32_default=java
type=string
tags=java_config

[JAVA_MAXHEAP_ARGUMENT]
default=-Xmx
type=string
usage=typically 64 MB.  The default (-Xmx) works with the Sun JVM.
tags=java_config

[JAVA_CLASSPATH_ARGUMENT]
default=-classpath
type=string
tags=java_config

[JAVA_CLASSPATH_SEPARATOR]
default=:
win32_default=;
type=string
tags=java_config

[JAVA_CLASSPATH_DEFAULT]
default=$(LIB) .
win32_default=$(BIN) .
type=string
tags=java_config

[TMP_DIR]
default=
type=string
tags=directory

[TEMP_DIR]
default=
type=string
tags=directory

[SSH_KEYGEN]
default=
type=string
tags=sshd_wrapper

[SSH_KEYGEN_ARGS]
default=
type=string
tags=sshd_wrapper

[SSHD]
default=
type=string
tags=sshd_wrapper

[SSHD_ARGS]
default=
type=string
tags=sshd_wrapper

[SCP]
default=
type=string
tags=sshd_wrapper

[CONDOR_SSH_TO_JOB_FAKE_PASSWD_ENTRY]
default=true
type=bool
tags=condor_ssh_to_job

[ENABLE_USERLOG_FSYNC]
default=false
type=bool
tags=read_user_log

[ENABLE_USERLOG_LOCKING]
default=false
type=bool
tags=read_user_log

[ALWAYS_CLOSE_USERLOG]
default=false
type=bool
tags=read_user_log

[EVENT_LOG]
default=
type=string
tags=user_log

[EVENT_LOG_USE_XML]
default=false
type=bool
tags=user_log

[EVENT_LOG_LOCKING]
default=false
type=bool
tags=user_log

[EVENT_LOG_ROTATION_LOCK]
default=$(LOCK)/EventLogLock
type=string
tags=user_log

[EVENT_LOG_MAX_SIZE]
default=1000000
type=long
description=Maximum size of the event log in bytes
tags=user_log

[EVENT_LOG_MAX_ROTATIONS]
default=1
type=long
description=Number of rotated event log files to keep
tags=user_log

[EVENT_LOG_FSYNC]
default=false
type=bool
tags=user_log

[EVENT_LOG_COUNT_EVENTS]
default=false
type=bool
tags=user_log

[EVENT_LOG_JOB_AD_INFORMATION_ATTRS]
default=
type=string
tags=user_log

[REUSE_CONDOR_RUN_ACCOUNT]
default=
type=string
tags=dynuser

[PASSWD_CACHE_REFRESH]
default=72000
type=int
tags=passwd_cache

[STARTD_CLAIM_ID_FILE]
default=
type=string
tags=misc_utils

[SEC_PASSWORD_FILE]
default=$(SEC_PASSWORD_DIRECTORY)/POOL
win32_default=
type=path
tags=store_cred

[SEC_PASSWORD_DIRECTORY]
default=/etc/condor/passwords.d
win32_default=$(RELEASE_DIR)\tokens.sk
type=path
tags=store_cred

[SEC_TOKEN_SYSTEM_DIRECTORY]
default=/etc/condor/tokens.d
win32_default=$(RELEASE_DIR)\tokens.d
type=path
tags=condor_auth_passwd

[SEC_TOKEN_DIRECTORY]
default=
description=Directory containing the tokens for token auth.
type=path
tags=condor_auth_passwd

[SEC_TOKEN_ISSUER_KEY]
default=POOL
description=Name of the key used to issue session tokens
type=string
tags=condor_auth_passwd

[SEC_TOKEN_FETCH_ALLOWED_SIGNING_KEYS]
default=POOL AP
description=StringList of keys allowed to sign from condor_token_request
type=string
tags=condor_auth_passwd

[SEC_TOKEN_AP_SIGNING_KEY_NAME]
default=AP

[SEC_TOKEN_POOL_SIGNING_KEY_FILE]
default=$(SEC_PASSWORD_FILE)
win32_default=$(RELEASE_DIR)\tokens.sk\POOL
type=path
description=Path to the POOL token signing key
tags=condor_auth_passwd

[SEC_TOKEN_MAX_AGE]
default=
description=Maximum age of accepted tokens.
type=int
tags=condor_auth_passwd

[SEC_TOKEN_REQUEST_LIMITS]
default=
description=Authorization limits for token requests
type=string
tags=condor_auth_passwd

[SEC_TOKEN_REVOCATION_EXPR]
default=
description=Expression describing token revocation.
type=string
tags=condor_auth_passwd

[SEC_ISSUED_TOKEN_EXPIRATION]
default=
description=Default max expiration time of issued session tokens.
type=int
tags=condor_auth_passwd

[EMAIL_DOMAIN]
default=
type=string
tags=email

[SEC_TCP_SESSION_TIMEOUT]
default=20
type=int
tags=io,condor_secman

[SEC_CLAIMTOBE_USER]
default=
type=string
tags=io,condor_auth_claim

[SEC_CLAIMTOBE_INCLUDE_DOMAIN]
default=false
type=bool
tags=io,condor_auth_claim

[SSL_SKIP_HOST_CHECK]
default=false
description=Disable client host checks for SSL authentication.
type=bool
tags=condor_auth_ssl

[AUTH_SSL_SERVER_USE_DEFAULT_CAS]
default=true
type=bool

[AUTH_SSL_CLIENT_USE_DEFAULT_CAS]
default=true
type=bool

[AUTH_SSL_SERVER_CAFILE]
default=
description=Location of additonal CA bundle
type=path
tags=condor_auth_ssl

[AUTH_SSL_SERVER_CADIR]
default=
description=Location of additonal CA bundle
type=path
tags=condor_auth_ssl

[AUTH_SSL_CLIENT_CAFILE]
default=
description=Location of additional CA bundle
type=path
tags=condor_auth_ssl

[AUTH_SSL_CLIENT_CADIR]
default=
description=Location of additional CA bundle
type=path
tags=condor_auth_ssl

[AUTH_SSL_SERVER_CERTFILE]
default=/etc/pki/tls/certs/localhost.crt,$(AUTH_SSL_AUTOGENERATE_CERTFILE)
win32_default=
description=Location of the host X509 certificate
type=path
tags=condor_auth_ssl

[AUTH_SSL_SERVER_KEYFILE]
default=/etc/pki/tls/private/localhost.key,$(AUTH_SSL_AUTOGENERATE_KEYFILE)
win32_default=
description=Location of the host private key
type=path
tags=condor_auth_ssl

[AUTH_SSL_AUTOGENERATE_CERTFILE]
default=/etc/condor/hostcert.pem
win32_default=
description=Location of the auto-generated host X509 certificate
type=path
tags=condor_auth_ssl

[AUTH_SSL_AUTOGENERATE_KEYFILE]
default=/etc/condor/hostkey.pem
win32_default=
description=Location of the auto-generated host private key
type=path
tags=condor_auth_ssl

[AUTH_SSL_REQUIRE_CLIENT_CERTIFICATE]
default=false
type=bool

[AUTH_SSL_REQUIRE_CLIENT_MAPPING]
default=false
type=bool

[AUTH_SSL_ALLOW_CLIENT_PROXY]
default=false
type=bool

[AUTH_SSL_USE_CLIENT_PROXY_ENV_VAR]
default=false
type=bool

[BOOTSTRAP_SSL_SERVER_TRUST]
default=false
description=Automatically trust the remote CA over SSL
type=bool
tags=io,condor_auth_ssl

[BOOTSTRAP_SSL_SERVER_TRUST_PROMPT_USER]
default=true
type=bool

[COLLECTOR_BOOTSTRAP_SSL_CERTIFICATE]
default=true
win32_default=false
type=bool

[TRUST_DOMAIN_CAFILE]
default=/etc/condor/trust_domain_ca.pem
win32_default=
type=path
tags=io,condor_auth_ssl

[TRUST_DOMAIN_CAKEY]
default=/etc/condor/trust_domain_ca_privkey.pem
win32_default=
type=path
tags=io,condor_auth_ssl

[SEC_SYSTEM_KNOWN_HOSTS]
default=/etc/condor/known_hosts
win32_default=$(LOCAL_DIR)\known_hosts
type=path
tags=io

[TRUST_DOMAIN]
default=$(UID_DOMAIN)
type=string
tags=condor_auth_passwd

[FS_REMOTE_DIR]
default=
type=string
tags=io,condor_auth_fs

[FS_LOCAL_DIR]
default=
type=string
tags=io,condor_auth_fs

[FS_ALLOW_UNSAFE]
default=false
type=bool
tags=io,condor_auth_fs

[KERBEROS_MAP_FILE]
default=
type=string
tags=io,condor_auth_kerberos

[ENCRYPT_SECRETS]
default=true
type=bool
tags=io,cedar_no_ckpt

[CONDOR_GATEKEEPER]
default=
type=string
tags=io,credential

[STARTER_UPLOAD_TIMEOUT]
default=300
type=int
tags=starter

[VM_GAHP_SEND_ALL_CLASSAD]
default=true
type=bool
tags=starter,vm_gahp_server

[STARTER_INITIAL_UPDATE_INTERVAL]
default=8
type=int
tags=starter,job_info_communicator

[ENCRYPT_EXECUTE_DIRECTORY]
default=false
type=bool
tags=startd,starter

[ENCRYPT_EXECUTE_DIRECTORY_FILENAMES]
default=false
type=bool
description=Encrypt filenames inside execute directory
tags=startd,starter

[STARTER_JOB_ENVIRONMENT]
default=
type=string
tags=starter

[STARTER_NUM_THREADS_ENV_VARS]
default=CUBACORES GOMAXPROCS JULIA_NUM_THREADS MKL_NUM_THREADS NUMEXPR_NUM_THREADS OMP_NUM_THREADS OMP_THREAD_LIMIT OPENBLAS_NUM_THREADS ROOT_MAX_THREADS TF_LOOP_PARALLEL_ITERATIONS TF_NUM_THREADS
type=string
tags=starter

[JOB_RENICE_INCREMENT]
default=0
win32_default=10
type=string
tags=starter

[JOB_INHERITS_STARTER_ENVIRONMENT]
default=false
type=string
description=list of allow and deny patterns that determine what environment variables to inhert from the starter environment
usage=Set to true or * to inherit all. foo* inherits only vars that start with foo. !foo* inherits all but vars that start with foo
tags=starter

[MPI_CONDOR_RSH_PATH]
default=
type=string
tags=starter

[LOCAL_UNIVERSE_MAX_JOB_CLEANUP_RETRIES]
default=5
type=int
tags=schedd,starter

[LOCAL_UNIVERSE_JOB_CLEANUP_RETRY_DELAY]
default=30
type=int
tags=schedd,starter

[STARTER_JOB_HOOK_KEYWORD]
default=
type=string
tags=starter,StarterHookMgr

[VM_STATUS_INTERVAL]
default=60
type=int
tags=starter,vm_proc

[VM_STATUS_MAX_ERROR]
default=5
type=int
tags=starter,vm_proc

[VM_GAHP_REQ_TIMEOUT]
default=300
type=int
tags=starter,vm_proc

[VM_SOFT_SUSPEND]
default=false
type=bool
tags=starter,vm_proc

[CONDOR_GAHP_WORKER]
default=$(SBIN)/condor_c-gahp_worker_thread
win32_default=$(SBIN)\condor_c-gahp_worker_thread.exe
type=path
tags=c-gahp,io_loop

[REPLICATION_INTERVAL]
default=300
type=int
tags=had,ReplicatorStateMachine

[NEGOTIATOR_CROSS_SLOT_PRIOS]
default=false
type=bool
description=Negotiator should advertise cross slot user prios
tags=negotiator,matchmaker

[NEGOTIATOR_INTERVAL]
default=60
type=int
tags=negotiator,matchmaker

[NEGOTIATOR_MIN_INTERVAL]
default=5
type=int

[NEGOTIATOR_UPDATE_AFTER_CYCLE]
default=false
type=bool
tags=negotiator,matchmaker

[NEGOTIATOR_UPDATE_INTERVAL]
default=300
type=int

[NEGOTIATOR_TRIM_SHUTDOWN_THRESHOLD]
default=0
type=int
tags=negotiator,matchmaker

[NEGOTIATOR_TIMEOUT]
default=30
type=int
tags=negotiator,matchmaker

[NEGOTIATOR_SOCKET_CACHE_SIZE]
default=500
range=1,
type=int

[NEGOTIATOR_MAX_TIME_PER_SUBMITTER]
default=60
type=int
tags=negotiator,matchmaker

[NEGOTIATOR_MAX_TIME_PER_SCHEDD]
default=120
type=int
tags=negotiator,matchmaker

[NEGOTIATOR_MAX_TIME_PER_PIESPIN]
default=120
type=int
tags=negotiator,matchmaker

[NEGOTIATOR_MAX_TIME_PER_CYCLE]
default=1200
type=int

[NEGOTIATOR_MATCH_EXPRS]
default=
type=string
tags=negotiator,matchmaker

[NEGOTIATOR_NUM_THREADS]
default=1
type=int
tags=negotiator

[PREEMPTION_RANK]
default=(RemoteUserPrio * 1000000) - ifThenElse(isUndefined(TotalJobRuntime), 0, TotalJobRuntime)
type=string
tags=negotiator,matchmaker

[NEGOTIATOR_PRE_JOB_RANK]
default=(10000000 * My.Rank) + (1000000 * (RemoteOwner =?= UNDEFINED)) - (100000 * Cpus) - Memory
type=string
tags=negotiator,matchmaker

[NEGOTIATOR_POST_JOB_RANK]
default=(RemoteOwner =?= UNDEFINED) * (ifthenElse(isUndefined(KFlops), 1000, Kflops) - SlotID - 1.0e10*(Offline=?=True))
type=string
tags=negotiator,matchmaker

[NEGOTIATOR_MATCHLIST_CACHING]
default=true
type=bool
tags=negotiator,matchmaker

[NEGOTIATOR_CONSIDER_PREEMPTION]
default=true
type=bool
tags=negotiator,matchmaker

[NEGOTIATOR_CONSIDER_EARLY_PREEMPTION]
default=false
type=bool
tags=negotiator,matchmaker

[NEGOTIATOR_DEPTH_FIRST]
default=false
type=bool
tags=negotiator

[NEGOTIATOR_INFORM_STARTD]
default=false
type=bool
tags=negotiator,matchmaker

[NEGOTIATOR_USE_NONBLOCKING_STARTD_CONTACT]
default=true
type=bool
tags=negotiator,matchmaker

[NEGOTIATOR_USE_WEIGHTED_DEMAND]
default=true
type=bool
tags=negotiator,matchmaker

[NEGOTIATOR_SLOT_POOLSIZE_CONSTRAINT]
aliases=GROUP_DYNAMIC_MACH_CONSTRAINT
default=
type=string
description=
tags=negotiator,matchmaker

[NEGOTIATOR_SLOT_CONSTRAINT]
aliases=GROUP_DYNAMIC_MACH_CONSTRAINT
default=
type=string
description=Constrain Negotiator Query for Startd Ads
tags=negotiator,matchmaker

[NEGOTIATOR_JOB_CONSTRAINT]
default=
type=string

[GROUP_AUTOREGROUP]
default=false
type=bool
tags=negotiator,matchmaker

[GROUP_ACCEPT_SURPLUS]
default=false
type=bool
tags=negotiator,matchmaker

[NEGOTIATOR_USE_SLOT_WEIGHTS]
default=true
type=bool
description=Negotiator should use slot weights
tags=negotiator,matchmaker

[NEGOTIATOR_ALLOW_QUOTA_OVERSUBSCRIPTION]
default=true
type=bool
description=Negotiator should allow quota oversubscription
tags=negotiator,matchmaker

[GROUP_QUOTA_MAX_ALLOCATION_ROUNDS]
default=3
range=1,1000000000
type=int
description=
tags=negotiator,matchmaker

[GROUP_QUOTA_ROUND_ROBIN_RATE]
default=1.0e100
range=1.0,1.0e100
type=double
tags=negotiator,matchmaker

[STARTD_AD_REEVAL_EXPR]
default=
type=string
tags=negotiator,matchmaker

[NEGOTIATOR_IGNORE_USER_PRIORITIES]
default=false
type=bool
tags=negotiator,matchmaker

[COLLECTOR_HOST_FOR_NEGOTIATOR]
default=$(FULL_HOSTNAME)
type=string
tags=negotiator

[RECEIVE_MSGS_DURATION]
default=250
type=int
customization=devel
description=How long daemonCore should receive messages before checking the pump
usage=how long to keep processing callback messages before returing to the pump. For the SCHEDD, how long to keep processing matches from the negotiator before checking for other work.
tags=daemon_core,schedd

[NONBLOCKING_COLLECTOR_UPDATE]
default=true
type=bool
tags=daemon_client,dc_collector

[TCP_UPDATE_COLLECTORS]
default=
type=string
tags=daemon_client,dc_collector

[UPDATE_COLLECTOR_WITH_TCP]
default=true
type=bool
tags=daemon_client,dc_collector

[UPDATE_VIEW_COLLECTOR_WITH_TCP]
default=false
type=bool
tags=daemon_client,dc_collector

[DEAD_COLLECTOR_MAX_AVOIDANCE_TIME]
default=3600
type=int
tags=daemon_client,dc_collector

[CM_IP_ADDR]
default=
type=string
tags=daemon_client,daemon

[HISTORY]
default=$(SPOOL)/history
type=string
tags=tools,preen

[STARTD_HISTORY]
default=$(LOG)/startd_history
type=string

[JOB_EPOCH_HISTORY]
default=
type=string
tags=tools,shadow

[HISTORY_CONTAINS_JOB_ENVIRONMENT]
default = true

[PREEN_ADMIN]
default=
type=string
tags=tools,preen

[SYSTEM_VALID_SPOOL_FILES]
default=job_queue.log, job_queue.log.tmp, history, Accountant.log, Accountantnew.log, local_univ_execute, .pgpass, .schedd_address, .schedd_address.super, .schedd_classad, OfflineLog, startd_disk.img, checkpoint-cleanup
type=string
customization=const
description=List of files in the SPOOL directory needed by HTCondor
usage=Set what HTCondor created files should condor_preen leave in the spool directory
review=tj
tags=tools,preen

[VALID_SPOOL_FILES]
default=
description=List of user files in the SPOOL directory that should not be deleted.
usage=Set what user files should condor_preen leave in the spool directory?
review=tj
tags=tools,preen

[INVALID_LOG_FILES]
default=
type=string
usage=What files should condor_preen remove from the log directory?
tags=tools,preen

[LIB]
default=$(RELEASE_DIR)/lib
type=path
tags=tools,version

[SEC_PASSWORD_DOMAIN]
default=
type=string
tags=tools,store_cred_main

[JOB_ROUTER_SOURCE_JOB_CONSTRAINT]
default=
type=string
tags=schedd,JobRouter

[MAX_JOB_MIRROR_UPDATE_LAG]
default=600
type=int
tags=schedd,JobRouter

[JOB_ROUTER_POLLING_PERIOD]
default=10
type=int
tags=schedd,JobRouter

[JOB_ROUTER_NAME]
default=jobrouter
type=string
tags=schedd,JobRouter

[JOB_ROUTER_LOCK]
default=$(LOCK)/$(JOB_ROUTER_NAME)Lock
type=string
tags=JobRouter

[JOB_ROUTER_ROUND_ROBIN_SELECTION]
default=false
type=bool

[POLLING_PERIOD]
default=
type=string
tags=schedd

[QUEUE_SUPER_USERS]
default=root, condor
win32_default=condor, SYSTEM
tags=schedd,qmgmt
description=List of users that can edit other users jobs

[QUEUE_SUPER_USER_MAY_IMPERSONATE]
default=
type=string
description=
tags=schedd,qmgmt

[QUEUE_ALL_USERS_TRUSTED]
default=false
type=bool
tags=schedd,qmgmt
description=All users can edit other users jobs

[SYSTEM_SECURE_JOB_ATTRS]
default=x509userProxySubject x509UserProxyEmail x509UserProxyVOName x509UserProxyFirstFQAN x509UserProxyFQAN TotalSubmitProcs AuthTokenSubject AuthTokenIssuer AuthTokenGroups AuthTokenId AuthTokenScopes
type=string
customization=devel
description=System defined list of job attributes that only the Schedd can change
tags=schedd,qmgmt,qedit

[SECURE_JOB_ATTRS]
default=
type=string
description=Admin defined list of job attributes that only the Schedd can change
tags=schedd,qmgmt,qedit

[IGNORE_ATTEMPTS_TO_SET_SECURE_JOB_ATTRS]
default=true
type=bool
tags=schedd,qmgmt
description=Silently ignore attempts to set SECURE_JOB_ATTRS
Usage=Set this to false if you want submits to fail rather than have attempts to set SECURE_JOB_ATTRS be ignored

[SYSTEM_IMMUTABLE_JOB_ATTRS]
default=Owner ClusterId ProcId MyType TargetType User
type=string
customization=devel
description=System defined list of job attributes that may not change once set
tags=schedd,qmgmt,qedit

[IMMUTABLE_JOB_ATTRS]
default=
type=string
description=Admin defined list of job attributes that may not change once set
tags=schedd,qmgmt,qedit

[SYSTEM_PROTECTED_JOB_ATTRS]
default=
type=string
customization=devel
description=System defined list of job attributes that may only be changed by a queue superuser once set
tags=schedd,qmgmt,qedit

[PROTECTED_JOB_ATTRS]
default=
type=string
description=Admin defined list of job attributes that may only be changed by a queue superuser once set
tags=schedd,qmgmt,qedit


[GLOBAL_JOB_ID_WITH_TIME]
default=true
type=bool
tags=schedd,qmgmt

[BIOTECH]
default=
type=string
tags=schedd,qmgmt

[CLAIM_RECYCLING_CONSIDER_LIMITS]
default=true
type=bool
tags=schedd,qmgmt

[UNUSED_CLAIM_TIMEOUT]
default=600
type=int
tags=schedd,dedicated_scheduler

[SCHEDD_PREEMPTION_REQUIREMENTS]
default=
type=string
tags=schedd,dedicated_scheduler

[SCHEDD_PREEMPTION_RANK]
default=
type=string
tags=schedd,dedicated_scheduler

[SCHEDD_RESTART_REPORT]
default=$(LOG)/ScheddRestartReport
type=string
tags=schedd,dedicated_scheduler

[SCHEDD_ALLOW_LATE_MATERIALIZE]
default=true
type=bool
tags=schedd
description=Set to false to have Schedd refuse late materialization submits

[SCHEDD_ASSUME_NEGOTIATOR_GONE]
default=2000000000
type=int
tags=schedd
description=

[SCHEDD_NON_DURABLE_LATE_MATERIALIZE]
default=true
type=bool
tags=schedd
customization=devel
description=Set to false to use slow but durable transaction semantics for each materialized job.

[SCHEDD_SEND_RESCHEDULE]
default=true
type=bool
tags=schedd
description=

[DEDICATED_SCHEDULER_USE_FIFO]
default=true
type=bool
tags=schedd,dedicated_scheduler

[MPI_MASTER_IP]
default=
type=string
tags=schedd,dedicated_scheduler

[SHADOW_LIST]
default=SHADOW
win32_default=SHADOW
type=string
tags=schedd,shadow_mgr

[SHADOW]
default=$(SBIN)/condor_shadow
win32_default=$(SBIN)\condor_shadow.exe
description=Path to vanilla shadow binary
type=path
tags=schedd

[SHADOW_RENICE_INCREMENT]
default=0
type=int
tags=schedd

[STARTER_LOCAL]
default=$(SBIN)/condor_starter
win32_default=$(SBIN)\condor_starter.exe
type=path
tags=schedd

[JOB_QUEUE_LOG]
default=$(SPOOL)/job_queue.log
win32_default=$(SPOOL)\job_queue.log
type=path
tags=schedd

[LOCAL_UNIV_EXECUTE]
default=$(SPOOL)/local_univ_execute
win32_default=$(SPOOL)\local_univ_execute
type=path
tags=schedd

[SCHED_UNIV_RENICE_INCREMENT]
default=0
type=int
tags=schedd

[SCHEDD_SEND_VACATE_VIA_TCP]
default=true
type=bool
tags=schedd

[KEEP_OUTPUT_SANDBOX]
default=false
type=bool
tags=schedd

[ENABLE_HISTORY_ROTATION]
default=true
type=bool
tags=schedd

[PER_JOB_HISTORY_DIR]
default=
type=string
tags=schedd

[SCHEDD_MIN_INTERVAL]
default=5
type=int
tags=schedd

[JOB_START_DELAY]
default=0
type=int
tags=schedd

[JOB_START_COUNT]
default=1
range=1,
type=int

[MAX_JOBS_RUNNING]
default=MIN({$(DETECTED_MEMORY), 10000})
win32_default=MIN({($(DETECTED_MEMORY)-200)/10, 2000})
type=int
tags=schedd

[CURB_MATCHMAKING]
default=(RecentDaemonCoreDutyCycle > 0.98) || (TransferQueueNumWaitingToUpload > TransferQueueMaxUploading)
type=string
description=Curb Expression for Matchmaking
tags=schedd

[START_LOCAL_UNIVERSE]
default=TotalLocalJobsRunning < 200
description=expression that, when TRUE allows a Local universe job to start
type=string
tags=schedd

[START_SCHEDULER_UNIVERSE]
default=TotalSchedulerJobsRunning < 500
description=expression that, when TRUE allows a Scheduler universe job to start
type=string
tags=schedd

[MAX_JOBS_SUBMITTED]
default=2147483647
type=int
description=Max jobs in the SCHEDD's queue
tags=schedd

[MAX_JOBS_PER_OWNER]
default=100000
type=int
customization=normal
description=Max jobs in the SCHEDD's queue from a single owner.
usage=Ensure that a single user does not fill the SCHEDD
tags=schedd

[MAX_JOBS_PER_SUBMISSION]
default=20000
type=int
customization=normal
description=Max jobs in a single submit
usage=Circuit breaker to prevent an excessive number of a jobs in a single submission. Use to reject one form of mistake
tags=schedd

[ALLOW_SUBMIT_FROM_KNOWN_USERS_ONLY]
default=false
type=bool
customization=normal
description=Restrict job submission to users that already have already been added using condor_qusers
tags=schedd

[MAX_RUNNING_SCHEDULER_JOBS_PER_OWNER]
# default is roughly 1/2 the value of the default START_SCHEDULER_UNIVERSE expression
default=200
customization=normal
description=Max running DAGs for a single owner
usage=Ensure that a single user does not monopolize the SCHEDD
tags=schedd

[NEGOTIATE_ALL_JOBS_IN_CLUSTER]
default=
type=string
tags=schedd

[STARTD_CONTACT_TIMEOUT]
default=45
type=int
tags=schedd

[FLOCK_COLLECTOR_HOSTS]
default=$(FLOCK_TO)
type=string
tags=schedd

[FLOCK_NEGOTIATOR_HOSTS]
default=$(FLOCK_TO)
type=string
tags=schedd

[FLOCK_INCREMENT]
default=1
type=int
range=1,

[MIN_FLOCK_LEVEL]
default=0
type=int
range=0,

[FLOCK_BY_DEFAULT]
default=true
type=bool
tags=schedd

[SHADOW_SIZE_ESTIMATE]
default=125
type=int
tags=schedd

[MAX_SHADOW_EXCEPTIONS]
default=5
type=int
tags=schedd

[MAX_PENDING_STARTD_CONTACTS]
default=0
type=int
range=0,

[GRIDMANAGER_PER_JOB]
default=false
type=bool
tags=schedd

[GRIDMANAGER_SELECTION_EXPR]
default=
type=string

[GRIDMANAGER_LOG_APPEND_SELECTION_EXPR]
default=false
type=bool

[MAX_JOB_QUEUE_LOG_ROTATIONS]
default=1
type=int
tags=schedd

[GRIDMANAGER]
default=$(SBIN)/condor_gridmanager
win32_default=$(SBIN)\condor_gridmanager.exe
type=path
tags=schedd,grid_universe

[GRIDMANAGER_ARGS]
default=
type=string
tags=schedd,grid_universe

[SCHEDD_CRON_NAME]
default=
type=string
tags=schedd,schedd_cronmgr

[SCHEDD_BACKUP_SPOOL]
default=
type=string
tags=schedd

[CHOWN_JOB_SPOOL_FILES]
default=False
type=bool
tags=schedd

[SCHEDD_QUERY_WORKERS]
default=8
type=int
description=Maximum number of schedd forked workers
tags=schedd

[X_RUNS_HERE]
default=
type=string
tags=master,daemon

[HA_LOCK_URL]
default=
type=string
tags=master,daemon

[HA_LOCK_HOLD_TIME]
default=
type=string
tags=master,daemon

[HA_POLL_PERIOD]
default=
type=string
tags=master,daemon

[MASTER_NAME]
default=
type=string
tags=master

[START_MASTER]
default=
type=string
tags=master

[START_DAEMONS]
default=
type=string
tags=master

[PUBLISH_OBITUARIES]
default=
type=string
tags=master

[OBITUARY_LOG_LENGTH]
default=200
type=int
tags=master

[ALLOW_ADMIN_COMMANDS]
default=true
type=bool
tags=master

[ALLOW_CLIENT]
default=*
type=string
tags=security

[PREEN]
default=$(SBIN)/condor_preen
win32_default=$(SBIN)\condor_preen.exe
type=path
description=Path to preen binary
tags=master

[DC_DAEMON_LIST]
default=
type=string
customization=expert
tags=master

[MASTER_HA_LIST]
default=
type=string
tags=master

[DAEMON_LIST]
default=MASTER
type=string
customization=normal
tags=master

[PREEN_ARGS]
default=-m -r
type=string
tags=master

[COLLECTOR_LOG]
default=$(LOG)/CollectorLog
type=path
description=Path to log file for the Collector
tags=collector,log

[KBDD_LOG]
default=$(LOG)/KbdLog
type=path
description=Path to log file for KBDD
tags=kbdd,log

[MASTER_LOG]
default=$(LOG)/MasterLog
type=path
description=Path to log file for the Master
tags=master,log

[NEGOTIATOR_LOG]
default=$(LOG)/NegotiatorLog
type=path
description=Path to log file for the Negotiator
tags=negotiator,log

[NEGOTIATOR_MATCH_LOG]
default=$(LOG)/MatchLog
type=path
description=Path to Negotiator log of matches
tags=negotiator,log

[SCHEDD_LOG]
default=$(LOG)/SchedLog
type=path
description=Path to log file for the Schedd
tags=sched,log

[SHADOW_LOG]
default=$(LOG)/ShadowLog
type=path
description=Path to Log shared by Shadows
tags=shadow,log

[SHADOW_STATS_LOG]
default=$(LOG)/XferStatsLog
type=path
description=Log file of Xfer stats
tags=shadow,log

[STARTER_STATS_LOG]
default=$(LOG)/XferStatsLog
type=path
description=Log file of Xfer stats
tags=starter,log

[STARTD_LOG]
default=$(LOG)/StartLog
type=path
description=Path to log file for the Startd
tags=startd,log

[JOB_ROUTER_LOG]
default=$(LOG)/JobRouterLog
type=path
tags=job_router,log

[ROOSTER_LOG]
default=$(LOG)/RoosterLog
type=path
tags=rooster,log

[SHARED_PORT_LOG]
default=$(LOG)/SharedPortLog
type=path
description=Path to log file for shared_port
tags=shared_port,log

[HAD_LOG]
default=$(LOG)/HADLog
type=path
tags=had,log

[REPLICATION_LOG]
default=$(LOG)/ReplicationLog
type=path
tags=replication,log

[TRANSFERER_LOG]
default=$(LOG)/TransfererLog
type=path
tags=transferer,log

[ADD_WINDOWS_FIREWALL_EXCEPTION]
default=$(CondorIsAdmin)
type=string
description=Master should automatically open ports in the Windows firewall for HTCondor daemons
tags=master

[ANNEX_COMMAND_STATE]
default=$(LOG)/AnnexCommand.state
type=path
customization=seldom
tags=annex

[ANNEX_LOG]
default=$(LOG)/AnnexLog
type=path
tags=annex,log

[ANNEX_AUDIT_LOG]
default=$(LOG)/AnnexAuditLog
type=path
tags=annex,log

[ANNEX_GAHP_LOG]
default=$(LOG)/AnnexGahpLog
win32_default=NUL
type=path
tags=annex,log

[ANNEX_DEFAULT_LEASE_DURATION]
default=3000
type=long
tags=annex

[ANNEX_DEFAULT_UNCLAIMED_TIMEOUT]
default=900
type=long
tags=annex

[ANNEX_DEFAULT_AWS_REGION]
default=us-east-1
type=string
tags=annex

[ANNEX_DEFAULT_EC2_URL]
default = https://ec2.us-east-1.amazonaws.com
type=string
tags=annex

[ANNEX_DEFAULT_CWE_URL]
default = https://events.us-east-1.amazonaws.com
type=string
tags=annex

[ANNEX_DEFAULT_LAMBDA_URL]
default = https://lambda.us-east-1.amazonaws.com
type=string
tags=annex

[ANNEX_DEFAULT_S3_URL]
default = https://s3.amazonaws.com
type=string
tags=annex

[ANNEX_DEFAULT_CF_URL]
default = https://cloudformation.us-east-1.amazonaws.com/
type=string
tags=annex

[ANNEX_DEFAULT_CONNECTIVITY_FUNCTION_ARN]
default = HTCondorAnnex-CheckConnectivity
type=string
tags=annex

[ANNEX_DEFAULT_ODI_INSTANCE_TYPE]
default = $(ANNEX_DEFAULT_ODI_INSTANCE_TYPE_V8_7_0)
type=string
tags=annex

[ANNEX_DEFAULT_ODI_INSTANCE_TYPE_V8_7_0]
default = m4.large
type=string
tags=annex

[ap_southeast_2.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(ap_southeast_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4)
type=string
tags=annex

[ap_southeast_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4]
default = ami-078d5c7afa60d8d1b
type=string
tags=annex

[ap_southeast_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(ap_southeast_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4)
type=string
tags=annex

[ap_southeast_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4]
default = ami-0463306823b53e30
type=string
tags=annex

[ap_northeast_2.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(ap_northeast_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4)
type=string
tags=annex

[ap_northeast_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4]
default = ami-02c69d521a0809249
type=string
tags=annex

[ap_northeast_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(ap_northeast_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4)
type=string
tags=annex

[ap_northeast_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4]
default = ami-0c07ed1dc0cea3608
type=string
tags=annex

[ap_south_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(ap_south_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4)
type=string
tags=annex

[ap_south_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4]
default = ami-024615f49be85226a
type=string
tags=annex

[sa_east_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(sa_east_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4)
type=string
tags=annex

[sa_east_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4]
default = ami-0b9bff095bcf587b9
type=string
tags=annex

[ca_central_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(ca_central_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4)
type=string
tags=annex

[ca_central_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_4]
default = ami-00ca51dc8295a9e4f
type=string
tags=annex

[eu_central_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(eu_central_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3)
type=string
tags=annex

[eu_central_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3]
default = ami-0b0cba432f6183314
type=string
tags=annex

[eu_central_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_7_8]
default = ami-0e5c4998acc873d00
type=string
tags=annex

[eu_west_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(eu_west_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3)
type=string
tags=annex

[eu_west_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3]
default = ami-04cf1a4bcdb6c2ddb
type=string
tags=annex

[eu_west_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_7_8]
default = ami-052abc65f9a1f2191
type=string
tags=annex

[eu_west_2.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(eu_west_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3)
type=string
tags=annex

[eu_west_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3]
default = ami-05db8a05b808cc82a
type=string
tags=annex

[eu_west_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_7_8]
default = ami-054747f2946a308fc
type=string
tags=annex

[eu_west_3.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(eu_west_3.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3)
type=string
tags=annex

[eu_west_3.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3]
default = ami-000db792307d7ec4c
type=string
tags=annex

[eu_west_3.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_7_8]
default = ami-07ed49c22921c0d31
type=string
tags=annex

[eu_north_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(eu_north_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3)
type=string
tags=annex

[eu_north_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_9_3]
default = ami-0628aa554d3b907a5
type=string
tags=annex

[us_east_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(us_east_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_5)
type=string
tags=annex

[us_east_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_5]
default = ami-02ce5672c4c88146c
type=string
tags=annex

[us_east_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_4]
default = ami-0c2bae939a03e211a
type=string
tags=annex

[us_east_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_7_8]
default = ami-0582916cc08a1d81e
type=string
tags=annex

[us_east_2.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(us_east_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_5)
type=string
tags=annex

[us_east_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_5]
default = ami-007920684150d7cb7
type=string
tags=annex

[us_east_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_4]
default = ami-02a90df644af3b003
type=string
tags=annex

[us_east_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_7_8]
default = ami-0f61cdd6883793833
type=string
tags=annex

[us_west_1.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(us_west_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_5)
type=string
tags=annex

[us_west_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_5]
default = ami-0a6fbc8bda794e1f4
type=string
tags=annex

[us_west_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_4]
default = ami-0f433606b5f80ccab
type=string
tags=annex

[us_west_1.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_7_8]
default = ami-084d3d008e3740806
type=string
tags=annex

[us_west_2.ANNEX_DEFAULT_ODI_IMAGE_ID]
default = $(us_west_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_5)
type=string
tags=annex

[us_west_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_5]
default = ami-0a46b14d914d27167
type=string
tags=annex

[us_west_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_8_4]
default = ami-05cabd3969196c5ba
type=string
tags=annex

[us_west_2.ANNEX_DEFAULT_ODI_IMAGE_ID_V8_7_8]
default = ami-00daecb4d3b8f077f
type=string
tags=annex

[HPC_ANNEX_ENABLED]
default=false
type=bool
description=Boolean indicating whether or not HPC annexes have been enabled
tags=annex

[ANNEX_COLLECTOR]
default=
type=string
description=HPC annex collector address
tags=annex

[ANNEX_TOKEN_DOMAIN]
default=$(TRUST_DOMAIN)
type=string
description=HPC annex collector's token domain (i.e. the domain in annex collector tokens' sub claim)
tags=annex

[SCHEDD]
default=$(SBIN)/condor_schedd
win32_default=$(SBIN)\condor_schedd.exe
type=path
customization=devel
description=Path to the HTCondor scheduler daemon binary
tags=master

[STARTD]
default=$(SBIN)/condor_startd
win32_default=$(SBIN)\condor_startd.exe
type=path
customization=devel
description=Path to the HTCondor startd daemon binary
tags=master

[CCB_POLLING_TIMESLICE]
default=0.05
type=double
tags=ccb

[CCB_POLLING_INTERVAL]
default=20
type=int
tags=ccb

[CCB_POLLING_MAX_INTERVAL]
default=600
type=int
description=
tags=ccb

[CCB_SERVER_READ_BUFFER]
default=2048
type=int
tags=ccb

[CCB_SERVER_WRITE_BUFFER]
default=2048
type=int
tags=ccb

[CCB_SWEEP_INTERVAL]
default=1200
type=int
tags=ccb

[CCB_RECONNECT_FILE]
default=
type=string
tags=ccb

[TRUNC_MASTER_LOG_ON_OPEN]
default=false
type=bool
tags=master

[TRUNC_NEGOTIATOR_LOG_ON_OPEN]
default=false
type=bool
tags=negotiator

[TRUNC_COLLECTOR_LOG_ON_OPEN]
default=false
type=bool
tags=collector

[TRUNC_SCHED_LOG_ON_OPEN]
default=false
type=bool
tags=schedd

[TRUNC_STARTER_LOG_ON_OPEN]
default=false
type=bool
tags=starter

[TRUNC_SHADOW_LOG_ON_OPEN]
default=false
type=bool
tags=shadow

[TRUNC_MATCH_LOG_ON_OPEN]
default=false
type=bool
tags=negotiator

[SHADOW_LOCK]
default=$(LOCK)/ShadowLock
type=path
description=Lock file for locking the shadow log file
tags=shadow

[DEBUG_TIME_FORMAT]
# The default used to have a trailing space, it was removed in 8.3.2
default=%m/%d/%y %H:%M:%S
type=string
description=Time format for the Debug log files
tags=daemons,log

[MASTER_DEBUG_WAIT]
default=false
type=bool
customization=devel
tags=master

[SHADOW_DEBUG_WAIT]
default=false
type=bool
customization=devel
tags=shadow

[SCHED_DEBUG_WAIT]
default=false
type=bool
customization=devel
tags=schedd

[STARTER_DEBUG_WAIT]
default=false
type=bool
customization=devel
tags=starter

[COLLECTOR_DEBUG_WAIT]
default=false
type=bool
customization=devel
tags=collector

[NEGOTIATOR_DEBUG_WAIT]
default=false
type=bool
customization=devel
tags=negotiator

[NEGOTIATOR_READ_CONFIG_BEFORE_CYCLE]
default=false
type=bool
customization=expert
tags=negotiator

[SCHEDD_JOB_QUEUE_LOG_FLUSH_DELAY]
default=5
version=7.4.0
type=int
tags=schedd

[DAEMON_SOCKET_DIR]
default=auto
type=string

[SHARED_PORT_DAEMON_AD_FILE]
default=$(LOCK)/shared_port_ad
type=string

[ALWAYS_REUSEADDR]
default=true
version=8.6.0
type=bool
description=Set SO_REUSEADDR on all sockets

[USE_SHARED_PORT]
default=true
version=7.5.0
type=bool
tags=master,shared_port

[HAD_USE_SHARED_PORT]
default=false
type=bool

[REPLICATION_USE_SHARED_PORT]
default=$(HAD_USE_SHARED_PORT)
type=bool

# Fixes gittrac #6156.
[DAGMAN_USE_SHARED_PORT]
default=false
type=bool

[SHARED_PORT_PORT]
default=$(COLLECTOR_PORT)
type=int
description=TCP port used by condor_shared_port

[AUTO_INCLUDE_SHARED_PORT_IN_DAEMON_LIST]
default=true
version=8.1.1
type=bool
customization=expert

[AUTO_INCLUDE_CREDD_IN_DAEMON_LIST]
default=false
version=8.9.7
type=bool
customization=expert

[COLLECTOR_USES_SHARED_PORT]
default=true
version=8.1.4
type=bool
customization=expert

[SHARED_PORT_DEFAULT_ID]
default=
version=8.1.4
type=string
customization=expert

[CCB_HEARTBEAT_INTERVAL]
default=300
version=7.5.0
range=0,
type=int
description=Interval between CCB protocol heartbeats
tags=ccb

[ROOSTER_INTERVAL]
default=300
version=7.4.0
range=0,
type=int
tags=rooster

[ROOSTER_UNHIBERNATE]
default=Offline && Unhibernate
type=string
tags=rooster

[ROOSTER_WAKEUP_CMD]
default="$(BIN)/condor_power -d -i"
type=string
description=Rooster wakeup command
tags=rooster

[ROOSTER_MAX_UNHIBERNATE]
default=0
version=7.5.3
range=0,
type=int
description=Rooster max unhibernate per cycle
tags=rooster

[ROOSTER_UNHIBERNATE_RANK]
default=
type=string
tags=rooster

[MAX_PROCD_LOG]
default=1000000
description=Max Procd Log (size rotation only)
tags=procd

[SHADOW_WORKLIFE]
default=3600
version=7.5.3
type=int
tags=shadow

[CLAIM_WORKLIFE]
default=1200
type=int
tags=startd

[NEGOTIATION_CYCLE_STATS_LENGTH]
default=3
version=7.5.3
range=0,100
type=int
tags=negotiator

[SYSTEM_JOB_MACHINE_ATTRS]
default=Cpus,SlotWeight
type=string
tags=schedd

[SYSTEM_JOB_MACHINE_ATTRS_HISTORY_LENGTH]
default=1
range=0,
type=int
tags=schedd

[CREATE_LOCKS_ON_LOCAL_DISK]
default=true
type=bool
description=
usage=true if userlog file locks should be create in temp folder on local disk, false otherwise

[LOCAL_DISK_LOCK_DIR]
default=
type=string
description=
usage=/tmp-like directory to store lock files, /tmp/condorLocks is used otherwise

[LOCK_DEBUG_LOG_TO_APPEND]
default=false
type=bool
description=

[LOG_TO_SYSLOG]
default=false
type=bool
description=Send all logs to syslog instead of files

[LOCAL_CONFIG_DIR_EXCLUDE_REGEXP]
default=^((\..*)|(.*\.pl)|(.*\.py)|(.*\.sh)|(.*~)|(#.*)|(.*\.rpmsave)|(.*\.rpmnew)|(.*\.dpkg-old)|(.*\.dpkg-dist)|(.*\.cfsaved))$
type=string
description=Regular expression matching filenames to ignore in the config directory
tags=condor_config

[PARROT]
default=
type=string
usage=run job within parrot
tags=parrot

[DELEGATE_JOB_GSI_CREDENTIALS_REFRESH]
default=0.25
range=0,1
type=double

[DELEGATE_JOB_GSI_CREDENTIALS_LIFETIME]
default=86400
range=0,
type=int

[DELEGATE_FULL_JOB_GSI_CREDENTIALS]
default=false
type=bool

[STATISTICS_WINDOW_QUANTUM]
default=240
range=1,1000000000
type=int
customization=expert
description=Size of Internal Statistics Ring Buffer In Seconds
tags=daemons

[STATISTICS_WINDOW_QUANTUM_DC]
default=
type=string
customization=expert
description=Size of Internal Statistics Ring Buffer In Seconds for DaemonCore Stats
tags=daemons

[STATISTICS_WINDOW_QUANTUM_SCHEDD]
default=
type=string
customization=expert
description=Size of Internal Statistics Ring Buffer In Seconds for Scheduler Stats
tags=schedd

[STATISTICS_WINDOW_SECONDS]
default=1200
range=1,1000000000
type=int
description=Size of Recent Statistics Window
tags=daemons

[DCSTATISTICS_TIMESPANS]
default=4m:240 20m:1200 4h:14400
version=8.1.6
type=string
description=List of timespans for reporting DC exponential moving average statistics
tags=daemons

[DCSTATISTICS_WINDOW_SECONDS]
default=
type=string
description=Size of Recent Statistics Window for DaemonCore Stats
tags=daemons

[TCP_KEEPALIVE_INTERVAL]
default=360
range=-1,
type=int
customization=expert
description=Setting for TCP keepalive probe interval

[SHADOW_CHECKPROXY_INTERVAL]
default=600
range=1,
type=int
description=Shadow Check Proxy Interval

[SHADOW_RUN_UNKNOWN_USER_JOBS]
default=false
type=bool
tags=shadow
restart=true

[SCHEDD_ROUND_ATTR_ProportionalSetSizeKb]
default=25%
tags=schedd
restart=true
customization=expert

[SCHEDD_ROUND_ATTR_ResidentSetSize]
default=25%
tags=schedd
restart=true
customization=expert

[SCHEDD_ROUND_ATTR_ExecutableSize]
default=25%
tags=schedd
restart=true
customization=expert

[SCHEDD_ROUND_ATTR_ImageSize]
default=25%
tags=schedd
restart=true
customization=expert

[SCHEDD_ROUND_ATTR_DiskUsage]
default=25%
tags=schedd
restart=true
customization=expert

[SCHEDD_ROUND_ATTR_NumCkpts]
default=4
tags=schedd
restart=true
customization=expert

[WANT_SUSPEND]
default=False
[WANT_VACATE]
default=True
[SUSPEND]
default=False
[CONTINUE]
default=True
[PREEMPT]
default=False
[KILL]
default=False

[MachineMaxVacateTime]
default=$(MaxVacateTime)
type=int
description=
tags=startd

[PERIODIC_CHECKPOINT]
default=((time() - LastPeriodicCheckpoint)/60.0) > (180.0 + $RANDOM_INTEGER(-30,30,1))
type=string
tags=startd

[DEFRAG_DRAINING_START_EXPR]
default=FALSE
type=string
tags=defrag

[DEFRAG_REQUIREMENTS]
default=
type=string
description=
tags=defrag

[DEFRAG_CANCEL_REQUIREMENTS]
default=$(DEFRAG_WHOLE_MACHINE_EXPR)
type=string
description=
tags=defrag

[DEFRAG_WHOLE_MACHINE_EXPR]
default=Cpus == TotalSlotCpus
type=string
customization=normal
description=
tags=defrag

[DEFRAG_LOG]
default=$(LOG)/DefragLog
type=path
description=Path to Defrag daemon Log
tags=defrag,log

[DEFRAG_INTERVAL]
default=600
type=int
tags=defrag

[DEFRAG_DRAINING_MACHINES_PER_HOUR]
default=0
range=0,
type=int
customization=normal
tags=defrag

[DEFRAG_MAX_CONCURRENT_DRAINING]
default=-1
range=-1,
type=int
tags=defrag

[DEFRAG_MAX_WHOLE_MACHINES]
default=-1
range=-1,
type=int
tags=defrag

[DEFRAG_RANK]
default=-ExpectedMachineGracefulDrainingBadput
type=string
tags=defrag

[DEFRAG_DRAINING_SCHEDULE]
default=graceful
type=string
tags=defrag

[DEFRAG_UPDATE_INTERVAL]
default=300
type=int
tags=defrag

[DEFRAG_NAME]
default=
type=string
description=Name of the defrag daemon
tags=defrag

[GROUP_SORT_EXPR]
default=ifThenElse(AccountingGroup=?="<none>",3.4e+38,ifThenElse(GroupQuota>0,GroupResourcesInUse/GroupQuota,3.3e+38))
type=string
description=Accounting Group Sorting Expression
tags=negotiator

[CLAIM_PARTITIONABLE_LEFTOVERS]
default=$(NEGOTIATOR_USE_SLOT_WEIGHTS)
version=7.7.5
type=string
tags=schedd,startd,claim

[ENABLE_CLAIMABLE_PARTITIONABLE_SLOTS]
default=false
type=bool

[MAX_PARTITIONABLE_SLOT_CLAIM_TIME]
default=3600
type=int

[MOUNT_UNDER_SCRATCH]
default="/tmp,/var/tmp"
win32_default=
version=7.7.5
type=string
tags=starter

[NAMED_CHROOT]
default=
version=7.7.5
type=string
tags=starter

[MEMORY_USAGE_METRIC]
default=((ResidentSetSize+1023)/1024)
version=7.7.6
type=string
customization=expert
description=Expression to set MemoryUsage
tags=starter

[MEMORY_USAGE_METRIC_VM]
default=((ImageSize+1023)/1024)
version=7.7.6
type=string
customization=expert
description=MemoryUsage metric for VM Universe jobs
tags=starter

[DEFAULT_JOB_MAX_RETRIES]
default=2
type=int
description=Default maximum number of retries when a submit file enables retries.
tags=submit

[JOB_DEFAULT_REQUESTMEMORY]
default=ifthenelse(MemoryUsage =!= UNDEFINED,MemoryUsage,(ImageSize+1023)/1024)
version=7.7.6
type=string
description=Default RequestMemory expression if not specified in submit file
tags=submit

[JOB_DEFAULT_REQUESTDISK]
default=DiskUsage
version=7.7.6
type=string
description=Default RequestDisk expression if not specified in submit file
tags=submit

[JOB_DEFAULT_REQUESTCPUS]
default=1
version=7.7.6
type=string
description=Default RequestCpus expression if not specified in submit file
tags=submit

[JOB_DEFAULT_LEASE_DURATION]
default=2400
type=string
description=Default JobLeaseDuration expression if not specified in submit file
tags=submit

[MUST_MODIFY_REQUEST_EXPRS]
default=false
version=7.7.6
type=bool
description=Should startd modify request exprs even if it causes match failure
tags=startd

[MODIFY_REQUEST_EXPR_REQUESTCPUS]
default=quantize(RequestCpus,{1})
version=7.7.6
type=string
description=Default modification to a cpu resource request
tags=startd

[MODIFY_REQUEST_EXPR_REQUESTMEMORY]
default=quantize(RequestMemory,{128})
version=7.7.6
type=string
description=Default modification to a memory resource request
tags=startd

[MODIFY_REQUEST_EXPR_REQUESTDISK]
default=quantize(RequestDisk,{1024})
version=7.7.6
type=string
description=Default modification to a disk resource request
tags=startd

[CONSUMPTION_POLICY]
default=false
version=7.7.6
type=bool
description=Does a slot ad support a consumption policy?
tags=startd

[CONSUMPTION_CPUS]
default=quantize(target.RequestCpus,{1})
version=7.7.6
type=string
description=Consumption policy for cpu resource assets
tags=startd,negotiator

[CONSUMPTION_MEMORY]
default=quantize(target.RequestMemory,{128})
version=7.7.6
type=string
description=Consumption policy for memory resource assets
tags=startd,negotiator

[CONSUMPTION_DISK]
default=quantize(target.RequestDisk,{1024})
version=7.7.6
type=string
description=Consumption policy for disk resource assets
tags=startd,negotiator

[SLOT_WEIGHT]
default=Cpus
version=7.7.6
type=string
description=Slot weight expression, resides on SlotWeight attribute
tags=negotiator

[ENABLE_DEPRECATION_WARNINGS]
default=true
version=7.7.6
type=bool
description=Enable warnings about the use of deprecated features
tags=startd

[CLASSAD_LOG_STRICT_PARSING]
default=true
version=7.9.0
type=bool
description=Enable strict parse checking of classad RHS expressions in classad log files
tags=classad_log

[CLASSAD_ENABLE_USER_HOME]
default=true
version=8.3.7
type=bool
description=Enable the user_home function that looks up a user's home directory
tags=classad

[STARTER_RLIMIT_AS]
default=0
version=7.8.1
type=int
description=Classad expression used to set virtual memory rlimit for job
tags=starter

[INTERACTIVE_SUBMIT_FILE]
default=$(LIBEXEC)/interactive.sub
version=7.9.0
type=string
description=Location of default submit file for condor_submit -i
tags=submit

[MAX_GLOBAL_JOB_PRIOS]
default=500
version=7.9.1
type=int
description=Maximum size of JobPrioArray in submitter ad
tags=schedd

[USE_GLOBAL_JOB_PRIOS]
default=false
version=7.9.1
type=bool
description=Consider job priorities across multiple schedds
tags=schedd

[TRANSFER_QUEUE_USER_EXPR]
default=strcat("Owner_",Owner)
version=7.9.1
type=string
description=
tags=schedd

[ALLOW_TRANSFER_REMAP_TO_MKDIR]
default=true
type=bool
description=Allow transfer output remap to make directories if they don't exist
tags=shadow

[MAX_TRANSFER_INPUT_MB]
default=-1
version=7.9.2
type=int
description=Maximum size of transferred input files
tags=schedd

[MAX_TRANSFER_OUTPUT_MB]
default=-1
version=7.9.2
type=int
description=Maximum size of transferred output files
tags=schedd

[MAX_REMAP_RECURSIONS]
default=128
version=8.8.9
type=int
description=Maximum number of filetransfer remaps to apply before aborting
tags=file_transfer

[MAX_FILE_TRANSFER_PLUGIN_LIFETIME]
default=72000
version=10.2.0
type=int
description=Maximum number of seconds to wait for a file-transfer plug-in to finish.
tags=file_transfer

[TRANSFER_IO_REPORT_INTERVAL]
default=10
version=7.9.4
range=0,
type=int
description=Interval between reports from file transfer processes to the transfer queue manager
tags=schedd

[TRANSFER_IO_REPORT_TIMESPANS]
default=1m:60 5m:300 1h:3600 1d:86400
version=7.9.4
type=string
description=List of timespans for reporting file transfer I/O statistics
tags=schedd

[GRACEFULLY_REMOVE_JOBS]
default=true
version=7.9.0
type=bool
description=Determines if jobs should be removed gracefully by default.
tags=shadow,baseshadow

[BASE_CGROUP]
default=htcondor
version=7.9.0
type=string
description=Enables and names the base kernel cgroup for job management
tags=starter

[CGROUP_MEMORY_LIMIT_POLICY]
aliases=
default=hard
version=7.9.0
type=string
description=Determines whether cgroup base memory enforcement should happen
tags=starter

[BATCH_GAHP_CHECK_STATUS_ATTEMPTS]
default=5
version=7.9.5
type=int
description=Determines how many failed check status attempts before failing an infn gahp job.
tags=gridmanager,infnbatchjob

[PER_JOB_NAMESPACES]
default=true
version=7.9.6
type=bool
description=Determines if job creates their own namespace
tags=starter

[CHIRP_DELAYED_UPDATE_PREFIX]
default=Chirp*
version=8.1.0
type=string
is_macro=true
description=Determines the required prefix for remote updates from the running job
tags=starter,shadow

[CHIRP_DELAYED_UPDATE_MAX_ATTRS]
default=100
range=0,
type=int
description=Maximum number of pending chirp delayed updates
tags=starter

[ENABLE_CHIRP_IO]
default=true
version=8.1.0
type=bool
description=Enables IO from the running job back to the submitter machine
tags=starter

[ENABLE_CHIRP_UPDATES]
default=true
version=8.1.0
type=bool
description=Enables job updates (inserting values into the job log or qedits) from the running job back to the submitter machine
tags=starter

[ENABLE_CHIRP_DELAYED]
default=true
version=8.1.0
type=bool
description=Enables delayed job updates (inserting qedits) with a required prefix at little resource cost from the running job back to the submitter machine.  The safest of the ENABLE_CHIRP_* settings
tags=starter

[GANGLIA_GMETRIC]
default=
type=string
description=Path to the Ganglia gmetric Executable
tags=condor_config

[GANGLIA_LIB]
default=
type=string
description=Ganglia Library
tags=condor_config

[GANGLIA_LIB_PATH]
default=/lib,/usr/lib,/usr/local/lib
type=string
description=Ganglia Library Search Path
tags=condor_config

[GANGLIA_LIB64_PATH]
default=/lib64,/usr/lib64,/usr/local/lib64
type=string
description=Ganglia 64-bit Library Search Path
tags=condor_config

[GANGLIA_CONFIG]
default=/etc/ganglia/gmond.conf
type=string
description=Path to the Ganglia Configuration file
tags=condor_config

[GANGLIA_GSTAT_COMMAND]
default=gstat --all --mpifile --gmond_ip=localhost --gmond_port=8649
type=string
tags=condor_config

[GANGLIAD_METRICS_CONFIG_DIR]
default=/etc/condor/ganglia.d
type=path
description=Ganglia metric config dir
tags=condor_config

[GANGLIAD_VERBOSITY]
default=0
type=int
description=Ganglia Verbosity
tags=condor_config

[GANGLIAD_INTERVAL]
default=60
type=int
description=Ganglia Interval
tags=condor_config

[GANGLIAD_LOG]
default=$(LOG)/GangliadLog
type=path
tags=gangliad

[MAX_GANGLIAD_LOG]
default=$(MAX_DEFAULT_LOG)
tags=gangliad

[GANGLIAD_REQUIREMENTS]
default=
type=string
description=Requirements to be met by all ads monitored by Ganglia
tags=gangliad

[GANGLIAD_PER_EXECUTE_NODE_METRICS]
default=true
type=bool
description=Publish Ganglia metrics for individual execute nodes
tags=gangliad

[GANGLIA_SEND_DATA_FOR_ALL_HOSTS]
default=false
type=bool
description=Send Ganglia metrics for all hosts
tags=gangliad

[ECRYPTFS_ADD_PASSPHRASE]
default=ecryptfs-add-passphrase
type=path
customization=expert
description=Name of ecryptfs tool to add a passphrase
review=toddt
tags=ecryptfs

[ECRYPTFS_KEY_TIMEOUT]
default=3600
range=600,86400
type=int
customization=expert
description=Duration in seconds for ecryptfs key timeout
review=toddt
tags=ecryptfs

[MAX_CONCURRENT_DOWNLOADS]
default=100
type=int
range=0,

[MAX_CONCURRENT_UPLOADS]
default=100
type=int
range=0,

[FILE_TRANSFER_DISK_LOAD_THROTTLE]
default=2.0
type=string
description=
tags=schedd

[FILE_TRANSFER_DISK_LOAD_THROTTLE_SHORT_HORIZON]
default=1m
type=string
description=
tags=schedd

[FILE_TRANSFER_DISK_LOAD_THROTTLE_LONG_HORIZON]
default=5m
type=string
description=
tags=schedd

[FILE_TRANSFER_DISK_LOAD_THROTTLE_WAIT_BETWEEN_INCREMENTS]
default=60
type=int
description=
tags=schedd

[RUN_FILETRANSFER_PLUGINS_WITH_ROOT]
default=false
type=bool
description=Whether to invoke file transfer plugins as user or as root

[LOG_FILETRANSFER_PLUGIN_STDOUT_ON_FAILURE]
default=D_ALWAYS
type=string
description=What log level to use to write the stdout/err of a failed file transfer plugin into the StaterLog

[ENABLE_MULTIFILE_TRANSFER_PLUGINS]
default=true
type=bool
description=Enable file transfer plugins that support multiple files as input

[SIGN_S3_URLS]
default=true
type=bool
description=Enable to allow submit side to sign S3 URLs for file transfer.

[ENABLE_HTTP_PUBLIC_FILES]
default=false
type=bool
description=Allow public input files for a job to be transferred via HTTP
tags=file_transfer

[HTTP_PUBLIC_FILES_ADDRESS]
default=127.0.0.1:80
type=string
description=Web address (hostname + port) for HTTP public files
tags=file_transfer

[HTTP_PUBLIC_FILES_ROOT_DIR]
default=/usr/share/nginx/html
type=string
description=Folder in the local filesystem for HTTP public file links to be served from.
tags=file_transfer

[HTTP_PUBLIC_FILES_STALE_AGE]
default=604800
type=int
description=Age (in seconds) after which preen determines this file is stale and removes it
tags=file_transfer,preen

[COLLECTOR_MAX_FILE_DESCRIPTORS]
default=10240
range=0,
type=int
usage=Set the limit on file descriptor usage for the collector.
tags=collector
restart=true

[SCHEDD_MAX_FILE_DESCRIPTORS]
default=20000
range=0,
type=int
usage=Set the limit on file descriptor usage for the scheduler.
tags=schedd
restart=true

[SCHEDD_USE_SLOT_WEIGHT]
default=true
rant=
type=bool
description=Should Schedd obey SLOT_WEIGHT
tags=schedd
usage=

[SCHEDD_SLOT_WEIGHT]
default=

[SHARED_PORT_MAX_FILE_DESCRIPTORS]
default=20000
range=0,
type=int
usage=Set the limit on file descriptor usage for condor_shared_port.
restart=true
tags=shared_port

[USE_RESOURCE_REQUEST_COUNTS]
default=true
type=bool
tags=negotiator,matchmaker

[NEGOTIATOR_RESOURCE_REQUEST_LIST_SIZE]
default=200
range=1,
type=int
description=Size of Resource Request List
tags=negotiator,matchmaker

[NEGOTIATOR_PREFETCH_REQUESTS]
default=true
type=bool
description=Enable parallel prefetching of requests in the negotiator
tags=negotiator,matchmaker

[NEGOTIATOR_PREFETCH_REQUESTS_MAX_TIME]
default=60
range=0,
type=int
description=Timeout for prefetch requests lists phase of negotiator
tags=negotiator,matchmaker

[HISTORY_HELPER]
default=$(BIN)/condor_history
win32_default=$(BIN)\condor_history.exe
type=path
customization=devel
description=Path to condor helper executable used by remote condor_history
tags=schedd

[HISTORY_HELPER_MAX_HISTORY]
default=50000
range=0,
type=int
description=History Helper max number of history ads
usage=Set the limit on the number of history ads remote history will consider

[HISTORY_HELPER_MAX_CONCURRENCY]
default=50
range=0,
type=int
description=History Helper max number of helper sub-processes
usage=Set the limit on the number of condor_history_helper sub-processes

[CONDOR_Q_USE_V3_PROTOCOL]
default=true
type=bool
customization=devel
description=Control use of V3 query protocol for condor_q
usage=Set to false to disable V3 query protocol for condor_q.

[CONDOR_Q_ONLY_MY_JOBS]
default=true
type=bool
description=Whether condor_q will query all jobs, or only the current owners jobs by default
usage=Set to true to have condor_q query only the owner's jobs by default

[CONDOR_Q_DASH_BATCH_IS_DEFAULT]
default=true
type=bool
description=Whether condor_q will default to -batch display
usage=Set to true to have condor_q default to -batch display

[CONDOR_Q_SHOW_OLD_SUMMARY]
default=false
type=bool
description=Whether condor_q will show the old single line summary totals, or the new multi line one.
usage=Set to true to have condor_q show the old single line summary totals

[ENABLE_IPV6]
default=auto
usage=Should HTCondor use IPv6 interfaces?
tags=daemon_core

[ENABLE_IPV4]
default=auto
version=8.1.3
usage=Should HTCondor use IPv4 interfaces?
tags=daemon_core

[PREFER_IPV4]
default=true
version=8.5.3
type=bool
usage=Should HTCondor prefer IPv4 (over IPv6) when given the choice?
tags=daemon_core
restart=true

[ADVERTISE_IPV4_FIRST]
default=$(PREFER_IPV4)
version=8.5.3
usage=Should HTCondor list its IPv4 address(es) before its IPv6 addresses?
tags=daemon_core
restart=true

[IGNORE_TARGET_PROTOCOL_PREFERENCE]
default=$(PREFER_IPV4)
version=8.5.3
usage=Should HTCondor ignore the target's listed protocol preferences?
tags=daemon_core
restart=true

[IGNORE_DNS_PROTOCOL_PREFERENCE]
default=$(PREFER_IPV4)
version=8.5.3
description=Ignore DNS target protocol preference
usage=Should HTCondor ignore the protocol order returned by DNS?
tags=daemon_core
restart=true

[PREFER_OUTBOUND_IPV4]
default=$(PREFER_IPV4)
version=8.5.3
description=Prefer to connect over IPv4
usage=Should HTCondor prefer IPv4 when ignoring preferences?
tags=daemon_core
restart=true

[JOB_EXECDIR_PERMISSIONS]
default=user
version=8.1.3
type=string
description=Permissions on the job's execute directory
tags=starter

[JOB_SPOOL_PERMISSIONS]
default=user
type=string
description=Permissions on the job's spool directory

[USE_KEYRING_SESSIONS]
default=false
type=bool
customization=expert
description=Should HTCondor manage AFS tokens in the kernel keyring

[KEYRING_SESSION_CREATION_TIMEOUT]
default=20
type=int
customization=expert
description=How many seconds to block creating a new keyring session before EXCEPTing

[DISCARD_SESSION_KEYRING_ON_STARTUP]
default=true
type=bool
customization=expert
description=Will master discard session keyring on startup
review=toddt
tags=ecryptfs,master
restart=true

[CONTAINER_SHARED_FS]
default=/cvmfs
type=string
tags=submit

[DOCKER]
default=/usr/bin/docker
win32_default=docker
description=Path to docker binary
type=string
tags=starter

[DOCKER_DROP_ALL_CAPABILITIES]
default=true
type=bool

[DOCKER_PERFORM_TEST]
default=true
type=bool

[DOCKER_RUN_UNDER_INIT]
default=true
type=bool

[DOCKER_TEST_IMAGE_PATH]
default=$(LIBEXEC)/htcondor_docker_test
type=string

[DOCKER_TEST_IMAGE_NAME]
default=htcondor_docker_test
type=string

[DOCKER_CACHE_ADVERTISE_INTERVAL]
default=1200
win32_default=0
type=int
description=How often to query docker for the size of the image cache.  0 disables the query entirely

[OPENMPI_INSTALL_PATH]
default=/usr/lib64/openmpi
type=string
description=Location of OpenMPI install

[OPENMPI_EXCLUDE_NETWORK_INTERFACES]
default=docker0,virbr0
type=string
description=Comma-delimited list of network interfaces that OpenMPI should ignore

[SUBMIT_REQUIREMENT_NAMES]
default=
type=string
description=Names of the submit requirements.
review=tlmiller
tags=schedd

[IS_OWNER]
default=False
version=8.2.8
type=string
description=When a slot should be in Owner state

[FILETRANSFER_PLUGINS]
default=$(LIBEXEC)/curl_plugin, $(LIBEXEC)/data_plugin, $(LIBEXEC)/box_plugin.py, $(LIBEXEC)/gdrive_plugin.py, $(LIBEXEC)/onedrive_plugin.py
win32_default=$(LIBEXEC)\curl_plugin.exe, $(LIBEXEC)\data_plugin.exe, $(LIBEXEC)\box_plugin.py, $(LIBEXEC)/gdrive_plugin.py, $(LIBEXEC)/onedrive_plugin.py
description=List of paths to installed file transfer plugins
tags=startd

# daemons that run as user can't write to $(LOG) and there is no /tmp on windows
[C_GAHP_LOG]
default=/tmp/CGAHPLog.$(USERNAME)
win32_default=NUL

[C_GAHP_DEBUG]
default=D_STATS

[C_GAHP_LOCK]
default=/tmp/CGAHPLock.$(USERNAME)
win32_default=NUL
[C_GAHP_WORKER_THREAD_LOG]
default=/tmp/CGAHPWorkerLog.$(USERNAME)
win32_default=NUL
[C_GAHP_WORKER_THREAD_LOCK]
default=/tmp/CGAHPWorkerLock.$(USERNAME)
win32_default=NUL

[KBDD]
default=$(SBIN)/condor_kbdd
win32_default=$(SBIN)\condor_kbdd.exe
description=Path to keyboard daemon binary
type=path
[KBDD_ADDRESS_FILE]
default=$(LOG)/.kbdd_address
type=path

[NEGOTIATOR]
default=$(SBIN)/condor_negotiator
win32_default=$(SBIN)\condor_negotiator.exe
description=Path to Negotiator daemon binary
type=path

[COLLECTOR]
default=$(SBIN)/condor_collector
win32_default=$(SBIN)\condor_collector.exe
description=Path to Collector daemon binary
type=path

[JOB_ROUTER]
default=$(LIBEXEC)/condor_job_router
win32_default=$(LIBEXEC)\condor_job_router.exe
description=Path to Job Router binary
type=path

[ROOSTER]
default=$(LIBEXEC)/condor_rooster
win32_default=$(LIBEXEC)\condor_rooster.exe
description=Path to the Machine Hybernation/Wake daemon binary
type=path

[SHARED_PORT]
default=$(LIBEXEC)/condor_shared_port
win32_default=$(LIBEXEC)\condor_shared_port.exe
description=Path to the Shared Port daemon binary
type=path

[HAD]
default=$(SBIN)/condor_had
win32_default=$(SBIN)\condor_had.exe
description=Path to the High-Availability daemon binary
type=path

[HAD_SOCKET_NAME]
default=had
type=string

[HAD_ARGS]
default=-sock $(HAD_SOCKET_NAME)
type=string

[REPLICATION]
default=$(SBIN)/condor_replication
win32_default=$(SBIN)\condor_replication.exe
description=Path to the Replication daemon binary
type=path

[REPLICATION_SOCKET_NAME]
default=replication
type=string

[REPLICATION_ARGS]
default=-sock $(REPLICATION_SOCKET_NAME)
type=string

[TRANSFERER]
default=$(LIBEXEC)/condor_transferer
win32_default=$(LIBEXEC)\condor_transferer.exe
description=Path to the Transfer daemon binary
type=path

[DEFRAG]
default=$(LIBEXEC)/condor_defrag
win32_default=$(LIBEXEC)\condor_defrag.exe
description=Path to the Machine Slot Defrag daemon binary
type=path

[GANGLIAD]
default=$(LIBEXEC)/condor_gangliad
win32_default=$(LIBEXEC)\condor_gangliad.exe
description=Path to the Gangila daemon binary
type=path

[STARTER]
default=$(SBIN)/condor_starter
win32_default=$(SBIN)\condor_starter.exe
description=Path to Vanilla Starter binary
type=path

[MASTER_ADDRESS_FILE]
default=$(LOG)/.master_address
description=Path to the master address file
type=path

[COLLECTOR_ADDRESS_FILE]
default=$(LOG)/.collector_address
description=Path to the collector address file
type=path

[COLLECTOR_SUPER_ADDRESS_FILE]
default=$(LOG)/.collector_address.super
description=Path to the collector super address file
type=path

[STARTD_ADDRESS_FILE]
default=$(LOG)/.startd_address
description=Path to the startd address file
type=path

[SCHEDD_ADDRESS_FILE]
default=$(SPOOL)/.schedd_address
description=Path to the schedd address file
type=path

[SCHEDD_SUPER_ADDRESS_FILE]
default=$(SPOOL)/.schedd_address.super
description=Path to the schedd super address file
type=path

[SCHEDD_DAEMON_AD_FILE]
default=$(SPOOL)/.schedd_classad
description=Location of the schedd classad file
type=string

# defaults for debug logs
[MAX_DEFAULT_LOG]
default=10 Mb
description=Default max size of a daemon log, with units

[COLLECTOR_DEBUG]
default=
description=Debug logging options for the collector
[MAX_COLLECTOR_LOG]
default=$(MAX_DEFAULT_LOG)

[KBDD_DEBUG]
default=
description=Debug logging options for the kbdd
[MAX_KBDD_LOG]
default=$(MAX_DEFAULT_LOG)

[NEGOTIATOR_DEBUG]
default=D_MATCH
description=Debug logging options for the negotiator
[MAX_NEGOTIATOR_LOG]
default=$(MAX_DEFAULT_LOG)

[MAX_NEGOTIATOR_MATCH_LOG]
default=$(MAX_DEFAULT_LOG)

[SCHEDD_DEBUG]
default=D_PID
description=Debug logging options for the schedd
[MAX_SCHEDD_LOG]
default=$(MAX_DEFAULT_LOG)

[SHADOW_DEBUG]
default=
description=Debug logging options for shadows
[MAX_SHADOW_LOG]
default=$(MAX_DEFAULT_LOG)

[STARTD_DEBUG]
default=
description=Debug logging options for the startd
[MAX_STARTD_LOG]
default=$(MAX_DEFAULT_LOG)

[MAX_STARTER_LOG]
default=$(MAX_DEFAULT_LOG)

[MASTER_DEBUG]
default=
description=Debug logging options for the master
[MAX_MASTER_LOG]
default=$(MAX_DEFAULT_LOG)

[JOB_ROUTER_DEBUG]
default=
description=Debug logging options for the job_router
[MAX_JOB_ROUTER_LOG]
default=$(MAX_DEFAULT_LOG)

[ROOSTER_DEBUG]
default=
description=Debug logging options for the rooster
[MAX_ROOSTER_LOG]
default=$(MAX_DEFAULT_LOG)

[SHARED_PORT_DEBUG]
default=
description=Debug logging options for the shared_port daemon
[MAX_SHARED_PORT_LOG]
default=$(MAX_DEFAULT_LOG)

[HAD_DEBUG]
default=
description=Debug logging options for the had daemons
[MAX_HAD_LOG]
default=$(MAX_DEFAULT_LOG)

[REPLICATION_DEBUG]
default=
description=Debug logging options for the replication daemons
[MAX_REPLICATION_LOG]
default=$(MAX_DEFAULT_LOG)

[TRANSFERER_DEBUG]
default=
description=Debug logging options for the transferer daemons
[MAX_TRANSFERER_LOG]
default=$(MAX_DEFAULT_LOG)

[GRIDMANAGER_DEBUG]
default=
description=Debug logging options for the gridmanager
[MAX_GRIDMANAGER_LOG]
default=$(MAX_DEFAULT_LOG)

[GRIDMANAGER_LOG]
default=$(LOG)/GridmanagerLog.$(USERNAME)
type=path

[GRIDMANAGER_LOCK]
default=$(LOCK)/GridmanagerLock.$(USERNAME)
type=string

[MAX_C_GAHP_LOG]
default=$(MAX_DEFAULT_LOG)

[EC2_GAHP_LOG]
default=/tmp/EC2GahpLog.$(USERNAME)
win32_default=NUL

[EC2_GAHP_DEBUG]
default=D_PID
description=Debug logging options for the ec2_gahp

[EC2_GAHP]
default=$(SBIN)/ec2_gahp

[GCE_GAHP]
default=$(SBIN)/gce_gahp

[GCE_GAHP_LOG]
default=/tmp/GceGahpLog.$(USERNAME)
win32_default=NUL

[GCE_GAHP_LIFETIME]
default=86400
type=int

[ANNEX_GAHP]
default=$(EC2_GAHP)
type=path

[AZURE_GAHP]
default=$(SBIN)/AzureGAHPServer
win32_default=$(SBIN)\AzureGAHPServer.py
type=path

[ARC_GAHP]
default=$(SBIN)/arc_gahp

[ARC_GAHP_LOG]
default=/tmp/ArcGahpLog.$(USERNAME)

[ARC_GAHP_COMMAND_LIMIT]
default=1000
type=int

[ARC_GAHP_USE_THREADS]
default=false
type=bool

[GAHP_SSL_CAFILE]
default=
type=path

[GAHP_SSL_CADIR]
default=
type=path

[CREDD]
default=$(SBIN)/condor_credd
win32_default=$(SBIN)\condor_credd.exe
type=path

[CREDD_ADDRESS_FILE]
default=$(LOG)/.credd_address
type=path

[CREDD_PORT]
default=9620

[CREDD_ARGS]
default=-p $(CREDD_PORT) -f
[CREDD_LOG]
default=$(LOG)/CredLog
type=path
[CREDD_DEBUG]
default=D_FULLDEBUG
description=Debug logging options for the credd
[MAX_CREDD_LOG]
default=$(MAX_DEFAULT_LOG)

[CREDD_OAUTH_MODE]
default=true
type=bool

[CREDMON_KRB]
default=$(SBIN)/condor_credmon_krb
win32_default=
type=path

[CREDMON_OAUTH]
default=$(SBIN)/condor_credmon_oauth
win32_default=
type=path

[LOCAL_CREDMON_TOKEN_USE_JSON]
default=true
type=bool

[LOCAL_CREDMON_TOKEN_AUDIENCE]
default=
type=string

[LOCAL_CREDMON_TOKEN_VERSION]
default=scitokens:2.0
type=string


# standard API endpoints for common OAuth token providers
[BOX_AUTHORIZATION_URL]
default=https://account.box.com/api/oauth2/authorize
type=string
[BOX_TOKEN_URL]
default=https://api.box.com/oauth2/token
type=string

[GDRIVE_AUTHORIZATION_URL]
default=https://accounts.google.com/o/oauth2/v2/auth
type=string
[GDRIVE_TOKEN_URL]
default=https://oauth2.googleapis.com/token
type=string

[ONEDRIVE_AUTHORIZATION_URL]
default=https://login.microsoftonline.com/common/oauth2/v2.0/authorize
type=string
[ONEDRIVE_TOKEN_URL]
default=https://login.microsoftonline.com/common/oauth2/v2.0/token
type=string

[DROPBOX_AUTHORIZATION_URL]
default=https://www.dropbox.com/oauth2/authorize
type=string
[DROPBOX_TOKEN_URL]
default=https://api.dropboxapi.com/oauth2/token
type=string

# benchmarking knobs
[BenchmarkTimer]
default=(time() - LastBenchmark)
[BENCHMARKS_JOBLIST]
default=mips kflops
[BENCHMARKS_MAX_JOB_LOAD]
default=1.0
[BENCHMARKS_MIPS_EXECUTABLE]
default=$(LIBEXEC)/condor_mips
win32_default=$(LIBEXEC)\condor_mips.exe
type=path
[BENCHMARKS_MIPS_JOB_LOAD]
default=1.0
[BENCHMARKS_KFLOPS_EXECUTABLE]
default=$(LIBEXEC)/condor_kflops
win32_default=$(LIBEXEC)\condor_kflops.exe
type=path
[BENCHMARKS_KFLOPS_JOB_LOAD]
default=1.0

# File transfer statistics knobs

[FILE_TRANSFER_STATS_LOG]
default=$(LOG)/transfer_history
type=path
tags=file,transfer,stats,log


# Useful constants
[IsWindows]
default=false
win32_default=true
type=bool
customization=const

[IsMaster]
default=false
type=bool
customization=const
[MASTER.IsMaster]
default=true
type=bool
customization=const

[IsCollector]
default=false
type=bool
customization=const
[COLLECTOR.IsCollector]
default=true
type=bool
customization=const

[IsNegotiator]
default=false
type=bool
customization=const
[NEGOTIATOR.IsNegotiator]
default=true
type=bool
customization=const

[IsSchedd]
default=false
type=bool
customization=const
[SCHEDD.IsSchedd]
default=true
type=bool
customization=const

[IsStartd]
default=false
type=bool
customization=const
[STARTD.IsStartd]
default=true
type=bool
customization=const

[IsStarter]
default=false
type=bool
customization=const
[STARTER.IsStarter]
default=true
type=bool
customization=const

[IsShadow]
default=false
type=bool
customization=const
[SHADOW.IsShadow]
default=true
type=bool
customization=const

[IsTool]
default=false
type=bool
customization=const
[TOOL.IsTool]
default=true
type=bool
customization=const

[IsSubmit]
default=false
type=bool
customization=const
[SUBMIT.IsSubmit]
default=true
type=bool
customization=const

[CONDOR_VERSION]
macro=CONDOR_VERSION
default=8.*
type=string
customization=const

[CONDOR_BUILD_PLATFORM]
macro=PLATFORM
default=undefined
type=string
customization=const

[PYTHON3_MODULE_SUFFIX]
macro=PYTHON3_MODULE_SUFFIX
default=.pyd
type=string
customization=const

[PYTHON3_VERSION_MINOR]
macro=PYTHON3_VERSION_MINOR
default=0
type=int
customization=const

[HAVE_EXT_KRB5]
macro=HAVE_EXT_KRB5
default=0
type=int
customization=const

[SEC_DEFAULT_AUTHENTICATION_METHODS]
# the c++ macro value is expected to win here
macro=SEC_STD_AUTH_METHOD_NAMES
default=FS,TOKEN
type=string
customization=const

[MINUTE]
default=60
customization=const
[HOUR]
default=3600
customization=const

[STANDARD]
default=1
customization=const
[IsStandard]
default=(TARGET.JobUniverse == $(STANDARD))
customization=const

[VANILLA]
default=5
customization=const
[IsVanilla]
default=(TARGET.JobUniverse == $(VANILLA))
customization=const

[MPI]
default=8
customization=const
[IsMPI]
default=(TARGET.JobUniverse == $(MPI))
customization=const

[VM]
default=13
customization=const
[IsVM]
default=(TARGET.JobUniverse == $(VM))
customization=const

# simple policy expression fragments useful in creating a preemption policy
[BigJob]
default=(TARGET.ImageSize >= (50 * 1024))
[MediumJob]
default=(TARGET.ImageSize >= (15 * 1024) && TARGET.ImageSize < (50 * 1024))
[SmallJob]
default=(TARGET.ImageSize <  (15 * 1024))

[BackgroundLoad]
default=0.3
[HighLoad]
default=0.5

[StartIdleTime]
default=15 * $(MINUTE)
[ContinueIdleTime]
default=5 * $(MINUTE)
[MaxSuspendTime]
default=10 * $(MINUTE)
[MaxVacateTime]
default=10 * $(MINUTE)

# policy expression fragments useful in creating STARTD policy, for PREEMPT etc.
[StateTimer]
default=(time() - EnteredCurrentState)
customization=const
[ActivityTimer]
default=(time() - EnteredCurrentActivity)
customization=const

# Defaults for condor_adstash
[ADSTASH_SAMPLE_INTERVAL]
description=How often to have condor_adstash poll daemons
type=int
default=1200
[ADSTASH_CHECKPOINT_FILE]
description=Where condor_adstash should store its checkpoint
type=path
default=$(LOG)/adstash_checkpoint.json
[ADSTASH_LOG]
description=Where condor_adstash should store its log
type=path
default=$(LOG)/adstash.log
[ADSTASH_DEBUG]
description=Debug logging options for condor_adstash
type=string
default=D_ALWAYS
[ADSTASH_NUM_THREADS]
description=How many parallel queries condor_adstash should use
type=int
default=1
[ADSTASH_READ_POOLS]
description=Comma-separated list of Collectors condor_adstash should query
type=string
default=$(CONDOR_HOST)
[ADSTASH_READ_SCHEDDS]
description=Comma-separated list of Schedds condor_adstash should query (* for all)
type=string
default=*
[ADSTASH_READ_STARTDS]
description=Comma-separated list of Startds condor_adstash should query (* for all)
type=string
default=*
[ADSTASH_SCHEDD_HISTORY]
description=Should condor_adstash query Schedd job history
type=bool
default=False
[ADSTASH_STARTD_HISTORY]
description=Should condor_adstash query Startd job history
type=bool
default=False
[ADSTASH_SCHEDD_HISTORY_MAX_ADS]
description=Stop retrieving ads from a Schedd after this many ads per poll
type=int
default=10000
[ADSTASH_STARTD_HISTORY_MAX_ADS]
description=Stop retrieving ads from a Startd after this many ads per poll
type=int
default=10000
[ADSTASH_SCHEDD_HISTORY_TIMEOUT]
description=Max time in seconds condor_adstash has to process each Schedd history
type=int
default=240
[ADSTASH_STARTD_HISTORY_TIMEOUT]
description=Max time in seconds condor_adstash has to process each Startd history
type=int
default=240
[ADSTASH_INTERFACE]
description=Which type of interface should condor_adstash push ads to
default=elasticsearch
[ADSTASH_SE_HOST]
description=Hostname[:port] for a condor_adstash search engine interface
type=string
default=$(FULL_HOSTNAME):9200
[ADSTASH_SE_USE_HTTPS]
description=Use SSL when connecting condor_adstash to a search engine
type=bool
default=False
[ADSTASH_SE_USERNAME]
description=condor_adstash search engine username
type=string
default=
[ADSTASH_SE_PASSWORD_FILE]
description=File containing condor_adstash search engine password on its first line
type=path
default=
[ADSTASH_SE_BUNCH_SIZE]
description=How many ads should be pushed to a condor_adstash search engine at a time
type=int
default=250
[ADSTASH_SE_INDEX_NAME]
description=What search engine index should condor_adstash push ads to
type=string
default=htcondor-000001
[ADSTASH_SE_LOG_MAPPINGS]
description=Should condor_adstash log mappings used with search engine interfaces
type=bool
default=True
[ADSTASH_SE_TIMEOUT]
description=How long should condor_adstash wait for search engine queries
type=int
default=240
[ADSTASH_JSON_DIR]
description=Where should condor_adstash place JSON files if using the jsonfile interface
type=path
default=$(LOG)
[TOOLS_ASSUME_FIREWALLS]
description=If a connection to a daemon using CCB is from a machine using shared port, and the connecting client can not listen on the shared port because it can not write to the daemon socket directory (e.g., it's a tool), give up -- assuming a firewall -- rather than hang after opening a listen socket.
default=false
type=bool

[DEFAULT_KILL_CHILDREN_ON_EXIT]
description=Hidden knob.  If true, all daemon core daemons will kill all of their children on exit.
type=bool
default=true

[CHECKPOINT_DESTINATION_MAPFILE]
description=Location of the checkpoint destination map file
default=$(LOCAL_DIR)/checkpoint-destination-mapfile
type=path

######
## add metaknobs below this banner
##
## as of 8.5.6 metaknobs can take arguments like this
##   use FEATURE : Knob(arg1, , arg3)
## where arg1 and arg2 are substituted in the knob definition where it has $(1) and $(2)
## the :default syntax is permitted.  so $(1:3600) expands to meta arg1 or to 3600 if there is no meta arg1
## The permitted metaknob arg substitutions are
##   $(0)  all arguments. '$(0)' is replaced with 'arg1, , arg3' in the above example
##   $(0?) args are non-empty. '$(0?)' replaced with '1' in the above example. it would be '0' if configuration had use FEATURE:Knob or use FEATURE:Knob()
##   $(0#) num args. '$(0#)' is replaced with '3' in the above example. it would be '0' if configuration had use FEATURE : Knob
##   $(1)  first arg. '$(1)' is replaced with 'arg1' in the above example
##   $(1?) first arg is non-empty. '$(1?)' is replaced with '1' in the above example
##   $(1+) args from first arg. '$(1+)' is replaced with 'arg1, , arg3' in the above example. $(1+) and $(0) are equivalent
##   $(2)  first arg. '$(2)' is replaced with '' in the above example
##   $(2?) second arg is non-empty. '$(2?)' is replaced with '0' in the above example
##   $(2+) args from second arg. '$(2+)' is replaced with ', arg3' in the above example
##   $(3) third arg. '$(3)' is replaced with 'arg3' in the above example
##   $(3?) third arg is non-empty '$(3?)' is replaced with '1' in the above example
## Up to 9 meta arguments are allowed.
## When a metaknob is not passed any arguments, all '$(N)' macros expand to '', all '$(0#)' and '$(N?)' macros expand to '0'
######

[$FEATURE.POLICY_EXPR_FRAGMENTS]
description=expression fragments used in desktop policy expressions
default : @end
	PolicyExprFragments=1
	KeyboardBusy=(KeyboardIdle < $(MINUTE))
	ConsoleBusy=(ConsoleIdle  < $(MINUTE))
	KeyboardNotBusy=($(KeyboardBusy) == False)
	JustCPU=($(CPUBusy) && ($(KeyboardBusy) == False))
	MachineBusy=($(CPUBusy) || $(KeyboardBusy))
	NonCondorLoadAvg=(LoadAvg - CondorLoadAvg)
	CpuIdle=($(NonCondorLoadAvg) <= $(BackgroundLoad))
	CpuBusy=($(NonCondorLoadAvg) >= $(HighLoad))
	ActivationTimer=ifThenElse(JobStart =!= UNDEFINED, (time() - JobStart), 0)
	LastCkpt=(time() - LastPeriodicCheckpoint)
@end

[$POLICY.DESKTOP]
# Use a preemption policy that does cycle scavenging for Desktop computers
description=Use a preemption policy that does cycle scavenging for Desktop computers
default : @end
	if ! defined PolicyExprFragments
		use FEATURE : POLICY_EXPR_FRAGMENTS
	endif
	STARTD_LATCH_EXPRS = $(STARTD_LATCH_EXPRS) CpuBusy
	CpuBusyTimer=IfThenElse(CpuBusyValue is 1, time() - CpuBusyTime, 0)
	WANT_SUSPEND=($(SmallJob) || $(KeyboardNotBusy) || $(IsVanilla) ) && ( $(SUSPEND))
	WANT_VACATE=$(ActivationTimer) > 600 || $(IsVanilla)
	SUSPEND=($(KeyboardBusy) || ( ($(CpuBusyTimer) > 120) && $(ActivationTimer) > 90))
	CONTINUE=($(CPUIdle) && ($(ActivityTimer) > 10) && (KeyboardIdle > $(ContinueIdleTime)))
	PREEMPT=(((Activity == "Suspended") && ($(ActivityTimer) > $(MaxSuspendTime))) || (SUSPEND && (WANT_SUSPEND == False)))
	START=((KeyboardIdle > $(StartIdleTime)) && ( $(CPUIdle) || (State != "Unclaimed" && State != "Owner")) )
	KILL=False
	MaxJobRetirementTime=0
	CLAIM_WORKLIFE=
	SLOTS_CONNECTED_TO_KEYBOARD=1024*1024
	SLOTS_CONNECTED_TO_CONSOLE=1024*1024
	IS_OWNER=(START =?= False)
@end

# no-preemption policy, formerly called TESTINGMODE_
[$POLICY.ALWAYS_RUN_JOBS]
description=Use a no-preemption policy
default : @end
	WANT_SUSPEND=False
	WANT_VACATE=True
	SUSPEND=False
	CONTINUE=True
	PREEMPT=False
	START=True
	KILL=False
	PREEMPTION_REQUIREMENTS=False
	NEGOTIATOR_CONSIDER_PREEMPTION=False
	MaxJobRetirementTime=2147483647
	CLAIM_WORKLIFE=1200
@end

[$FEATURE.TESTINGMODE_POLICY_VALUES]
description=Configuration values used by the TESTINGMODE policy from HTCondor 7.x
default : @end
	TESTINGMODE_WANT_SUSPEND=False
	TESTINGMODE_WANT_VACATE=True
	TESTINGMODE_START=True
	TESTINGMODE_SUSPEND=False
	TESTINGMODE_CONTINUE=True
	TESTINGMODE_PREEMPT=False
	TESTINGMODE_KILL=False
	TESTINGMODE_PERIODIC_CHECKPOINT=False
	TESTINGMODE_PREEMPTION_REQUIREMENTS=False
	TESTINGMODE_PREEMPTION_RANK=0
	TESTINGMODE_CLAIM_WORKLIFE=1200
@end

[$FEATURE.UWCS_DESKTOP_POLICY_VALUES]
description=Configuration values used UWCS_DESKTOP policy from HTCondor 7.x
default : @end
	if ! defined PolicyExprFragments
		use FEATURE : POLICY_EXPR_FRAGMENTS
	endif
	STARTD_LATCH_EXPRS = $(STARTD_LATCH_EXPRS) CpuBusy
	CpuBusyTimer=IfThenElse(CpuBusyValue is 1, time() - CpuBusyTime, 0)
	UWCS_WANT_SUSPEND=( $(SmallJob) || $(KeyboardNotBusy) || $(IsVanilla) ) && ( $(SUSPEND) )
	UWCS_WANT_VACATE=( $(ActivationTimer) > 10 * $(MINUTE) || $(IsVanilla) )
	UWCS_START=( (KeyboardIdle > $(StartIdleTime)) && ( $(CPUIdle) || (State != "Unclaimed" && State != "Owner")) )
	UWCS_SUSPEND=( $(KeyboardBusy) || ( ($(CpuBusyTimer) > 2 * $(MINUTE)) && $(ActivationTimer) > 90 ) )
	UWCS_CONTINUE=( $(CPUIdle) && ($(ActivityTimer) > 10) && (KeyboardIdle > $(ContinueIdleTime)) )
	UWCS_PREEMPT=( ((Activity == "Suspended") && ($(ActivityTimer) > $(MaxSuspendTime))) || (SUSPEND && (WANT_SUSPEND == False)) )
	UWCS_MaxJobRetirementTime=0
	UWCS_KILL=false
	UWCS_PERIODIC_CHECKPOINT=$(LastCkpt) > (3 * $(HOUR) + $RANDOM_INTEGER(-30,30,1) * $(MINUTE) )
	UWCS_NEGOTIATOR_PRE_JOB_RANK=(10000000 * My.Rank) + (1000000 * (RemoteOwner =?= UNDEFINED)) - (100000 * Cpus) - Memory
	UWCS_NEGOTIATOR_POST_JOB_RANK=(RemoteOwner =?= UNDEFINED) * (ifthenElse(isUndefined(KFlops), 1000, Kflops) - SlotID - 1.0e10*(Offline=?=True))
	UWCS_PREEMPTION_REQUIREMENTS=((SubmitterGroup =?= RemoteGroup) && ($(StateTimer) > (1 * $(HOUR))) && (RemoteUserPrio > TARGET.SubmitterUserPrio * 1.2)) || (MY.NiceUser == True)
	UWCS_PREEMPTION_RANK=(RemoteUserPrio * 1000000) - ifThenElse(isUndefined(TotalJobRuntime), 0, TotalJobRuntime)
@end

[$POLICY.UWCS_DESKTOP]
description=The UWCS Policy to run jobs only when the user is away from their machine
default : @end
	use FEATURE : UWCS_DESKTOP_POLICY_VALUES
	WANT_SUSPEND=$(UWCS_WANT_SUSPEND)
	WANT_VACATE=$(UWCS_WANT_VACATE)
	SUSPEND=$(UWCS_SUSPEND)
	CONTINUE=$(UWCS_CONTINUE)
	PREEMPT=$(UWCS_PREEMPT)
	START=$(UWCS_START)
	KILL=$(UWCS_KILL)
	PERIODIC_CHECKPOINT=$(UWCS_PERIODIC_CHECKPOINT)
	PREEMPTION_REQUIREMENTS=$(UWCS_PREEMPTION_REQUIREMENTS)
	PREEMPTION_RANK=$(UWCS_PREEMPTION_RANK)
	NEGOTIATOR_PRE_JOB_RANK=$(UWCS_NEGOTIATOR_PRE_JOB_RANK)
	NEGOTIATOR_POST_JOB_RANK=$(UWCS_NEGOTIATOR_POST_JOB_RANK)
	MaxJobRetirementTime=$(UWCS_MaxJobRetirementTime)
	CLAIM_WORKLIFE=$(UWCS_CLAIM_WORKLIFE)
	SLOTS_CONNECTED_TO_KEYBOARD=1024*1024
	IS_OWNER=(START =?= False)
@end

[$POLICY.LIMIT_JOB_RUNTIMES]
description=Limit job runtimes. args([limit_in_seconds])  default: 24 hours
default : @end
	MAX_JOB_RUNTIME=$(1:24*3600)
	MaxJobRetirementTime=$(MAX_JOB_RUNTIME)+120
	PREEMPT=(Activity == "Busy") && ((time() - EnteredCurrentActivity) > $(MAX_JOB_RUNTIME))
@end

[$POLICY.PREEMPT_IF_RUNTIME_EXCEEDS]
description=Limit job runtimes. args([limit_in_seconds])  default: 24 hours
default : @end
	MAX_JOB_RUNTIME = $(1:24*3600)
	PREEMPT_RUNTIME_EXCEEDS = (JobState == "Running") && ((time() - JobCurrentStartDate) > $(MAX_JOB_RUNTIME))
	use policy : PREEMPT_IF( PREEMPT_RUNTIME_EXCEEDS )
@end

[$POLICY.HOLD_IF_RUNTIME_EXCEEDS]
description=Limit job runtimes. args([limit_in_seconds])  default: 24 hours
default : @end
	MAX_JOB_RUNTIME = $(1:24*3600)
	HOLD_REASON_RUNTIME_EXCEEDS = runtime exceeded maximum ($(MAX_JOB_RUNTIME) seconds)
	HOLD_RUNTIME_EXCEEDS = (JobState == "Running") && ((time() - JobCurrentStartDate) > $(MAX_JOB_RUNTIME))
	use policy : WANT_HOLD_IF( HOLD_RUNTIME_EXCEEDS, $(HOLD_SUBCODE_RUNTIME_EXCEEDS:103), $(HOLD_REASON_RUNTIME_EXCEEDS) )
@end

[$POLICY.STARTD_PUBLISH_CpusUsage]
description=Publish a CpusUsage attribute in the STARTD
default : @end
  #
  # Publish the number of CPU cores being used by the job into
  # to slot ad as attribute "CpusUsage". This value will
  # be the average number of cores used by the job over the
  # past minute, sampling every 5 seconds
  #
  CpusUsage = ifthenelse(TotalLoadAvg > 0.0 && Activity!="Idle", CondorLoadAvg/TotalLoadAvg*MIN({TotalLoadAvg, $(DETECTED_CORES)}), 0)
  STARTD_ATTRS = $(STARTD_ATTRS) CpusUsage
@end

[$POLICY.PREEMPT_IF_CPUS_EXCEEDED]
description=Preempt jobs that use more cpu cores than in slot
default : @end
  use POLICY : STARTD_PUBLISH_CpusUsage
  #
  # If the startd sees the number of CPU cores used by the job exceed the
  # number of cores in the slot by more than 0.8, preempt the job
  # immediately ignoring any retirement time.
  #
  CPU_EXCEEDED = (CpusUsage > Cpus + 0.8)
  use POLICY : PREEMPT_IF(CPU_EXCEEDED)
@end

[$POLICY.HOLD_IF_CPUS_EXCEEDED]
description=Hold jobs that use more cpu cores than in slot
default : @end
  use POLICY : STARTD_PUBLISH_CpusUsage
  #
  # If the startd sees the number of CPU cores used by the job exceed the
  # number of cores in the slot by more than 0.8, preempt the job
  # immediately ignoring any retirement time.
  #
  CPU_EXCEEDED = (CpusUsage > Cpus + 0.8)
  HOLD_REASON_CPU_EXCEEDED = CPU usage exceeded request_cpus
  use POLICY : WANT_HOLD_IF( CPU_EXCEEDED, $(HOLD_SUBCODE_CPU_EXCEEDED:101), $(HOLD_REASON_CPU_EXCEEDED) )
@end

[$POLICY.PREEMPT_IF_DISK_EXCEEDED]
description=Preempt jobs that use more disk than in slot
default : @end
  #
  # If the startd sees the disk usage of the job exceed the
  # disk in the slot, preempt the job immediately ignoring
  # any retirement time.  VM universe jobs can't go over their
  # disk allocations, so we ignore them.
  #
  DISK_EXCEEDED = (JobUniverse != 13 && DiskUsage =!= UNDEFINED && DiskUsage > Disk)
  use POLICY : PREEMPT_IF(DISK_EXCEEDED)
@end

[$POLICY.HOLD_IF_DISK_EXCEEDED]
description=Hold jobs that use more disk than in slot
default : @end
  #
  # If the startd preempted a job because disk usage exceeded
  # the amount of memory in the slot, put the job on hold.  VM
  # universe jobs can't go over their disk allocations, so
  # we ignore them.
  #
  DISK_EXCEEDED = (JobUniverse != 13 && DiskUsage =!= UNDEFINED && DiskUsage > Disk)
  HOLD_REASON_DISK_EXCEEDED = disk usage exceeded allocated disk
  use POLICY : WANT_HOLD_IF( DISK_EXCEEDED, $(HOLD_SUBCODE_DISK_EXCEEDED:104), $(HOLD_REASON_DISK_EXCEEDED) )
@end

[$POLICY.PREEMPT_IF_MEMORY_EXCEEDED]
description=Preempt jobs that use more memory than in slot
default : @end
  #
  # If the startd sees the memory usage of the job exceed the
  # memory in the slot, preempt the job immediately ignoring
  # any retirement time.  VM universe jobs can't go over their
  # memory allocations, so we ignore them.
  #
  MEMORY_EXCEEDED = (JobUniverse != 13 && MemoryUsage =!= UNDEFINED && MemoryUsage > Memory)
  use POLICY : PREEMPT_IF(MEMORY_EXCEEDED)
@end

[$POLICY.HOLD_IF_MEMORY_EXCEEDED]
description=Hold jobs that use more memory than in slot
default : @end
  #
  # If the startd preempted a job because memory usage exceeded
  # the amount of memory in the slot, put the job on hold.  VM
  # universe jobs can't go over their memory allocations, so
  # we ignore them.
  #
  MEMORY_EXCEEDED = (JobUniverse != 13 && MemoryUsage =!= UNDEFINED && MemoryUsage > Memory)
  HOLD_REASON_MEMORY_EXCEEDED = memory usage exceeded request_memory
  use POLICY : WANT_HOLD_IF( MEMORY_EXCEEDED, $(HOLD_SUBCODE_MEMORY_EXCEEDED:102), $(HOLD_REASON_MEMORY_EXCEEDED) )
@end

[$POLICY.PREEMPT_IF]
description=Configure a PREEMPT expression args:(policy_variable)
default : @end
  if !$(1?)
    error : use POLICY : PREEMPT_IF requires an argument. It should be the name of a config variable that has the trigger expression.
  endif
  if defined PREEMPT
    PREEMPT = $($(1)) || $(PREEMPT)
  else
    PREEMPT = $($(1))
  endif
  MAXJOBRETIREMENTTIME = ifthenelse($($(1)),-1,$(MAXJOBRETIREMENTTIME:0))
  if defined WANT_SUSPEND
    WANT_SUSPEND = $($(1)) =!= true && $(WANT_SUSPEND)
  else
    WANT_SUSPEND = $($(1)) =!= true
  endif
@end
usage : @end
  set a variable with the trigger expression, then pass the variable name as an argument:
  MEMORY_EXCEEDED = (isDefined(MemoryUsage) && MemoryUsage > Memory)
  use POLICY : PREEMPT_IF(MEMORY_EXCEEDED)
@end


[$POLICY.WANT_HOLD_IF]
description=Configure a conditional WANT_HOLD expression. args:(policy_variable, subcode, reason_text)
default : @end
  use POLICY : PREEMPT_IF($(1))
  if ! $(3?)
    error : use POLICY : WANT_HOLD_IF requires 3 arguments: policy_variable, subcode, reason_text
  endif
  if defined WANT_HOLD
    WANT_HOLD = (JobUniverse != 1 && $($(1))) || $(WANT_HOLD)
  else
    WANT_HOLD = (JobUniverse != 1 && $($(1)))
  endif
  WANT_HOLD_SUBCODE = ifThenElse($($(1)), $(2) , $(WANT_HOLD_SUBCODE:UNDEFINED))
  WANT_HOLD_REASON = ifThenElse($($(1)), "$(3+)", $(WANT_HOLD_REASON:UNDEFINED))
@end
usage : @end
  set a variable with the trigger expression, then pass the variable name, a subcode, and reason text as arguments:
  MEMORY_EXCEEDED = (isDefined(MemoryUsage) && MemoryUsage > Memory)
  use POLICY : WANT_HOLD_IF(MEMORY_EXCEEDED, 102, memory usage exceeded request_memory)
  note that standard universe jobs can not be put on hold this way.
@end


[$ROLE.Personal]
description=Settings for Personal HTCondor (i.e. the whole pool is on a single machine)
default : @end
	CONDOR_HOST=127.0.0.1
	COLLECTOR_HOST=$(CONDOR_HOST):0
	DAEMON_LIST=MASTER COLLECTOR NEGOTIATOR STARTD SCHEDD
	RunBenchmarks=0
@end

[$ROLE.Execute]
description=Settings for HTCondor Execute node
default : @end
	DAEMON_LIST=$(DAEMON_LIST) STARTD
@end

[$ROLE.Submit]
description=Settings for HTCondor Submit node
default : @end
	DAEMON_LIST=$(DAEMON_LIST) SCHEDD
@end

[$ROLE.CentralManager]
description=Settings for HTCondor Central Manager
default : @end
	DAEMON_LIST=$(DAEMON_LIST) COLLECTOR NEGOTIATOR
@end

# default security policy
[$SECURITY.HOST_BASED]
description=Default (host based) Authorization policy based on IPs and DNS names
default : @end
	ALLOW_ADMINISTRATOR=$(CONDOR_HOST)
	ALLOW_READ=*
	ALLOW_WRITE=$(FULL_HOSTNAME) $(IPV4_ADDRESS) $(IPV6_ADDRESS)
	ALLOW_DAEMON=$(FULL_HOSTNAME) $(IPV4_ADDRESS) $(IPV6_ADDRESS)
	ALLOW_NEGOTIATOR=$(CONDOR_HOST)
	ALLOW_NEGOTIATOR_SCHEDD=$(ALLOW_NEGOTIATOR) $(FLOCK_NEGOTIATOR_HOSTS)
	ALLOW_WRITE_COLLECTOR=$(ALLOW_WRITE) $(FLOCK_FROM)
	ALLOW_WRITE_STARTD=$(ALLOW_WRITE) $(FLOCK_FROM)
	ALLOW_READ_COLLECTOR=$(ALLOW_READ) $(FLOCK_FROM)
	ALLOW_READ_STARTD=$(ALLOW_READ) $(FLOCK_FROM)

	# To smooth upgrades from 8.8.
	LEGACY_ALLOW_SEMANTICS = TRUE
@end

[$SECURITY.WITH_AUTHENTICATION]
description=Enable authentication and integrety as part of the security policy
default : @end
	SEC_DEFAULT_AUTHENTICATION=required
	SEC_DEFAULT_INTEGRITY=required
@end

[$SECURITY.STRONG]
description=Enable strong encryption as part of the security policy
default : @end
	SEC_DEFAULT_ENCRYPTION=required
	SEC_DEFAULT_INTEGRITY=required
	SEC_DEFAULT_AUTHENTICATION=required
@end

[$SECURITY.USER_BASED]
description=Default (user-based) Authorization policy based on user accounts
default : @end
	if $(CondorIsAdmin)
	  authuser=condor
	else
	  authuser=$(USERNAME)
	endif
	ALLOW_ADMINISTRATOR=$(authuser)@$(CONDOR_HOST)
	ALLOW_READ=*
	ALLOW_WRITE=$(authuser)@$(FULL_HOSTNAME) $(authuser)@$(IP_ADDRESS)
	ALLOW_DAEMON=$(authuser)@$(FULL_HOSTNAME) $(authuser)@$(IP_ADDRESS)
	ALLOW_NEGOTIATOR=$(authuser)@$(CONDOR_HOST)
	ALLOW_NEGOTIATOR_SCHEDD=$(ALLOW_NEGOTIATOR) $(FLOCK_NEGOTIATOR_HOSTS)
	ALLOW_WRITE_COLLECTOR=$(ALLOW_WRITE) $(FLOCK_FROM)
	ALLOW_WRITE_STARTD=$(ALLOW_WRITE) $(FLOCK_FROM)
	ALLOW_READ_COLLECTOR=$(ALLOW_READ) $(FLOCK_FROM)
	ALLOW_READ_STARTD=$(ALLOW_READ) $(FLOCK_FROM)
	use SECURITY:WITH_AUTHENTICATION
@end

[$FEATURE.AssignAccountingGroup]
description=Set the job accounting attributes by mapping the job's Owner attribute args:(map_file [,check_request])
default : @fin
	if ! $(1?)
	  error : use FEATURE : AssignAccountingGroup requires a map_file argument
	endif
	use FEATURE : ScheddUsermapFile(AssignAccountingGroup, $(1))
	JOB_TRANSFORM_NAMES = $(JOB_TRANSFORM_NAMES) AssignAccountingGroup
	JOB_TRANSFORM_AssignAccountingGroup @=end
		COPY Owner = AcctGroupUser
		COPY AcctGroup = RequestedAcctGroup
		EVALSET AcctGroup = usermap("AssignAccountingGroup",AcctGroupUser,AcctGroup)
		EVALSET AccountingGroup = join(".",AcctGroup,AcctGroupUser)
	@end
	# make sure that the user can't qedit these attributes once they have been set.
	IMMUTABLE_JOB_ATTRS = $(IMMUTABLE_JOB_ATTRS) AcctGroup AcctGroupUser AccountingGroup
	# optionally check that the user requested a valid group
	if $(2:True)
	  SUBMIT_REQUIREMENT_NAMES = $(SUBMIT_REQUIREMENT_NAMES) CheckRequestedGroup
	  SUBMIT_REQUIREMENT_CheckRequestedGroup = RequestedAcctGroup is undefined || RequestedAcctGroup == AcctGroup
	  SUBMIT_REQUIREMENT_CheckRequestedGroup_REASON = strcat("Permission denied setting accounting_group to ", RequestedAcctGroup)
	endif
	# require that the user mapped into an accounting group
	SUBMIT_REQUIREMENT_NAMES = $(SUBMIT_REQUIREMENT_NAMES) AssignAccountingGroup
	SUBMIT_REQUIREMENT_AssignAccountingGroup = AcctGroup isnt undefined && AccountingGroup isnt undefined
	SUBMIT_REQUIREMENT_AssignAccountingGroup_REASON = strcat("Submit requirement AssignAccountingGroup not met - Could not map '", Owner, "' to an accounting group ", RequestedAcctGroup)
@fin


[$FEATURE.SetJobAttrFromUsermap]
description=Set a job attribute from a usermap of another job attribute args:(dest_attr, src_attr, map_name [, map_file])
default : @fin
	if ! $(3?)
	  error : use FEATURE : SetJobAttrFromUsermap requires at least 3 arguments: dest_attr, src_attr, map_name [,map_file]
	endif
	if $(4?)
	   use FEATURE : ScheddUsermapFile($(3), $(4))
	endif
	JOB_TRANSFORM_NAMES = $(JOB_TRANSFORM_NAMES) Set$(1)
	JOB_TRANSFORM_Set$(1) = [ eval_set_$(1)=usermap("$(3)",$(2),$(1)); ]
	SUBMIT_REQUIREMENT_NAMES = $(SUBMIT_REQUIREMENT_NAMES) Require$(1)
	SUBMIT_REQUIREMENT_Require$(1) = $(1) isnt undefined
	SUBMIT_REQUIREMENT_Require$(1)_REASON = strcat("Submit requirement Require$(1) not met - Could not map '", $(2)?:"undefined", "' to a $(1)")
@fin

[$FEATURE.ScheddUsermapFile]
description=Define a usermap mapping file args:(map_name , map_file)
default : @end
   if ! $(2?)
     error : use FEATURE : ScheddUsermapFile requires 2 arguments: map_name, map_file
   endif
   SCHEDD_CLASSAD_USER_MAP_NAMES = $(SCHEDD_CLASSAD_USER_MAP_NAMES) $(1)
   CLASSAD_USER_MAPFILE_$(1) = $(2)
@end

[$FEATURE.REMOTE_RUNTIME_CONFIG]
description=Enable runtime configuration of some variables in HTCondor daemons, args:([variable_names])
default : @end
	ENABLE_RUNTIME_CONFIG=True
	ALLOW_CONFIG=$(ALLOW_ADMINISTRATOR)
	# the value of this attribute defines which parameters can be set remotely
	if $(0#)
		SETTABLE_ATTRS_CONFIG=$(SETTABLE_ATTRS_CONFIG) $(0)
	endif
@end

[$FEATURE.REMOTE_CONFIG]
description=Enable runtime and persistent configuration of HTCondor daemons, args:([variable_names])
default : @end
	ENABLE_PERSISTENT_CONFIG=True
	PERSISTENT_CONFIG_DIR=$(SPOOL)
	use FEATURE : REMOTE_RUNTIME_CONFIG($(0))
@end

[$FEATURE.GPUs]
description=Settings to detect and use GPUs as custom resources, args:(optional-discovery-args)
default : @end
	MACHINE_RESOURCE_INVENTORY_GPUs=$(LIBEXEC)/condor_gpu_discovery $(1) -properties $(GPU_DISCOVERY_EXTRA)
	ENVIRONMENT_FOR_AssignedGPUs=GPU_DEVICE_ORDINAL=/(CUDA|OCL)//  CUDA_VISIBLE_DEVICES=/CUDA//
	ENVIRONMENT_VALUE_FOR_UnAssignedGPUs=10000

	use feature : GPUsMonitor
@end

[$FEATURE.Monitor]
description=Settings to configure a custom machine resource monitor
default : @end
	if ! $(5?)
		error: use feature : monitor requires five or more arguments
	endif

	STARTD_CRON_JOBLIST = $(STARTD_CRON_JOBLIST) $(1)_MONITOR
	STARTD_CRON_$(1)_MONITOR_MODE = $(2)
	STARTD_CRON_$(1)_MONITOR_PERIOD = $(3)
	STARTD_CRON_$(1)_MONITOR_EXECUTABLE = $(4)
	STARTD_CRON_$(1)_MONITOR_METRICS = $(5+)
@end

[GPU_MONITOR]
default=$(LIBEXEC)/condor_gpu_utilization
win32_default=$(LIBEXEC)\condor_gpu_utilization.exe

[$FEATURE.GPUsMonitor]
description=Settings to monitor GPU usage
default : @end
	use feature : Monitor( GPUs, WaitForExit, 300, $(GPU_MONITOR), SUM:GPUs, PEAK:GPUsMemory )
	STARTD_CRON_GPUs_MONITOR_CONDITION = TotalGPUs > 0

	STARTD_JOB_ATTRS = $(STARTD_JOB_ATTRS) GPUsUsage GPUsMemoryUsage
@end

[$FEATURE.PartitionableSlot]
description=Configure a partitionable slot, args:([type# [, allocation]])  default: 1, 100%
default : @end
	NUM_SLOTS_TYPE_$(1:1)=1
	SLOT_TYPE_$(1:1)_PARTITIONABLE=true
	SLOT_TYPE_$(1:1)=$(2+:100%)
@end

[$FEATURE.StaticSlots]
description=Configure a set of Static slots, args:([type# [num [, allocation]]])  default: 1, $(NUM_CPUS), 1/$(NUM_CPUS)
default : @end
	NUM_SLOTS_TYPE_$(1:1)=$(2:$(NUM_CPUS))
	SLOT_TYPE_$(1:1)_PARTITIONABLE=false
	SLOT_TYPE_$(1:1)=$(3+:1/$(NUM_SLOTS_TYPE_$(1:1)))
	SLOT_TYPE_$(1:1)=$(3+)
@end

[$FEATURE.OneShotCronHook]
description=Configure a OneShot Cron Hook, args:(STARTD_CRON | SCHEDD_CRON, tag, hook_exe [,hook_args])
default : @end
   if ! $(3?)
     error : use FEATURE : OneShotCronHook requires at least 3 arguments: STARTD_CRON | SCHEDD_CRON, tag, hook_exe [,hook_args]
   endif
   $(1)_JOBLIST=$($(1)_JOBLIST) $(2)
   $(1)_$(2)_MODE=OneShot
   $(1)_$(2)_KILL=true
   $(1)_$(2)_RECONFIG_RERUN=true
   $(1)_$(2)_EXECUTABLE=$(3)
   if $(4?)
     $(1)_$(2)_ARGS=$(4)
   endif
@end

[$FEATURE.PeriodicCronHook]
description=Configure a Periodic Cron Hook, args:(STARTD_CRON | SCHEDD_CRON , tag, period, hook_exe [,hook_args])
default : @end
   if ! $(4?)
     error : use FEATURE : PeriodicCronHook requires at least 4 arguments: STARTD_CRON | SCHEDD_CRON, tag, period, hook_exe [,hook_args]
   endif
   $(1)_JOBLIST=$($(1)_JOBLIST) $(2)
   $(1)_$(2)_MODE=Periodic
   $(1)_$(2)_PERIOD=$(3)
   $(1)_$(2)_EXECUTABLE=$(4)
   if $(5?)
     $(1)_$(2)_ARGS=$(5)
   endif
@end

[$FEATURE.ContinuousCronHook]
description=Configure a Continuous Cron Hook, args:(STARTD_CRON | SCHEDD_CRON , tag, hook_exe [,hook_args])
default : @end
   if ! $(3?)
     error : use FEATURE : ContinuousCronHook requires at least 3 arguments: STARTD_CRON | SCHEDD_CRON, tag, hook_exe [,hook_args]
   endif
   $(1)_JOBLIST=$($(1)_JOBLIST) $(2)
   $(1)_$(2)_MODE=WaitForExit
   $(1)_$(2)_PERIOD=0
   $(1)_$(2)_EXECUTABLE=$(3)
   if $(4?)
     $(1)_$(2)_ARGS=$(4)
   endif
@end

[$FEATURE.StartdCronPeriodic]
description=Configure a STARTD Cron periodic Hook, args:(tag, period, exe [, hook_args])
default = use FEATURE : PeriodicCronHook(STARTD_CRON, $(0))
[$FEATURE.ScheddCronPeriodic]
description=Configure a SCHEDD Cron periodic Hook, args:(tag, period, exe [, hook_args])
default = use FEATURE : PeriodicCronHook(SCHEDD_CRON, $(0))

[$FEATURE.StartdCronOneShot]
description=Configure a STARTD Cron periodic Hook, args:(tag, exe [, hook_args])
default = use FEATURE : OneShotCronHook(STARTD_CRON, $(0))
[$FEATURE.ScheddCronOneShot]
description=Configure a SCHEDD Cron periodic Hook, args:(tag, exe [, hook_args])
default = use FEATURE : OneShotCronHook(SCHEDD_CRON, $(0))

[$FEATURE.StartdCronContinuous]
description=Configure a STARTD Cron continuous Hook, args:(tag, exe [, hook_args])
default = use FEATURE : ContinuousCronHook(STARTD_CRON, $(0))
[$FEATURE.ScheddCronContinuous]
description=Configure a SCHEDD Cron continuous Hook, args: tag, exe [, hook_args]
default = use FEATURE : ContinuousCronHook(SCHEDD_CRON, $(0))

[$FEATURE.ChildCollector]
description=One child node of a Collector tree, args:(id [,port])
default: @end
   COLLECTOR$(1)=$(COLLECTOR)
   if $(2?)
      COLLECTOR$(1)_ARGS= -p $(2)
   else
      COLLECTOR$(1)_ARGS= -sock collector$(1)
   endif
   COLLECTOR$(1).COLLECTOR_NAME=Collector$(1)
   COLLECTOR$(1).CONDOR_VIEW_HOST=$(TOP_COLLECTOR_HOST)
   COLLECTOR$(1).CCB_RECONNECT_FILE=$(SPOOL)/Collector$(1).ccb_reconnect
   DAEMON_LIST=$(DAEMON_LIST) COLLECTOR$(1)
   # change TOP_COLLECTOR_HOST to point all of the child collectors at a different top-level collector
   TOP_COLLECTOR_HOST=$(COLLECTOR_HOST)
@end

##
## get_htcondor knobs
##

[$SECURITY.get_htcondor_idtokens]
default: @end
# Authenticate, encrypt, and monitor the integrity of all connections.
use security:strong

# This configuration specifies authentication methods first, and then
# specifies various authorizations.  Think of a passport and a visa: the
# former proves your identity, and the latter proves that that identity
# is allowed into the country.
#
# HTCondor supports a wide variety of authentication methods, but we
# recommend IDTOKENS as a good blend of simple and capable.  The
# get_htcondor script will make sure each of your machines has an IDTOKEN,
# but rather than force each user to acquire one, we add the FS ("filesystem")
# method, which lets the HTCondor tools use the local filesystem to prove the
# identity of the user who invoked them.  Finally, we allow ANONYMOUS
# authentication, for the READ authorization level only, so that if nothing
# else works, we can allow users read-only access to remote daemons
# (e.g., for condor_status).
#
# Users who want to submit jobs remotely should run `condor_token_fetch` on
# the machine they want to submit to and cut-and-paste the result to a file
# in '~/.condor/tokens.d' on the machine they're submitting from.
#
# HTCondor does not presently try another authentication method if one
# succeeds but authorization fails, so the list must be in this order:
# IDTOKENS before FS because FS gives the daemon a different identity
# than the IDTOKEN, and FS before ANONYMOUS because ANONYMOUS, of course,
# gives no specific identity at all.
SEC_DEFAULT_AUTHENTICATION_METHODS = IDTOKENS, FS
# Only allow ANONYMOUS authentication for READ-level authorizations.
SEC_READ_AUTHENTICATION_METHODS = IDTOKENS, FS, ANONYMOUS
# Since ANONYMOUS is not in the default authentication methods, we must
# list it in the client methods explicitly (all other methods are server).
SEC_CLIENT_AUTHENTICATION_METHODS = IDTOKENS, FS, ANONYMOUS

# IDTOKENs issued by HTCondor include the identity of the issuer.  This
# identity is used to determine which IDTOKEN(s) to present to which
# daemon(s).  The TRUST_DOMAIN variable sets that identity.  Setting it
# to the same thing on each machine in your pool ensures that a token
# issued by one machine is presented to every other machine in your pool.
#
# When get_htcondor creates an IDTOKEN for a machine, it uses this variable
# to create the identity for that IDTOKEN.  This makes it easy to look at
# the authorization lists (see below) and distinguish between IDTOKENS in
# your pool and (if you allow them) IDTOKENS from other pools.
TRUST_DOMAIN = $(CONDOR_HOST)

# This section specifies the authorizations of the various identities we
# expect to see, given the authentication methods above.

# Allow anyone to read.  We could list the other identities here, and include
# the ANONYMOUS identity, but if we're including ANONYMOUS, why bother?
ALLOW_READ = *

# Give root on each machine ADMINISTRATOR access (in case something goes
# wrong with IDTOKENS).  Do NOT issue IDTOKENS to root.
ALLOW_ADMINISTRATOR = root@* condor@$(TRUST_DOMAIN)

# Accept non-read connections only from other daemons in the same pool.
ALLOW_WRITE = condor@$(TRUST_DOMAIN)
ALLOW_DAEMON = condor@$(TRUST_DOMAIN)
ALLOW_NEGOTIATOR = condor@$(TRUST_DOMAIN)
@end

[$ROLE.get_htcondor_central_manager]
default: @end
use security:get_htcondor_idtokens

use role:CentralManager
@end

[$ROLE.get_htcondor_submit]
default: @end
use security:get_htcondor_idtokens

# Allow local users to submit jobs.  Since the only way to authenticate
# is with IDTOKENS (all of whose holders we trust) and FS (the local users),
# we can avoid writing things like *@$(HOSTNAME), which will fail if
# UID_DOMAIN is set (and introduces more opportunities for DNS to fail).
ALLOW_WRITE = $(ALLOW_WRITE) *

use role:submit
@end

[$ROLE.get_htcondor_execute]
default: @end
use security:get_htcondor_idtokens

use role:execute
@end

##
## Version-specific knobx.
##
[$SECURITY.recommended_v9_0]
description = default security config for 9.0 and later args:([service [, admins]])
default: @end
# Make it easy to detect if this metaknob was set.
SECURITY_MODEL = 9.0

# Assume that FS and IDTOKENS are in SEC_DEFAULT_AUTHENTICATION_METHODS,
# which they are by default.
use security:strong

# This allows anyone who can access port 9618 to READ, which lets
# condor_status and condor_q work over the network out of the box.
SEC_READ_AUTHENTICATION = OPTIONAL
SEC_READ_ENCRYPTION = OPTIONAL
SEC_READ_INTEGRITY = OPTIONAL

ALLOW_ADMINISTRATOR = $(1:condor)@* condor_pool@* $(2:root@*) $(3+)
ALLOW_DAEMON = $(1:condor)@*  condor_pool@*
ALLOW_NEGOTIATOR = $(1:condor)@* condor_pool@*
ALLOW_WRITE = *
ALLOW_READ = *
@end

##
## FIPS mode settings
##
[$SECURITY.FIPS]
default: @end
FIPS = True
use security:strong
SEC_DEFAULT_CRYPTO_METHODS = AES,3DES
@end

##
## Experimental meta knobs
##

[$EXPERIMENTAL.CollectorNode]
description=One node of a Collector tree, args:(id [,port])
default: @end
   COLLECTOR$(1)=$(COLLECTOR)
   if $(2?)
      COLLECTOR$(1)_ARGS=-f -local-name COLLECTOR$(1) -p $(2)
   else
      COLLECTOR$(1)_ARGS=-f -local-name COLLECTOR$(1) -sock collector$(1)
   endif
   COLLECTOR$(1).COLLECTOR_LOG=$(LOG)/Collector$(1)Log
   COLLECTOR$(1).CCB_RECONNECT_FILE=$(SPOOL)/Collector$(1).ccb_reconnect
   DAEMON_LIST=$(DAEMON_LIST) COLLECTOR$(1)
@end

[$EXPERIMENTAL.HAD]
description=Shared port stuff for a HAD node
default: @end
   DAEMON_LIST = $(DAEMON_LIST) HAD REPLICATION
   HAD_USE_REPLICATION = TRUE
   MASTER_HAD_BACKOFF_CONSTANT = 360
@end

[$EXPERIMENTAL.HADSharedPort]
description=Shared port stuff for a HAD node. args:(controlee, ip_or_hostname)
default: @end
   use EXPERIMENTAL : HADReplication( $(1), $(2), $(SHARED_PORT_PORT), $(SHARED_PORT_PORT) )
@end

[$EXPERIMENTAL.HADFixedPort]
description=Shared port stuff for a HAD node. args(controlee, ip_or_hostname, hadport, replport)
default: @end
   HAD_ARGS = -p $(3)
   REPLICATION_ARGS = -p $(4)
   use EXPERIMENTAL : HADReplication( $(1), $(2), $(3), $(4) )
@end

[$EXPERIMENTAL.HADReplication]
description=Shared port stuff for a HAD node. args:(controlee, ip_or_hostname, hadport, replport)
default: @end
   HAD_LIST = $(HAD_LIST) $(2):$(3)
   REPLICATION_LIST = $(REPLICATION_LIST) $(2):$(4)
   HAD_CONTROLLEE = $(1)
   MASTER_$(1)_CONTROLLER = HAD
@end

# obsolete config file knobs to discard on upgrade
[$UPGRADE.DISCARD]
description=Config file knobs that should be ignored on upgrade
default : @end
	LeaseManager
	LeaseManger_ADDRESS_FILE
	LeaseManager_LOG
	LeaseManager_DEBUG
	MAX_LeaseManager_LOG
	LeaseManager.GETADS_INTERVAL
	LeaseManager.PRUNE_INTERVAL
	LeaseManager.DEBUG_ADS
	LeaseManager.CLASSAD_LOG
	STORK
	STORK_ADDRESS_FILE
	STORK_LOG_BASE
	STORK_LOG
	STORK_DEBUG
	MAX_STORK_LOG
	STORK_PORT
	STORK_ARGS
	DEFRAG_STATE_FILE
@end

[$UPGRADE.DISCARDX]
description=Platform specific file knobs that should be ignored on upgrade
default=
win32_default : @end
	NORDUGRID_GAHP
	LIBVIRT_XML_SCRIPT
@end

# use this table to detect knobs that have not been changed by the user when the default knob value HAS been changed since 8.0
[$UPGRADE.DISCARDIF]
description=Knobs that should be ignored on upgrade if they match the given value
default : @end
	RESERVED_DISK=5
	ALL_DEBUG=
	MAX_COLLECTOR_LOG=1000000
	MAX_KBDD_LOG=1000000
	MAX_MASTER_LOG=1000000
	MAX_NEGOTIATOR_LOG=1000000
	MAX_NEGOTIATOR_MATCH_LOG=1000000
	MAX_SCHEDD_LOG=1000000
	MAX_SHADOW_LOG=1000000
	MAX_SHARED_PORT_LOG=1000000
	MAX_STARTD_LOG=1000000
	MAX_STARTER_LOG=1000000
	MAX_JOB_ROUTER_LOG=1000000
	MAX_REPLICATION_LOG=1000000
	MAX_ROOSTER_LOG=1000000
	MAX_HAD_LOG=1000000
	MAX_TRANSFERER_LOG=1000000
	MAX_GRIDMANAGER_LOG=1000000
	MAX_C_GAHP_LOG=1000000
	MAX_VM_GAHP_LOG=1000000
	MAX_CREDD_LOG=4000000
	VALID_SPOOL_FILES=job_queue.log, job_queue.log.tmp, history, Accountant.log, Accountantnew.log, local_univ_execute, .pgpass, .schedd_address, .schedd_classad
	VALID_SPOOL_FILES=job_queue.log, job_queue.log.tmp, history, Accountant.log, Accountantnew.log, local_univ_execute, .pgpass, .schedd_address, .schedd_classad, OfflineLog
@end

# This table is for platform-specific knobs that fit the rules for $UPGRADE.DISCARDIF above
[$UPGRADE.DISCARDIFX]
description=Platform specific knobs that should be ignored on upgrade if they match the given value
default : @end
	QUEUE_SUPER_USERS=root, condor
@end
win32_default : @end
	QUEUE_SUPER_USERS=condor, SYSTEM
	EC2_GAHP_LOG=/tmp/EC2GahpLog.$(USERNAME)
	MAIL_FROM=
	JAVA_CLASSPATH_SEPARATOR=:
	FILETRANSFER_PLUGINS=$(LIBEXEC)/curl_plugin, $(LIBEXEC)/data_plugin
	INVALID_LOG_FILES=core
	GLIDEIN_SERVER_URLS=http://www.cs.wisc.edu/condor/glidein/binaries
@end

[$UPGRADE.DISCARD_VMWARE]
description=Platform specific file knobs that should be ignored on upgrade if they match the given value
default=
win32_default : @end
	VM_MEMORY=128
	VM_NETWORKING_DEFAULT_TYPE=nat
	VM_NETWORKING_TYPE=nat
	VM_MAX_NUMBER=$(NUM_CPUS)
	VMWARE_PERL=perl
	VMWARE_SCRIPT=$(SBIN)\condor_vm_vmware
	VMWARE_SCRIPT=$(SBIN)/condor_vm_vmware.exe
	VMWARE_SCRIPT=$(SBIN)/condor_vm_vmware.pl.exe
	VMWARE_NAT_NETWORKING_TYPE=nat
	VMWARE_BRIDGE_NETWORKING_TYPE=bridged
	VMWARE_NETWORKING_TYPE=nat
	VMWARE_LOCAL_SETTINGS_FILE=$(RELEASE_DIR)\condor_vmware_local_settings
	VMWARE_LOCAL_SETTINGS_FILE=$(RELEASE_DIR)/condor_vmware_local_settings
@end


[$FEATURE.KRB]
description=Enable the daemons and features need to support running jobs with krb tickets and AFS tokens.
default : @end
	SEC_CREDENTIAL_DIRECTORY_KRB=/var/lib/condor/krb_credentials
	DAEMON_LIST=$(DAEMON_LIST),CREDMON_KRB
	SEC_CREDENTIAL_PRODUCER=$(LIBEXEC)/cred_producer_krb
	SEC_CREDENTIAL_MONITOR_KRB_LOG=$(LOG)/CredMonKrbLog
	AUTO_INCLUDE_CREDD_IN_DAEMON_LIST = True
	USE_KEYRING_SESSIONS=True
@end


[$FEATURE.OAUTH]
description=Enable the daemons and features need to support running jobs with OAuth
default : @end
	SEC_CREDENTIAL_DIRECTORY_OAUTH=/var/lib/condor/oauth_credentials
	CREDMON_OAUTH_LOG=$(LOG)/CredMonOAuthLog
	DAEMON_LIST=$(DAEMON_LIST),CREDMON_OAUTH
	AUTO_INCLUDE_CREDD_IN_DAEMON_LIST=True
	TRUST_CREDENTIAL_DIRECTORY=True
@end

[$FEATURE.ADSTASH]
description=Enable sending of schedd job history ads to unauthenticated Elasticsearch on localhost
default : @end
	ADSTASH_SCHEDD_HISTORY=True
	DAEMON_LIST=$(DAEMON_LIST),ADSTASH
@end

[$FEATURE.CommonCloudAttributesGoogle]
description=Enable an execute node to advertise common cloud attributes on Google
default : @end
	use FEATURE : StartdCronOneShot(cloud, $(LIBEXEC)/common-cloud-attributes-google.py, $(0))
	STARTD_CRON_cloud_PREFIX = Cloud
@end

[$FEATURE.JobsHaveInstanceIDs]
description=When a job runs on a machine in the cloud, add that machine's instance ID to the job's ClassAd
default : @end
	SYSTEM_JOB_MACHINE_ATTRS = $(SYSTEM_JOB_MACHINE_ATTRS) CloudInstanceID
@end

[$FEATURE.CommonCloudAttributesAWS]
description=Enable an execute node to advertise common cloud attributes on AWS
default : @end
	use FEATURE : StartdCronOneShot(cloud, $(LIBEXEC)/common-cloud-attributes-aws.py, $(0))
	STARTD_CRON_cloud_PREFIX = Cloud
@end

[$FEATURE.HPC_ANNEX]
description=Enable HPC Annex
default : @fin
	# Let the command-line tool know that things are configured.
	HPC_ANNEX_ENABLED = true


	## The annex EPs need a specific port number.

	# This is the default value from `use role:personal`.
	ispersonal = "127.0.0.1:0"=="$(COLLECTOR_HOST)"
	if $INT(ispersonal)
		COLLECTOR_HOST = $(FULL_HOSTNAME):$(COLLECTOR_PORT)
	endif

	# This is the default value from the `make-personal-condor` script.
	ispersonal = "$(FULL_HOSTNAME):0"=="$(COLLECTOR_HOST)"
	if $INT(ispersonal)
		COLLECTOR_HOST = $(FULL_HOSTNAME):$(COLLECTOR_PORT)
	endif


	# Create an "AP collector".  At some point, we'd like to make such a
	# thing first-class.  In the short term, adding a command-line flag
	# to the collector to set its subsystem would be an improvement.
	AP_COLLECTOR = $(COLLECTOR)
	AP_COLLECTOR.COLLECTOR_LOG = $(LOG)/AP_Collector.log
	AP_COLLECTOR.CCB_RECONNECT_FILE = $(SPOOL)/AP_Collector.ccb_reconnect
	DAEMON_LIST = $(DAEMON_LIST) AP_COLLECTOR

	# Giving the AP collector a stable shared port ID means we don't
	# have to worry about updating annex pilots because of a restart.
	AP_COLLECTOR_ARGS = -f -local-name AP_COLLECTOR -sock ap_collector

	# For now, don't worry about quoting the Sinful brackets.
	ANNEX_COLLECTOR = $(FULL_HOSTNAME):$(SHARED_PORT_PORT)?sock=ap_collector

	# Any user who can submit jobs can use the AP collector for annex.
	AP_COLLECTOR.ALLOW_ADVERTISE_STARTD = $(ALLOW_ADVERTISE_STARTD) $(ALLOW_WRITE)
	AP_COLLECTOR.ALLOW_ADVERTISE_MASTER = $(ALLOW_ADVERTISE_MASTER) $(ALLOW_WRITE)

	# Until we can give the schedd a stable shared port ID, the annex
	# pilot needs to be able to look the schedd up in the AP collector.
	if defined COLLECTOR_HOST
		SCHEDD.COLLECTOR_HOST = $(COLLECTOR_HOST) $(ANNEX_COLLECTOR)
	else
		SCHEDD.COLLECTOR_HOST = $(ANNEX_COLLECTOR)
	endif

	# The AP collector creates the "AP" signing key.
	ANNEX_TOKEN_KEY_NAME = $(SEC_TOKEN_AP_SIGNING_KEY_NAME)
	ANNEX_TOKEN_DOMAIN = $(UID_DOMAIN)


	# We assume that the token directories (passwords.d and tokens.d) are
	# already set.  HTCondor should create and populate the appropriately,
	# if so.


	JOB_TRANSFORM_NAMES = $(JOB_TRANSFORM_NAMES) AssignAnnex
	JOB_TRANSFORM_AssignAnnex @=end
		REQUIREMENTS TargetAnnexName =!= undefined
		my_identity = "$(MY.Owner)@$(ANNEX_TOKEN_DOMAIN)"
		addl_reqs = ifThenElse(TARGET.AuthenticatedIdentity is undefined, true, $(my_identity) == TARGET.AuthenticatedIdentity) && (MY.TargetAnnexName == TARGET.AnnexName)
		if defined MY.JobMachineAttrs
			SET JobMachineAttrs "$(MY.JobMachineAttrs),AnnexName"
		else
			SET JobMachineAttrs "AnnexName"
		endif
		if defined MY.Requirements
			SET Requirements $(addl_reqs) && ($(MY.Requirements))
		else
			SET Requirements $(addl_reqs)
		endif
	@end

	# The schedd will not try to activate a directly-connected claim
	# with a job whose owner is not the authenticated identity of the
	# directly-connected EP.  This limits the damage that can be done
	# by a misconfigured EP to only running the annex owner's other
	# jobs, which I think no long justifies tranforming all other jobs.
	if $(ANNEX_JOBS_EXCLUSIVELY:FALSE)
		JOB_TRANSFORM_NAMES = $(JOB_TRANSFORM_NAMES) AnnexJobsExclusively
		JOB_TRANSFORM_AnnexJobsExclusively @=end
			REQUIREMENTS TargetAnnexName =?= undefined
			addl_reqs = ifThenElse(TARGET.AuthenticatedIdentity is undefined, true, regexp("^condor(_pool)?@.*$", TARGET.AuthenticatedIdentity))
			if defined MY.Requirements
				SET Requirements $(addl_reqs) && ($(MY.Requirements))
			else
				SET Requirements $(addl_reqs)
			endif
		@end
	endif
@fin

[$POLICY.OnlyRegisteredCheckpointDestinations]
description=Use submit requirement to reject jobs whose checkpoint destination is not registered.
default : @fin
	TOOL_CLASSAD_USER_MAP_NAMES = $(TOOL_CLASSAD_USER_MAP_NAMES) checkpoint_destination_map
	SCHEDD_CLASSAD_USER_MAP_NAMES = $(SCHEDD_CLASSAD_USER_MAP_NAMES) checkpoint_destination_map
	CLASSAD_USER_MAPFILE_checkpoint_destination_map = $(CHECKPOINT_DESTINATION_MAPFILE)
	CLASSAD_USER_MAP_PREFIX_checkpoint_destination_map = TRUE

	JOB_TRANSFORM_NAMES = $(JOB_TRANSFORM_NAMES) ValidateCheckpointDestination
	JOB_TRANSFORM_ValidateCheckpointDestination @=end
		EVALSET CheckpointDestinationValid = ifthenelse(undefined =?= userMap("checkpoint_destination_map", CheckpointDestination), undefined, True)
	@end

	IMMUTABLE_JOB_ATTRS = $(IMMUTABLE_JOB_ATTRS) CheckpointDestinationValid

	SUBMIT_REQUIREMENT_NAMES = $(SUBMIT_REQUIREMENT_NAMES) RejectInvalidCheckpointDestination
	SUBMIT_REQUIREMENT_RejectInvalidCheckpointDestination = CheckpointDestination =?= undefined || CheckpointDestinationValid =?= True
	SUBMIT_REQUIREMENT_RejectInvalidCheckpointDestination_REASON = "You specified a checkpoint_destination this AP does not know how to clean up.  You may need to add a trailing / to the URL."
@fin

[$FEATURE.GANGLIA]
description=Enable condor_gangliad daemon
default : @end
	DAEMON_LIST=$(DAEMON_LIST),GANGLIAD
@end


# ^^^^ TJ SEZ: do NOT insert new param knobs here. insert meta knobs just above this banner, and regular knobs near to related knobs way up there ^^^^
