207 Commits

Author SHA1 Message Date
Paul Hinze
7c1d2e5368
Use optional fields on Synced Folder instead of empty string checks
Addresses concerns raised in discussion here
https://github.com/hashicorp/vagrant-ruby/pull/219#discussion_r816966056
and makes it so we don't have to change any plugin code to make things
work.

Depends on https://github.com/hashicorp/vagrant-plugin-sdk/pull/133
2022-04-25 12:26:44 -05:00
Chris Roberts
df0bbe343f
Support bold style and add #clear_line 2022-04-25 12:26:43 -05:00
Chris Roberts
71fb214d95
Add #input to terminal client and use event stream 2022-04-25 12:26:43 -05:00
sophia
b7d12a0907
Get provider from remote machine 2022-04-25 12:26:38 -05:00
Chris Roberts
83ca40e239
Refactor Ruby service implementations
Update the Ruby service implementations to use the funcspec util
    module for generating spec content. A helper method is now used
    for generating a parent class for services to subclass which
    automatically includes all required modules for usage.
2022-04-25 12:26:37 -05:00
Paul Hinze
ff86d86ac8
Provisioner Plugins 2022-04-25 12:26:37 -05:00
sophia
94698704ab
Fix some small errors 2022-04-25 12:26:37 -05:00
Chris Roberts
14d2d66d29
Use folders and options types in client/services 2022-04-25 12:26:36 -05:00
Chris Roberts
f507a3d7ff
Add todo note about deleted entries 2022-04-25 12:26:36 -05:00
Chris Roberts
ac8790b694
Remove deleteion of host and machine index entries 2022-04-25 12:26:36 -05:00
Chris Roberts
095a0f8847
WIP checkpoint with callable remote provider action 2022-04-25 12:26:35 -05:00
sophia
55fb52f174
Update the synced folder client to pass direct values 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
29eb55909c
Refactor guest detect client 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
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
sophia
e95d906f74
Get plugin name from client 2022-04-25 12:26:32 -05:00
Chris Roberts
ea3932be22
Allow options hash for action on provider client 2022-04-25 12:26:31 -05:00
Chris Roberts
9e58090d09
Update the provider client to use funcspec utility 2022-04-25 12:26:30 -05:00
Chris Roberts
9f5e7780aa
Modifications to provide expected behavior of communicator client 2022-04-25 12:26:30 -05:00
Chris Roberts
8d8e9ae8ea
Properly include Empty argument to calls 2022-04-25 12:26:29 -05:00
Chris Roberts
ad402fd6d0
Update component clients to use FuncSpec module 2022-04-25 12:26:29 -05:00
Chris Roberts
6e16a8835c
Update clients to subclass Client 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
c48e43a12a
Add provider ruby client 2022-04-25 12:26:23 -05:00
sophia
c01a38b6e1
Load target index targets 2022-04-25 12:26:22 -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
Chris Roberts
b08ca1e109
Convert to pathnames on upload and download 2022-04-25 12:26:18 -05:00
Chris Roberts
6bdc7baf39
Update name from Types to Type 2022-04-25 12:26:16 -05:00
Chris Roberts
23c99b5806
Implement command and plugin manager clients 2022-04-25 12:26:15 -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
a18fb54ca6
Include seeds and default args for synced folder plugins 2022-04-25 12:26:11 -05:00
sophia
3c20f826ea
Don't send nil machine id value 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
84af97f0a9
Add placeholder remote guest name 2022-04-25 12:26:10 -05:00
sophia
5ba4cf0363
Get communicator from remote machine 2022-04-25 12:26:10 -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