Пример #1
0
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()