public static ShellResult configure()

in bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/zookeeper/ZookeeperSetup.java [42:99]


    public static ShellResult configure(Params params) {
        log.info("Configuring ZooKeeper");
        ZookeeperParams zookeeperParams = (ZookeeperParams) params;

        String confDir = zookeeperParams.confDir();
        String zookeeperUser = zookeeperParams.user();
        String zookeeperGroup = zookeeperParams.group();
        Map<String, Object> zookeeperEnv = zookeeperParams.zookeeperEnv();
        Map<String, Object> zooCfg = zookeeperParams.zooCfg();
        List<String> zkHostList = LocalSettings.hosts("zookeeper_server");

        LinuxFileUtils.createDirectories(
                zookeeperParams.getZookeeperDataDir(), zookeeperUser, zookeeperGroup, Constants.PERMISSION_755, true);
        LinuxFileUtils.createDirectories(
                zookeeperParams.getZookeeperLogDir(), zookeeperUser, zookeeperGroup, Constants.PERMISSION_755, true);
        LinuxFileUtils.createDirectories(
                zookeeperParams.getZookeeperPidDir(), zookeeperUser, zookeeperGroup, Constants.PERMISSION_755, true);

        // server.${host?index+1}=${host}:2888:3888
        zkHostList.sort(String::compareToIgnoreCase);
        StringBuilder zkServerStr = new StringBuilder();
        for (String zkHost : zkHostList) {
            zkServerStr
                    .append(MessageFormat.format("server.{0}={1}:2888:3888", zkHostList.indexOf(zkHost) + 1, zkHost))
                    .append("\n");
        }

        LinuxFileUtils.toFile(
                ConfigType.CONTENT,
                MessageFormat.format("{0}/myid", zookeeperParams.getZookeeperDataDir()),
                zookeeperUser,
                zookeeperGroup,
                Constants.PERMISSION_644,
                zkHostList.indexOf(NetUtils.getHostname()) + 1 + "");

        HashMap<String, Object> map = new HashMap<>(zooCfg);
        map.remove("content");
        Map<String, Object> paramMap = Map.of("zk_server_str", zkServerStr.toString(), "security_enabled", false);
        LinuxFileUtils.toFileByTemplate(
                zooCfg.get("content").toString(),
                MessageFormat.format("{0}/zoo.cfg", confDir),
                zookeeperUser,
                zookeeperGroup,
                Constants.PERMISSION_644,
                Map.of("model", map),
                paramMap);

        LinuxFileUtils.toFileByTemplate(
                zookeeperEnv.get("content").toString(),
                MessageFormat.format("{0}/zookeeper-env.sh", confDir),
                zookeeperUser,
                zookeeperGroup,
                Constants.PERMISSION_644,
                zookeeperParams.getGlobalParamsMap());

        log.info("Successfully configured ZooKeeper");
        return ShellResult.success();
    }