How to insert custom ClassAd attributes into a machine ad
Known to work with HTCondor version: 7.0
In the following exapmles, a custom ClassAd attribute named MachineOwner is created with the value "chemistry". You can use whatever attribute name you want, but avoid conflicting with attribute names used by HTCondor. See the manual or run
How to insert custom ClassAd attributes in a machine ad via the config file
Using the config file to insert a custom machine attribute is particularly appropriate for static attribute values that do not change often - if your attribute value is dynamic, see below.
MachineOwner = "chemistry" STARTD_ATTRS = $(STARTD_ATTRS) MachineOwner
If you want different values for different slots within the same machine, do this:
SLOT1_MachineOwner = "chemistry" SLOT2_MachineOwner = "physics" STARTD_ATTRS = $(STARTD_ATTRS) MachineOwner
Alternate. If you are using HTCondor 8.3.8 or later, you can set different attributes in different slot types. This makes configuration simpler when the number of slots (and thus the slot id's) is not fixed, but varies based on some other configuration value such as NUM_CPUS
NUM_SLOTS_TYPE_1 = 2 NUM_SLOTS_TYPE_2 = $(NUM_CPUS) - $(NUM_SLOTS_TYPE_1) STARTD_ATTRS = MachineOwner $(STARTD_ATTRS) SLOT_TYPE_1_MachineOwner = "chemistry" SLOT_TYPE_2_MachineOwner = "physics"
How to insert custom ClassAd attributes in a machine ad via a script
You can insert dynamic attributes that are periodically updated from a script. Here's an example of what you put in the HTCondor configuration file to periodically call a script:
STARTD_CRON_JOBLIST = CRON CRON_JOBLIST = CRON_JOBLIST = $(CRON_JOBLIST) kernel CRON_kernel_PREFIX = kernel_ CRON_kernel_EXECUTABLE = /path/to/kernel CRON_kernel_PERIOD = 1h CRON_kernel_MODE = periodic CRON_kernel_RECONFIG = false CRON_kernel_KILL = true CRON_kernel_ARGS =
The script named 'kernel' could add some attributes that give information about the system kernel. For example, it could output something like the following:
version = "2.6.9-55.0.12.ELsmp" bigmem = FALSE hugemem = FALSE
Given the configuration above, this would result in ClassAd attributes being added to the machine ClassAd with the following names: kernel_version, kernel_bigmem, and kernel_hugemem.
How to insert a custom ClassAd attribute into a machine ad from the Windows registry
New in 7.5.6: A list of windows registry keys may be specified in the configuration file to be published in the machine ClassAd. Example:
STARTD_PUBLISH_WINREG = \ Perl_BinDir = HKLM\Software\Perl\BinDir; \ Kerberos_Version = HKLM\SOFTWARE\MIT\Kerberos\Client\CurrentVersion\VersionString