277 Commits

Author SHA1 Message Date
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
d8e959c89f
Connect synced folder to client in _initialize method 2022-04-25 12:26:16 -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
sophia
94a203efc9
Inject dummy client into remote synced folders 2022-04-25 12:26:14 -05:00
sophia
05bbd9ec50
Use v2 manager to seed ruby plugins for remote manager 2022-04-25 12:26:13 -05:00
sophia
78fbd12da9
Use remote plugin manager when in server mode 2022-04-25 12:26:13 -05:00
sophia
d5007d4d85
Use remote plugin module when in server mode 2022-04-25 12:26:13 -05:00
sophia
e951c4d971
Add remote plugin manager 2022-04-25 12:26:13 -05:00
sophia
7a75ed6cbb
Get stdout and stderr from privledged execute 2022-04-25 12:26:13 -05:00
sophia
8e85561f61
Get stdout and stderr from command 2022-04-25 12:26:12 -05:00
sophia
ab395ad730
Move remote communicator to remote plugin module 2022-04-25 12:26:09 -05:00
sophia
10b4015455
Setup remote communincator 2022-04-25 12:26:07 -05:00
sophia
dc9fe12644
Disable checking for synced folder client 2022-04-25 12:26:07 -05:00
sophia
e71e887331
Move remote synced folder module into remote plugin module 2022-04-25 12:26:06 -05:00
sophia
847d87a017
Get synced folder from machine 2022-04-25 12:26:04 -05:00
sophia
b58b77ef0b
Add capability methods for remote server 2022-04-25 12:26:03 -05:00
sophia
8bce3e6bd7
Enable remote mode for synced folders 2022-04-25 12:26:03 -05:00
sophia
4251b2ff7c
Get first level parent from ruby plugins 2022-04-25 12:24:48 -05:00
sophia
09a836745a
Don't search for parent plugins that don't exist in the Ruby run time 2022-04-25 12:24:48 -05:00
sophia
7477455380
Get parents from guest plugin 2022-04-25 12:24:39 -05:00
Chris Roberts
df53588de5
Store machine client within index entry for use in generating environment 2022-04-25 12:24:34 -05:00
Chris Roberts
99aef42342
Check for server mode before setting constant 2022-04-25 12:24:34 -05:00
Chris Roberts
927fd5e52f
Remove proto requires
They will only be needed when running in server mode, and when
in server mode, they will be loaded at startup
2022-04-25 12:24:34 -05:00
sophia
f722b15661
Remove references to SDK from remote machine index 2022-04-25 12:24:28 -05:00
sophia
8808ef353e
Clean up logging 2022-04-25 12:24:27 -05:00
sophia
90968ea430
pPss environment client to machine index eentry environment 2022-04-25 12:24:27 -05:00
sophia
3bda8b24ef
Save point: Get a target successfully from target index 2022-04-25 12:24:26 -05:00
sophia
a128d98dea
Move to_proto to config classes 2022-04-25 12:24:21 -05:00
sophia
0e40c2eb97
to_proto save point 2022-04-25 12:24:20 -05:00
Chris Roberts
8771e6078f
Add parents method to host plugin 2022-04-25 12:24:12 -05:00
Chris Roberts
c09fc7be1e
Whitespace cleanup 2022-04-25 12:23:55 -05:00
Chris Roberts
3d0d0148e9 Update tests to use real UI instance
Replaces use of UI doubles within tests to use actual UI instance
    to ensure calls are passing parameters correctly.
2021-06-23 14:04:48 -07:00
Chris Roberts
e7a6f397da Updates for Ruby 3.0 2021-06-21 15:57:46 -07:00
Chris Roberts
2d019cb608 Provide specialized messages on plugin install failure if possible
Inspect the error message received when failing to install a
    plugin. If it's something we can determine the cause, send
    back a cleaner error message to the user on how to resolve.
2021-03-08 15:57:13 -08:00
sophia
5607428a66 Don't try to recover machine without a uuid 2020-09-15 11:16:13 -05:00
sophia
943047d003 Add tests for synced folder collections 2020-08-19 17:57:57 -05:00
Chris Roberts
cd2d84fda7 Adjust synced folder collection class 2020-08-19 15:00:40 -05:00
sophia
faad9f2717 Add tests 2020-08-19 15:00:40 -05:00
sophia
afd2a28f60 Add synced_folder_capability 2020-08-19 15:00:40 -05:00
sophia
1661d1f1cf Print help message if user provides and ambiguous option 2020-07-06 10:52:05 -05:00
Sophia Castellarin
955f1f1b25
Merge pull request #11656 from soapy1/recover-from-missing-global-data
Add local machine to global index of machines if it does not exist
2020-06-17 15:18:48 -05:00
Chris Roberts
f26440ee38 Only allow the all special value to be matched when requested
This prevents the all special value from being matched on the
non-defined raw action names when the typed triggers support
is enabled.
2020-06-12 17:09:31 -07:00
Chris Roberts
916655dbd3 Fix trigger matching on :all special value
Updates the type to do a proper comparison when checking for
the `:all` special value as well as applied ignores.

Fixes #11599
2020-06-09 16:12:48 -07:00
sophia
132720e3b4 Add local machine to global index of machines if it does not exist 2020-06-09 17:22:55 -05:00
Chris Roberts
5195bee9ea Check if plugin install provides specification
During a plugin install, if the plugin is already installed and
activated, no specification will be returned as there was nothing
new installed. In this situation, look for the requested plugin
within the activated specifications. If it is found, then proceed
since the plugin is installed. If it is not found, return an error.
2020-05-06 15:51:37 -07:00
Chris Roberts
c5e2f36ddc
Merge pull request #11455 from chrisroberts/enhancement/triggers-insertions
Adjust how trigger actions are inserted into the stack
2020-04-08 16:53:17 -07:00
Chris Roberts
b8702ac889 Include default options in option parser
Adds method to shared helpers for adding procs to be evaluated
which can add default modifications to the option parser used
by commands. Customized option parser class within Vagrant
handles processing defined procs to set options.
2020-03-27 16:57:59 -07:00