imp ssh control master connector
| 22 | |
| 23 | |
| 24 | class SshConnector: |
| 25 | """imp ssh control master connector""" |
| 26 | |
| 27 | ip = None |
| 28 | port = None |
| 29 | login_name = None |
| 30 | |
| 31 | def setup(self, login_name, ip, port): |
| 32 | self.ip = ip |
| 33 | self.login_name = login_name |
| 34 | self.port = port |
| 35 | |
| 36 | def copy(self, src_list, dst_dir): |
| 37 | assert isinstance(src_list, list), "code issue happened!!" |
| 38 | assert isinstance(dst_dir, str), "code issue happened!!" |
| 39 | for src in src_list: |
| 40 | cmd = 'rsync --progress -a -e "ssh -p {}" {} {}@{}:{}'.format( |
| 41 | self.port, src, self.login_name, self.ip, dst_dir |
| 42 | ) |
| 43 | logging.debug("ssh run cmd: {}".format(cmd)) |
| 44 | subprocess.check_call(cmd, shell=True) |
| 45 | |
| 46 | def cmd(self, cmd): |
| 47 | assert isinstance(cmd, list), "code issue happened!!" |
| 48 | try: |
| 49 | for sub_cmd in cmd: |
| 50 | p_cmd = 'ssh -p {} {}@{} "{}" '.format( |
| 51 | self.port, self.login_name, self.ip, sub_cmd |
| 52 | ) |
| 53 | logging.debug("ssh run cmd: {}".format(p_cmd)) |
| 54 | subprocess.check_call(p_cmd, shell=True) |
| 55 | except: |
| 56 | raise |
| 57 | |
| 58 | |
| 59 | def main(): |