diff --git a/cmd/maestro/server/pulse_server.go b/cmd/maestro/server/pulse_server.go index 35214cb0..e49efc06 100644 --- a/cmd/maestro/server/pulse_server.go +++ b/cmd/maestro/server/pulse_server.go @@ -232,9 +232,10 @@ func (s *PulseServer) OnStatusUpdate(ctx context.Context, eventID, resourceID st Meta: api.Meta{ ID: resourceID, }, - Source: statusEvent.ResourceSource, - Type: statusEvent.ResourceType, - Status: statusEvent.Status, + Source: statusEvent.ResourceSource, + Type: statusEvent.ResourceType, + Payload: statusEvent.Payload, + Status: statusEvent.Status, } } else { resource, sErr = s.resourceService.Get(ctx, resourceID) @@ -317,6 +318,7 @@ func handleStatusUpdate(ctx context.Context, resource *api.Resource, resourceSer ResourceID: resource.ID, ResourceSource: resource.Source, ResourceType: resource.Type, + Payload: found.Payload, Status: resource.Status, StatusEventType: api.StatusDeleteEventType, }) diff --git a/pkg/api/status_event.go b/pkg/api/status_event.go index f876abce..3e519ae0 100755 --- a/pkg/api/status_event.go +++ b/pkg/api/status_event.go @@ -19,6 +19,7 @@ type StatusEvent struct { ResourceID string ResourceSource string ResourceType ResourceType + Payload datatypes.JSONMap Status datatypes.JSONMap StatusEventType StatusEventType // Update|Delete ReconciledDate *time.Time `json:"gorm:null"` diff --git a/pkg/db/migrations/202406241426_add_status_events.go b/pkg/db/migrations/202406241426_add_status_events.go index cc165b12..2bc4ef2c 100644 --- a/pkg/db/migrations/202406241426_add_status_events.go +++ b/pkg/db/migrations/202406241426_add_status_events.go @@ -15,6 +15,7 @@ func addStatusEvents() *gormigrate.Migration { ResourceID string `gorm:"index"` // resource id ResourceSource string ResourceType string + Payload datatypes.JSON `gorm:"type:json"` Status datatypes.JSON `gorm:"type:json"` StatusEventType string // Update|Delete, any string ReconciledDate *time.Time `gorm:"null;index"` diff --git a/test/e2e/pkg/sourceclient_test.go b/test/e2e/pkg/sourceclient_test.go index 3a1c9086..2ac2cdad 100644 --- a/test/e2e/pkg/sourceclient_test.go +++ b/test/e2e/pkg/sourceclient_test.go @@ -452,6 +452,10 @@ func AssertWatchResult(result *WatchedResult) error { } if meta.IsStatusConditionTrue(watchedWork.Status.Conditions, common.ManifestsDeleted) && !watchedWork.DeletionTimestamp.IsZero() { + if len(watchedWork.Spec.Workload.Manifests) == 0 { + return fmt.Errorf("expected the deleted work has spec, but failed %v", watchedWork) + } + hasDeletedWork = true } }