handle invalid utf8 characters in router configs

This commit is contained in:
ROTTLER Tamas 2026-05-18 03:37:49 +02:00
parent c0f32f6a12
commit 8386c35096
2 changed files with 4 additions and 4 deletions

View File

@ -282,7 +282,7 @@ class RouterosConfig(Config):
iproute.append(line)
stdin, stdout, stderr = self.ssh.exec_command('/system backup save dont-encrypt=yes name=autobck')
output = str(stdout.read(), 'utf8')
output = str(stdout.read(), 'utf8', 'backslashreplace')
if not re.search('Configuration backup saved', output):
raise RuntimeError(f'"/system backup" failed: {output.strip()}')
@ -415,7 +415,7 @@ class ConfigWithShell(Config):
raise RuntimeError(f'shell recv timeout (after receiving {len(output)} characters)')
time.sleep(0.1)
while channel.recv_ready():
output += str(channel.recv(65536), 'utf8')
output += str(channel.recv(65536), 'utf8', 'backslashreplace')
class AsaConfig(ConfigWithShell):

View File

@ -1,6 +1,6 @@
---
- name: set router configuration backup directory
hosts: routeros,ciscoasa,!ciscoasa_slave,ciscoios,cisconexus,hpcomware
hosts: routeros,ciscoasa,!ciscoasa_slave,ciscoios,cisconexus,hpcomware,!no_routerbackup
gather_facts: no
tags: always
tasks:
@ -11,7 +11,7 @@
routerbackup_maxage: 24
- name: use router backup role
hosts: routeros,ciscoasa,!ciscoasa_slave,ciscoios,cisconexus,hpcomware
hosts: routeros,ciscoasa,!ciscoasa_slave,ciscoios,cisconexus,hpcomware,!no_routerbackup
gather_facts: no
roles:
- routerbackup