DAGMan inline submit descriptions declared independent of jobs

Description

(This issue was previously gittrac #7847)

In #7352 we added the ability for DAGMan jobs to be described inline in a .dag file without requiring a separate submit file. As a result, you can now write an inline job description like in the following example:

While this is a nice convenience for users, it isn't that helpful at the moment because different jobs cannot share the same submit description. We want to add a new condor_dagman command, SUBMIT-DESCRIPTION, that allows submit descriptions to be defined independently of jobs and referenced by name. For example:

As an implementation detail, we'll make a new data structure in condor_dagman (probably a std::map) that maps description names to SubmitHash objects. Description names must be unique. If a submit description is defined as part of a JOB command, it gets the name of the job. If defined independently as a SUBMIT-DESCRIPTION, the user is expected to provide a name. Any naming collision will cause condor_dagman to abort at parse time with an error in the log.

Another implementation challenge is parsing: does a SUBMIT-DESCRIPTION need to be defined before a JOB can reference it? On the first pass, we'll expect these to be defined in order. Later, we should look into how we could pre-parse these descriptions so that order doesn't matter.

Done

Due date

None

Time remaining

0m

Assignee

Mark Coatsworth

Is PATh development

None

Fix versions

Priority

Major

HTCondorCustomerGroup

Other

Components

Reporter

Mark Coatsworth