blob: 087d887c4ef3bea13ee2a176431f31a42af8c3ac [file] [log] [blame]
George Keishinge7e91712021-09-03 11:28:44 -05001#!/usr/bin/env python3
Peter D Phan2f3a96e2021-07-29 12:12:02 -05002
3
4import os
5import sys
6
7# ---------Set sys.path for pluqin execution---------------------------------------
8# Absolute path to this plugin
9abs_path = os.path.abspath(os.path.dirname(sys.argv[0]))
10# full_path to plugins parent directory
11full_path = abs_path.split('plugins')[0]
12sys.path.append(full_path)
13# Walk path and append to sys.path
14for root, dirs, files in os.walk(full_path):
15 for found_dir in dirs:
16 sys.path.append(os.path.join(root, found_dir))
17
18# ssh_utility is in ../lib
19from ssh_utility import SSHRemoteclient
20
21
22def ssh_execute_cmd(hostname,
23 username,
24 password,
25 command,
George Keishing6ee86702021-08-05 09:45:43 -050026 timeout=60,
27 type=None):
Peter D Phan2f3a96e2021-07-29 12:12:02 -050028 r"""
29 Description of argument(s):
30
31 hostname Name/IP of the remote (targeting) host
32 username User on the remote host with access to FFCD files
33 password Password for user on remote host
34 command Command to run on remote host
35 timeout Time, in second, to wait for command completion
George Keishing6ee86702021-08-05 09:45:43 -050036 type Data type return as list or others.
Peter D Phan2f3a96e2021-07-29 12:12:02 -050037 """
38 ssh_remoteclient = SSHRemoteclient(hostname,
39 username,
40 password)
41
42 cmd_exit_code = 0
43 err = ''
44 response = ''
45 if ssh_remoteclient.ssh_remoteclient_login():
46
47 """
48 cmd_exit_code: command exit status from remote host
49 err: stderr from remote host
50 response: stdout from remote host
51 """
52 cmd_exit_code, err, response = \
Peter D Phanba48e9b2021-08-12 11:35:50 -050053 ssh_remoteclient.execute_command(command, int(timeout))
Peter D Phan2f3a96e2021-07-29 12:12:02 -050054
55 # Close ssh session
56 if ssh_remoteclient:
57 ssh_remoteclient.ssh_remoteclient_disconnect()
58
George Keishing6ee86702021-08-05 09:45:43 -050059 if type == "list":
60 return response.split('\n')
61 else:
62 return response