package cd.casic.ci.process.ssh;

import java.io.IOException;
import java.util.List;

/**
 * @ClassName ops
 * @Description ssh 命令 , 不记录
 * @Author mianbin
 * @Date 2022/6/22 15:27
 * @Version 1.0
 **/
public interface SshClient {
    /**
     * 执行ssh 命令
     *
     * @param command      要执行的命令，多个命令通过";"号隔开
     * @param execCallback 命令执行过程中的回调器
     * @return 执行成功返回0，失败返回1
     * @throws IOException
     */
    int exec(String command, ExecCallback execCallback) throws IOException;
    /**
     * 执行ssh 命令
     *
     * @param commands      要执行的命令，多个命令通过";"号隔开
     * @param execCallback 命令执行过程中的回调器
     * @return 执行成功返回0，失败返回1
     * @throws IOException
     */
    int execNew(List<String> commands,String sudoPassword, ExecCallback execCallback) throws IOException;
    /**
     * 执行ssh 命令
     *
     * @param commands      要执行的命令，多个命令通过";"号隔开
     * @param execCallback 命令执行过程中的回调器
     * @return 执行成功返回0，失败返回1
     * @throws IOException
     */
    int parallelDebugExec(List<String> commands, ExecCallback execCallback) throws IOException;

    /**
     * 执行多行命令
     *
     * @param command
     * @param execCallback
     * @return
     * @throws IOException
     */
    int exec(List<String> command, ExecCallback execCallback) throws IOException;

    /**
     * 断开客户端连接
     */
    void disconnect();
}
