public void addExtraCassParams()

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);
                }
            }
        }
    }