fix: keep systemd's OSC 3008 shell context out of command output (#41)
Backport of the 0.15.1 fix onto 0ba5081, the commit netOrk pins, which
cannot take 0.15.x before it moves to napalm-device-types 4.22.
systemd 258 (Ubuntu 26.04) ships /etc/profile.d/80-systemd-osc-context.sh:
an interactive bash wraps every command in OSC 3008 sequences from PS0 and
PROMPT_COMMAND, each with a fresh UUID. They ended up in every value read
through netmiko's shell, and because the prompt never looked the same twice,
the prompt line stayed in the output too. os_version grew past 255
characters and netOrk could not store the poll.
The session now unsets PS0 and PROMPT_COMMAND right after switching the
history off and reads its prompt anew; _send() strips terminal codes from
what it returns.
This commit is contained in:
1 parent
0ba5081824
commit
c00deef3d7
3 files changed
+99
-4
No files matched your search
@@ -236,7 +236,8 @@ class TestHistoryOff:
|
||||
def test_a_shell_that_refuses_it_does_not_stop_the_connection(self):
|
||||
driver = LinuxDriver("h", "admin", "p")
|
||||
device = MagicMock()
|
||||
device.send_command.side_effect = [Exception("no prompt"), "", "/usr/bin/apt"]
|
||||
# history off (refused), prompt hooks off (#41), stty, package manager
|
||||
device.send_command.side_effect = [Exception("no prompt"), "", "", "/usr/bin/apt"]
|
||||
with patch("napalm_linux.linux.ConnectHandler", return_value=device):
|
||||
driver.open()
|
||||
|
||||
|
||||
Reference in new issue
Block a user