Paul Hinze
f314c090e2
Set local machine within provider service
...
See inline comment for more context
2022-04-25 12:26:34 -05:00
Paul Hinze
a5f0996f5f
Fix ssh_info protobuf empty value handling
...
In https://github.com/hashicorp/vagrant-plugin-sdk/pull/115 we make the
SSHInfo fields optional, which allows us to remove zero values and fix
default value population within Machine#ssh_info.
2022-04-25 12:26:34 -05:00
sophia
8911ebd2b7
Get hash of synced folders
2022-04-25 12:26:33 -05:00
sophia
87f8c9cc5e
Implement synced folder prepare endpoint
2022-04-25 12:26:33 -05:00
sophia
19f3d2f0b6
Refactor named plugin bits to apply to all components
2022-04-25 12:26:33 -05:00
sophia
6c28de9ea9
Refactor named plugin service/client endpoints
2022-04-25 12:26:33 -05:00
sophia
153d218d68
Set plugin name
2022-04-25 12:26:32 -05:00
Chris Roberts
e2b135eb80
Accept options for actions on provider service
2022-04-25 12:26:31 -05:00
Chris Roberts
38d7bcc51f
Use machine as default argument for synced folder caps
2022-04-25 12:26:31 -05:00
Chris Roberts
58568b06fa
Define expected type with name
2022-04-25 12:26:29 -05:00
Chris Roberts
c9d93f2f8a
Request machines instead of targets
2022-04-25 12:26:29 -05:00
sophia
81a9d7b241
Pass machine to provider functions
2022-04-25 12:26:24 -05:00
sophia
fcf405bdf8
Run provider actions
2022-04-25 12:26:24 -05:00
sophia
274ed6c756
Add mapper for machine state
2022-04-25 12:26:24 -05:00
sophia
8355209654
Accept machine for provider state endpoint
2022-04-25 12:26:24 -05:00
sophia
526b7f2318
Remote init from provider grpc api
2022-04-25 12:26:23 -05:00
sophia
75e6081e6d
Fill in provider ruby service
2022-04-25 12:26:23 -05:00
Chris Roberts
1a32e8c2f9
Fetch command banner and remove switch characters
2022-04-25 12:26:21 -05:00
Chris Roberts
5e6fe71a37
Use ruby command arguments type when executing command
2022-04-25 12:26:21 -05:00
Paul Hinze
92c345b42d
Allow go push plugins to use config from Vagrantfile
...
* Populate push configs when parsing the vagrantfile
* Allow untyped configs to be shipped over GRPC
* In our demo plugin, walk the vagrantfile and snag the config
Example Vagrantfile that works with the demo plugin:
```ruby
Vagrant.configure("2") do |config|
config.push.define "myplugin" do |push|
push.coolkey = "coolvalue"
push.alist = ["so", "many", "items"]
push.ahash = { "hashkey" => "hashvalue" }
end
end
```
2022-04-25 12:26:21 -05:00
Paul Hinze
737c1a5f8b
Use the simpler plugin interface for Push plugins
...
* Bumps the go.mod to the just-merged SDK version
* Returns empty results on success vs messing around with PushResponses
2022-04-25 12:26:21 -05:00
Paul Hinze
0fef7cc416
Port push plugins
...
This uses the new Push plugin support added to the plugin SDK in https://github.com/hashicorp/vagrant-plugin-sdk/pull/106 to make the following changes:
* The plugin manager on the Go side now registers push plugins
* The the _remote_ plugin manager on the Ruby side now calls over to
the go side to get push plugins
* All the wiring is hooked up such that when a push plugin is replaced
with its remote GRPC-client-wielding equivalent, the messages are
ferried around.
2022-04-25 12:26:21 -05:00
sophia
df5f7d40e8
Rename exception logger to exception transformer
...
The exception logger no longer logs errors. Instead it transforms
the errors into a grpc friendly format. The exception that would
have been logged at this point gets logged when the task completes.
2022-04-25 12:26:20 -05:00
sophia
c70da0f548
Raise Vagrant error
2022-04-25 12:26:20 -05:00
sophia
441f82760b
Include exception logger and attach to all available methods
2022-04-25 12:26:19 -05:00
Chris Roberts
6bdc7baf39
Update name from Types to Type
2022-04-25 12:26:16 -05:00
Chris Roberts
8676b13363
Include broker when setting service info
2022-04-25 12:26:16 -05:00
Chris Roberts
5c8f14041c
Update services to provide broker and use proper plugin manager
2022-04-25 12:26:15 -05:00
sophia
d5007d4d85
Use remote plugin module when in server mode
2022-04-25 12:26:13 -05:00
sophia
7a75ed6cbb
Get stdout and stderr from privledged execute
2022-04-25 12:26:13 -05:00
sophia
88e1e5c1a7
Map ouput of capabilities
2022-04-25 12:26:12 -05:00
sophia
8e85561f61
Get stdout and stderr from command
2022-04-25 12:26:12 -05:00
sophia
f33e949138
Get a machine as defult synced folder arg
2022-04-25 12:26:12 -05:00
sophia
a18fb54ca6
Include seeds and default args for synced folder plugins
2022-04-25 12:26:11 -05:00
sophia
38dd5ef5f9
Use path proto to pass around paths
2022-04-25 12:26:11 -05:00
sophia
175f05657c
go generate
2022-04-25 12:26:10 -05:00
sophia
1ce82cf14c
Re-enable cap service return values
2022-04-25 12:26:10 -05:00
sophia
37cf32ef85
Communicator test and ready functions update
2022-04-25 12:26:10 -05:00
sophia
8a7ecc8411
Use mapped wait duration
2022-04-25 12:26:10 -05:00
sophia
10f176950d
Cleanup mapper usage
2022-04-25 12:26:10 -05:00
sophia
f35b429335
Use Args.Hash for communincator execute function
2022-04-25 12:26:10 -05:00
sophia
a4694bcf91
Extract to/from arg from upload/download request
2022-04-25 12:26:10 -05:00
sophia
773276ba37
Ensure opts get passed to privledge execute
2022-04-25 12:26:09 -05:00
sophia
73b6c7c6d6
Use Hash Arg to pass around communincator args
2022-04-25 12:26:09 -05:00
sophia
ba1dd33fff
Include seeds in ruby communicator
2022-04-25 12:26:09 -05:00
sophia
bb084e42e4
Apply changes to download funciton
2022-04-25 12:26:09 -05:00
sophia
d57203f005
Get ruby communincator upload working
2022-04-25 12:26:09 -05:00
sophia
49ad851606
Use named paths proto message for uploading/downloading
2022-04-25 12:26:09 -05:00
sophia
80457cd869
Run communincator execute
2022-04-25 12:26:08 -05:00
sophia
8513a14f9e
Use RemotePath proto message to upload/download files
2022-04-25 12:26:08 -05:00