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

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


The following commit(s) were added to refs/heads/master by this push:
     new 4ae99d68 [YUNIKORN-2188] Improve state transition event to include the 
eventinfo (#730)
4ae99d68 is described below

commit 4ae99d68c9307469a85594711d255c461583964e
Author: qzhu <[email protected]>
AuthorDate: Fri Nov 24 21:56:03 2023 +0100

    [YUNIKORN-2188] Improve state transition event to include the eventinfo 
(#730)
    
    Closes: #730
    
    Signed-off-by: Peter Bacsko <[email protected]>
---
 pkg/scheduler/objects/application_events.go      | 12 ++------
 pkg/scheduler/objects/application_events_test.go | 38 ++++++++++--------------
 pkg/scheduler/objects/application_state.go       |  6 ++--
 3 files changed, 22 insertions(+), 34 deletions(-)

diff --git a/pkg/scheduler/objects/application_events.go 
b/pkg/scheduler/objects/application_events.go
index 35fc34cc..59348dd9 100644
--- a/pkg/scheduler/objects/application_events.go
+++ b/pkg/scheduler/objects/application_events.go
@@ -117,19 +117,11 @@ func (evt *applicationEvents) 
sendRemoveApplicationEvent() {
        evt.eventSystem.AddEvent(event)
 }
 
-func (evt *applicationEvents) sendRejectApplicationEvent(eventInfo string) {
-       if !evt.eventSystem.IsEventTrackingEnabled() {
-               return
-       }
-       event := events.CreateAppEventRecord(evt.app.ApplicationID, eventInfo, 
"", si.EventRecord_REMOVE, si.EventRecord_APP_REJECT, evt.app.allocatedResource)
-       evt.eventSystem.AddEvent(event)
-}
-
-func (evt *applicationEvents) sendStateChangeEvent(changeDetail 
si.EventRecord_ChangeDetail) {
+func (evt *applicationEvents) sendStateChangeEvent(changeDetail 
si.EventRecord_ChangeDetail, eventInfo string) {
        if !evt.eventSystem.IsEventTrackingEnabled() || 
!evt.app.sendStateChangeEvents {
                return
        }
-       event := events.CreateAppEventRecord(evt.app.ApplicationID, "", "", 
si.EventRecord_SET, changeDetail, evt.app.allocatedResource)
+       event := events.CreateAppEventRecord(evt.app.ApplicationID, eventInfo, 
"", si.EventRecord_SET, changeDetail, evt.app.allocatedResource)
        evt.eventSystem.AddEvent(event)
 }
 
diff --git a/pkg/scheduler/objects/application_events_test.go 
b/pkg/scheduler/objects/application_events_test.go
index 3ddf4f9c..c960d105 100644
--- a/pkg/scheduler/objects/application_events_test.go
+++ b/pkg/scheduler/objects/application_events_test.go
@@ -346,47 +346,41 @@ func TestSendRemoveApplicationEvent(t *testing.T) {
        assert.Equal(t, "", event.Message)
 }
 
-func TestSendRejectApplicationEvent(t *testing.T) {
+func TestSendStateChangeEvent(t *testing.T) {
        app := &Application{
-               ApplicationID: appID0,
-               queuePath:     "root.test",
+               ApplicationID:         appID0,
+               queuePath:             "root.test",
+               sendStateChangeEvents: true,
        }
        mock := newEventSystemMockDisabled()
        appEvents := newApplicationEvents(app, mock)
-       appEvents.sendRejectApplicationEvent("ResourceReservationTimeout")
+       appEvents.sendStateChangeEvent(si.EventRecord_APP_RUNNING, "")
        assert.Equal(t, 0, len(mock.events), "unexpected event")
 
        mock = newEventSystemMock()
        appEvents = newApplicationEvents(app, mock)
-       appEvents.sendRejectApplicationEvent("ResourceReservationTimeout")
+       appEvents.sendStateChangeEvent(si.EventRecord_APP_RUNNING, "The 
application is running")
        event := mock.events[0]
        assert.Equal(t, si.EventRecord_APP, event.Type)
-       assert.Equal(t, si.EventRecord_REMOVE, event.EventChangeType)
-       assert.Equal(t, si.EventRecord_APP_REJECT, event.EventChangeDetail)
+       assert.Equal(t, si.EventRecord_SET, event.EventChangeType)
+       assert.Equal(t, si.EventRecord_APP_RUNNING, event.EventChangeDetail)
        assert.Equal(t, "app-0", event.ObjectID)
        assert.Equal(t, "", event.ReferenceID)
-       assert.Equal(t, "ResourceReservationTimeout", event.Message)
-}
+       assert.Equal(t, "The application is running", event.Message)
 
-func TestSendStateChangeEvent(t *testing.T) {
-       app := &Application{
-               ApplicationID:         appID0,
-               queuePath:             "root.test",
-               sendStateChangeEvents: true,
-       }
-       mock := newEventSystemMockDisabled()
-       appEvents := newApplicationEvents(app, mock)
-       appEvents.sendStateChangeEvent(si.EventRecord_APP_RUNNING)
+       mock = newEventSystemMockDisabled()
+       appEvents = newApplicationEvents(app, mock)
+       appEvents.sendStateChangeEvent(si.EventRecord_APP_RUNNING, 
"ResourceReservationTimeout")
        assert.Equal(t, 0, len(mock.events), "unexpected event")
 
        mock = newEventSystemMock()
        appEvents = newApplicationEvents(app, mock)
-       appEvents.sendStateChangeEvent(si.EventRecord_APP_RUNNING)
-       event := mock.events[0]
+       appEvents.sendStateChangeEvent(si.EventRecord_APP_REJECT, "Failed to 
add application to partition (placement rejected)")
+       event = mock.events[0]
        assert.Equal(t, si.EventRecord_APP, event.Type)
        assert.Equal(t, si.EventRecord_SET, event.EventChangeType)
-       assert.Equal(t, si.EventRecord_APP_RUNNING, event.EventChangeDetail)
+       assert.Equal(t, si.EventRecord_APP_REJECT, event.EventChangeDetail)
        assert.Equal(t, "app-0", event.ObjectID)
        assert.Equal(t, "", event.ReferenceID)
-       assert.Equal(t, "", event.Message)
+       assert.Equal(t, "Failed to add application to partition (placement 
rejected)", event.Message)
 }
diff --git a/pkg/scheduler/objects/application_state.go 
b/pkg/scheduler/objects/application_state.go
index 03d427f9..9ef98bf1 100644
--- a/pkg/scheduler/objects/application_state.go
+++ b/pkg/scheduler/objects/application_state.go
@@ -149,8 +149,10 @@ func NewAppState() *fsm.FSM {
                                        zap.String("source", event.Src),
                                        zap.String("destination", event.Dst),
                                        zap.String("event", event.Event))
+
+                               eventInfo := ""
                                if len(event.Args) == 2 {
-                                       eventInfo := event.Args[1].(string) 
//nolint:errcheck
+                                       eventInfo = event.Args[1].(string) 
//nolint:errcheck
                                        app.OnStateChange(event, eventInfo)
                                } else {
                                        app.OnStateChange(event, "")
@@ -161,7 +163,7 @@ func NewAppState() *fsm.FSM {
                                                zap.String("state", event.Dst))
                                        return
                                }
-                               app.appEvents.sendStateChangeEvent(eventDetails)
+                               
app.appEvents.sendStateChangeEvent(eventDetails, eventInfo)
                        },
                        "leave_state": func(_ context.Context, event 
*fsm.Event) {
                                event.Args[0].(*Application).clearStateTimer() 
//nolint:errcheck


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

Reply via email to