aboutsummaryrefslogtreecommitdiff
path: root/tools/testing/selftests/drivers/net/lib/py/remote_ssh.py
diff options
context:
space:
mode:
authorMaxime Ripard <[email protected]>2024-07-04 15:19:33 +0200
committerMaxime Ripard <[email protected]>2024-07-04 15:19:33 +0200
commitafeea2758b4f1210361ce2a91d8fa3e7df606ad2 (patch)
tree969164f4e52fac6d4ec7d275540e702375e80950 /tools/testing/selftests/drivers/net/lib/py/remote_ssh.py
parent539d33b5783804f22a62bd62ff463dfd1cef4265 (diff)
parent896868eded124059023be0af92d68cdaf9b4de70 (diff)
Merge drm-misc-next-2024-07-04 into drm-misc-next-fixes
Let's start the drm-misc-next-fixes cycle. Signed-off-by: Maxime Ripard <[email protected]>
Diffstat (limited to 'tools/testing/selftests/drivers/net/lib/py/remote_ssh.py')
-rw-r--r--tools/testing/selftests/drivers/net/lib/py/remote_ssh.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tools/testing/selftests/drivers/net/lib/py/remote_ssh.py b/tools/testing/selftests/drivers/net/lib/py/remote_ssh.py
new file mode 100644
index 000000000000..924addde19a3
--- /dev/null
+++ b/tools/testing/selftests/drivers/net/lib/py/remote_ssh.py
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: GPL-2.0
+
+import os
+import string
+import subprocess
+import random
+
+from lib.py import cmd
+
+
+class Remote:
+ def __init__(self, name, dir_path):
+ self.name = name
+ self.dir_path = dir_path
+ self._tmpdir = None
+
+ def __del__(self):
+ if self._tmpdir:
+ cmd("rm -rf " + self._tmpdir, host=self)
+ self._tmpdir = None
+
+ def cmd(self, comm):
+ return subprocess.Popen(["ssh", "-q", self.name, comm],
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+
+ def _mktmp(self):
+ return ''.join(random.choice(string.ascii_lowercase) for _ in range(8))
+
+ def deploy(self, what):
+ if not self._tmpdir:
+ self._tmpdir = "/tmp/" + self._mktmp()
+ cmd("mkdir " + self._tmpdir, host=self)
+ file_name = self._tmpdir + "/" + self._mktmp() + os.path.basename(what)
+
+ if not os.path.isabs(what):
+ what = os.path.abspath(self.dir_path + "/" + what)
+
+ cmd(f"scp {what} {self.name}:{file_name}")
+ return file_name