Add priority flag to Dispatch CLI and API (#25622)

* Add priority flag to Dispatch CLI and DispatchOpts() helper to HTTP API
This commit is contained in:
tehut
2025-04-18 13:24:52 -07:00
committed by GitHub
parent 88dc842729
commit b11619010e
9 changed files with 388 additions and 136 deletions

View File

@@ -529,16 +529,39 @@ func (j *Jobs) Summary(jobID string, q *QueryOptions) (*JobSummary, *QueryMeta,
return &resp, qm, nil
}
// DispatchOptions is used to pass through job dispatch parameters
type DispatchOptions struct {
JobID string
Meta map[string]string
Payload []byte
IdPrefixTemplate string
Priority int
}
func (j *Jobs) Dispatch(jobID string, meta map[string]string,
payload []byte, idPrefixTemplate string, q *WriteOptions) (*JobDispatchResponse, *WriteMeta, error) {
var resp JobDispatchResponse
req := &JobDispatchRequest{
return j.DispatchOpts(&DispatchOptions{
JobID: jobID,
Meta: meta,
Payload: payload,
IdPrefixTemplate: idPrefixTemplate,
IdPrefixTemplate: idPrefixTemplate},
q,
)
}
// DispatchOpts is used to dispatch a new job with the passed DispatchOpts. It
// returns the ID of the evaluation, along with any errors encountered.
func (j *Jobs) DispatchOpts(opts *DispatchOptions, q *WriteOptions) (*JobDispatchResponse, *WriteMeta, error) {
var resp JobDispatchResponse
req := &JobDispatchRequest{
JobID: opts.JobID,
Meta: opts.Meta,
Payload: opts.Payload,
IdPrefixTemplate: opts.IdPrefixTemplate,
Priority: opts.Priority,
}
wm, err := j.client.put("/v1/job/"+url.PathEscape(jobID)+"/dispatch", req, &resp, q)
wm, err := j.client.put("/v1/job/"+url.PathEscape(opts.JobID)+"/dispatch", req, &resp, q)
if err != nil {
return nil, nil, err
}
@@ -1571,6 +1594,7 @@ type JobDispatchRequest struct {
Payload []byte
Meta map[string]string
IdPrefixTemplate string
Priority int
}
type JobDispatchResponse struct {