ilm: Send delete marker creation event when appropriate (#10696)

Before this commit, the crawler ILM will always send object delete event
notification though this is wrong.
master
Anis Elleuch 4 years ago committed by GitHub
parent 0b53e30ecb
commit 284a2b9021
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      cmd/bucket-handlers.go
  2. 7
      cmd/data-crawler.go
  3. 18
      cmd/object-handlers-common.go

@ -487,19 +487,21 @@ func (api objectAPIHandlers) DeleteMultipleObjectsHandler(w http.ResponseWriter,
// Notify deleted event for objects. // Notify deleted event for objects.
for _, dobj := range deletedObjects { for _, dobj := range deletedObjects {
eventName := event.ObjectRemovedDelete
objInfo := ObjectInfo{ objInfo := ObjectInfo{
Name: dobj.ObjectName, Name: dobj.ObjectName,
VersionID: dobj.VersionID, VersionID: dobj.VersionID,
} }
if dobj.DeleteMarker { if dobj.DeleteMarker {
objInfo = ObjectInfo{ objInfo.DeleteMarker = dobj.DeleteMarker
Name: dobj.ObjectName, objInfo.VersionID = dobj.DeleteMarkerVersionID
DeleteMarker: dobj.DeleteMarker, eventName = event.ObjectRemovedDeleteMarkerCreated
VersionID: dobj.DeleteMarkerVersionID,
}
} }
sendEvent(eventArgs{ sendEvent(eventArgs{
EventName: event.ObjectRemovedDelete, EventName: eventName,
BucketName: bucket, BucketName: bucket,
Object: objInfo, Object: objInfo,
ReqParams: extractReqParams(r), ReqParams: extractReqParams(r),

@ -747,9 +747,14 @@ func (i *crawlItem) applyActions(ctx context.Context, o ObjectLayer, meta action
return size return size
} }
eventName := event.ObjectRemovedDelete
if obj.DeleteMarker {
eventName = event.ObjectRemovedDeleteMarkerCreated
}
// Notify object deleted event. // Notify object deleted event.
sendEvent(eventArgs{ sendEvent(eventArgs{
EventName: event.ObjectRemovedDelete, EventName: eventName,
BucketName: i.bucket, BucketName: i.bucket,
Object: obj, Object: obj,
Host: "Internal: [ILM-EXPIRY]", Host: "Internal: [ILM-EXPIRY]",

@ -291,22 +291,13 @@ func deleteObject(ctx context.Context, obj ObjectLayer, cache CacheObjectLayer,
// Proceed to delete the object. // Proceed to delete the object.
objInfo, err = deleteObject(ctx, bucket, object, opts) objInfo, err = deleteObject(ctx, bucket, object, opts)
if objInfo.Name != "" { if objInfo.Name != "" {
// Requesting only a delete marker which was successfully attempted. eventName := event.ObjectRemovedDelete
if objInfo.DeleteMarker { if objInfo.DeleteMarker {
eventName = event.ObjectRemovedDeleteMarkerCreated
}
// Notify object deleted marker event. // Notify object deleted marker event.
sendEvent(eventArgs{ sendEvent(eventArgs{
EventName: event.ObjectRemovedDeleteMarkerCreated, EventName: eventName,
BucketName: bucket,
Object: objInfo,
ReqParams: extractReqParams(r),
RespElements: extractRespElements(w),
UserAgent: r.UserAgent(),
Host: handlers.GetSourceIP(r),
})
} else {
// Notify object deleted event.
sendEvent(eventArgs{
EventName: event.ObjectRemovedDelete,
BucketName: bucket, BucketName: bucket,
Object: objInfo, Object: objInfo,
ReqParams: extractReqParams(r), ReqParams: extractReqParams(r),
@ -315,6 +306,5 @@ func deleteObject(ctx context.Context, obj ObjectLayer, cache CacheObjectLayer,
Host: handlers.GetSourceIP(r), Host: handlers.GetSourceIP(r),
}) })
} }
}
return objInfo, err return objInfo, err
} }

Loading…
Cancel
Save