Skip to content

Commit

Permalink
Merge pull request #3734 from vyos/mergify/bp/circinus/pr-3731
Browse files Browse the repository at this point in the history
op-mode: T5633, T6465: fix error when op cmd interrupted, updates some system call syntax (backport #3731)
  • Loading branch information
c-po authored Jun 28, 2024
2 parents 5f6e4bc + e5c0b56 commit 7a31293
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions src/op_mode/show_techsupport_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

import os
import sys
from typing import List
from vyos.utils.process import rc_cmd
from vyos.ifconfig import Section
from vyos.ifconfig import Interface
from vyos.utils.process import rc_cmd


def print_header(command: str) -> None:
Expand Down Expand Up @@ -50,7 +52,15 @@ def execute_command(command: str, header_text: str) -> None:
print_header(header_text)
try:
rc, output = rc_cmd(command)
print(output)
# Enable unbuffered print param to improve responsiveness of printed
# output to end user
print(output, flush=True)
# Exit gracefully when user interrupts program output
# Flush standard streams; redirect remaining output to devnull
# Resolves T5633: Bug #1 and 3
except (BrokenPipeError, KeyboardInterrupt):
os.dup2(os.open(os.devnull, os.O_WRONLY), sys.stdout.fileno())
sys.exit(1)
except Exception as e:
print(f"Error executing command: {command}")
print(f"Error message: {e}")
Expand Down Expand Up @@ -155,13 +165,13 @@ def show_route() -> None:
"show ip route supernets-only",
"show ip route table all",
"show ip route vrf all",
"show ipv6 route bgp | head 108",
"show ipv6 route bgp | head -108",
"show ipv6 route cache",
"show ipv6 route connected",
"show ipv6 route forward",
"show ipv6 route isis",
"show ipv6 route kernel",
"show ipv6 route ospf",
"show ipv6 route ospfv3",
"show ipv6 route rip",
"show ipv6 route static",
"show ipv6 route summary",
Expand All @@ -179,8 +189,9 @@ def show_firewall() -> None:

def show_system() -> None:
"""Prints system parameters."""
execute_command(op('show system image version'), 'Show System Image Version')
execute_command(op('show system image storage'), 'Show System Image Storage')
execute_command(op('show version'), 'Show System Version')
execute_command(op('show system storage'), 'Show System Storage')
execute_command(op('show system image details'), 'Show System Image Details')


def show_date() -> None:
Expand Down

0 comments on commit 7a31293

Please sign in to comment.