issue 8232: ensure the ending event sinked before shutdown

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
This commit is contained in:
Lyndon-Li
2024-09-23 16:52:48 +08:00
parent 3f9c2dc789
commit 9deaa819aa
8 changed files with 300 additions and 41 deletions

View File

@@ -52,6 +52,7 @@ const (
EventReasonCancelled = "Data-Path-Canceled"
EventReasonProgress = "Data-Path-Progress"
EventReasonCancelling = "Data-Path-Canceling"
EventReasonStopped = "Data-Path-Stopped"
)
type microServiceBRWatcher struct {
@@ -340,15 +341,15 @@ func (ms *microServiceBRWatcher) onEvent(evt *v1.Event) {
ms.callbacks.OnProgress(ms.ctx, ms.namespace, ms.taskName, funcGetProgressFromMessage(evt.Message, ms.log))
case EventReasonCompleted:
ms.log.Infof("Received data path completed message: %v", funcGetResultFromMessage(ms.taskType, evt.Message, ms.log))
ms.terminatedFromEvent = true
case EventReasonCancelled:
ms.log.Infof("Received data path canceled message: %s", evt.Message)
ms.terminatedFromEvent = true
case EventReasonFailed:
ms.log.Infof("Received data path failed message: %s", evt.Message)
ms.terminatedFromEvent = true
case EventReasonCancelling:
ms.log.Infof("Received data path canceling message: %s", evt.Message)
case EventReasonStopped:
ms.terminatedFromEvent = true
ms.log.Infof("Received data path stop message: %s", evt.Message)
default:
ms.log.Infof("Received event for data path %s, reason: %s, message: %s", ms.taskName, evt.Reason, evt.Message)
}

View File

@@ -195,6 +195,9 @@ func TestStartWatch(t *testing.T) {
},
{
event: &v1.Event{Reason: EventReasonCompleted},
},
{
event: &v1.Event{Reason: EventReasonStopped},
delay: time.Second,
},
},
@@ -214,6 +217,9 @@ func TestStartWatch(t *testing.T) {
{
event: &v1.Event{Reason: EventReasonCompleted},
},
{
event: &v1.Event{Reason: EventReasonStopped},
},
},
expectStartEvent: true,
expectTerminateEvent: true,
@@ -231,6 +237,9 @@ func TestStartWatch(t *testing.T) {
{
event: &v1.Event{Reason: EventReasonCompleted},
},
{
event: &v1.Event{Reason: EventReasonStopped},
},
},
redirectLogErr: errors.New("fake-error"),
expectStartEvent: true,
@@ -269,7 +278,10 @@ func TestStartWatch(t *testing.T) {
insertEventsAfter: []insertEvent{
{
event: &v1.Event{Reason: EventReasonCompleted},
after: time.Second,
},
{
event: &v1.Event{Reason: EventReasonStopped},
delay: time.Second,
},
},
expectStartEvent: true,
@@ -293,6 +305,9 @@ func TestStartWatch(t *testing.T) {
},
{
event: &v1.Event{Reason: EventReasonCompleted},
},
{
event: &v1.Event{Reason: EventReasonStopped},
delay: time.Second,
},
},
@@ -313,6 +328,9 @@ func TestStartWatch(t *testing.T) {
{
event: &v1.Event{Reason: EventReasonCancelled},
},
{
event: &v1.Event{Reason: EventReasonStopped},
},
},
terminationMessage: "fake-termination-message-1",
expectStartEvent: true,
@@ -339,6 +357,9 @@ func TestStartWatch(t *testing.T) {
{
event: &v1.Event{Reason: EventReasonCancelled},
},
{
event: &v1.Event{Reason: EventReasonStopped},
},
},
terminationMessage: ErrCancelled,
expectStartEvent: true,