in ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/service/impl/AppMonitorServiceImpl.java [975:1073]
public void modifyAppAndAlarm(HeraAppInfoModifyMessage baseInfoModify) {
/**
* appMonitor 信息同步变更
*/
List<AppMonitor> appMonitors = appMonitorDao.listAppsByBaseInfoId(baseInfoModify.getId());
if (!CollectionUtils.isEmpty(appMonitors)) {
appMonitors.forEach(t -> {
t.setAppSource(baseInfoModify.getPlatformType());
t.setProjectId(baseInfoModify.getAppId());
t.setIamTreeId(baseInfoModify.getIamTreeId());
t.setIamTreeType(baseInfoModify.getIamTreeType());
t.setProjectName(baseInfoModify.getAppName());
appMonitorDao.update(t);
});
}
/**
* appName变更,报警策略和报警规则同步变更
*/
if (baseInfoModify.getIsNameChange()) {
AlarmStrategy strategy = new AlarmStrategy();
strategy.setAppId(baseInfoModify.getAppId());
strategy.setIamId(baseInfoModify.getIamTreeId());
if (!appMonitorServiceExtension.checkAppModifyStrategySearchCondition(baseInfoModify)) {
return;
}
PageData<List<AlarmStrategyInfo>> listPageData = strategyDao.searchByCondNoUser(strategy, 1, 1000, null,
null);
List<AlarmStrategyInfo> list = listPageData.getList();
if (!CollectionUtils.isEmpty(list)) {
list.forEach(t -> {
List<AppAlarmRule> rules = ruleDao.selectByStrategyId(t.getId());
for (AppAlarmRule rule : rules) {
AppMonitor app = new AppMonitor();
app.setProjectId(baseInfoModify.getAppId());
app.setProjectName(baseInfoModify.getAppName());
AlarmRuleData ruleData = new AlarmRuleData();
BeanUtils.copyProperties(rule, ruleData);
ruleData.setLabels(rule.getLabels());
ruleData.convertLabels();
ruleData.setIncludeEnvs(t.getIncludeEnvs());
ruleData.setExceptEnvs(t.getExceptEnvs());
ruleData.setIncludeZones(t.getIncludeZones());
ruleData.setExceptZones(t.getExceptZones());
ruleData.setIncludeContainerName(t.getIncludeContainerName());
ruleData.setExceptContainerName(t.getExceptContainerName());
ruleData.setAlertMembers(t.getAlertMembers());
ruleData.setAtMembers(t.getAtMembers());
if (!CollectionUtils.isEmpty(t.getIncludeFunctions())) {
ruleData.setIncludeFunctions(
t.getIncludeFunctions().stream().map(String::valueOf).collect(Collectors.toList()));
}
if (!CollectionUtils.isEmpty(t.getExceptFunctions())) {
ruleData.setExceptFunctions(
t.getExceptFunctions().stream().map(String::valueOf).collect(Collectors.toList()));
}
ruleData.setIncludeModules(t.getIncludeModules());
ruleData.setExceptModules(t.getExceptModules());
Result result = alarmService.editRule(rule, ruleData, app, rule.getCreater());
if (!result.isSuccess()) {
log.error("heraAppInfoModify fail! rule : {} , result : {}", rule.toString(),
new Gson().toJson(result));
continue;
}
int i = ruleDao.updateByIdSelective(rule);
if (i < 1) {
log.error("heraAppInfoModify update rule db fail! rule{}", rule.toString());
}
}
AlarmStrategy strategyUp = new AlarmStrategy();
strategyUp.setId(t.getId());
strategyUp.setAppId(baseInfoModify.getAppId());
strategyUp.setAppName(baseInfoModify.getAppName());
strategyUp.setIamId(baseInfoModify.getIamTreeId());
boolean b = strategyDao.updateById(strategyUp);
if (!b) {
log.error("heraAppInfoModify update strategy fail! old:{},new:{}", t.toString(),
strategyUp.toString());
}
});
}
}
}