This is an automated email from the ASF dual-hosted git repository.

gongchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/master by this push:
     new fa4a3fd9e [imporve] add template i18n map verify (#2345)
fa4a3fd9e is described below

commit fa4a3fd9e1b95c52b939b0e2dd6274452af4ff8e
Author: kangli <[email protected]>
AuthorDate: Wed Jul 24 23:20:44 2024 +0800

    [imporve] add template i18n map verify (#2345)
    
    Co-authored-by: tomsun28 <[email protected]>
---
 .../java/org/apache/hertzbeat/common/util/CommonUtil.java | 13 +++++++++++++
 .../hertzbeat/manager/service/impl/AppServiceImpl.java    | 15 +++++++++++++++
 2 files changed, 28 insertions(+)

diff --git 
a/common/src/main/java/org/apache/hertzbeat/common/util/CommonUtil.java 
b/common/src/main/java/org/apache/hertzbeat/common/util/CommonUtil.java
index 47ce83f7f..a84206f38 100644
--- a/common/src/main/java/org/apache/hertzbeat/common/util/CommonUtil.java
+++ b/common/src/main/java/org/apache/hertzbeat/common/util/CommonUtil.java
@@ -210,4 +210,17 @@ public final class CommonUtil {
                         .findFirst().orElse(null));
     }
 
+    public static void validDefineI18n(Map<String, String> i18nMap, String 
field) {
+        if (i18nMap == null || i18nMap.isEmpty()) {
+            return;
+        }
+        for (Map.Entry<String, String> entry : i18nMap.entrySet()) {
+            String value = entry.getValue();
+            String lang = entry.getKey();
+            if (StringUtils.isBlank(value)) {
+                throw new IllegalArgumentException("monitoring template " + 
field + " " + lang + " value can not blank");
+            }
+        }
+    }
+
 }
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
index aaa05e611..2dc04c53e 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
@@ -397,6 +397,21 @@ public class AppServiceImpl implements AppService, 
CommandLineRunner {
         Assert.notEmpty(app.getMetrics(), "monitoring template require 
attributes metrics");
         var hasAvailableMetrics = app.getMetrics().stream().anyMatch(item -> 
item.getPriority() == 0);
         Assert.isTrue(hasAvailableMetrics, "monitoring template metrics list 
must have one priority 0 metrics");
+        CommonUtil.validDefineI18n(app.getName(), "name");
+        CommonUtil.validDefineI18n(app.getHelp(), "help");
+        CommonUtil.validDefineI18n(app.getHelpLink(), "helpLink");
+        for (ParamDefine param : app.getParams()) {
+            CommonUtil.validDefineI18n(param.getName(),  param.getField() + " 
param");
+        }
+        for (Metrics metric : app.getMetrics()) {
+            CommonUtil.validDefineI18n(metric.getI18n(), metric.getName() + " 
metric");
+            if (metric.getFields() == null){
+                continue;
+            }
+            for (Metrics.Field field : metric.getFields()) {
+                CommonUtil.validDefineI18n(field.getI18n(), metric.getName() + 
" metric " + field.getField() + " field");
+            }
+        }
         if (!isModify) {
             Assert.isNull(appDefines.get(app.getApp().toLowerCase()),
                     "monitoring template name " + app.getApp() + " already 
exists.");


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to