api: job deregister returns eval ID

This commit is contained in:
Ryan Uber
2015-09-16 17:12:48 -07:00
parent 00dde16dbe
commit cd10614798
2 changed files with 15 additions and 6 deletions

View File

@@ -81,12 +81,13 @@ func (j *Jobs) Evaluations(jobID string, q *QueryOptions) ([]*Evaluation, *Query
}
// Delete is used to remove an existing job.
func (j *Jobs) Delete(jobID string, q *WriteOptions) (*WriteMeta, error) {
wm, err := j.client.delete("/v1/job/"+jobID, nil, q)
func (j *Jobs) Delete(jobID string, q *WriteOptions) (string, *WriteMeta, error) {
var resp deregisterJobResponse
wm, err := j.client.delete("/v1/job/"+jobID, &resp, q)
if err != nil {
return nil, err
return "", nil, err
}
return wm, nil
return resp.EvalID, wm, nil
}
// ForceEvaluate is used to force-evaluate an existing job.
@@ -206,3 +207,8 @@ type registerJobRequest struct {
type registerJobResponse struct {
EvalID string
}
// deregisterJobResponse is used to decode a deregister response
type deregisterJobResponse struct {
EvalID string
}

View File

@@ -155,18 +155,21 @@ func TestJobs_Delete(t *testing.T) {
assertWriteMeta(t, wm)
// Attempting delete on non-existing job does not error
wm2, err := jobs.Delete("nope", nil)
_, wm2, err := jobs.Delete("nope", nil)
if err != nil {
t.Fatalf("err: %s", err)
}
assertWriteMeta(t, wm2)
// Deleting an existing job works
wm3, err := jobs.Delete("job1", nil)
evalID, wm3, err := jobs.Delete("job1", nil)
if err != nil {
t.Fatalf("err: %s", err)
}
assertWriteMeta(t, wm3)
if evalID == "" {
t.Fatalf("missing eval ID")
}
// Check that the job is really gone
result, qm, err := jobs.List(nil)