# SPDX-FileCopyrightText: 2009 Fermi Research Alliance, LLC
# SPDX-License-Identifier: Apache-2.0

######################################################################
##
##  condor_config
##
##  This is the (global) configuration file for condor in the Glideins
##
######################################################################

LOG = $(WORK_DIR)/log
EXECUTE = $(WORK_DIR)/execute
# Optional configuration files. This directory is created and populated in glidein_startup.sh
LOCAL_CONFIG_DIR = $(WORK_DIR)/condor_config.d
COLLECTOR_HOST = $(HEAD_NODE),$(GLIDEIN_Site_Collector)
FILESYSTEM_DOMAIN = $(HOSTNAME)
UID_DOMAIN = $(HOSTNAME)

MASTER.COLLECTOR_HOST = $(GLIDEIN_Master_Collector)
#MASTER.COLLECTOR_HOST = $(GLIDEIN_Master_Collector),$(GLIDEIN_Site_Collector)

RELEASE_DIR = $(CONDOR_DIR)
# These are defined by default using RELEASE_DIR
#BIN = $(CONDOR_DIR)/bin
#SBIN = $(CONDOR_DIR)/sbin
#LIB=$(CONDOR_DIR)/lib
#LIBEXEC = $(CONDOR_DIR)/libexec

MAIL = /bin/mail
MASTER_ADDRESS_FILE = $(LOG)/.master_address
MASTER = $(SBIN)/condor_master
MASTER_LOG = $(LOG)/MasterLog
STARTD = $(SBIN)/condor_startd
STARTER = $(SBIN)/condor_starter

STARTER_LIST = STARTER

LOCK = $(LOG)
STARTD_LOG = $(LOG)/StartdLog
STARTER_LOG = $(LOG)/StarterLog
STARTD_HISTORY = $(LOG)/StartdHistoryLog

ALL_DEBUG = D_PID
STARTD_DEBUG = D_PID D_JOB
STARTER_DEBUG = D_PID
MASTER_DEBUG = D_PID

# needed since Condor v6.9.2
# does not hurt for older versions
PROCD = $(SBIN)/condor_procd
PROCD_ADDRESS = $(LOCK)/procd_address
PROCD_LOG = $(LOG)/ProcLog
PROCD_DEBUG = False
PROCD_MAX_SNAPSHOT_INTERVAL = 60

SHARED_PORT = $(LIBEXEC)/condor_shared_port
SHARED_PORT_LOG = $(LOG)/SharedPortLog
SHARED_PORT_DAEMON_AD_FILE = $(GLIDEIN_LOCAL_TMP_DIR)/shared_port_ad

SUSPEND = False
CONTINUE = True
WANT_SUSPEND = False
SUSPEND_VANILLA = False
WANT_SUSPEND_VANILLA = False

# if it ever enters the Preempting/Vacating state, get out of it in 5 minutes
# should never happen, but it is a good precaution
KILL = (CurrentTime-EnteredCurrentActivity>300)

IS_GLIDEIN = True
MASTER_ATTRS = IS_GLIDEIN, GLIDEIN_ToRetire, GLIDEIN_ToDie, GLIDEIN_Expire, DaemonStopTime, $(GLIDEIN_VARIABLES)
STARTD_ATTRS = GLIDEIN_COLLECTOR_NAME,GLIDEIN_MASTER_NAME, IS_GLIDEIN, GLIDEIN_ToRetire, GLIDEIN_ToDie, GLIDEIN_Expire, START, DaemonStopTime, GLIDEIN_PARENT_PID, LSB_RELEASE, LSB_DISTRIBUTOR_ID, LSB_DESCRIPTION, $(GLIDEIN_VARIABLES)

# This will create the following new attributes to Machine ClassAd and fetch the values from the corresponding attributes of Job ClassAd
STARTD_JOB_ATTRS = $(STARTD_JOB_ATTRS) x509userproxysubject x509UserProxyFQAN x509UserProxyVOName x509UserProxyEmail x509UserProxyExpiration

# This disables /dev/utmp use that is unreliable (gwms #14707)
STARTD_HAS_BAD_UTMP = True

