Skip to content

Commit

Permalink
Merge pull request #1288 from Bastian-Krause/bst/revert-sshdriver-wai…
Browse files Browse the repository at this point in the history
…t-on-pipe-closure
  • Loading branch information
Emantor committed Oct 21, 2023
2 parents fe63a1d + d425be4 commit 422abf3
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 10 deletions.
11 changes: 5 additions & 6 deletions labgrid/driver/sshdriver.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,9 @@ def _start_own_master_once(self, timeout):

try:
subprocess_timeout = timeout + 5
stdout, _ = self.process.communicate(timeout=subprocess_timeout)
if self.process.returncode != 0:
return_value = self.process.wait(timeout=subprocess_timeout)
if return_value != 0:
stdout, _ = self.process.communicate(timeout=subprocess_timeout)
stdout = stdout.split(b"\n")
for line in stdout:
self.logger.warning("ssh: %s", line.rstrip().decode(encoding="utf-8", errors="replace"))
Expand All @@ -156,14 +157,12 @@ def _start_own_master_once(self, timeout):
pass

raise ExecutionError(
f"Failed to connect to {self.networkservice.address} with {' '.join(args)}: return code {self.process.returncode}", # pylint: disable=line-too-long
f"Failed to connect to {self.networkservice.address} with {' '.join(args)}: return code {return_value}", # pylint: disable=line-too-long
stdout=stdout,
)
except subprocess.TimeoutExpired:
self.process.kill()
stdout, _ = self.process.communicate()
raise ExecutionError(
f"Subprocess timed out [{subprocess_timeout}s] while executing {args}: {stdout}",
f"Subprocess timed out [{subprocess_timeout}s] while executing {args}",
)
finally:
if self.networkservice.password and os.path.exists(pass_file):
Expand Down
4 changes: 0 additions & 4 deletions tests/test_sshdriver.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ def ssh_driver_mocked_and_activated(target, mocker):
instance_mock = mocker.MagicMock()
popen.return_value = instance_mock
instance_mock.wait = mocker.MagicMock(return_value=0)
instance_mock.communicate = mocker.MagicMock(return_value=(b"", b""))
instance_mock.returncode = 0
SSHDriver(target, "ssh")
s = target.get_driver("SSHDriver")
return s
Expand All @@ -37,8 +35,6 @@ def test_create(target, mocker):
instance_mock = mocker.MagicMock()
popen.return_value = instance_mock
instance_mock.wait = mocker.MagicMock(return_value=0)
instance_mock.communicate = mocker.MagicMock(return_value=(b"", b""))
instance_mock.returncode = 0
s = SSHDriver(target, "ssh")
assert isinstance(s, SSHDriver)

Expand Down

0 comments on commit 422abf3

Please sign in to comment.