use of com.vip.saturn.job.console.mybatis.entity.SystemConfig in project Saturn by vipshop.
the class SystemConfigController method genSystemConfigInfo.
private Map<String, List<SystemConfigVo>> genSystemConfigInfo(Map<String, List<JobConfigMeta>> jobConfigGroups, List<SystemConfig> systemConfigs) {
Map<String, SystemConfig> systemConfigMap = convertList2Map(systemConfigs);
Map<String, List<SystemConfigVo>> jobConfigDisplayInfoMap = Maps.newHashMap();
for (Map.Entry<String, List<JobConfigMeta>> group : jobConfigGroups.entrySet()) {
List<JobConfigMeta> jobConfigMetas = group.getValue();
List<SystemConfigVo> jobConfigVos = Lists.newArrayListWithCapacity(jobConfigMetas.size());
for (JobConfigMeta configMeta : jobConfigMetas) {
SystemConfig systemConfig = systemConfigMap.get(configMeta.getName());
String value = systemConfig != null ? systemConfig.getValue() : null;
jobConfigVos.add(new SystemConfigVo(configMeta.getName(), value, configMeta.getDesc_zh()));
}
jobConfigDisplayInfoMap.put(group.getKey(), jobConfigVos);
}
return jobConfigDisplayInfoMap;
}
use of com.vip.saturn.job.console.mybatis.entity.SystemConfig in project Saturn by vipshop.
the class SystemConfigController method createOrUpdateConfig.
/**
* 创建或者更新配置项。
*
* @param key 配置key
* @param value 配置值
*/
@ApiResponses(value = { @ApiResponse(code = 200, message = "Success/Fail", response = RequestResult.class) })
@Audit
@PostMapping
public SuccessResponseEntity createOrUpdateConfig(@AuditParam(value = "key") @RequestParam String key, @AuditParam(value = "value") @RequestParam String value) throws SaturnJobConsoleException {
assertIsPermitted(Permissions.systemConfig);
SystemConfig systemConfig = new SystemConfig();
systemConfig.setProperty(key);
systemConfig.setValue(value);
systemConfigService.insertOrUpdate(systemConfig);
return new SuccessResponseEntity();
}
use of com.vip.saturn.job.console.mybatis.entity.SystemConfig in project Saturn by vipshop.
the class ConsoleConfigController method genSystemConfigInfo.
/**
* 根据Yaml定义,返回作业配置。
*
* @param jobConfigGroups 来自yaml定义的配置展现分类定义
* @param systemConfigs 数据库的系统配置项
* @return 配置分组与配置信息map
*/
private Map<String, List<SystemConfigVo>> genSystemConfigInfo(Map<String, List<JobConfigMeta>> jobConfigGroups, List<SystemConfig> systemConfigs) {
Map<String, SystemConfig> systemConfigMap = convertList2Map(systemConfigs);
Map<String, List<SystemConfigVo>> jobConfigDisplayInfoMap = Maps.newHashMap();
Set<String> categorizedConfigKeySet = Sets.newHashSet();
for (Map.Entry<String, List<JobConfigMeta>> group : jobConfigGroups.entrySet()) {
List<JobConfigMeta> jobConfigMetas = group.getValue();
List<SystemConfigVo> jobConfigVos = Lists.newArrayListWithCapacity(jobConfigMetas.size());
for (JobConfigMeta configMeta : jobConfigMetas) {
String configName = configMeta.getName();
SystemConfig systemConfig = systemConfigMap.get(configName);
String value = systemConfig != null ? systemConfig.getValue() : null;
jobConfigVos.add(new SystemConfigVo(configName, value, configMeta.getDesc_zh()));
categorizedConfigKeySet.add(configName);
}
jobConfigDisplayInfoMap.put(group.getKey(), jobConfigVos);
}
// 将所有没有在yaml定义的配置放到Others组别
if (categorizedConfigKeySet.size() != systemConfigs.size()) {
List<SystemConfigVo> unCategorizedJobConfigVos = getUncategorizedSystemConfigs(systemConfigs, categorizedConfigKeySet);
jobConfigDisplayInfoMap.put("other_configs", unCategorizedJobConfigVos);
}
return jobConfigDisplayInfoMap;
}
use of com.vip.saturn.job.console.mybatis.entity.SystemConfig in project Saturn by vipshop.
the class ConsoleConfigController method updateConfig.
/**
* 更新配置项。
*
* @param key 配置key
* @param value 配置值
*/
@ApiResponses(value = { @ApiResponse(code = 200, message = "Success/Fail", response = RequestResult.class) })
@Audit
@PostMapping("/update")
public SuccessResponseEntity updateConfig(@AuditParam(value = "key") @RequestParam String key, @AuditParam(value = "value") @RequestParam String value) throws SaturnJobConsoleException {
assertIsPermitted(PermissionKeys.systemConfig);
// 不能更新EXECUTOR_CONFIGS
if (SystemConfigProperties.EXECUTOR_CONFIGS.equals(key)) {
throw new SaturnJobConsoleException(String.format("配置项不能为%s", key));
}
SystemConfig systemConfig = new SystemConfig();
systemConfig.setProperty(key);
systemConfig.setValue(value);
systemConfigService.updateConfig(systemConfig);
return new SuccessResponseEntity();
}
use of com.vip.saturn.job.console.mybatis.entity.SystemConfig in project Saturn by vipshop.
the class ConsoleConfigController method getUncategorizedSystemConfigs.
private List<SystemConfigVo> getUncategorizedSystemConfigs(List<SystemConfig> systemConfigList, Set<String> configKeySet) {
List<SystemConfigVo> unCategorizedJobConfigVos = Lists.newArrayList();
for (SystemConfig systemConfig : systemConfigList) {
String property = systemConfig.getProperty();
if (configKeySet.contains(property)) {
continue;
}
unCategorizedJobConfigVos.add(new SystemConfigVo(property, systemConfig.getValue(), ""));
}
return unCategorizedJobConfigVos;
}
Aggregations