def distribute_test_suite(node_dict, test_suite, data): """SSH into the remote instance and transfer data with SCP.""" # compress project-dir project = shutil.make_archive(expanduser('~/tmp/project'), 'gztar', root_dir=data['project']) writer = Writer(data, test_suite.content) #distribute test suite among instances for node, bundle in zip(node_dict.iteritems(), test_suite): config, cl = writer.generate_input(bundle) ip = node[1] key_file = data['ssh-key'] user = data['username'] client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname=ip, username=user, key_filename=key_file) with SCPClient(client.get_transport()) as scp: scp.put(config, "/home/" + user + "/tmp/config.tar.gz") scp.put(cl, "/home/" + user + "/tmp/params.tar.gz") scp.put(project, "/home/" + user + "/tmp/project.tar.gz") client.close()