aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-11-14 21:21:58 -0800
committerChris Lu <chris.lu@gmail.com>2020-11-14 21:21:58 -0800
commit68043cfcacd4c35e86d063a08bf0de2cfbf5f7ad (patch)
treed46b0aeffb024e145d4abf36575bb409aba316a3
parent0fc9ffc603cd5ceeb7d268ff6bb559f2967573b2 (diff)
downloadseaweedfs-68043cfcacd4c35e86d063a08bf0de2cfbf5f7ad.tar.xz
seaweedfs-68043cfcacd4c35e86d063a08bf0de2cfbf5f7ad.zip
add reference implementation to detect create/update/delete/rename events
-rw-r--r--weed/pb/filer_pb/filer_pb_helper.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/weed/pb/filer_pb/filer_pb_helper.go b/weed/pb/filer_pb/filer_pb_helper.go
index bc0fac36c..75e37ca1b 100644
--- a/weed/pb/filer_pb/filer_pb_helper.go
+++ b/weed/pb/filer_pb/filer_pb_helper.go
@@ -121,3 +121,20 @@ func LookupEntry(client SeaweedFilerClient, request *LookupDirectoryEntryRequest
}
var ErrNotFound = errors.New("filer: no entry is found in filer store")
+
+func IsCreate(event *SubscribeMetadataResponse) bool {
+ return event.EventNotification.NewEntry != nil && event.EventNotification.OldEntry == nil
+}
+func IsUpdate(event *SubscribeMetadataResponse) bool {
+ return event.EventNotification.NewEntry != nil &&
+ event.EventNotification.OldEntry != nil &&
+ event.Directory == event.EventNotification.NewParentPath
+}
+func IsDelete(event *SubscribeMetadataResponse) bool {
+ return event.EventNotification.NewEntry == nil && event.EventNotification.OldEntry != nil
+}
+func IsRename(event *SubscribeMetadataResponse) bool {
+ return event.EventNotification.NewEntry != nil &&
+ event.EventNotification.OldEntry != nil &&
+ event.Directory != event.EventNotification.NewParentPath
+}