puppetlabs-toy-chest / wash

Wide Area SHell: a cloud-native shell for bringing remote infrastructure to your terminal.
https://puppetlabs.github.io/wash
Apache License 2.0
180 stars 29 forks source link

External volume and transport features for external plugins #692

Closed MikaelSmith closed 4 years ago

MikaelSmith commented 4 years ago

Add features that external plugins can request Wash provide them from its core capabilities. Implement volume.FS and transport.ExecSSH as features.

MikaelSmith commented 4 years ago

Demonstrated with https://github.com/puppetlabs/boltwash/pull/1 using https://github.com/puppetlabs/wash-ruby/pull/27. Still need to write lots of testing in various places, but this should be useful to get feedback on how you set it up.

ekinanp commented 4 years ago

I think exporting volume.FS and transport makes sense, I'm just not sure if a separate features key is the best way to do it. Here's why I say that:

MikaelSmith commented 4 years ago

Those make sense to me. I'll work on the details a bit today.

ekinanp commented 4 years ago

Cool, pending tests the changes here look good.

MikaelSmith commented 4 years ago

Added tests, I think just docs remaining.

MikaelSmith commented 4 years ago

Added docs. I can make that a separate PR if needed.

MikaelSmith commented 4 years ago

I'm going to split the docs change into a separate PR so we can merge it around release time.