diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpChangeModHandler.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpChangeModHandler.java index f7910dd4..1903768d 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpChangeModHandler.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpChangeModHandler.java @@ -1,6 +1,10 @@ package com.orion.ops.module.asset.handler.host.terminal.handler; +import com.orion.ops.framework.common.enums.BooleanBit; +import com.orion.ops.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.ops.module.asset.handler.host.terminal.model.request.SftpChangeModRequest; +import com.orion.ops.module.asset.handler.host.terminal.model.response.SftpBaseResponse; +import com.orion.ops.module.asset.handler.host.terminal.session.ISftpSession; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.socket.WebSocketSession; @@ -18,6 +22,27 @@ public class SftpChangeModHandler extends AbstractTerminalHandler { @Override public void handle(WebSocketSession channel, SftpMoveRequest payload) { + // 获取会话 + ISftpSession session = terminalManager.getSession(channel.getId(), payload.getSessionId()); + String path = payload.getPath(); + String target = payload.getTarget(); + log.info("SftpMoveHandler-handle session: {}, path: {}, target: {}", payload.getSessionId(), path, target); + Exception ex = null; + // 移动 + try { + session.move(path, target); + } catch (Exception e) { + log.error("SftpMoveHandler-handle error", e); + ex = e; + } + // 返回 + this.send(channel, + OutputTypeEnum.SFTP_MOVE, + SftpBaseResponse.builder() + .sessionId(payload.getSessionId()) + .result(BooleanBit.of(ex == null).getValue()) + .msg(ex == null ? null : ex.getMessage()) + .build()); } } diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java index a5f240e1..0c5169fe 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java @@ -1,6 +1,10 @@ package com.orion.ops.module.asset.handler.host.terminal.handler; +import com.orion.ops.framework.common.enums.BooleanBit; +import com.orion.ops.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.ops.module.asset.handler.host.terminal.model.request.SftpRemoveRequest; +import com.orion.ops.module.asset.handler.host.terminal.model.response.SftpBaseResponse; +import com.orion.ops.module.asset.handler.host.terminal.session.ISftpSession; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.socket.WebSocketSession; @@ -18,6 +22,26 @@ public class SftpRemoveHandler extends AbstractTerminalHandler { String path = payload.getPath(); log.info("SftpTouchHandler-handle session: {}, path: {}", payload.getSessionId(), path); Exception ex = null; + // 创建文件 try { session.touch(path); } catch (Exception e) { diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpTruncateHandler.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpTruncateHandler.java index ebfb9149..11bda36f 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpTruncateHandler.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpTruncateHandler.java @@ -1,6 +1,10 @@ package com.orion.ops.module.asset.handler.host.terminal.handler; +import com.orion.ops.framework.common.enums.BooleanBit; +import com.orion.ops.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.ops.module.asset.handler.host.terminal.model.request.SftpBaseRequest; +import com.orion.ops.module.asset.handler.host.terminal.model.response.SftpBaseResponse; +import com.orion.ops.module.asset.handler.host.terminal.session.ISftpSession; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.socket.WebSocketSession; @@ -18,6 +22,26 @@ public class SftpTruncateHandler extends AbstractTerminalHandler paths; + private String paths; } diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/ISftpSession.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/ISftpSession.java index fd4ae0df..e17392b7 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/ISftpSession.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/ISftpSession.java @@ -61,7 +61,7 @@ public interface ISftpSession extends ITerminalSession { * * @param paths paths */ - void remove(List paths); + void remove(String[] paths); /** * 截断文件 diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/SftpSession.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/SftpSession.java index e7e310ee..930f5190 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/SftpSession.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/SftpSession.java @@ -16,6 +16,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.socket.WebSocketSession; import java.io.InputStream; +import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -89,8 +90,8 @@ public class SftpSession extends TerminalSession implements ISftpSession { } @Override - public void remove(List paths) { - paths.stream() + public void remove(String[] paths) { + Arrays.stream(paths) .map(Valid::checkNormalize) .forEach(executor::remove); }