The beginnings of a Docker container image that can communicate with HTCondor using the Python API.
Make sure your HTCondor cluster (the submit node) has a condor_pool
user
useradd -m -s /bin/bash -U condor_pool
See Status section.
This doesn't necessarily seem like the best way to do this…
In resources/
:
HTCondor libs, extracted from a zip file in Anaconda: htcondor-python-8.6.0-py27_1.tar.bz2- HTCondor libs, copied from Centos container after
yum install condor-python
boost-python/libboost_python.so built from source: boost_1_63_0.tar.bz2libpcre/libpcre.so.1 symlinked from provided debian libpcre.so.3- libpcre and libcrypto copied from Centos container
- HTCondor Python Bindings
Using htcondor-docker-centos to run a small HTCondor cluster in the docker network htcondor
:
$ docker run --rm -it --net=htcondor htcondor-python
Python 2.7.13 (default, May 1 2017, 22:44:36)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import htcondor
>>> import classad
>>> coll = htcondor.Collector("condor-master")
>>> results = coll.query(htcondor.AdTypes.Startd, "true", ["Name"])
>>> len(results)
4
>>> results
[[ MyType = "Machine"; Name = "slot3@condor-executor"; TargetType = "Job" ], [ MyType = "Machine"; Name = "slot4@condor-executor"; TargetType = "Job" ], [ MyType = "Machine"; Name = "slot1@condor-executor"; TargetType = "Job" ], [ MyType = "Machine"; Name = "slot2@condor-executor"; TargetType = "Job" ]]
>>> scheddAd = coll.locate(htcondor.DaemonTypes.Schedd, "condor-submitter")
>>> schedd = htcondor.Schedd(scheddAd)
>>> results = schedd.query()
>>> len(results)
0
The htcondor_test.py script demonstrates very simple job submission to remote condor-submitter node.