@@ -65,13 +65,17 @@ var _ = Describe("Pod Event Handler", func() {
6565 pod1 := & kapi.Pod {Spec : kapi.PodSpec {HostNetwork : true }}
6666 // Running pod
6767 pod2 := & kapi.Pod {Status : kapi.PodStatus {Phase : kapi .PodRunning }}
68+ // Finished pod (succeeded)
69+ pod3 := & kapi.Pod {Status : kapi.PodStatus {Phase : kapi .PodSucceeded }}
70+ // Finished pod (failed)
71+ pod4 := & kapi.Pod {Status : kapi.PodStatus {Phase : kapi .PodFailed }}
6872 // No network attachment annotation
69- pod3 := & kapi.Pod {}
73+ pod5 := & kapi.Pod {}
7074 // Not scheduled
71- pod4 := & kapi.Pod {ObjectMeta : metav1.ObjectMeta {Annotations : map [string ]string {
75+ pod6 := & kapi.Pod {ObjectMeta : metav1.ObjectMeta {Annotations : map [string ]string {
7276 v1 .NetworkAttachmentAnnot : `[{"name":"test"}]` }}}
7377 // Invalid network attachment annotation
74- pod5 := & kapi.Pod {ObjectMeta : metav1.ObjectMeta {Annotations : map [string ]string {
78+ pod7 := & kapi.Pod {ObjectMeta : metav1.ObjectMeta {Annotations : map [string ]string {
7579 v1 .NetworkAttachmentAnnot : `[invalid]` }},
7680 Spec : kapi.PodSpec {NodeName : "test" }}
7781
@@ -81,6 +85,8 @@ var _ = Describe("Pod Event Handler", func() {
8185 podEventHandler .OnAdd (pod3 , true )
8286 podEventHandler .OnAdd (pod4 , true )
8387 podEventHandler .OnAdd (pod5 , true )
88+ podEventHandler .OnAdd (pod6 , true )
89+ podEventHandler .OnAdd (pod7 , true )
8490
8591 addMap , _ := podEventHandler .GetResults ()
8692 Expect (len (addMap .Items )).To (Equal (0 ))
@@ -129,6 +135,20 @@ var _ = Describe("Pod Event Handler", func() {
129135 addMap , _ := podEventHandler .GetResults ()
130136 Expect (len (addMap .Items )).To (Equal (0 ))
131137 })
138+ It ("On update finished pod should trigger delete" , func () {
139+ // Finished pod that should trigger OnDelete
140+ pod := & kapi.Pod {ObjectMeta : metav1.ObjectMeta {Annotations : map [string ]string {
141+ v1 .NetworkAttachmentAnnot : `[{"name":"test", "namespace":"default", "cni-args":{"guid":"02:00:00:00:02:00:00:00", "mellanox.infiniband.app":"configured"}}]` }},
142+ Status : kapi.PodStatus {Phase : kapi .PodSucceeded }}
143+
144+ podEventHandler := NewPodEventHandler ()
145+ podEventHandler .OnUpdate (nil , pod )
146+
147+ // Should be added to delete map
148+ _ , delMap := podEventHandler .GetResults ()
149+ Expect (len (delMap .Items )).To (Equal (1 ))
150+ Expect (len (delMap .Items ["default_test" ].([]* kapi.Pod ))).To (Equal (1 ))
151+ })
132152 })
133153 Context ("OnDelete" , func () {
134154 It ("On delete pod event" , func () {
0 commit comments