package com.lanyuanxiaoyao.service.cli.core;

/**
 * 运行配置
 *
 * @author lanyuanxiaoyao
 * @date 2023-05-17
 */
public class RuntimeInfo {
    private String user;
    private String jarPath;
    private String jdkPath;
    private String logPath;
    private String confPath;
    private String dataPath;
    private String kerberosKeytabPath;
    private LokiInfo loki;
    private String zkUrl;
    private String connectorZkUrl;
    private HudiInfo hudi;
    private SecurityInfo security;
    private YarnInfo yarn;

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getJarPath() {
        return jarPath;
    }

    public void setJarPath(String jarPath) {
        this.jarPath = jarPath;
    }

    public String getJdkPath() {
        return jdkPath;
    }

    public void setJdkPath(String jdkPath) {
        this.jdkPath = jdkPath;
    }

    public String getLogPath() {
        return logPath;
    }

    public void setLogPath(String logPath) {
        this.logPath = logPath;
    }

    public String getConfPath() {
        return confPath;
    }

    public void setConfPath(String confPath) {
        this.confPath = confPath;
    }

    public String getDataPath() {
        return dataPath;
    }

    public void setDataPath(String dataPath) {
        this.dataPath = dataPath;
    }

    public String getKerberosKeytabPath() {
        return kerberosKeytabPath;
    }

    public void setKerberosKeytabPath(String kerberosKeytabPath) {
        this.kerberosKeytabPath = kerberosKeytabPath;
    }

    public LokiInfo getLoki() {
        return loki;
    }

    public void setLoki(LokiInfo loki) {
        this.loki = loki;
    }

    public String getZkUrl() {
        return zkUrl;
    }

    public void setZkUrl(String zkUrl) {
        this.zkUrl = zkUrl;
    }

    public String getConnectorZkUrl() {
        return connectorZkUrl;
    }

    public void setConnectorZkUrl(String connectorZkUrl) {
        this.connectorZkUrl = connectorZkUrl;
    }

    public HudiInfo getHudi() {
        return hudi;
    }

    public void setHudi(HudiInfo hudi) {
        this.hudi = hudi;
    }

    public SecurityInfo getSecurity() {
        return security;
    }

    public void setSecurity(SecurityInfo security) {
        this.security = security;
    }

    public YarnInfo getYarn() {
        return yarn;
    }

    public void setYarn(YarnInfo yarn) {
        this.yarn = yarn;
    }

    @Override
    public String toString() {
        return "RuntimeInfo{" +
               "user='" + user + '\'' +
               ", jarPath='" + jarPath + '\'' +
               ", jdkPath='" + jdkPath + '\'' +
               ", logPath='" + logPath + '\'' +
               ", confPath='" + confPath + '\'' +
               ", dataPath='" + dataPath + '\'' +
               ", kerberosKeytabPath='" + kerberosKeytabPath + '\'' +
               ", loki=" + loki +
               ", zkUrl='" + zkUrl + '\'' +
               ", connectorZkUrl='" + connectorZkUrl + '\'' +
               ", hudi=" + hudi +
               ", security=" + security +
               ", yarn=" + yarn +
               '}';
    }

    public static final class LokiInfo {
        private String serviceUrl;
        private String servicePushUrl;
        private String hudiUrl;
        private String hudiPushUrl;

        public String getServiceUrl() {
            return serviceUrl;
        }

        public void setServiceUrl(String serviceUrl) {
            this.serviceUrl = serviceUrl;
        }

        public String getServicePushUrl() {
            return servicePushUrl;
        }

        public void setServicePushUrl(String servicePushUrl) {
            this.servicePushUrl = servicePushUrl;
        }

        public String getHudiUrl() {
            return hudiUrl;
        }

        public void setHudiUrl(String hudiUrl) {
            this.hudiUrl = hudiUrl;
        }

        public String getHudiPushUrl() {
            return hudiPushUrl;
        }

        public void setHudiPushUrl(String hudiPushUrl) {
            this.hudiPushUrl = hudiPushUrl;
        }

