mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
events: emit event when job is deleted (#19903)
When jobs are deregistered with the `purge` flag they are immediately deleted from the state store instead of just updated to be marked as stopped. Without tracking job deletions the event stream would not receive a `JobDeregistered` event when `purge` was set.
This commit is contained in:
3
.changelog/19903.txt
Normal file
3
.changelog/19903.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
```release-note:improvement
|
||||||
|
api: emit `JobDeregistered` event when job is deregistered with `purge`
|
||||||
|
```
|
||||||
@@ -125,6 +125,19 @@ func eventFromChange(change memdb.Change) (structs.Event, bool) {
|
|||||||
ACLBindingRule: before,
|
ACLBindingRule: before,
|
||||||
},
|
},
|
||||||
}, true
|
}, true
|
||||||
|
case "jobs":
|
||||||
|
before, ok := change.Before.(*structs.Job)
|
||||||
|
if !ok {
|
||||||
|
return structs.Event{}, false
|
||||||
|
}
|
||||||
|
return structs.Event{
|
||||||
|
Topic: structs.TopicJob,
|
||||||
|
Key: before.ID,
|
||||||
|
Namespace: before.Namespace,
|
||||||
|
Payload: &structs.JobEvent{
|
||||||
|
Job: before,
|
||||||
|
},
|
||||||
|
}, true
|
||||||
case "nodes":
|
case "nodes":
|
||||||
before, ok := change.Before.(*structs.Node)
|
before, ok := change.Before.(*structs.Node)
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|||||||
@@ -726,7 +726,7 @@ func TestEventsFromChanges_WithDeletion(t *testing.T) {
|
|||||||
event := eventsFromChanges(nil, changes)
|
event := eventsFromChanges(nil, changes)
|
||||||
require.NotNil(t, event)
|
require.NotNil(t, event)
|
||||||
|
|
||||||
require.Len(t, event.Events, 1)
|
require.Len(t, event.Events, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEventsFromChanges_WithNodeDeregistration(t *testing.T) {
|
func TestEventsFromChanges_WithNodeDeregistration(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user