Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSH Transport Implemented #34

Merged
merged 5 commits into from
Oct 18, 2014
Merged

SSH Transport Implemented #34

merged 5 commits into from
Oct 18, 2014

Conversation

hexylena
Copy link
Member

Provides the file actions:

  • remote_rsync_transfer
  • remote_scp_transfer

This currently requires you to use a file_action_config on the Galaxy side, as extra configuration is required.

Galaxy job_conf.xml:

<destination ...>
    <param id="file_action_config">file_actions.yaml</param>

Galaxy file_actions.yaml:

paths:
    - path: /home/vagrant/
      action: remote_rsync_transfer # or remote_scp_transfer
      ssh_user: vagrant
      ssh_host: my.fqdn
      ssh_port: 2222
      ssh_key: |
        -----BEGIN RSA PRIVATE KEY-----
        MIIEowIBAAKCAQEAwWYGEOhiJgbWv8eBV2LJp0MCSgrAPeX9FbsGn1I+UC110PPW

This passes configuration information in every message to Pulsar. The ssh_key is treated separately, pending a framework for passing transport-metadata. This lets the Galaxy admin reconfigure the SSH
parameters (user/host/port/key) without any interaction on the Pulsar admin's part. This will be very beneficial if the two groups do not have a close working relationship.

Future Work

  • Per TODO in pulsar/managers/stateful.py it should be trivial to define a section of parameters that are automatically extracted from the XML/file_actions (e.g. under a key meta), which are handled much more generically than the current hardcoding of ssh_key everywhere.

Eric Rasche added 2 commits October 16, 2014 13:54
Provides the file action "remote_rsync_transfer". This currently
*requires* you to use a `file_action_config` on the Galaxy side, as
extra configuration is required.

Galaxy job_conf.xml:

    <destination ...>
        <param id="file_action_config">file_actions.yaml</param>

Galaxy file_actions.yaml:

    paths:
        - path: /home/vagrant/
          action: remote_rsync_transfer
          ssh_user: vagrant
          ssh_host: my.fqdn
          ssh_port: 2222
          ssh_key: |
            -----BEGIN RSA PRIVATE KEY-----
            MIIEowIBAAKCAQEAwWYGEOhiJgbWv8eBV2LJp0MCSgrAPeX9FbsGn1I+UC110PPW

This passes configuration information in every message to Pulsar. While
suboptimal in terms of message size (ssh key is ~3x the size of a normal
message), it opens the door to multiple galaxies connecting to a single pulsar,
still using rsync. Additionally it lets the Galaxy admin reconfigure the SSH
parameters without any interaction on the Pulsar admin's part (with the
exception of `ssh_key`, as of now). This will be very beneficial if the two
groups do not have a close working relationship.
@hexylena
Copy link
Member Author

Tested in a live Galaxy instance, works there.

Eric Rasche added 3 commits October 16, 2014 14:52
Galaxy file_actions.yaml:

    paths:
        - path: /home/vagrant/
          action: remote_scp_transfer

Behaves identically to rsync
@hexylena
Copy link
Member Author

@jmchilton (sorry for all the messages), just wanted to add, since I switched to not using the persistent data directory, all SSH parameters are reconfigurable at any time by the admin. Want to cycle SSH keys/ports/username? Just update config and restart galaxy process.

@jmchilton
Copy link
Member

Super cool!

jmchilton added a commit that referenced this pull request Oct 18, 2014
SSH Transport Implemented
@jmchilton jmchilton merged commit 91ec064 into galaxyproject:master Oct 18, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants