54 Commits

Author SHA1 Message Date
Chris Roberts
f3a3bb83fd
Only register types for blind maps after a blind map 2022-04-25 12:26:55 -05:00
Chris Roberts
e8a4c35cf6
Remove any unpacking of value prior to mapping 2022-04-25 12:26:55 -05:00
Chris Roberts
2baea78820
Properly clone mappers 2022-04-25 12:26:55 -05:00
Chris Roberts
823e589a26
Freeze base mappers list to prevent direct modifications 2022-04-25 12:26:55 -05:00
Chris Roberts
2f9daa8498
Include value in error message when mappers not found 2022-04-25 12:26:55 -05:00
Chris Roberts
61b5d3549f
Don't use blind mapping when generating value 2022-04-25 12:26:54 -05:00
Chris Roberts
3917449552
Provide source information when mapping, register blind maps 2022-04-25 12:26:54 -05:00
Chris Roberts
f6a46634a5
When performing a blind map, if previous mapping found, use it 2022-04-25 12:26:54 -05:00
Chris Roberts
1d555b025f
Use global list of mappers and cache as defaults 2022-04-25 12:26:54 -05:00
Chris Roberts
7404ef89a6
Isolate generate class from instance so we can do class checks 2022-04-25 12:26:54 -05:00
Chris Roberts
3a6308b7fc
Use blocks for logging content to reduce processing 2022-04-25 12:26:54 -05:00
sophia
9a61574f52
Add core plugin manager to default mapper list 2022-04-25 12:26:50 -05:00
sophia
b40dde3797
Module for core plugin manager mappers 2022-04-25 12:26:50 -05:00
Chris Roberts
8542650e38
If destination is any, only allow proto destinations 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
Chris Roberts
c7fdd92eb5
Add folders type to mappers 2022-04-25 12:26:36 -05:00
Chris Roberts
b7f074e492
Remove debugging artifacts 2022-04-25 12:26:36 -05:00
Chris Roberts
9a6f5fa316
Don't unany mapping if source value is proto 2022-04-25 12:26:35 -05:00
Chris Roberts
095a0f8847
WIP checkpoint with callable remote provider action 2022-04-25 12:26:35 -05:00
Chris Roberts
e7686882fa
Log error and stacktrace on mapping errors 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
a98d91e15f
Unpack named arguments and provide value to flag generation request 2022-04-25 12:26:30 -05:00
Chris Roberts
32251ecb64
Include named value to mapper graph 2022-04-25 12:26:28 -05:00
Chris Roberts
1f731bbf9f
Add more default type maps 2022-04-25 12:26:28 -05:00
Chris Roberts
7c69fde71c
Break out type finding from unany method 2022-04-25 12:26:28 -05:00
sophia
1e428a0812
Add mappers for provider 2022-04-25 12:26:24 -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
43e5550203
Store the destination type so we can see it in the logs 2022-04-25 12:26:18 -05:00
Chris Roberts
2ff7d6a5bd
Allow value to be mapped to be nil 2022-04-25 12:26:18 -05:00
Chris Roberts
033dfba056
Fix known arguments value usage and do not allow adding nil values 2022-04-25 12:26:17 -05:00
Chris Roberts
9ace68f424
Add known mapping for synced folders 2022-04-25 12:26:17 -05:00
Chris Roberts
1e3547fdaa
Update log output and return immediately if type 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
c6feb89138
Remove mappers that output the same type as the input 2022-04-25 12:26:16 -05:00
Chris Roberts
de18081a35
Add mappers for host and plugin manager clients 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
ce6b2c8338
Add mapper for communicator command 2022-04-25 12:26:08 -05:00
Chris Roberts
fbde80af43
Add default mapping for named capabilities 2022-04-25 12:26:05 -05:00
sophia
841573194e
Add mappers for synced folders and basis 2022-04-25 12:26:05 -05:00
Chris Roberts
c7d13e62c7
Ensure output of mapper to unpack funcspec is a proto 2022-04-25 12:26:02 -05:00
Chris Roberts
6a1c5f1c7f
Add default map list for blind mappings. Unpack funcspec before map. 2022-04-25 12:26:02 -05:00
Chris Roberts
100ad1330d
Remove automatic caching and add short circuits 2022-04-25 12:26:01 -05:00
Chris Roberts
3aa4e1bab4
Add mapping for pathnames 2022-04-25 12:26:00 -05:00
Chris Roberts
68ed3ba1d9
Add any unpacking. Filter blind maps. 2022-04-25 12:25:58 -05:00
sophia
99694b210b
Add mappers for box proto to client 2022-04-25 12:25:53 -05:00
Chris Roberts
3f4e446798
Support mapping to unknown destination type 2022-04-25 12:25:50 -05:00
Chris Roberts
d88a1e1346
Load all mappers and support extra args for funcspec processing 2022-04-25 12:24:44 -05:00
Chris Roberts
d37f2ff6fe
Split out mappers implementation to namespaced file 2022-04-25 12:24:44 -05:00