From 839077c71474a07895730b8c7f9a731fac68f537 Mon Sep 17 00:00:00 2001 From: Cheng Wang <107727158+chengw-netflix@users.noreply.github.com> Date: Thu, 25 Apr 2024 15:26:15 -0700 Subject: [PATCH] send notification for verified backups (#1090) --- .../priam/resources/BackupServletV2.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/priam/src/main/java/com/netflix/priam/resources/BackupServletV2.java b/priam/src/main/java/com/netflix/priam/resources/BackupServletV2.java index 5d2b6a4f6..9ac66639e 100644 --- a/priam/src/main/java/com/netflix/priam/resources/BackupServletV2.java +++ b/priam/src/main/java/com/netflix/priam/resources/BackupServletV2.java @@ -23,6 +23,7 @@ import com.netflix.priam.backupv2.IMetaProxy; import com.netflix.priam.backupv2.SnapshotMetaTask; import com.netflix.priam.config.IConfiguration; +import com.netflix.priam.notification.BackupNotificationMgr; import com.netflix.priam.utils.DateUtil; import com.netflix.priam.utils.DateUtil.DateRange; import com.netflix.priam.utils.GsonJsonSerializer; @@ -53,6 +54,7 @@ public class BackupServletV2 { private final IMetaProxy metaProxy; private final Provider pathProvider; private final BackupV2Service backupService; + private final BackupNotificationMgr backupNotificationMgr; private static final String REST_SUCCESS = "[\"ok\"]"; @Inject @@ -65,7 +67,8 @@ public BackupServletV2( IBackupFileSystem fileSystem, @Named("v2") IMetaProxy metaV2Proxy, Provider pathProvider, - BackupV2Service backupService) { + BackupV2Service backupService, + BackupNotificationMgr backupNotificationMgr) { this.backupStatusMgr = backupStatusMgr; this.backupVerification = backupVerification; this.snapshotMetaService = snapshotMetaService; @@ -74,6 +77,7 @@ public BackupServletV2( this.metaProxy = metaV2Proxy; this.pathProvider = pathProvider; this.backupService = backupService; + this.backupNotificationMgr = backupNotificationMgr; } @GET @@ -131,6 +135,17 @@ public Response validateV2SnapshotByDate( .build(); } + // Send notification for any verified backups. This is useful in one-off backup consumption + // by downward dependencies. + // Side-effect: It may send notification for already verified snapshot i.e. duplicate + // message may be sent. + logger.info( + "Sending {} message for backup: {}", + AbstractBackupPath.BackupFileType.SNAPSHOT_VERIFIED, + result.get().remotePath); + + backupNotificationMgr.notify(result.get().remotePath, result.get().snapshotInstant); + return Response.ok(result.get().toString()).build(); }