68 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
sophia
686f9949fc Add plugin example of coloring terminal output 2022-09-14 11:42:54 -04:00
Paul Hinze
7c56c74bb6
Support and honor the "primary" option for Command plugins 2022-07-27 11:36:04 -05:00
Chris Roberts
9b355854f0 Disable push config usage in test plugin 2022-06-15 12:49:22 -07:00
Paul Hinze
8b5d4b8631
Update and address protobuf package deprecations
These changes address the following warning showing up on `go get`
operations:

    go: module github.com/golang/protobuf is deprecated: Use the
    "google.golang.org/protobuf" module instead.

All changes are made using the recommendations in the per-function
deprecation notices from the docs at
https://pkg.go.dev/github.com/golang/protobuf/ptypes
2022-06-08 11:51:19 -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
9094ac5869 Update donothing command to use localizer to just translate message 2022-05-16 13:51:57 -05:00
sophia
361f4ba9ba Load all localization files and allow sdk to choose the local language to use 2022-05-11 12:59:41 -05:00
sophia
5bfd9bda6c Enable english and spanish output for donothing command 2022-05-11 12:59:05 -05:00
sophia
25dfcd039f Update paths to use Path type instead of string 2022-04-25 14:12:28 -05:00
Paul Hinze
ff86d86ac8
Provisioner Plugins 2022-04-25 12:26:37 -05:00
Chris Roberts
920fd39ec1
Update builtin command to use CommandParams 2022-04-25 12:26:32 -05:00
sophia
be40120ddc
Remove current provider plugin 2022-04-25 12:26:23 -05:00
Chris Roberts
bd9ba0654e
Update builtins to use component command flag 2022-04-25 12:26:22 -05:00
Paul Hinze
92c345b42d
Allow go push plugins to use config from Vagrantfile
* Populate push configs when parsing the vagrantfile
* Allow untyped configs to be shipped over GRPC
* In our demo plugin, walk the vagrantfile and snag the config

Example Vagrantfile that works with the demo plugin:

```ruby
Vagrant.configure("2") do |config|
  config.push.define "myplugin" do |push|
    push.coolkey = "coolvalue"
    push.alist = ["so", "many", "items"]
    push.ahash = { "hashkey" => "hashvalue" }
  end
end

```
2022-04-25 12:26:21 -05:00
Paul Hinze
a841da4fc6
Add a simple push plugin in Go
The only tweak required to get this to work was allowing a DummyConfig
to survive being passed through a remote plugin on the Ruby side.
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
sophia
deb667ecd3
Use common rpc errdetails messages 2022-04-25 12:26:20 -05:00
sophia
bb084e42e4
Apply changes to download funciton 2022-04-25 12:26:09 -05:00
sophia
85f7aa1586
Make go communincator plugin work 2022-04-25 12:26:09 -05:00
sophia
a52b8b7fd3
Update dummy communicator 2022-04-25 12:26:08 -05:00
sophia
8e6dcac43e
Refactor myplugin
- add mappers for command options
- move communincator and prots into their own modules
2022-04-25 12:26:07 -05:00
sophia
f1e41a5c88
Add dummy communicator 2022-04-25 12:26:07 -05:00
sophia
f1f1b8c79d
Update parents -> parent 2022-04-25 12:24:48 -05:00
sophia
327db98656
Don't set parents for alwaystruehost 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
7e3d2faa07
Add write_hello_file capability 2022-04-25 12:24:48 -05:00
sophia
ee7971ab1c
Go/Ruby host plugin dependency 2022-04-25 12:24:47 -05:00
Chris Roberts
661785771f
Update builtins to implement seed(s) function 2022-04-25 12:24:45 -05:00
Chris Roberts
821a982656
Add subcommand for running host capability 2022-04-25 12:24:43 -05:00
sophia
a23da9bc64
Log ruby detect endpoint 2022-04-25 12:24:41 -05:00
sophia
591dcced22
Remotve machine names function from project 2022-04-25 12:24:37 -05:00
sophia
545ddbdc74
Differentiate guest and host plugins 2022-04-25 12:24:35 -05:00
Chris Roberts
8d52d9311e
Set custom plugin name for builtins 2022-04-25 12:24:21 -05:00
Chris Roberts
131e11a8a8
Add parents function and remove extras 2022-04-25 12:24:12 -05:00
Chris Roberts
260861dbb7
Update command to return int32s 2022-04-25 12:24:11 -05:00
Chris Roberts
90e818f377
Update capability to pass terminal ui instance directly 2022-04-25 12:24:10 -05:00
Chris Roberts
05d5634c83
Host component related work 2022-04-25 12:24:10 -05:00
sophia
908b1e3449
Readd ui as arg to host cap 2022-04-25 12:24:10 -05:00
sophia
9ebd62b37a
Call capability func 2022-04-25 12:24:10 -05:00
sophia
a5b0642577
Make host cap function call work with arguments 2022-04-25 12:24:10 -05:00
sophia
10673990c7
Make capability work (without args) 2022-04-25 12:24:10 -05:00
sophia
e4c0f09925
HasCapability working 2022-04-25 12:24:10 -05:00
Chris Roberts
43bd58f3d3
Update builtins for project changes 2022-04-25 12:24:06 -05:00
sophia
aff6edc31b
Add plugin command that uses interactive input 2022-04-25 12:24:04 -05:00
sophia
2dd286ef4f
Add test go command for interactive input 2022-04-25 12:24:04 -05:00
sophia
bc095b06dc
Don't initialize hosts with basis 2022-04-25 12:24:04 -05:00
sophia
dfd604bd1b
Run capabilities 2022-04-25 12:24:04 -05:00
sophia
768dcf07da
Rename to alwaystrue host 2022-04-25 12:24:03 -05:00
sophia
be08dfde85
Save point 2022-04-25 12:24:03 -05:00