67 Commits

Author SHA1 Message Date
hashicorp-copywrite[bot]
36a312ee26
add missing license headers and update copyright file headers to BUS-1.1 2023-08-10 21:53:25 +01:00
Paul Hinze
957d0d3779
Bring plugin options back to Ruby for providers and synced folders
This removes the need for the validation workaround for Docker, because
box_updated is once again available in that context.

We don't technically need the SyncedFolder priorities back on the Ruby
side, but wiring them through for symmetry.

Depends on https://github.com/hashicorp/vagrant-plugin-sdk/pull/183
2022-07-15 12:14:47 -05:00
Chris Roberts
f5d778d51a Revert "Merge pull request #300 from hashicorp/optimize-ruby-command-list"
This reverts commit 1c26a4abb0c9e095b3f6ec9944c4b15f6f1cd064, reversing
changes made to 186824a568583d8f6f2a50501d940ed71608fa0b.

The changes broke plugin loading when using subcommands so these
changes will be reverted until the underlying issue can be
investigated and resolved.
2022-07-07 14:03:56 -07:00
Chris Roberts
ced8f947f8 Modify ordering of attributes 2022-06-29 16:11:30 -07:00
Chris Roberts
da0ba680ac Update testing helper setups for signature change 2022-06-27 11:21:41 -07:00
Chris Roberts
eee26ce5a0 Do not close individual plugins from manager 2022-06-20 13:02:35 -07:00
Chris Roberts
1134a4e5ed Update plugin manager loading. Add ruby client. 2022-06-15 11:08:03 -07:00
sophia
0cdb63db58 Flush out http downloader 2022-06-08 10:30:46 -05:00
sophia
36081df049 Load filedownloader plugin 2022-06-08 10:30:46 -05:00
Paul Hinze
8dbe72a5a0
Use Component Options to implement ProviderOptions
* Populates ComponentOptions into plugin structs
* Maps options for legacy Provider Plugins into PluginOptions
* Demos use of PluginOptions in a stub provider
* Honors plugin priority and defaultable settings
2022-06-03 16:37:05 -05:00
sophia
b381487dd2 Use testing plugins to populate testing plugin manager 2022-05-02 14:52:41 -05:00
sophia
c712afad8f Update testing plugins 2022-05-02 12:33:18 -05:00
Chris Roberts
1594545d18 Remove helpers which are no longer valid 2022-04-25 16:12:38 -07:00
Chris Roberts
6d45d07f3f Update plugin to use cleanup 2022-04-25 16:12:38 -07:00
Chris Roberts
f39e5709f4 Make plugin manager usage consistent
Updated to properly handle sub managers. Configurators
  from parent managers properly applied to instances. Instances
  are cached within requesting manager. Parent loading is also
  handled in calling manager to properly support parent caching.
  Closers implementation replaced with cleanup.
2022-04-25 16:12:38 -07:00
Chris Roberts
45e7814842 Remove parent loading and caching from plugin 2022-04-25 16:12:38 -07:00
Chris Roberts
5e277410f3 Use regular mapper for manager and properly cleanup on close 2022-04-25 16:01:10 -07:00
Chris Roberts
8b5bab5250 Update plugin manager to cache named plugins 2022-04-25 16:01:10 -07:00
Chris Roberts
234734061c Add internal interface implementation for managers 2022-04-25 16:01:10 -07:00
Chris Roberts
616e003c42 When creating a plugin instance, register closer 2022-04-25 16:01:10 -07:00
Chris Roberts
1ca5872a5a
Define component types which can be cached 2022-04-25 12:26:58 -05:00
sophia
68ffb3a8cf
Inject core plugin manager into context when running plugins 2022-04-25 12:26:50 -05:00
sophia
b33f1a9e01
Test guest plugin with parent 2022-04-25 12:26:41 -05:00
sophia
df0fb642b0
Add ability to get plugin with a particular instance 2022-04-25 12:26:41 -05:00
sophia
8f95994a88
Create test dummy plugins 2022-04-25 12:26:41 -05:00
sophia
1117e06e38
Add testing plugin and plugin manager 2022-04-25 12:26:40 -05:00
sophia
19f3d2f0b6
Refactor named plugin bits to apply to all components 2022-04-25 12:26:33 -05:00
sophia
891eb27e9a
Rename plugin "target" to "addr" 2022-04-25 12:26:27 -05:00
Chris Roberts
9f320145ff
Add support for custom component configuration 2022-04-25 12:26:14 -05:00
Chris Roberts
20a3f4d85c
Provide core.PluginManager implementation and server setup 2022-04-25 12:26:14 -05:00
Chris Roberts
27d0fee45f
Define plugin interfaces in plugin. Load parent from plugin.
Also applies registered configurations from the plugin
    manager when providing a requested component type.
2022-04-25 12:26:14 -05:00
Chris Roberts
b2dec1191a
Remove interfaces and add extra info to instance 2022-04-25 12:26:14 -05:00
Chris Roberts
e4f1e297ab
Update plugin seed function signature 2022-04-25 12:26:05 -05:00
sophia
c4cd5c599b
Add mappers to component at component creation phase 2022-04-25 12:25:51 -05:00
Chris Roberts
7595f1533f
Enable plugin mappers 2022-04-25 12:25:50 -05:00
sophia
cafa1d039d
Load single parent plugin 2022-04-25 12:24:48 -05:00
sophia
cda3ba7b29
Make myplugin have parents darwin and bsd 2022-04-25 12:24:48 -05:00
sophia
2bd95144e7
Seed plugin on startup 2022-04-25 12:24:48 -05:00
sophia
3d0197d0bf
Store plugin parents 2022-04-25 12:24:47 -05:00
Chris Roberts
891541cd40
Create cache in manager and set into plugin if available 2022-04-25 12:24:47 -05:00
Chris Roberts
fc61c27b51
Update logging names for clearer messages 2022-04-25 12:24:45 -05:00
Chris Roberts
0f4c6f5921
Allow plugin manager to have sub managers 2022-04-25 12:24:34 -05:00
sophia
f261b9a158
Fix errorf formatting 2022-04-25 12:24:29 -05:00
sophia
bc365ab796
Remote discover tests 2022-04-25 12:24:28 -05:00
sophia
47a0a2d7d2
Record machine client in machine index entry 2022-04-25 12:24:27 -05:00
Chris Roberts
ef3cde9cd3
Update in-process builtin factory to return plugin registration 2022-04-25 12:24:23 -05:00
Chris Roberts
63fe341ca5
Add plugin discovery support to manager 2022-04-25 12:24:23 -05:00
Chris Roberts
26b9cd37e7
Remove plugin discover function 2022-04-25 12:24:23 -05:00
Chris Roberts
7357fa4017
Update plugin factory definitions to use custom type 2022-04-25 12:24:22 -05:00
Chris Roberts
392ad6d3b7
Define plugin struct in plugin file and remove factories 2022-04-25 12:24:22 -05:00