From 71d1a46ff33e2eeffc1996320816566cf0c53634 Mon Sep 17 00:00:00 2001 From: moxiaoying <1159230165@qq.com> Date: Sun, 13 Apr 2025 22:34:25 +0800 Subject: [PATCH] fix: fix bk autorecovery request error Signed-off-by: moxiaoying <1159230165@qq.com> --- .../bookkeeper/admin/jdk/AutoRecoveryImpl.java | 5 ++++- .../admin/jdk/RecoveryBookieReqData.java | 15 +++++++-------- .../admin/jdk/AutoRecoveryImplTest.java | 9 +++++++++ 3 files changed, 20 insertions(+), 9 deletions(-) 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();