This is an automated email from the ASF dual-hosted git repository.

chia7712 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-k8shim.git


The following commit(s) were added to refs/heads/master by this push:
     new 04d951e9 [YUNIKORN-2599] Certain shim events are not handled by the 
state machine (#830)
04d951e9 is described below

commit 04d951e9e1b9b56ef44fe4ddec758eb4f66c85d1
Author: Peter Bacsko <[email protected]>
AuthorDate: Thu May 9 12:20:31 2024 +0800

    [YUNIKORN-2599] Certain shim events are not handled by the state machine 
(#830)
    
    Closes: #830
    
    Signed-off-by: Chia-Ping Tsai <[email protected]>
---
 pkg/cache/application_state.go      |  3 +--
 pkg/cache/application_state_test.go | 19 +++++++++++++++++++
 pkg/cache/context.go                |  5 +++--
 pkg/cache/scheduler_callback.go     |  5 -----
 pkg/cache/task_state_test.go        | 12 ++++++++++++
 5 files changed, 35 insertions(+), 9 deletions(-)

diff --git a/pkg/cache/application_state.go b/pkg/cache/application_state.go
index b64f9486..ef251e2f 100644
--- a/pkg/cache/application_state.go
+++ b/pkg/cache/application_state.go
@@ -50,13 +50,12 @@ const (
        KilledApplication
        ReleaseAppAllocation
        ReleaseAppAllocationAsk
-       AppStateChange
        ResumingApplication
        AppTaskCompleted
 )
 
 func (ae ApplicationEventType) String() string {
-       return [...]string{"SubmitApplication", "RecoverApplication", 
"AcceptApplication", "TryReserve", "UpdateReservation", "RunApplication", 
"RejectApplication", "CompleteApplication", "FailApplication", 
"KillApplication", "KilledApplication", "ReleaseAppAllocation", 
"ReleaseAppAllocationAsk", "AppStateChange", "ResumingApplication", 
"AppTaskCompleted"}[ae]
+       return [...]string{"SubmitApplication", "AcceptApplication", 
"TryReserve", "UpdateReservation", "RunApplication", "RejectApplication", 
"CompleteApplication", "FailApplication", "KillApplication", 
"KilledApplication", "ReleaseAppAllocation", "ReleaseAppAllocationAsk", 
"ResumingApplication", "AppTaskCompleted"}[ae]
 }
 
 // ------------------------
diff --git a/pkg/cache/application_state_test.go 
b/pkg/cache/application_state_test.go
index 1247a488..d16e3012 100644
--- a/pkg/cache/application_state_test.go
+++ b/pkg/cache/application_state_test.go
@@ -21,6 +21,8 @@ package cache
 import (
        "testing"
 
+       "gotest.tools/v3/assert"
+
        "github.com/apache/yunikorn-scheduler-interface/lib/go/si"
 )
 
@@ -887,3 +889,20 @@ func TestNewResumingApplicationEvent(t *testing.T) {
                })
        }
 }
+
+func TestApplicationEventsAsString(t *testing.T) {
+       assert.Equal(t, SubmitApplication.String(), "SubmitApplication")
+       assert.Equal(t, AcceptApplication.String(), "AcceptApplication")
+       assert.Equal(t, TryReserve.String(), "TryReserve")
+       assert.Equal(t, UpdateReservation.String(), "UpdateReservation")
+       assert.Equal(t, RunApplication.String(), "RunApplication")
+       assert.Equal(t, RejectApplication.String(), "RejectApplication")
+       assert.Equal(t, CompleteApplication.String(), "CompleteApplication")
+       assert.Equal(t, FailApplication.String(), "FailApplication")
+       assert.Equal(t, KillApplication.String(), "KillApplication")
+       assert.Equal(t, KilledApplication.String(), "KilledApplication")
+       assert.Equal(t, ReleaseAppAllocation.String(), "ReleaseAppAllocation")
+       assert.Equal(t, ReleaseAppAllocationAsk.String(), 
"ReleaseAppAllocationAsk")
+       assert.Equal(t, ResumingApplication.String(), "ResumingApplication")
+       assert.Equal(t, AppTaskCompleted.String(), "AppTaskCompleted")
+}
diff --git a/pkg/cache/context.go b/pkg/cache/context.go
index 3d40419a..96493578 100644
--- a/pkg/cache/context.go
+++ b/pkg/cache/context.go
@@ -929,8 +929,9 @@ func (ctx *Context) notifyTaskComplete(appID, taskID 
string) {
                        zap.String("taskID", taskID))
                ev := NewSimpleTaskEvent(appID, taskID, CompleteTask)
                dispatcher.Dispatch(ev)
-               appEv := NewSimpleApplicationEvent(appID, AppTaskCompleted)
-               dispatcher.Dispatch(appEv)
+               if app.GetApplicationState() == ApplicationStates().Resuming {
+                       dispatcher.Dispatch(NewSimpleApplicationEvent(appID, 
AppTaskCompleted))
+               }
        }
 }
 
diff --git a/pkg/cache/scheduler_callback.go b/pkg/cache/scheduler_callback.go
index e7ce30dc..dd147ff0 100644
--- a/pkg/cache/scheduler_callback.go
+++ b/pkg/cache/scheduler_callback.go
@@ -171,17 +171,12 @@ func (callback *AsyncRMCallback) 
UpdateApplication(response *si.ApplicationRespo
                        if app != nil && app.GetApplicationState() == 
ApplicationStates().Reserving {
                                ev := 
NewResumingApplicationEvent(updated.ApplicationID)
                                dispatcher.Dispatch(ev)
-
-                               // handle status update
-                               
dispatcher.Dispatch(NewApplicationStatusChangeEvent(updated.ApplicationID, 
AppStateChange, updated.State))
                        }
                default:
                        if updated.State == ApplicationStates().Failing || 
updated.State == ApplicationStates().Failed {
                                ev := 
NewFailApplicationEvent(updated.ApplicationID, updated.Message)
                                dispatcher.Dispatch(ev)
                        }
-                       // handle status update
-                       
dispatcher.Dispatch(NewApplicationStatusChangeEvent(updated.ApplicationID, 
AppStateChange, updated.State))
                }
        }
        return nil
diff --git a/pkg/cache/task_state_test.go b/pkg/cache/task_state_test.go
index 6e66cdde..bca7a224 100644
--- a/pkg/cache/task_state_test.go
+++ b/pkg/cache/task_state_test.go
@@ -59,3 +59,15 @@ func TestGetAllocateTaskEventArgs(t *testing.T) {
        err = events.GetEventArgsAsStrings(nil, args)
        assert.Assert(t, err != nil)
 }
+
+func TestTaskEventsAsString(t *testing.T) {
+       assert.Equal(t, InitTask.String(), "InitTask")
+       assert.Equal(t, SubmitTask.String(), "SubmitTask")
+       assert.Equal(t, TaskAllocated.String(), "TaskAllocated")
+       assert.Equal(t, TaskRejected.String(), "TaskRejected")
+       assert.Equal(t, TaskBound.String(), "TaskBound")
+       assert.Equal(t, CompleteTask.String(), "CompleteTask")
+       assert.Equal(t, TaskFail.String(), "TaskFail")
+       assert.Equal(t, KillTask.String(), "KillTask")
+       assert.Equal(t, TaskKilled.String(), "TaskKilled")
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to