154 Commits

Author SHA1 Message Date
Chris Roberts
c6f6bf0c47
Include source and destination in no path exception message 2022-04-25 12:26:31 -05:00
Chris Roberts
32ea6a4509
Add new options type with mappers 2022-04-25 12:26:31 -05:00
Chris Roberts
312080ba60
Only write graph when logging mapper output 2022-04-25 12:26:31 -05:00
Chris Roberts
710adc8f7b
Retain simple hash type for now 2022-04-25 12:26:31 -05:00
Chris Roberts
4c9f14572a
Update target to addr in plugin protos 2022-04-25 12:26:30 -05:00
Chris Roberts
b0f59c40f6
Update the search to use a reversed graph
Reverse the graph before searching so we are only working with
    a single possible destination. A DFS is used to initially prune
    down the graph.
2022-04-25 12:26:30 -05:00
Chris Roberts
3865008b89
Update weights and remove vertices from destination output 2022-04-25 12:26:30 -05:00
Chris Roberts
b26a1ac515
Log error when input type is missing 2022-04-25 12:26:30 -05:00
Chris Roberts
2f0fdfc153
Add unique vertex type for root 2022-04-25 12:26:30 -05:00
Chris Roberts
5609a32af0
Fix input type for duration mapping 2022-04-25 12:26:30 -05:00
Chris Roberts
32c77ef96a
Remove need for environment when mapping machine 2022-04-25 12:26:29 -05:00
Chris Roberts
0a9c02f957
Return hash with indifferent access from mapper 2022-04-25 12:26:29 -05:00
Chris Roberts
afdaf046dc
Log errors from submapping on direct type 2022-04-25 12:26:29 -05:00
Chris Roberts
14895eded1
Grab value from cache when mapping 2022-04-25 12:26:29 -05:00
Chris Roberts
c413335e14
Add mappers for new types 2022-04-25 12:26:29 -05:00
Chris Roberts
451f3041f9
Add support for named vertices to mappers graph 2022-04-25 12:26:28 -05:00
Chris Roberts
286886ae89
Add named vertex type 2022-04-25 12:26:28 -05:00
sophia
891eb27e9a
Rename plugin "target" to "addr" 2022-04-25 12:26:27 -05:00
sophia
274ed6c756
Add mapper for machine state 2022-04-25 12:26:24 -05:00
sophia
1e428a0812
Add mappers for provider 2022-04-25 12:26:24 -05:00
Paul Hinze
a86965c340
ruby mappers: Unwrap wrapper types in Hashes and Arrays
Boolean types (and possibly a few others) are returned as wrapper
classes when coming out from proto mapping; these need to be unwrapped
otherwise the caller who is expecting a nice clean boolean value ends up
with an icky protobuf class.

This fixes the shell provisioner, which relies on a communicator
receiving a settings hash `{error_check: false}` for a command that
usually fails but it sent just in case before provisioning starts.
2022-04-25 12:26:23 -05:00
Chris Roberts
7b82ba7ca0
Add ruby local command arguments type and mapper 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
Chris Roberts
914530d26a
Use trace log level for noisy log messages 2022-04-25 12:26:19 -05:00
Chris Roberts
2bf39a7dcf
If graph is not acyclic, break cycles before finding path 2022-04-25 12:26:18 -05:00
Chris Roberts
2f7a9c5a79
Add support for detecting and breaking cycles in graph 2022-04-25 12:26:18 -05:00
Chris Roberts
3cdac85d91
Allow nil values for input types 2022-04-25 12:26:18 -05:00
Chris Roberts
1256abc7b2
Fix synced folder plugin initialization in mapper 2022-04-25 12:26:18 -05:00
Chris Roberts
2a7e43d269
Fix value usage in the boolean mapper 2022-04-25 12:26:18 -05:00
Chris Roberts
aa934f4436
Implement known type mappers directly 2022-04-25 12:26:17 -05:00
Chris Roberts
047a7f08d8
Replace auto-generated mappers with direct implementation of subset 2022-04-25 12:26:17 -05:00
Chris Roberts
64ebe30618
Remove string conversion to pathname 2022-04-25 12:26:17 -05:00
Chris Roberts
998432faee
Include source type when failed to reach destination 2022-04-25 12:26:17 -05:00
Chris Roberts
6bdc7baf39
Update name from Types to Type 2022-04-25 12:26:16 -05:00
Chris Roberts
e6a3e16b48
Remove from string mappers 2022-04-25 12:26:15 -05:00
Chris Roberts
de18081a35
Add mappers for host and plugin manager clients 2022-04-25 12:26:15 -05:00
Chris Roberts
3f7b7ee65a
Add mappers for loading command client 2022-04-25 12:26:15 -05:00
sophia
a3c3bb9cf1
Add mappers for synced folder client -> vagrant synced folder 2022-04-25 12:26:13 -05:00
sophia
1aabc7c4b5
Add mapper for a Class to String 2022-04-25 12:26:12 -05:00
sophia
8e0f42ec17
Add mapper for synced folder client to proto 2022-04-25 12:26:12 -05:00
sophia
04a6f762af
Make synced folder mapping work 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
6eaf399501
Add mapper Symbol -> String 2022-04-25 12:26:10 -05:00
sophia
b29b37af0d
Add mappers for time duration proto 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
b9e7d2197e
Clean up from rebase 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
8513a14f9e
Use RemotePath proto message to upload/download files 2022-04-25 12:26:08 -05:00
sophia
8a2375faf2
Add mapper for communincator path proto 2022-04-25 12:26:08 -05:00