# effectively disable checking of new binaries
MASTER_CHECK_NEW_EXEC_INTERVAL = 3600000

#If the daemon crashes, run away fast
MASTER_BACKOFF_CEILING = 600

# This section contains macros are here to help write legible
# expressions:

MINUTE          = 60
HOUR            = (60 * $(MINUTE))
StateTimer      = (CurrentTime - EnteredCurrentState)
ActivityTimer   = (CurrentTime - EnteredCurrentActivity)
ActivationTimer = (CurrentTime - JobStart)

BenchmarkTimer = (CurrentTime - LastBenchmark)
RunBenchmarks : (LastBenchmark == 0 ) || ($(BenchmarkTimer) >= (4 * $(HOUR)))

GSI_DAEMON_DIRECTORY=$(LOCAL_DIR)
# Undefined, Glideins are only clients and do not use passwords (alt: $(LOCAL_DIR)/cred.d/passwords)
SEC_PASSWORD_DIRECTORY=
SEC_TOKEN_SYSTEM_DIRECTORY=$(LOCAL_DIR)/cred.d/idtokens
SEC_TOKEN_DIRECTORY=$(SEC_TOKEN_SYSTEM_DIRECTORY)
SEC_DEFAULT_AUTHENTICATION = REQUIRED
SEC_DEFAULT_AUTHENTICATION_METHODS = TOKEN,GSI


# Allow readonly access to the site collector
GSI_SKIP_HOST_CHECK_CERT_REGEX = $(X509_SKIP_HOST_CHECK_DNS_REGEX)

STARTD.ALLOW_CLIENT = collector*/*, anonymous*/*, frontend*/*, condor*/*, submit-side@matchsession/*

STARTD.GSI_DAEMON_NAME =
DENY_WRITE = anonymous@*
DENY_ADMINISTRATOR = anonymous@*
DENY_DAEMON = anonymous@*
DENY_NEGOTIATOR = anonymous@*
DENY_OWNER = anonymous@*
DENY_CONFIG = anonymous@*

LOCAL_CONFIG_FILE       =

GLIDEIN_START_CONDITION = ($(GLIDEIN_Start)) && ($(GLIDEIN_Entry_Start)) && ($(GLIDECLIENT_Start)) && ($(GLIDECLIENT_Group_Start))
GLIDEIN_HOLD_CONDITION = ($(GLIDEIN_Hold)) || ($(GLIDEIN_Entry_Hold)) || ($(GLIDECLIENT_Hold)) || ($(GLIDECLIENT_Group_Hold))
GLIDEIN_PREEMPT_CONDITION = ($(GLIDEIN_PREEMPT)) || ($(GLIDEIN_Entry_PREEMPT)) || ($(GLIDECLIENT_PREEMPT)) || ($(GLIDECLIENT_Group_PREEMPT)) || (SiteWMS_WN_Preempt =?= True)

RANK = ($(GLIDEIN_Rank)) + ($(GLIDEIN_Entry_Rank)) + ($(GLIDECLIENT_Rank)) + ($(GLIDECLIENT_Group_Rank))

# randomize update interval to minimize packet loss
UPDATE_INTERVAL = $RANDOM_INTEGER(270, 370, 1)
MASTER_UPDATE_INTERVAL = $RANDOM_INTEGER(270, 330, 1)

GLIDEIN_COLLECTOR_NAME = "$(HEAD_NODE)"
GLIDEIN_MASTER_NAME = "$(MASTER_NAME)@$(FULL_HOSTNAME)"
GLIDEIN_SCHEDD_NAME = "$(SCHEDD_NAME)@$(FULL_HOSTNAME)"

## DISABLE VOMS CHECKING
USE_VOMS_ATTRIBUTES = False

# Needed to keep using the "VIRTUAL_MACHINE" names in newer version of Condor
# May want to convert all to the new "SLOT" nomenclature in the future
ALLOW_VM_CRUFT=True

# Disable condor_preen for Condor > 7.5.0
PREEN=

# Unset java so we can explicitly set it if required
JAVA=

# Condor transfer plugins
FILETRANSFER_PLUGINS = $(LIBEXEC)/curl_plugin, $(LIBEXEC)/data_plugin
