diff --git a/datachecker-check/src/main/java/org/opengauss/datachecker/check/config/RuleConfig.java b/datachecker-check/src/main/java/org/opengauss/datachecker/check/config/RuleConfig.java index d041b47e1cd1dc70028b5c2f7ce971c02a59458a..afa2914290116ecf27a0b82cf4d892b97437e3b0 100644 --- a/datachecker-check/src/main/java/org/opengauss/datachecker/check/config/RuleConfig.java +++ b/datachecker-check/src/main/java/org/opengauss/datachecker/check/config/RuleConfig.java @@ -40,6 +40,7 @@ import java.util.Map; @ConfigurationProperties(prefix = "rules", ignoreInvalidFields = true) public class RuleConfig { private boolean enable; + private String whiteList; @TableRule private List table; @RowRule diff --git a/datachecker-check/src/main/java/org/opengauss/datachecker/check/modules/rule/RuleParser.java b/datachecker-check/src/main/java/org/opengauss/datachecker/check/modules/rule/RuleParser.java index bc008f560130ae12d97b02283fdb3665f36f57ac..f2b60f6e5d82736091f7ac3ccecad1bb46c41ade 100644 --- a/datachecker-check/src/main/java/org/opengauss/datachecker/check/modules/rule/RuleParser.java +++ b/datachecker-check/src/main/java/org/opengauss/datachecker/check/modules/rule/RuleParser.java @@ -21,6 +21,7 @@ import org.opengauss.datachecker.common.entry.common.Rule; import org.opengauss.datachecker.common.entry.enums.RuleType; import org.springframework.util.Assert; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -43,6 +44,7 @@ public class RuleParser { Assert.notNull(config, "the rule config cannot be empty"); if (config.isEnable()) { Map> rules = new HashMap<>(); + parseWhiteRules(rules, config.getWhiteList()); parseTableRules(rules, config.getTable()); parseRowRules(rules, config.getRow()); parseColumnRules(rules, config.getColumn()); @@ -51,6 +53,18 @@ public class RuleParser { return new HashMap<>(); } + private void parseWhiteRules(Map> rules, String white) { + String[] tables = white.split(","); + List whiteRuleConfig = new ArrayList<>(); + for (String table : tables) { + Rule rule = new Rule(); + rule.setName("white"); + rule.setText(table); + whiteRuleConfig.add(rule); + } + putRules(rules, RuleType.WHITE, whiteRuleConfig); + } + private void parseTableRules(Map> rules, List tableRuleConfig) { putRules(rules, RuleType.TABLE, tableRuleConfig); } diff --git a/datachecker-common/src/main/java/org/opengauss/datachecker/common/entry/enums/RuleType.java b/datachecker-common/src/main/java/org/opengauss/datachecker/common/entry/enums/RuleType.java index 6eb57de7b4d377d9d675b5da1753378c0949e35c..38e3804a57160a73cd0220b3989d6f22397c4399 100644 --- a/datachecker-common/src/main/java/org/opengauss/datachecker/common/entry/enums/RuleType.java +++ b/datachecker-common/src/main/java/org/opengauss/datachecker/common/entry/enums/RuleType.java @@ -11,6 +11,10 @@ import lombok.Getter; */ @Getter public enum RuleType implements IEnum { + /** + * white + */ + WHITE("white"), /** * table */ @@ -34,6 +38,6 @@ public enum RuleType implements IEnum { /** * DataSourceType api description */ - public static final String API_DESCRIPTION = "RuleType [TABLE ,ROW, COLUMN]"; + public static final String API_DESCRIPTION = "RuleType [WHITE, TABLE ,ROW, COLUMN]"; } diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/service/RuleAdapterService.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/service/RuleAdapterService.java index 72b6c7e52d6e2f7b677dbddb72481cde4faac50a..dfc587cd3aa425a32be9788b7dc707fea739533d 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/service/RuleAdapterService.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/service/RuleAdapterService.java @@ -64,7 +64,7 @@ public class RuleAdapterService { * @param tableList tableList */ public List executeTableRule(List tableList) { - final List rules = RULES.get(RuleType.TABLE); + final List rules = RULES.get(RuleType.WHITE); if (CollectionUtils.isEmpty(rules)) { return tableList; } @@ -79,7 +79,7 @@ public class RuleAdapterService { * @return filter result */ public boolean filterTableByRule(String tableName) { - return tableRuleAdapterService.executeTableRule(RULES.get(RuleType.TABLE), tableName); + return tableRuleAdapterService.executeTableRule(RULES.get(RuleType.WHITE), tableName); } /**