From 0c60f0e2662afd56ac589393262032248bdd4d4d Mon Sep 17 00:00:00 2001 From: yongjinhou <109586248+yongjinhou@users.noreply.github.com> Date: Wed, 26 Apr 2023 17:54:00 +0800 Subject: [PATCH] fe conf action spec item (#18916) --- .../http-actions/fe/config-action.md | 4 ++- .../http-actions/fe/config-action.md | 4 ++- .../httpv2/controller/ConfigController.java | 25 +++++++++++++------ 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/docs/en/docs/admin-manual/http-actions/fe/config-action.md b/docs/en/docs/admin-manual/http-actions/fe/config-action.md index d1d366257d..908142387d 100644 --- a/docs/en/docs/admin-manual/http-actions/fe/config-action.md +++ b/docs/en/docs/admin-manual/http-actions/fe/config-action.md @@ -42,7 +42,9 @@ None ## Query parameters -None +* `conf_item` + + Optional parameters. Return specified item in FE configuration. ## Request body diff --git a/docs/zh-CN/docs/admin-manual/http-actions/fe/config-action.md b/docs/zh-CN/docs/admin-manual/http-actions/fe/config-action.md index 96897b849a..3c6487cd72 100644 --- a/docs/zh-CN/docs/admin-manual/http-actions/fe/config-action.md +++ b/docs/zh-CN/docs/admin-manual/http-actions/fe/config-action.md @@ -42,7 +42,9 @@ Config Action 用于获取当前 FE 的配置信息 ## Query parameters -无 +* `conf_item` + + 可选参数。返回 FE 的配置信息中的指定项。 ## Request body diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/ConfigController.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/ConfigController.java index a983b81f68..b0769e0d83 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/ConfigController.java +++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/ConfigController.java @@ -20,6 +20,7 @@ package org.apache.doris.httpv2.controller; import org.apache.doris.common.Config; import org.apache.doris.httpv2.entity.ResponseEntityBuilder; +import com.google.common.base.Strings; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.logging.log4j.LogManager; @@ -31,32 +32,42 @@ import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; @RestController @RequestMapping("/rest/v1") public class ConfigController { private static final Logger LOG = LogManager.getLogger(ConfigController.class); private static final List CONFIG_TABLE_HEADER = Lists.newArrayList("Name", "Value"); + private static final String CONF_ITEM = "conf_item"; @RequestMapping(path = "/config/fe", method = RequestMethod.GET) - public Object variable() { + public Object variable(HttpServletRequest request, HttpServletResponse response) { Map result = Maps.newHashMap(); - appendConfigureInfo(result); + String confItem = request.getParameter(CONF_ITEM); + appendConfigureInfo(result, confItem); return ResponseEntityBuilder.ok(result); } - private void appendConfigureInfo(Map result) { - + private void appendConfigureInfo(Map result, String confItem) { result.put("column_names", CONFIG_TABLE_HEADER); List> list = Lists.newArrayList(); result.put("rows", list); try { Map confmap = Config.dump(); - for (String key : confmap.keySet()) { + if (!Strings.isNullOrEmpty(confItem)) { Map info = new HashMap<>(); - info.put("Name", key); - info.put("Value", confmap.get(key)); + info.put("Name", confItem); + info.put("Value", confmap.get(confItem)); list.add(info); + } else { + for (String key : confmap.keySet()) { + Map info = new HashMap<>(); + info.put("Name", key); + info.put("Value", confmap.get(key)); + list.add(info); + } } } catch (Exception e) { LOG.warn("", e);