From 7fa7aa4d4b2d4736037ec912111b4f3048dfa217 Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Mon, 12 Jun 2023 21:13:55 +0200 Subject: smoketest: move SSH login functionality to base class --- smoketest/scripts/cli/base_vyostest_shim.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'smoketest/scripts/cli/base_vyostest_shim.py') diff --git a/smoketest/scripts/cli/base_vyostest_shim.py b/smoketest/scripts/cli/base_vyostest_shim.py index 7cfb53045..d56a8eb33 100644 --- a/smoketest/scripts/cli/base_vyostest_shim.py +++ b/smoketest/scripts/cli/base_vyostest_shim.py @@ -14,6 +14,7 @@ import os import unittest +import paramiko from time import sleep from typing import Type @@ -87,6 +88,19 @@ class VyOSUnitTestSHIM: pprint.pprint(out) return out + def ssh_send_cmd(command, username, password, hostname='localhost'): + """ SSH command execution helper """ + # Try to login via SSH + ssh_client = paramiko.SSHClient() + ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + ssh_client.connect(hostname=hostname, username=username, password=password) + print(host, username, password) + _, stdout, stderr = ssh_client.exec_command(command) + output = stdout.read().decode().strip() + error = stderr.read().decode().strip() + ssh_client.close() + return output, error + # standard construction; typing suggestion: https://stackoverflow.com/a/70292317 def ignore_warning(warning: Type[Warning]): import warnings -- cgit v1.2.3