in priam/src/main/java/com/netflix/priam/tuner/StandardTuner.java [262:301]
public void addExtraCassParams(Map map) {
String params = config.getExtraConfigParams();
if (StringUtils.isEmpty(params)) {
logger.info("Updating yaml: no extra cass params");
return;
}
String[] pairs = params.split(",");
logger.info("Updating yaml: adding extra cass params");
for (String pair1 : pairs) {
String[] pair = pair1.split("=");
String priamKey = pair[0];
String cassKey = pair[1];
String cassVal = config.getCassYamlVal(priamKey);
if (!StringUtils.isBlank(cassKey) && !StringUtils.isBlank(cassVal)) {
if (!cassKey.contains(".")) {
logger.info(
"Updating yaml: PriamKey: [{}], Key: [{}], OldValue: [{}], NewValue: [{}]",
priamKey,
cassKey,
map.get(cassKey),
cassVal);
map.put(cassKey, cassVal);
} else {
// split the cassandra key. We will get the group and get the key name.
String[] cassKeySplit = cassKey.split("\\.");
Map cassKeyMap = ((Map) map.getOrDefault(cassKeySplit[0], new HashMap()));
map.putIfAbsent(cassKeySplit[0], cassKeyMap);
logger.info(
"Updating yaml: PriamKey: [{}], Key: [{}], OldValue: [{}], NewValue: [{}]",
priamKey,
cassKey,
cassKeyMap.get(cassKeySplit[1]),
cassVal);
cassKeyMap.put(cassKeySplit[1], cassVal);
}
}
}
}