diff --git a/web-api/src/main/java/com/jeesite/modules/apps/Module/DockerResult.java b/web-api/src/main/java/com/jeesite/modules/apps/Module/DockerResult.java index b2ca02b..29bab79 100644 --- a/web-api/src/main/java/com/jeesite/modules/apps/Module/DockerResult.java +++ b/web-api/src/main/java/com/jeesite/modules/apps/Module/DockerResult.java @@ -15,10 +15,11 @@ public class DockerResult implements Serializable { private String error; private String message; - public static DockerResult ok(String output) { + public static DockerResult ok(String output,String message) { DockerResult r = new DockerResult(); r.success = true; r.output = output; + r.message = message; return r; } diff --git a/web-api/src/main/java/com/jeesite/modules/utils/DockerUtil.java b/web-api/src/main/java/com/jeesite/modules/utils/DockerUtil.java index 3680039..1a86a6e 100644 --- a/web-api/src/main/java/com/jeesite/modules/utils/DockerUtil.java +++ b/web-api/src/main/java/com/jeesite/modules/utils/DockerUtil.java @@ -8,6 +8,7 @@ import com.jeesite.modules.apps.Module.DockerResult; import com.jeesite.modules.apps.Module.SystemInfo; import com.jeesite.modules.biz.entity.MySftpAccounts; import io.micrometer.common.util.StringUtils; + import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.nio.charset.StandardCharsets; @@ -71,9 +72,18 @@ public class DockerUtil { } catch (Exception e) { return null; } finally { - try { if (in != null) in.close(); } catch (Exception ignored) {} - try { if (channel != null) channel.disconnect(); } catch (Exception ignored) {} - try { if (session != null) session.disconnect(); } catch (Exception ignored) {} + try { + if (in != null) in.close(); + } catch (Exception ignored) { + } + try { + if (channel != null) channel.disconnect(); + } catch (Exception ignored) { + } + try { + if (session != null) session.disconnect(); + } catch (Exception ignored) { + } } } @@ -107,33 +117,33 @@ public class DockerUtil { // ====================== 容器操作 ====================== public static DockerResult start(MySftpAccounts accounts, String containerId) { String res = runCommand(accounts, "docker start " + containerId); - return res != null ? DockerResult.ok(res) : DockerResult.fail("启动失败"); + return DockerResult.ok(res, Objects.nonNull(res) ? "启动容器成功" : "启动容器失败"); } public static DockerResult stop(MySftpAccounts accounts, String containerId) { String res = runCommand(accounts, "docker stop " + containerId); - return res != null ? DockerResult.ok(res) : DockerResult.fail("停止失败"); + return DockerResult.ok(res, Objects.nonNull(res) ? "停止容器成功" : "停止容器失败"); } public static DockerResult restart(MySftpAccounts accounts, String containerId) { String res = runCommand(accounts, "docker restart " + containerId); - return res != null ? DockerResult.ok(res) : DockerResult.fail("重启失败"); + return DockerResult.ok(res, Objects.nonNull(res) ? "重启容器成功" : "重启容器失败"); } public static DockerResult getLogs(MySftpAccounts accounts, String containerId, int tail, boolean timestamps) { String cmd = "docker logs " + (timestamps ? "-t " : "") + "--tail " + tail + " " + containerId; String res = runCommand(accounts, cmd); - return res != null ? DockerResult.ok(res) : DockerResult.fail("获取日志失败"); + return DockerResult.ok(res, Objects.nonNull(res) ? "获取容器日志成功" : "获取容器日志失败"); } public static DockerResult listRaw(MySftpAccounts accounts, boolean all) { String res = runCommand(accounts, all ? "docker ps -a" : "docker ps"); - return res != null ? DockerResult.ok(res) : DockerResult.fail("获取容器列表失败"); + return DockerResult.ok(res, Objects.nonNull(res) ? "获取容器列表成功" : "获取容器列表失败"); } public static DockerResult inspect(MySftpAccounts accounts, String containerId) { String res = runCommand(accounts, "docker inspect " + containerId); - return res != null ? DockerResult.ok(res) : DockerResult.fail("查询详情失败"); + return DockerResult.ok(res, Objects.nonNull(res) ? "查询容器详情成功" : "查询容器详情失败"); } public static SystemInfo systemInfo(MySftpAccounts accounts) { @@ -145,7 +155,6 @@ public class DockerUtil { String output = runCommand(accounts, cmd); if (output == null) return info; - String[] lines = output.split("\\R"); if (lines.length >= 1) info.setCpu(lines[0].trim()); if (lines.length >= 2) info.setMemory(lines[1].trim());