User Story
As the WMS consumer,
I want BatchBackend(SSHTransport|LocalTransport, HTCondorScheduler) working against a real
schedd,
So that the second scheduler proves the Scheduler protocol generalises, and the _htcondor core
is ready for reuse by the HTCondor-CE backend.
Feature Description
_htcondor internal module (Tier C, shared with #): submit-description builder
from SubmissionSpec (incl. queue N for count fan-out, should_transfer_files/
transfer_output_files from OutputSpec), condor_q/condor_history ClassAd/JSON parsing,
native state map incl. hold codes/subcodes (port DIRAC's STATES_MAP/HOLD_REASON_SUBCODE).
HTCondorScheduler: drives a schedd via the transport (CLI condor_submit/condor_q/
condor_rm over Transport.run); stages_own_files=True — HTCondor declares file transfer in
the submit description (the cross-scheduler staging axis from IC-ADR-001 §3).
- Phase 2 wiring: contract suite against the
htcondor stack's plain-schedd path
(markers scheduler and htcondor); ssh-condor stack optional here, may land later.
Definition of Done
Alternatives Considered
- Python
htcondor bindings instead of CLI-over-transport — bindings can't run over SSH to a
remote schedd; CLI-over-transport keeps the transport axis orthogonal. Bindings remain an option
for the monolithic CE backend (issue-15), where the schedd is reached natively.
Related Issues
Additional Context
IC-ADR-001 §3 "Shared batch-system knowledge": scheduler adapter and monolithic CE share the
_htcondor functions, never a subtype.
User Story
As the WMS consumer,
I want
BatchBackend(SSHTransport|LocalTransport, HTCondorScheduler)working against a realschedd,
So that the second scheduler proves the
Schedulerprotocol generalises, and the_htcondorcoreis ready for reuse by the HTCondor-CE backend.
Feature Description
_htcondorinternal module (Tier C, shared with #): submit-description builderfrom
SubmissionSpec(incl.queue Nforcountfan-out,should_transfer_files/transfer_output_filesfromOutputSpec),condor_q/condor_historyClassAd/JSON parsing,native state map incl. hold codes/subcodes (port DIRAC's
STATES_MAP/HOLD_REASON_SUBCODE).HTCondorScheduler: drives a schedd via the transport (CLIcondor_submit/condor_q/condor_rmoverTransport.run);stages_own_files=True— HTCondor declares file transfer inthe submit description (the cross-scheduler staging axis from IC-ADR-001 §3).
htcondorstack's plain-schedd path(markers
scheduler and htcondor);ssh-condorstack optional here, may land later.Definition of Done
htcondorstack (plain schedd)count > 1submits as onequeue N(asserted)OutputSpecat submit timecondor_q/condor_historyoutput (port DIRAC'stest fixtures)
_htcondorhas no scheduler-class dependencies (importable by the CE backend, #)Alternatives Considered
htcondorbindings instead of CLI-over-transport — bindings can't run over SSH to aremote schedd; CLI-over-transport keeps the transport axis orthogonal. Bindings remain an option
for the monolithic CE backend (issue-15), where the schedd is reached natively.
Related Issues
Additional Context
IC-ADR-001 §3 "Shared batch-system knowledge": scheduler adapter and monolithic CE share the
_htcondorfunctions, never a subtype.