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]