        @Override
        public String toString() {
            return "LokiInfo{" +
                   "serviceUrl='" + serviceUrl + '\'' +
                   ", servicePushUrl='" + servicePushUrl + '\'' +
                   ", hudiUrl='" + hudiUrl + '\'' +
                   ", hudiPushUrl='" + hudiPushUrl + '\'' +
                   '}';
        }
    }

    public static final class ExecutorInfo {
        private String stagingPath;
        private String archiveHdfsPath;
        private String taskJarPath;
        private String taskResultPath;

        public String getStagingPath() {
            return stagingPath;
        }

        public void setStagingPath(String stagingPath) {
            this.stagingPath = stagingPath;
        }

        public String getArchiveHdfsPath() {
            return archiveHdfsPath;
        }

        public void setArchiveHdfsPath(String archiveHdfsPath) {
            this.archiveHdfsPath = archiveHdfsPath;
        }

        public String getTaskJarPath() {
            return taskJarPath;
        }

        public void setTaskJarPath(String taskJarPath) {
            this.taskJarPath = taskJarPath;
        }

        public String getTaskResultPath() {
            return taskResultPath;
        }

        public void setTaskResultPath(String taskResultPath) {
            this.taskResultPath = taskResultPath;
        }

        @Override
        public String toString() {
            return "ExecutorInfo{" +
                   "stagingPath='" + stagingPath + '\'' +
                   ", archiveHdfsPath='" + archiveHdfsPath + '\'' +
                   ", taskJarPath='" + taskJarPath + '\'' +
                   ", taskResultPath='" + taskResultPath + '\'' +
                   '}';
        }
    }

    public static final class HudiInfo {
        private String appHdfsPath;
        private String archiveHdfsPath;
        private String victoriaPushUrl;

        public String getAppHdfsPath() {
            return appHdfsPath;
        }

        public void setAppHdfsPath(String appHdfsPath) {
            this.appHdfsPath = appHdfsPath;
        }

        public String getArchiveHdfsPath() {
            return archiveHdfsPath;
        }

        public void setArchiveHdfsPath(String archiveHdfsPath) {
            this.archiveHdfsPath = archiveHdfsPath;
        }

        public String getVictoriaPushUrl() {
            return victoriaPushUrl;
        }

        public void setVictoriaPushUrl(String victoriaPushUrl) {
            this.victoriaPushUrl = victoriaPushUrl;
        }

        @Override
        public String toString() {
            return "HudiInfo{" +
                   "appHdfsPath='" + appHdfsPath + '\'' +
                   ", archiveHdfsPath='" + archiveHdfsPath + '\'' +
                   ", victoriaPushUrl='" + victoriaPushUrl + '\'' +
                   '}';
        }
    }

    public static final class SecurityInfo {
        private String authority;
        private String username;
        private String darkcode;

        public String getAuthority() {
            return authority;
        }

        public void setAuthority(String authority) {
            this.authority = authority;
        }

        public String getUsername() {
            return username;
        }

        public void setUsername(String username) {
            this.username = username;
        }

        public String getDarkcode() {
            return darkcode;
        }

        public void setDarkcode(String darkcode) {
            this.darkcode = darkcode;
        }

        @Override
        public String toString() {
            return "SecurityInfo{" +
                   "authority='" + authority + '\'' +
                   ", username='" + username + '\'' +
                   ", darkcode='" + darkcode + '\'' +
                   '}';
        }
    }

    public static final class YarnInfo {
        private String storeCluster;
        private String syncClusters;
        private String compactionClusters;

        public String getStoreCluster() {
            return storeCluster;
        }

        public void setStoreCluster(String storeCluster) {
            this.storeCluster = storeCluster;
        }

        public String getSyncClusters() {
            return syncClusters;
        }

        public void setSyncClusters(String syncClusters) {
            this.syncClusters = syncClusters;
        }

        public String getCompactionClusters() {
            return compactionClusters;
        }

        public void setCompactionClusters(String compactionClusters) {
            this.compactionClusters = compactionClusters;
        }

        @Override
        public String toString() {
            return "YarnInfo{" +
                   "storeCluster='" + storeCluster + '\'' +
                   ", syncClusters='" + syncClusters + '\'' +
                   ", compactionClusters='" + compactionClusters + '\'' +
                   '}';
        }
    }
}
