CONDOR_TRANSFORM_ADS(1)

πŸ’– condor_transform_ads β€” HTCondor Manual πŸ’–

okay bestie, gather round, because this one is genuinely iconic. this is condor_transform_ads, straight out of the HTCondor Manual, and it does exactly one thing extremely well: it takes your ClassAds, runs them through whatever rules you hand it, and spits out the glow-up version. it's giving makeover montage but for structured data. periodt.


✨ NAME ✨

condor_transform_ads β€” Transform ClassAds according to specified rules, and output the transformed ClassAds.


🌸 SYNOPSIS 🌸

condor_transform_ads [-help [rules] ]

condor_transform_ads [-rules rules-file] [-jobtransforms name-list]
[-jobroute route-name] [-in[:<form>]  ** *infile*] [-out[:<form>[,
nosort]]  ** outfile] [<key>=<value> ] [-long ] [-json ] [-xml ]
[-verbose ] [-terse ] [-debug ] [-unit-test ] [-testing ]
[-convertoldroutes ] [infile1 ...infileN ]
real talk, the vibes here matter: you must give at least one transform β€” either a rules file, or a JOB_TRANSFORM_ / JOB_ROUTER_ROUTE_ name. and you must give at least one input file. no transforms, no input, no slay.

a few more things you literally cannot skip:

  • Transforms are applied in the order they're given on the command line. order is the whole personality here.
  • If a rules file has a TRANSFORM statement with arguments, it must be the last rules file. it has to be at the end, bestie, that's just the rule.
  • If you don't specify an output file, output goes to stdout. 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

condor_transform_ads reads ClassAds from a set of input files, transforms them according to rules defined in a rules file or read from configuration, and outputs the resulting transformed ClassAds. that's it, that's the whole job, and it eats every time. πŸ’…

if you want the actual tea on how the transform language works, go read the classads/transforms Classad Transforms section. that's where all the syntax lore lives. iykyk.


πŸ‘‘ OPTIONS πŸ‘‘

  • -help [rules | convert] β€” show usage info and dip out. -help rules spills the info about the available transformation rules. -help convert gives you the info about the -convertoldroutes option.
  • -rules rules-file β€” points at the file holding your transformation rule definitions, or configuration that declares a JOB_TRANSFORM_<name> or JOB_ROUTER_ROUTE_<name> variable, for use in a later -jobtransforms <name> or -jobroute <name> argument. it's the setup, fr fr.
  • -jobtransforms name-list β€” a comma-separated list of more transform names. the transform rules get read from a previous rules file, or from the configured JOB_TRANSFORM_<name> values.
  • -jobroute name β€” a job route. the transform rules get read from a previous rules file, or from the configured JOB_ROUTER_ROUTE_<name> values.
  • -in[:<form>] infile β€” an input file holding the ClassAd(s) that are about to get transformed. <form>, if you specify it, is one of:
    • long: traditional long form (default) ← the classic, the standard, the moment
    • xml: XML form
    • json: JSON ClassAd form
    • new: "new" ClassAd form without newlines
    • auto: guess format by reading the input

and if you pass - for infile, input gets read from stdin. πŸŽ€

  • -out[:<form>[, nosort] outfile β€” an output file to receive the transformed ClassAd(s). <form>, if specified, is one of:
    • long: traditional long form (default)
    • xml: XML form
    • json: JSON ClassAd form
    • new: "new" ClassAd form without newlines
    • auto: use the same format as the first input

ClassAds are storted by attribute unless nosort is specified.

  • [<key>=<value> ] β€” assign key/value pairs before the rules file is parsed; can be used to pass arguments to rules. (More detail needed here.) β€” yes bestie, the manpage really says that, we're all waiting on the follow-up πŸ™ˆ
  • -long β€” use long form for both input and output ClassAd(s). (This is the default.) so you can chill, it's already happening.
  • -json β€” use JSON form for both input and output ClassAd(s).
  • -xml β€” use XML form for both input and output ClassAd(s).
  • -verbose β€” verbose mode: echoes to stderr the transform names as they're applied, plus the individual transform rules as they're executed. it narrates its own life. main character energy honestly.
  • -terse β€” disables -verbose.
  • -debug β€” sends debugging information to stderr, based on the value of the configuration variable TOOL_DEBUG.

🌈 EXIT STATUS 🌈

condor_transform_ads exits with a status value of 0 (zero) on success, and exits with the value 1 (one) on failure. binary. no in-between. it either ate or it didn't. πŸ’€


πŸ“ EXAMPLES πŸ“

here's a simple little example that transforms the given input ClassAds according to the given rules. so cute, so effective:

Input file (my_input)

# File: my_input
ResidentSetSize = 500
DiskUsage = 2500000
NumCkpts = 0
TransferrErr = false
Err = "/dev/null"

Rules file (my_rules)

# File: my_rules
EVALSET MemoryUsage ( ResidentSetSize / 100 )
EVALMACRO WantDisk = ( DiskUsage * 2 )
SET RequestDisk ( $(WantDisk) / 1024 )
RENAME NumCkpts NumCheckPoints
DELETE /(.+)Err/

Command execution

$ condor_transform_ads -rules my_rules -in my_input

Resulting ClassAd output

DiskUsage = 2500000
Err = "/dev/null"
MemoryUsage = 5
NumCheckPoints = 0
RequestDisk = ( 5000000 / 1024 )
ResidentSetSize = 500

look at that. NumCkpts became NumCheckPoints, the Err-ish attributes got deleted, MemoryUsage and RequestDisk appeared out of nowhere. that's a transformation, that's a full glow-up, that's art. πŸ”₯


πŸ’œ AUTHOR πŸ’œ

HTCondor Team β€” absolute icons, no notes.


1990-2026, Center for High Throughput Computing, Computer Sciences Department, University of Wisconsin-Madison, Madison, WI, US. Licensed under the Apache License, Version 2.0.


aaaand that's the whole page, bestie. this was the HTCondor Manual version of CONDOR_TRANSFORM_ADS(1), dated Oct 16, 2026. go transform some ads, you've got this. mwah. πŸ’…βœ¨πŸ«Ά

πŸ“¦ where this page comes from