diff --git a/bookkeeper-admin/src/main/java/io/github/protocol/bookkeeper/admin/jdk/AutoRecoveryImpl.java b/bookkeeper-admin/src/main/java/io/github/protocol/bookkeeper/admin/jdk/AutoRecoveryImpl.java index 79e707a..175e905 100644 --- a/bookkeeper-admin/src/main/java/io/github/protocol/bookkeeper/admin/jdk/AutoRecoveryImpl.java +++ b/bookkeeper-admin/src/main/java/io/github/protocol/bookkeeper/admin/jdk/AutoRecoveryImpl.java @@ -30,7 +30,10 @@ public AutoRecoveryStatus autoRecoveryStatus() throws BookkeeperAdminException { @Override public void recoveryBookie(RecoveryBookieReqData reqData) throws BookkeeperAdminException { try { - innerHttpClient.put(UrlConst.AUTO_RECOVERY, reqData); + HttpResponse resp = innerHttpClient.put(UrlConst.AUTO_RECOVERY_BOOKIE, reqData); + if (resp.statusCode() < 200 || resp.statusCode() >= 300) { + throw new BookkeeperAdminException(resp.bodyAsString()); + } } catch (IOException | InterruptedException | ExecutionException e) { throw new BookkeeperAdminException(e); } diff --git a/bookkeeper-admin/src/main/java/io/github/protocol/bookkeeper/admin/jdk/RecoveryBookieReqData.java b/bookkeeper-admin/src/main/java/io/github/protocol/bookkeeper/admin/jdk/RecoveryBookieReqData.java index 83f15e4..4fa28d5 100644 --- a/bookkeeper-admin/src/main/java/io/github/protocol/bookkeeper/admin/jdk/RecoveryBookieReqData.java +++ b/bookkeeper-admin/src/main/java/io/github/protocol/bookkeeper/admin/jdk/RecoveryBookieReqData.java @@ -1,23 +1,22 @@ package io.github.protocol.bookkeeper.admin.jdk; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; + import java.util.List; +@Getter public class RecoveryBookieReqData { + @JsonProperty("bookie_src") private List bookieSrc; - private boolean deleteCookie; - public List getBookieSrc() { - return bookieSrc; - } + @JsonProperty("delete_cookie") + private boolean deleteCookie; public void setBookieSrc(List bookieSrc) { this.bookieSrc = bookieSrc; } - public boolean isDeleteCookie() { - return deleteCookie; - } - public void setDeleteCookie(boolean deleteCookie) { this.deleteCookie = deleteCookie; } diff --git a/bookkeeper-admin/src/test/java/io/github/protocol/bookkeeper/admin/jdk/AutoRecoveryImplTest.java b/bookkeeper-admin/src/test/java/io/github/protocol/bookkeeper/admin/jdk/AutoRecoveryImplTest.java index d1f85a7..d1d716c 100644 --- a/bookkeeper-admin/src/test/java/io/github/protocol/bookkeeper/admin/jdk/AutoRecoveryImplTest.java +++ b/bookkeeper-admin/src/test/java/io/github/protocol/bookkeeper/admin/jdk/AutoRecoveryImplTest.java @@ -44,6 +44,15 @@ public void testRecoveryBookie() throws BookkeeperAdminException { autoRecovery.recoveryBookie(reqData); } + @Test + public void testRecoveryBookieError() { + RecoveryBookieReqData reqData = new RecoveryBookieReqData(); + // bookie src is required + reqData.setBookieSrc(null); + reqData.setDeleteCookie(false); + Assertions.assertThrows(BookkeeperAdminException.class, () -> autoRecovery.recoveryBookie(reqData)); + } + @Test public void testListUnderReplicatedLedger() { ListUnderReplicatedLedgerReqData reqData = new ListUnderReplicatedLedgerReqData();