Skip to content

Commit 98c9760

Browse files
authored
[#12371] add history grayname & fix rollback type-tags-desc miss (#12947)
* fix type search on mysql model * add column gray name into his_config_info * check style and pmd fix * add colomn for mapper * fix rollback history type miss * testcase * testcase
1 parent 08fac16 commit 98c9760

File tree

31 files changed

+440
-1374
lines changed

31 files changed

+440
-1374
lines changed

config/src/main/java/com/alibaba/nacos/config/server/model/ConfigHistoryInfo.java

+10
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ public class ConfigHistoryInfo implements Serializable {
6060

6161
private String publishType;
6262

63+
private String grayName;
64+
6365
private String extInfo;
6466

6567
private Timestamp createdTime;
@@ -172,6 +174,14 @@ public void setLastModifiedTime(Timestamp lastModifiedTime) {
172174
this.lastModifiedTime = new Timestamp(lastModifiedTime.getTime());
173175
}
174176

177+
public String getGrayName() {
178+
return grayName;
179+
}
180+
181+
public void setGrayName(String grayName) {
182+
this.grayName = grayName;
183+
}
184+
175185
public String getAppName() {
176186
return appName;
177187
}

config/src/main/java/com/alibaba/nacos/config/server/model/ConfigInfoAggr.java

-157
This file was deleted.

config/src/main/java/com/alibaba/nacos/config/server/service/repository/ConfigRowMapperInjector.java

+2
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,7 @@ public ConfigHistoryInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
550550
configHistoryInfo.setSrcUser(rs.getString("src_user"));
551551
configHistoryInfo.setOpType(rs.getString("op_type"));
552552
configHistoryInfo.setPublishType(rs.getString("publish_type"));
553+
configHistoryInfo.setGrayName(rs.getString("gray_name"));
553554
configHistoryInfo.setExtInfo(rs.getString("ext_info"));
554555
configHistoryInfo.setCreatedTime(rs.getTimestamp("gmt_create"));
555556
configHistoryInfo.setLastModifiedTime(rs.getTimestamp("gmt_modified"));
@@ -573,6 +574,7 @@ public ConfigHistoryInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
573574
configHistoryInfo.setSrcIp(rs.getString("src_ip"));
574575
configHistoryInfo.setOpType(rs.getString("op_type"));
575576
configHistoryInfo.setPublishType(rs.getString("publish_type"));
577+
configHistoryInfo.setGrayName(rs.getString("gray_name"));
576578
configHistoryInfo.setExtInfo(rs.getString("ext_info"));
577579
configHistoryInfo.setCreatedTime(rs.getTimestamp("gmt_create"));
578580
configHistoryInfo.setLastModifiedTime(rs.getTimestamp("gmt_modified"));

config/src/main/java/com/alibaba/nacos/config/server/service/repository/HistoryConfigInfoPersistService.java

+12-10
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,18 @@ public interface HistoryConfigInfoPersistService {
4545
/**
4646
* Update change records; database atomic operations, minimal sql actions, no business encapsulation.
4747
*
48-
* @param id id
49-
* @param configInfo config info
50-
* @param srcIp ip
51-
* @param srcUser user
52-
* @param time time
53-
* @param ops ops type
54-
* @param publishType publish type
55-
* @param extInfo extra config info
48+
* @param id id
49+
* @param configInfo config info
50+
* @param srcIp ip
51+
* @param srcUser user
52+
* @param time time
53+
* @param ops ops type
54+
* @param publishType publish type
55+
* @param grayName gray name
56+
* @param extInfo extra config info
5657
*/
5758
void insertConfigHistoryAtomic(long id, ConfigInfo configInfo, String srcIp, String srcUser, final Timestamp time,
58-
String ops, String publishType, String extInfo);
59+
String ops, String publishType, String grayName, String extInfo);
5960
//------------------------------------------delete---------------------------------------------//
6061

6162
/**
@@ -77,7 +78,8 @@ void insertConfigHistoryAtomic(long id, ConfigInfo configInfo, String srcIp, Str
7778
* @param publishType publish type
7879
* @return {@link ConfigInfoStateWrapper} list
7980
*/
80-
List<ConfigInfoStateWrapper> findDeletedConfig(final Timestamp startTime, final long startId, int size, String publishType);
81+
List<ConfigInfoStateWrapper> findDeletedConfig(final Timestamp startTime, final long startId, int size,
82+
String publishType);
8183

8284
/**
8385
* List configuration history change record.

config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedConfigInfoGrayPersistServiceImpl.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,8 @@ public ConfigOperateResult addConfigInfo4Gray(ConfigInfo configInfo, String gray
150150

151151
Timestamp now = new Timestamp(System.currentTimeMillis());
152152
historyConfigInfoPersistService.insertConfigHistoryAtomic(hisId, configInfo, srcIp, srcUser, now, "I",
153-
Constants.GRAY, ConfigExtInfoUtil.getExtInfoFromGrayInfo(grayNameTmp, grayRuleTmp, srcUser));
153+
Constants.GRAY, grayNameTmp,
154+
ConfigExtInfoUtil.getExtInfoFromGrayInfo(grayNameTmp, grayRuleTmp, srcUser));
154155

155156
EmbeddedStorageContextUtils.onModifyConfigGrayInfo(configInfo, grayNameTmp, grayRuleTmp, srcIp, now);
156157
databaseOperate.blockUpdate();
@@ -226,7 +227,7 @@ public void removeConfigInfoGray(final String dataId, final String group, final
226227

227228
Timestamp now = new Timestamp(System.currentTimeMillis());
228229
historyConfigInfoPersistService.insertConfigHistoryAtomic(oldConfigAllInfo4Gray.getId(), oldConfigAllInfo4Gray,
229-
srcIp, srcUser, now, "D", Constants.GRAY,
230+
srcIp, srcUser, now, "D", Constants.GRAY, grayNameTmp,
230231
ConfigExtInfoUtil.getExtInfoFromGrayInfo(oldConfigAllInfo4Gray.getGrayName(),
231232
oldConfigAllInfo4Gray.getGrayRule(), oldConfigAllInfo4Gray.getSrcUser()));
232233

@@ -272,7 +273,7 @@ public ConfigOperateResult updateConfigInfo4Gray(ConfigInfo configInfo, String g
272273

273274
Timestamp now = new Timestamp(System.currentTimeMillis());
274275
historyConfigInfoPersistService.insertConfigHistoryAtomic(oldConfigAllInfo4Gray.getId(),
275-
oldConfigAllInfo4Gray, srcIp, srcUser, now, "U", Constants.GRAY,
276+
oldConfigAllInfo4Gray, srcIp, srcUser, now, "U", Constants.GRAY, grayNameTmp,
276277
ConfigExtInfoUtil.getExtInfoFromGrayInfo(oldConfigAllInfo4Gray.getGrayName(),
277278
oldConfigAllInfo4Gray.getGrayRule(), oldConfigAllInfo4Gray.getSrcUser()));
278279

@@ -331,7 +332,7 @@ public ConfigOperateResult updateConfigInfo4GrayCas(ConfigInfo configInfo, Strin
331332

332333
Timestamp now = new Timestamp(System.currentTimeMillis());
333334
historyConfigInfoPersistService.insertConfigHistoryAtomic(oldConfigAllInfo4Gray.getId(),
334-
oldConfigAllInfo4Gray, srcIp, srcUser, now, "U", Constants.GRAY,
335+
oldConfigAllInfo4Gray, srcIp, srcUser, now, "U", Constants.GRAY, grayNameTmp,
335336
ConfigExtInfoUtil.getExtInfoFromGrayInfo(oldConfigAllInfo4Gray.getGrayName(),
336337
oldConfigAllInfo4Gray.getGrayRule(), oldConfigAllInfo4Gray.getSrcUser()));
337338

config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedConfigInfoPersistServiceImpl.java

+28-22
Original file line numberDiff line numberDiff line change
@@ -219,10 +219,11 @@ private ConfigOperateResult addConfigInfo(final String srcIp, final String srcUs
219219

220220
addConfigTagsRelation(configId, configTags, configInfo.getDataId(), configInfo.getGroup(),
221221
configInfo.getTenant());
222-
222+
223223
Timestamp now = new Timestamp(System.currentTimeMillis());
224224
historyConfigInfoPersistService.insertConfigHistoryAtomic(hisId, configInfo, srcIp, srcUser, now, "I",
225-
Constants.FORMAL, ConfigExtInfoUtil.getExtraInfoFromAdvanceInfoMap(configAdvanceInfo, srcUser));
225+
Constants.FORMAL, null,
226+
ConfigExtInfoUtil.getExtraInfoFromAdvanceInfoMap(configAdvanceInfo, srcUser));
226227

227228
EmbeddedStorageContextUtils.onModifyConfigInfo(configInfo, srcIp, now);
228229
databaseOperate.blockUpdate(consumer);
@@ -273,9 +274,9 @@ public long addConfigInfoAtomic(final long id, final String srcIp, final String
273274

274275
final String sql = configInfoMapper.insert(
275276
Arrays.asList("id", "data_id", "group_id", "tenant_id", "app_name", "content", "md5", "src_ip",
276-
"src_user", "gmt_create@NOW()", "gmt_modified@NOW()", "c_desc", "c_use", "effect",
277-
"type", "c_schema", "encrypted_data_key"));
278-
final Object[] args = new Object[]{id, configInfo.getDataId(), configInfo.getGroup(), tenantTmp, appNameTmp,
277+
"src_user", "gmt_create@NOW()", "gmt_modified@NOW()", "c_desc", "c_use", "effect", "type",
278+
"c_schema", "encrypted_data_key"));
279+
final Object[] args = new Object[] {id, configInfo.getDataId(), configInfo.getGroup(), tenantTmp, appNameTmp,
279280
configInfo.getContent(), md5Tmp, srcIp, srcUser, desc, use, effect, type, schema, encryptedDataKey};
280281
EmbeddedStorageContextHolder.addSqlContext(sql, args);
281282
return id;
@@ -411,8 +412,9 @@ public void removeConfigInfo(final String dataId, final String group, final Stri
411412

412413
removeConfigInfoAtomic(dataId, group, tenantTmp, srcIp, srcUser);
413414
removeTagByIdAtomic(oldConfigAllInfo.getId());
414-
historyConfigInfoPersistService.insertConfigHistoryAtomic(oldConfigAllInfo.getId(), oldConfigAllInfo, srcIp,
415-
srcUser, time, "D", Constants.FORMAL, ConfigExtInfoUtil.getExtInfoFromAllInfo(oldConfigAllInfo));
415+
historyConfigInfoPersistService.insertConfigHistoryAtomic(oldConfigAllInfo.getId(), oldConfigAllInfo,
416+
srcIp, srcUser, time, "D", Constants.FORMAL, null,
417+
ConfigExtInfoUtil.getExtInfoFromAllInfo(oldConfigAllInfo));
416418

417419
EmbeddedStorageContextUtils.onDeleteConfigInfo(tenantTmp, group, dataId, srcIp, time);
418420

@@ -441,7 +443,7 @@ public List<ConfigAllInfo> removeConfigInfoByIds(final List<Long> ids, final Str
441443
for (ConfigAllInfo configAllInfo : oldConfigAllInfoList) {
442444
removeTagByIdAtomic(configAllInfo.getId());
443445
historyConfigInfoPersistService.insertConfigHistoryAtomic(configAllInfo.getId(), configAllInfo,
444-
srcIp, srcUser, time, "D", Constants.FORMAL,
446+
srcIp, srcUser, time, "D", Constants.FORMAL, null,
445447
ConfigExtInfoUtil.getExtInfoFromAllInfo(configAllInfo));
446448
}
447449
}
@@ -529,13 +531,14 @@ public ConfigOperateResult updateConfigInfo(final ConfigInfo configInfo, final S
529531
if (configTags != null) {
530532
// Delete all tags and recreate them
531533
removeTagByIdAtomic(oldConfigAllInfo.getId());
532-
addConfigTagsRelation(oldConfigAllInfo.getId(), configTags, configInfo.getDataId(), configInfo.getGroup(),
533-
configInfo.getTenant());
534+
addConfigTagsRelation(oldConfigAllInfo.getId(), configTags, configInfo.getDataId(),
535+
configInfo.getGroup(), configInfo.getTenant());
534536
}
535537

536538
Timestamp time = new Timestamp(System.currentTimeMillis());
537539
historyConfigInfoPersistService.insertConfigHistoryAtomic(oldConfigAllInfo.getId(), oldConfigAllInfo, srcIp,
538-
srcUser, time, "U", Constants.FORMAL, ConfigExtInfoUtil.getExtInfoFromAllInfo(oldConfigAllInfo));
540+
srcUser, time, "U", Constants.FORMAL, null,
541+
ConfigExtInfoUtil.getExtInfoFromAllInfo(oldConfigAllInfo));
539542
EmbeddedStorageContextUtils.onModifyConfigInfo(configInfo, srcIp, time);
540543
databaseOperate.blockUpdate();
541544
return getConfigInfoOperateResult(configInfo.getDataId(), configInfo.getGroup(), tenantTmp);
@@ -575,13 +578,14 @@ public ConfigOperateResult updateConfigInfoCas(final ConfigInfo configInfo, fina
575578
if (configTags != null) {
576579
// Delete all tags and recreate them
577580
removeTagByIdAtomic(oldConfigAllInfo.getId());
578-
addConfigTagsRelation(oldConfigAllInfo.getId(), configTags, configInfo.getDataId(), configInfo.getGroup(),
579-
configInfo.getTenant());
581+
addConfigTagsRelation(oldConfigAllInfo.getId(), configTags, configInfo.getDataId(),
582+
configInfo.getGroup(), configInfo.getTenant());
580583
}
581584

582585
Timestamp time = new Timestamp(System.currentTimeMillis());
583586
historyConfigInfoPersistService.insertConfigHistoryAtomic(oldConfigAllInfo.getId(), oldConfigAllInfo, srcIp,
584-
srcUser, time, "U", Constants.FORMAL, ConfigExtInfoUtil.getExtInfoFromAllInfo(oldConfigAllInfo));
587+
srcUser, time, "U", Constants.FORMAL, null,
588+
ConfigExtInfoUtil.getExtInfoFromAllInfo(oldConfigAllInfo));
585589
EmbeddedStorageContextUtils.onModifyConfigInfo(configInfo, srcIp, time);
586590
boolean success = databaseOperate.blockUpdate();
587591
if (success) {
@@ -626,7 +630,8 @@ private ConfigOperateResult updateConfigInfoAtomicCas(final ConfigInfo configInf
626630
context.putWhereParameter(FieldConstant.MD5, configInfo.getMd5());
627631
MapperResult mapperResult = configInfoMapper.updateConfigInfoAtomicCas(context);
628632

629-
EmbeddedStorageContextHolder.addSqlContext(Boolean.TRUE, mapperResult.getSql(), mapperResult.getParamList().toArray());
633+
EmbeddedStorageContextHolder.addSqlContext(Boolean.TRUE, mapperResult.getSql(),
634+
mapperResult.getParamList().toArray());
630635
return getConfigInfoOperateResult(configInfo.getDataId(), configInfo.getGroup(), tenantTmp);
631636

632637
}
@@ -648,13 +653,13 @@ public void updateConfigInfoAtomic(final ConfigInfo configInfo, final String src
648653
ConfigInfoMapper configInfoMapper = mapperManager.findMapper(dataSourceService.getDataSourceType(),
649654
TableConstant.CONFIG_INFO);
650655
final String sql = configInfoMapper.update(
651-
Arrays.asList("content", "md5", "src_ip", "src_user", "gmt_modified@NOW()", "app_name",
652-
"c_desc", "c_use", "effect", "type", "c_schema", "encrypted_data_key"),
656+
Arrays.asList("content", "md5", "src_ip", "src_user", "gmt_modified@NOW()", "app_name", "c_desc",
657+
"c_use", "effect", "type", "c_schema", "encrypted_data_key"),
653658
Arrays.asList("data_id", "group_id", "tenant_id"));
654-
655-
final Object[] args = new Object[]{configInfo.getContent(), md5Tmp, srcIp, srcUser, appNameTmp, desc,
656-
use, effect, type, schema, encryptedDataKey, configInfo.getDataId(), configInfo.getGroup(), tenantTmp};
657-
659+
660+
final Object[] args = new Object[] {configInfo.getContent(), md5Tmp, srcIp, srcUser, appNameTmp, desc, use,
661+
effect, type, schema, encryptedDataKey, configInfo.getDataId(), configInfo.getGroup(), tenantTmp};
662+
658663
EmbeddedStorageContextHolder.addSqlContext(sql, args);
659664
}
660665

@@ -820,7 +825,8 @@ public Page<ConfigInfo> findConfigInfoLike4Page(final int pageNo, final int page
820825
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
821826
final String appName = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("appName");
822827
final String content = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("content");
823-
final String types = Optional.ofNullable(configAdvanceInfo).map(e -> (String) e.get(ParametersField.TYPES)).orElse(null);
828+
final String types = Optional.ofNullable(configAdvanceInfo).map(e -> (String) e.get(ParametersField.TYPES))
829+
.orElse(null);
824830
final String configTags = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("config_tags");
825831
MapperResult sqlCountRows;
826832
MapperResult sqlFetchRows;

0 commit comments

Comments
 (0)