From 3f72132fd8e7851c9f357de94e9fcceca14b8123 Mon Sep 17 00:00:00 2001 From: Kristijan Mitrovic Date: Fri, 3 Jul 2020 18:09:21 +0200 Subject: [PATCH] Use better check if restore is started --- .../src/main/java/bubble/server/BubbleConfiguration.java | 2 +- .../src/main/java/bubble/service/backup/RestoreService.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bubble-server/src/main/java/bubble/server/BubbleConfiguration.java b/bubble-server/src/main/java/bubble/server/BubbleConfiguration.java index 1516827d..e977cd2a 100644 --- a/bubble-server/src/main/java/bubble/server/BubbleConfiguration.java +++ b/bubble-server/src/main/java/bubble/server/BubbleConfiguration.java @@ -307,7 +307,7 @@ public class BubbleConfiguration extends PgRestServerConfiguration {TAG_RESTORE_MODE, thisNetwork == null ? false : thisNetwork.getState().equals(BubbleNetworkState.restoring) - && !restoreService.getRestoreKeys().exists(thisNetwork.getUuid())}, + && !restoreService.isRestoreStarted(thisNetwork.getUuid())}, {TAG_SSL_PORT, getDefaultSslPort()}, {TAG_SUPPORT, getSupport()}, {TAG_SECURITY_LEVELS, DeviceSecurityLevel.values()} diff --git a/bubble-server/src/main/java/bubble/service/backup/RestoreService.java b/bubble-server/src/main/java/bubble/service/backup/RestoreService.java index 1dac81dd..4d44cdd0 100644 --- a/bubble-server/src/main/java/bubble/service/backup/RestoreService.java +++ b/bubble-server/src/main/java/bubble/service/backup/RestoreService.java @@ -35,6 +35,7 @@ import static org.cobbzilla.util.io.FileUtil.*; import static org.cobbzilla.util.json.JsonUtil.json; import static org.cobbzilla.util.security.CryptStream.BUFFER_SIZE; import static org.cobbzilla.wizard.cache.redis.RedisService.EX; +import static org.cobbzilla.wizard.cache.redis.RedisService.LOCK_SUFFIX; @Service @Slf4j public class RestoreService { @@ -64,6 +65,8 @@ public class RestoreService { public boolean isValidRestoreKey(String restoreKey) { return getRestoreKeys().exists(restoreKey); } + public boolean isRestoreStarted(String networkUuid) { return getRestoreKeys().exists(networkUuid + LOCK_SUFFIX); } + public boolean restore(String restoreKey, BubbleBackup backup) { final String thisNodeUuid = configuration.getThisNode().getUuid(); final String thisNetworkUuid = configuration.getThisNode().getNetwork();