The 3.2 version of Singularity from EPEL shows its “—version” string as “singularity version 3.2.1-1.el7” as distinct from the “2.6.0-dist” version: $ condor_status -af SingularityVersion singularity version 3.2.1-1.el7 2.6.0-dist undefined If you are applying requirements for SingularityVersion, you need an _expression_ that’s able to parse both versions, like so: $ condor_status -af 'regexps("\D*([\d].*-.+)", SingularityVersion, "\1")' 3.2.1-1.el7 2.6.0-dist undefined 2.6.0-dist 2.6.0-dist 2.6.0-dist undefined Handing off this string to “int()” will give you the major release as a numeric value that can be compared mathematically in a requirements _expression_: Requirements = (int(regexps("\D*([\d].*-.+)", SingularityVersion, "\1")) >= 3) This will match any machine having Singularity version 3.0 and up. The “real()” function will give you the major and minor release as a real number, but wouldn’t necessarily work as expected in comparisons since in release numbers, but not in math, 3.10.0 is greater than 3.9.0 Michael V. Pelletier
Andover, MA 01810 USA |