From e3598f0a24375f7ff377b50f8da1105d425f5ca9 Mon Sep 17 00:00:00 2001 From: ZhangJian He Date: Wed, 5 Apr 2023 21:09:16 +0800 Subject: [PATCH] add bookkeeper autorecovery dto --- pom.xml | 4 +-- .../github/protocol/bookkeeper/Auditor.java | 13 ++++++++ .../protocol/bookkeeper/AutoRecovery.java | 4 +++ .../protocol/bookkeeper/AutoRecoveryImpl.java | 9 ++++++ .../bookkeeper/AutoRecoveryStatus.java | 13 ++++++++ .../protocol/bookkeeper/BookkeeperAdmin.java | 4 +++ .../bookkeeper/BookkeeperAdminImpl.java | 16 ++++++++++ .../ListUnderReplicatedLedgerReqData.java | 31 +++++++++++++++++++ .../bookkeeper/RecoveryBookieReqData.java | 24 ++++++++++++++ .../bookkeeper/UnderReplicatedLedger.java | 15 +++++++++ .../bookkeeper/AutoRecoveryImplTest.java | 26 ++++++++++++++++ 11 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/github/protocol/bookkeeper/Auditor.java create mode 100644 src/main/java/io/github/protocol/bookkeeper/AutoRecovery.java create mode 100644 src/main/java/io/github/protocol/bookkeeper/AutoRecoveryImpl.java create mode 100644 src/main/java/io/github/protocol/bookkeeper/AutoRecoveryStatus.java create mode 100644 src/main/java/io/github/protocol/bookkeeper/ListUnderReplicatedLedgerReqData.java create mode 100644 src/main/java/io/github/protocol/bookkeeper/RecoveryBookieReqData.java create mode 100644 src/main/java/io/github/protocol/bookkeeper/UnderReplicatedLedger.java create mode 100644 src/test/java/io/github/protocol/bookkeeper/AutoRecoveryImplTest.java diff --git a/pom.xml b/pom.xml index 005cf37..059e7b1 100644 --- a/pom.xml +++ b/pom.xml @@ -23,9 +23,9 @@ 3.2.0 3.4.1 1.18.26 - 10.8.0 + 10.9.3 3.0.0-M6 - 1.13.0 + 2.0.0 3.2.1 4.7.2.0 3.0.0-M9 diff --git a/src/main/java/io/github/protocol/bookkeeper/Auditor.java b/src/main/java/io/github/protocol/bookkeeper/Auditor.java new file mode 100644 index 0000000..623fe6d --- /dev/null +++ b/src/main/java/io/github/protocol/bookkeeper/Auditor.java @@ -0,0 +1,13 @@ +package io.github.protocol.bookkeeper; + +public class Auditor { + private String auditor; + + public String getAuditor() { + return auditor; + } + + public void setAuditor(String auditor) { + this.auditor = auditor; + } +} diff --git a/src/main/java/io/github/protocol/bookkeeper/AutoRecovery.java b/src/main/java/io/github/protocol/bookkeeper/AutoRecovery.java new file mode 100644 index 0000000..e8e1e3f --- /dev/null +++ b/src/main/java/io/github/protocol/bookkeeper/AutoRecovery.java @@ -0,0 +1,4 @@ +package io.github.protocol.bookkeeper; + +public interface AutoRecovery { +} diff --git a/src/main/java/io/github/protocol/bookkeeper/AutoRecoveryImpl.java b/src/main/java/io/github/protocol/bookkeeper/AutoRecoveryImpl.java new file mode 100644 index 0000000..7e14b4e --- /dev/null +++ b/src/main/java/io/github/protocol/bookkeeper/AutoRecoveryImpl.java @@ -0,0 +1,9 @@ +package io.github.protocol.bookkeeper; + +public class AutoRecoveryImpl implements AutoRecovery { + private final InnerHttpClient innerHttpClient; + + public AutoRecoveryImpl(InnerHttpClient innerHttpClient) { + this.innerHttpClient = innerHttpClient; + } +} diff --git a/src/main/java/io/github/protocol/bookkeeper/AutoRecoveryStatus.java b/src/main/java/io/github/protocol/bookkeeper/AutoRecoveryStatus.java new file mode 100644 index 0000000..9ab9282 --- /dev/null +++ b/src/main/java/io/github/protocol/bookkeeper/AutoRecoveryStatus.java @@ -0,0 +1,13 @@ +package io.github.protocol.bookkeeper; + +public class AutoRecoveryStatus { + private boolean enabled; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } +} diff --git a/src/main/java/io/github/protocol/bookkeeper/BookkeeperAdmin.java b/src/main/java/io/github/protocol/bookkeeper/BookkeeperAdmin.java index b0130e0..cc3badb 100644 --- a/src/main/java/io/github/protocol/bookkeeper/BookkeeperAdmin.java +++ b/src/main/java/io/github/protocol/bookkeeper/BookkeeperAdmin.java @@ -5,5 +5,9 @@ static BookkeeperAdminBuilder builder() { return new BookkeeperAdminBuilderImpl(); } + Bookies bookies(); + + AutoRecovery autoRecovery(); + Heartbeat heartbeat(); } diff --git a/src/main/java/io/github/protocol/bookkeeper/BookkeeperAdminImpl.java b/src/main/java/io/github/protocol/bookkeeper/BookkeeperAdminImpl.java index bb9cd22..b80821c 100644 --- a/src/main/java/io/github/protocol/bookkeeper/BookkeeperAdminImpl.java +++ b/src/main/java/io/github/protocol/bookkeeper/BookkeeperAdminImpl.java @@ -1,12 +1,28 @@ package io.github.protocol.bookkeeper; public class BookkeeperAdminImpl implements BookkeeperAdmin { + private final BookiesImpl bookies; + + private final AutoRecovery autoRecovery; + private final Heartbeat heartbeat; BookkeeperAdminImpl(Configuration conf) { InnerHttpClient innerHttpClient = new InnerHttpClient(conf); + this.bookies = new BookiesImpl(innerHttpClient); + this.autoRecovery = new AutoRecoveryImpl(innerHttpClient); this.heartbeat = new HeartbeatImpl(innerHttpClient); } + @Override + public Bookies bookies() { + return bookies; + } + + @Override + public AutoRecovery autoRecovery() { + return autoRecovery; + } + @Override public Heartbeat heartbeat() { return heartbeat; diff --git a/src/main/java/io/github/protocol/bookkeeper/ListUnderReplicatedLedgerReqData.java b/src/main/java/io/github/protocol/bookkeeper/ListUnderReplicatedLedgerReqData.java new file mode 100644 index 0000000..7b185cf --- /dev/null +++ b/src/main/java/io/github/protocol/bookkeeper/ListUnderReplicatedLedgerReqData.java @@ -0,0 +1,31 @@ +package io.github.protocol.bookkeeper; + +public class ListUnderReplicatedLedgerReqData { + private String includingBookieId; + private String excludingBookieId; + private boolean printMissingReplica; + + public String getIncludingBookieId() { + return includingBookieId; + } + + public void setIncludingBookieId(String includingBookieId) { + this.includingBookieId = includingBookieId; + } + + public String getExcludingBookieId() { + return excludingBookieId; + } + + public void setExcludingBookieId(String excludingBookieId) { + this.excludingBookieId = excludingBookieId; + } + + public boolean isPrintMissingReplica() { + return printMissingReplica; + } + + public void setPrintMissingReplica(boolean printMissingReplica) { + this.printMissingReplica = printMissingReplica; + } +} diff --git a/src/main/java/io/github/protocol/bookkeeper/RecoveryBookieReqData.java b/src/main/java/io/github/protocol/bookkeeper/RecoveryBookieReqData.java new file mode 100644 index 0000000..c4d2759 --- /dev/null +++ b/src/main/java/io/github/protocol/bookkeeper/RecoveryBookieReqData.java @@ -0,0 +1,24 @@ +package io.github.protocol.bookkeeper; + +import java.util.List; + +public class RecoveryBookieReqData { + private List bookieSrc; + private boolean deleteCookie; + + public List getBookieSrc() { + return bookieSrc; + } + + public void setBookieSrc(List bookieSrc) { + this.bookieSrc = bookieSrc; + } + + public boolean isDeleteCookie() { + return deleteCookie; + } + + public void setDeleteCookie(boolean deleteCookie) { + this.deleteCookie = deleteCookie; + } +} diff --git a/src/main/java/io/github/protocol/bookkeeper/UnderReplicatedLedger.java b/src/main/java/io/github/protocol/bookkeeper/UnderReplicatedLedger.java new file mode 100644 index 0000000..612c893 --- /dev/null +++ b/src/main/java/io/github/protocol/bookkeeper/UnderReplicatedLedger.java @@ -0,0 +1,15 @@ +package io.github.protocol.bookkeeper; + +import java.util.List; + +public class UnderReplicatedLedger { + private List ledgers; + + public List getLedgers() { + return ledgers; + } + + public void setLedgers(List ledgers) { + this.ledgers = ledgers; + } +} diff --git a/src/test/java/io/github/protocol/bookkeeper/AutoRecoveryImplTest.java b/src/test/java/io/github/protocol/bookkeeper/AutoRecoveryImplTest.java new file mode 100644 index 0000000..8bd0ab0 --- /dev/null +++ b/src/test/java/io/github/protocol/bookkeeper/AutoRecoveryImplTest.java @@ -0,0 +1,26 @@ +package io.github.protocol.bookkeeper; + +import io.github.embedded.bookkeeper.core.EmbeddedBookkeeperServer; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; + +public class AutoRecoveryImplTest { + + private static final EmbeddedBookkeeperServer SERVER = new EmbeddedBookkeeperServer(); + + private static AutoRecoveryImpl autoRecovery = null; + + @BeforeAll + public static void setup() throws Exception { + SERVER.start(); + Configuration conf = new Configuration(); + conf.setHost("localhost"); + conf.setPort(SERVER.getBkWebPort()); + autoRecovery = new AutoRecoveryImpl(new InnerHttpClient(conf)); + } + + @AfterAll + public static void teardown() throws Exception { + SERVER.close(); + } +}