4280 Commits

Author SHA1 Message Date
Chris Roberts
0cf2ea2eb6
Update wrapper initializer to use client from manager 2022-04-25 12:26:35 -05:00
Chris Roberts
3d05ff7ce0
Set client into remote manager on enable and remove on disable 2022-04-25 12:26:35 -05:00
Chris Roberts
070292fb3b
Add class level storage for remote manager client 2022-04-25 12:26:35 -05:00
Paul Hinze
e9426b7a89
Switch to constant stub and add explanatory comment 2022-04-25 12:26:34 -05:00
Paul Hinze
952ba920bc
Return a static priority w/ synced folders in remote manager
Callers expect the manager to return both the class and an integer
priority... so we get a bare minimum working by returning something
reasonable.
2022-04-25 12:26:34 -05:00
sophia
b6de8c3a80
Add guest detect function to client 2022-04-25 12:26:34 -05:00
sophia
56edbfa3b8
Add guest remote plugin module 2022-04-25 12:26:33 -05:00
sophia
87f8c9cc5e
Implement synced folder prepare endpoint 2022-04-25 12:26:33 -05:00
sophia
3ae69c706a
go generate 2022-04-25 12:26:33 -05:00
sophia
231c99b133
go generate . 2022-04-25 12:26:33 -05:00
sophia
1f632d076c
go generate after rebase 2022-04-25 12:26:33 -05:00
sophia
1cda8322af
go generate 2022-04-25 12:26:33 -05:00
sophia
153d218d68
Set plugin name 2022-04-25 12:26:32 -05:00
sophia
1217189616
go generate 2022-04-25 12:26:32 -05:00
sophia
e95d906f74
Get plugin name from client 2022-04-25 12:26:32 -05:00
sophia
764f5c96c5
go generate 2022-04-25 12:26:32 -05:00
Chris Roberts
fc8b01f0ac
Generated proto updates 2022-04-25 12:26:32 -05:00
Chris Roberts
1c3afc0fc9
Generated proto update 2022-04-25 12:26:32 -05:00
Chris Roberts
8867dfc33c
Accept options hash for action methods 2022-04-25 12:26:31 -05:00
Chris Roberts
2acd0fa3b8
Generated proto updates 2022-04-25 12:26:30 -05:00
sophia
bf8b7f6508
go generate 2022-04-25 12:26:27 -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
8355209654
Accept machine for provider state endpoint 2022-04-25 12:26:24 -05:00
sophia
1e428a0812
Add mappers for provider 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
809e4044a0
Add provider remote plugin module 2022-04-25 12:26:23 -05:00
sophia
5fda271283
go generate . 2022-04-25 12:26:23 -05:00
sophia
12de22a7db
Get machine state 2022-04-25 12:26:23 -05:00
sophia
371377ebfc
Use provider to get current state for now 2022-04-25 12:26:23 -05:00
sophia
2469016be1
Use remote machine/environment 2022-04-25 12:26:22 -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
a841da4fc6
Add a simple push plugin in Go
The only tweak required to get this to work was allowing a DummyConfig
to survive being passed through a remote plugin on the Ruby side.
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
deb667ecd3
Use common rpc errdetails messages 2022-04-25 12:26:20 -05:00
sophia
45e64b9890
Add localized message proto 2022-04-25 12:26:20 -05:00
Chris Roberts
914530d26a
Use trace log level for noisy log messages 2022-04-25 12:26:19 -05:00
Chris Roberts
4bcef5de84
Update initial logger configuration to properly apply 2022-04-25 12:26:19 -05:00
Chris Roberts
ec68f6d910
Allow trace to accept args when adding on undefine 2022-04-25 12:26:19 -05:00
Chris Roberts
1b8686d471
Use configurator for level configuration 2022-04-25 12:26:19 -05:00
Chris Roberts
fb1dc2cc59
Load log4r patches at startup 2022-04-25 12:26:19 -05:00
Chris Roberts
d746df4883
Patch Log4r to allow trace logging level 2022-04-25 12:26:19 -05:00
Chris Roberts
8c9b72d56e
Base log message splitting on overall size 2022-04-25 12:26:16 -05:00
Chris Roberts
d8e959c89f
Connect synced folder to client in _initialize method 2022-04-25 12:26:16 -05:00
Chris Roberts
d67aaff74a
Set the client using keyword for synced folder 2022-04-25 12:26:16 -05:00
Chris Roberts
72b8547cce
Generated proto updates 2022-04-25 12:26:15 -05:00
Chris Roberts
031890fcc7
Allow plugin manager to be swapped out for remote manager 2022-04-25 12:26:15 -05:00
Chris Roberts
23d0d9debb
Provide client using keyword argument for synced folder 2022-04-25 12:26:14 -05:00
Chris Roberts
fb2319f1e2
Implement remote plugin manager backed by vagrant go 2022-04-25 12:26:14 -05:00
sophia
1db38e65f8
Setup remote plugin manager when in server mode 2022-04-25 12:26:14 -05:00