From 30db43d11acd6dc4691a4fe536274959586e3d16 Mon Sep 17 00:00:00 2001 From: Naoyuki Sogo Date: Fri, 5 Jun 2026 23:08:01 +0900 Subject: [PATCH] Revert "Align verbose SSH env handling across SSH connection paths (#108)" This reverts commit 7dbaa7775f51a105d4b3c745f76916e8652bbb98. --- server/app/core/sshManager.js | 3 +- server/app/db/version.json | 2 +- server/app/handlers/tryToConnect.js | 13 +-- server/test/app/handlers/tryToConnect.js | 108 ----------------------- 4 files changed, 4 insertions(+), 122 deletions(-) delete mode 100644 server/test/app/handlers/tryToConnect.js diff --git a/server/app/core/sshManager.js b/server/app/core/sshManager.js index e848956b1..79a956952 100644 --- a/server/app/core/sshManager.js +++ b/server/app/core/sshManager.js @@ -247,6 +247,5 @@ module.exports = { getSshHostinfo, removeSsh, askPassword, - createSsh, - isVerboseSshEnabled + createSsh }; diff --git a/server/app/db/version.json b/server/app/db/version.json index e44604107..a9ad41afd 100644 --- a/server/app/db/version.json +++ b/server/app/db/version.json @@ -1 +1 @@ -{"version": "2026-0605-221627" } \ No newline at end of file +{"version": "2026-0605-211714" } \ No newline at end of file diff --git a/server/app/handlers/tryToConnect.js b/server/app/handlers/tryToConnect.js index 229c24255..bc62636f5 100644 --- a/server/app/handlers/tryToConnect.js +++ b/server/app/handlers/tryToConnect.js @@ -8,19 +8,18 @@ const SshClientWrapper = require("ssh-client-wrapper"); const { getLogger } = require("../logSettings"); const logger = getLogger(); const { remoteHost } = require("../db/db"); -const { askPassword, isVerboseSshEnabled } = require("../core/sshManager.js"); +const { askPassword } = require("../core/sshManager.js"); /** * try to connect remote host via ssh * @param {string} clientID - socketIO client's ID string * @param {object} hostInfo - target host's information * @param {Function} cb - call back function called with string "success" or "error" - * @returns {Promise} */ async function onTryToConnect(clientID, hostInfo, cb) { hostInfo.password = askPassword.bind(null, clientID, hostInfo.name, "password", null); hostInfo.passphrase = askPassword.bind(null, clientID, hostInfo.name, "passphrase", null); - if (isVerboseSshEnabled()) { + if (process.env.WHEEL_VERBOSE_SSH) { hostInfo.sshOpt = ["-vvv"]; } const ssh = new SshClientWrapper(hostInfo); @@ -39,14 +38,6 @@ async function onTryToConnect(clientID, hostInfo, cb) { ssh.disconnect(); return cb("success"); } - -/** - * try to connect remote host via ssh with host id - * @param {string} clientID - socketIO client's ID string - * @param {string} id - remote host id - * @param {Function} cb - call back function called with string "success" or "error" - * @returns {Promise} - */ async function onTryToConnectById(clientID, id, cb) { const hostInfo = remoteHost.get(id); await onTryToConnect(clientID, hostInfo, cb); diff --git a/server/test/app/handlers/tryToConnect.js b/server/test/app/handlers/tryToConnect.js deleted file mode 100644 index 7702b9bef..000000000 --- a/server/test/app/handlers/tryToConnect.js +++ /dev/null @@ -1,108 +0,0 @@ -"use strict"; -const os = require("os"); -const path = require("path"); -const fs = require("fs-extra"); - -const chai = require("chai"); -const expect = chai.expect; -const sinon = require("sinon"); -chai.use(require("sinon-chai")); -const rewire = require("rewire"); - -describe("tryToConnect UT", ()=>{ - const originalHome = process.env.HOME; - const originalWheelUseHttp = process.env.WHEEL_USE_HTTP; - const originalWheelVerboseSsh = process.env.WHEEL_VERBOSE_SSH; - let tempHome; - let tryToConnect; - let onTryToConnect; - let SshClientWrapperMock; - let canConnectMock; - let disconnectMock; - let askPasswordMock; - let cb; - - before(async ()=>{ - tempHome = await fs.mkdtemp(path.join(os.tmpdir(), "wheel-try-connect-")); - process.env.HOME = tempHome; - process.env.WHEEL_USE_HTTP = "1"; - await fs.ensureDir(path.join(tempHome, ".wheel")); - await Promise.all([ - fs.writeJson(path.join(tempHome, ".wheel", "remotehost.json"), []), - fs.writeJson(path.join(tempHome, ".wheel", "projectList.json"), []), - fs.writeJson(path.join(tempHome, ".wheel", "jobScriptTemplate.json"), []) - ]); - }); - - beforeEach(()=>{ - cb = sinon.stub(); - canConnectMock = sinon.stub().resolves(); - disconnectMock = sinon.stub(); - askPasswordMock = sinon.stub(); - - tryToConnect = rewire("../../../app/handlers/tryToConnect.js"); - SshClientWrapperMock = sinon.stub().callsFake((hostInfo)=>{ - return { - hostInfo, - canConnect: canConnectMock, - disconnect: disconnectMock - }; - }); - - tryToConnect.__set__({ - SshClientWrapper: SshClientWrapperMock, - askPassword: askPasswordMock, - logger: { - debug: sinon.stub(), - info: sinon.stub(), - error: sinon.stub() - } - }); - onTryToConnect = tryToConnect.__get__("onTryToConnect"); - }); - - afterEach(()=>{ - sinon.restore(); - if (originalWheelVerboseSsh !== undefined) { - process.env.WHEEL_VERBOSE_SSH = originalWheelVerboseSsh; - } else { - delete process.env.WHEEL_VERBOSE_SSH; - } - }); - - after(async ()=>{ - if (originalHome !== undefined) { - process.env.HOME = originalHome; - } else { - delete process.env.HOME; - } - if (originalWheelUseHttp !== undefined) { - process.env.WHEEL_USE_HTTP = originalWheelUseHttp; - } else { - delete process.env.WHEEL_USE_HTTP; - } - await fs.remove(tempHome); - }); - - it("should set sshOpt when WHEEL_VERBOSE_SSH is truthy", async ()=>{ - process.env.WHEEL_VERBOSE_SSH = "true"; - const hostInfo = { name: "testHost", host: "localhost", port: 22, user: "test" }; - - await onTryToConnect("client-1", hostInfo, cb); - - expect(hostInfo.sshOpt).to.deep.equal(["-vvv"]); - expect(SshClientWrapperMock).to.have.been.calledOnceWithExactly(hostInfo); - expect(cb).to.have.been.calledOnceWithExactly("success"); - }); - - it("should not set sshOpt when WHEEL_VERBOSE_SSH is false-like", async ()=>{ - process.env.WHEEL_VERBOSE_SSH = "false"; - const hostInfo = { name: "testHost", host: "localhost", port: 22, user: "test" }; - - await onTryToConnect("client-1", hostInfo, cb); - - expect(hostInfo).to.not.have.property("sshOpt"); - expect(SshClientWrapperMock).to.have.been.calledOnceWithExactly(hostInfo); - expect(cb).to.have.been.calledOnceWithExactly("success"); - }); -});