mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
non-purge deregisters
This commit is contained in:
13
api/jobs.go
13
api/jobs.go
@@ -149,10 +149,12 @@ func (j *Jobs) Evaluations(jobID string, q *QueryOptions) ([]*Evaluation, *Query
|
||||
return resp, qm, nil
|
||||
}
|
||||
|
||||
// Deregister is used to remove an existing job.
|
||||
func (j *Jobs) Deregister(jobID string, q *WriteOptions) (string, *WriteMeta, error) {
|
||||
// Deregister is used to remove an existing job. If purge is set to true, the job
|
||||
// is deregistered and purged from the system versus still being queryable and
|
||||
// eventually GC'ed from the system. Most callers should not specify purge.
|
||||
func (j *Jobs) Deregister(jobID string, purge bool, q *WriteOptions) (string, *WriteMeta, error) {
|
||||
var resp deregisterJobResponse
|
||||
wm, err := j.client.delete("/v1/job/"+jobID, &resp, q)
|
||||
wm, err := j.client.delete(fmt.Sprintf("/v1/job/%v?purge=%t", jobID, purge), &resp, q)
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
@@ -290,6 +292,7 @@ type ParameterizedJobConfig struct {
|
||||
|
||||
// Job is used to serialize a job.
|
||||
type Job struct {
|
||||
Stop *bool
|
||||
Region *string
|
||||
ID *string
|
||||
ParentID *string
|
||||
@@ -338,6 +341,9 @@ func (j *Job) Canonicalize() {
|
||||
if j.Priority == nil {
|
||||
j.Priority = helper.IntToPtr(50)
|
||||
}
|
||||
if j.Stop == nil {
|
||||
j.Stop = helper.BoolToPtr(false)
|
||||
}
|
||||
if j.Region == nil {
|
||||
j.Region = helper.StringToPtr("global")
|
||||
}
|
||||
@@ -425,6 +431,7 @@ type JobListStub struct {
|
||||
Name string
|
||||
Type string
|
||||
Priority int
|
||||
Stop bool
|
||||
Status string
|
||||
StatusDescription string
|
||||
JobSummary *JobSummary
|
||||
|
||||
@@ -690,13 +690,12 @@ func TestJobs_Deregister(t *testing.T) {
|
||||
assertWriteMeta(t, wm)
|
||||
|
||||
// Attempting delete on non-existing job returns an error
|
||||
if _, _, err = jobs.Deregister("nope", nil); err != nil {
|
||||
if _, _, err = jobs.Deregister("nope", false, nil); err != nil {
|
||||
t.Fatalf("unexpected error deregistering job: %v", err)
|
||||
|
||||
}
|
||||
|
||||
// Deleting an existing job works
|
||||
evalID, wm3, err := jobs.Deregister("job1", nil)
|
||||
// Do a soft deregister of an existing job
|
||||
evalID, wm3, err := jobs.Deregister("job1", false, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
}
|
||||
@@ -705,6 +704,26 @@ func TestJobs_Deregister(t *testing.T) {
|
||||
t.Fatalf("missing eval ID")
|
||||
}
|
||||
|
||||
// Check that the job is still queryable
|
||||
out, qm1, err := jobs.Info("job1", nil)
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
}
|
||||
assertQueryMeta(t, qm1)
|
||||
if out == nil {
|
||||
t.Fatalf("missing job")
|
||||
}
|
||||
|
||||
// Do a purge deregister of an existing job
|
||||
evalID, wm4, err := jobs.Deregister("job1", true, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
}
|
||||
assertWriteMeta(t, wm4)
|
||||
if evalID == "" {
|
||||
t.Fatalf("missing eval ID")
|
||||
}
|
||||
|
||||
// Check that the job is really gone
|
||||
result, qm, err := jobs.List(nil)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user