imp ssh control master connector
| 34 | |
| 35 | |
| 36 | class SshConnector: |
| 37 | """imp ssh control master connector""" |
| 38 | |
| 39 | ip = None |
| 40 | port = None |
| 41 | login_name = None |
| 42 | |
| 43 | def setup(self, login_name, ip, port): |
| 44 | self.ip = ip |
| 45 | self.login_name = login_name |
| 46 | self.port = port |
| 47 | |
| 48 | def copy(self, src_list, dst_dir): |
| 49 | assert isinstance(src_list, list), "code issue happened!!" |
| 50 | assert isinstance(dst_dir, str), "code issue happened!!" |
| 51 | for src in src_list: |
| 52 | cmd = 'rsync --progress -a -e "ssh -p {}" {} {}@{}:{}'.format( |
| 53 | self.port, src, self.login_name, self.ip, dst_dir |
| 54 | ) |
| 55 | logging.debug("ssh run cmd: {}".format(cmd)) |
| 56 | subprocess.check_call(cmd, shell=True) |
| 57 | |
| 58 | def cmd(self, cmd): |
| 59 | output = "" |
| 60 | assert isinstance(cmd, list), "code issue happened!!" |
| 61 | for sub_cmd in cmd: |
| 62 | p_cmd = 'ssh -p {} {}@{} "{}" '.format( |
| 63 | self.port, self.login_name, self.ip, sub_cmd |
| 64 | ) |
| 65 | logging.debug("ssh run cmd: {}".format(p_cmd)) |
| 66 | output = output + subprocess.check_output(p_cmd, shell=True).decode("utf-8") |
| 67 | return output |
| 68 | |
| 69 | |
| 70 | def get_finally_bench_resulut_from_log(raw_log) -> float: |