Merge pull request #15804 from hashicorp/plugin-transparency
plugin: Display version + source when initializing plugins
This commit is contained in:
commit
82c6caa666
|
@ -75,6 +75,7 @@ func (c *InitCommand) Run(args []string) int {
|
||||||
Dir: c.pluginDir(),
|
Dir: c.pluginDir(),
|
||||||
PluginProtocolVersion: plugin.Handshake.ProtocolVersion,
|
PluginProtocolVersion: plugin.Handshake.ProtocolVersion,
|
||||||
SkipVerify: !flagVerifyPlugins,
|
SkipVerify: !flagVerifyPlugins,
|
||||||
|
Ui: c.Ui,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -310,8 +311,12 @@ func (c *InitCommand) getProviders(path string, state *terraform.State, upgrade
|
||||||
|
|
||||||
var errs error
|
var errs error
|
||||||
if c.getPlugins {
|
if c.getPlugins {
|
||||||
|
if len(missing) > 0 {
|
||||||
|
c.Ui.Output(fmt.Sprintf(" - Checking for available provider plugins on %s...",
|
||||||
|
discovery.GetReleaseHost()))
|
||||||
|
}
|
||||||
|
|
||||||
for provider, reqd := range missing {
|
for provider, reqd := range missing {
|
||||||
c.Ui.Output(fmt.Sprintf("- Downloading plugin for provider %q...", provider))
|
|
||||||
_, err := c.providerInstaller.Get(provider, reqd.Versions)
|
_, err := c.providerInstaller.Get(provider, reqd.Versions)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
cleanhttp "github.com/hashicorp/go-cleanhttp"
|
cleanhttp "github.com/hashicorp/go-cleanhttp"
|
||||||
getter "github.com/hashicorp/go-getter"
|
getter "github.com/hashicorp/go-getter"
|
||||||
multierror "github.com/hashicorp/go-multierror"
|
multierror "github.com/hashicorp/go-multierror"
|
||||||
|
"github.com/mitchellh/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Releases are located by parsing the html listing from releases.hashicorp.com.
|
// Releases are located by parsing the html listing from releases.hashicorp.com.
|
||||||
|
@ -58,6 +59,8 @@ type ProviderInstaller struct {
|
||||||
|
|
||||||
// Skip checksum and signature verification
|
// Skip checksum and signature verification
|
||||||
SkipVerify bool
|
SkipVerify bool
|
||||||
|
|
||||||
|
Ui cli.Ui // Ui for output
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get is part of an implementation of type Installer, and attempts to download
|
// Get is part of an implementation of type Installer, and attempts to download
|
||||||
|
@ -116,6 +119,7 @@ func (i *ProviderInstaller) Get(provider string, req Constraints) (PluginMeta, e
|
||||||
|
|
||||||
log.Printf("[DEBUG] fetching provider info for %s version %s", provider, v)
|
log.Printf("[DEBUG] fetching provider info for %s version %s", provider, v)
|
||||||
if checkPlugin(url, i.PluginProtocolVersion) {
|
if checkPlugin(url, i.PluginProtocolVersion) {
|
||||||
|
i.Ui.Info(fmt.Sprintf("- Downloading plugin for provider %q (%s)...", provider, v.String()))
|
||||||
log.Printf("[DEBUG] getting provider %q version %q at %s", provider, v, url)
|
log.Printf("[DEBUG] getting provider %q version %q at %s", provider, v, url)
|
||||||
err := getter.Get(i.Dir, url)
|
err := getter.Get(i.Dir, url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -422,3 +426,7 @@ func getFile(url string) ([]byte, error) {
|
||||||
}
|
}
|
||||||
return data, nil
|
return data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetReleaseHost() string {
|
||||||
|
return releaseHost
|
||||||
|
}
|
||||||
|
|
|
@ -13,6 +13,8 @@ import (
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/mitchellh/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
const testProviderFile = "test provider binary"
|
const testProviderFile = "test provider binary"
|
||||||
|
@ -149,6 +151,7 @@ func TestProviderInstallerGet(t *testing.T) {
|
||||||
Dir: tmpDir,
|
Dir: tmpDir,
|
||||||
PluginProtocolVersion: 5,
|
PluginProtocolVersion: 5,
|
||||||
SkipVerify: true,
|
SkipVerify: true,
|
||||||
|
Ui: cli.NewMockUi(),
|
||||||
}
|
}
|
||||||
_, err = i.Get("test", AllVersions)
|
_, err = i.Get("test", AllVersions)
|
||||||
if err != ErrorNoVersionCompatible {
|
if err != ErrorNoVersionCompatible {
|
||||||
|
@ -159,6 +162,7 @@ func TestProviderInstallerGet(t *testing.T) {
|
||||||
Dir: tmpDir,
|
Dir: tmpDir,
|
||||||
PluginProtocolVersion: 3,
|
PluginProtocolVersion: 3,
|
||||||
SkipVerify: true,
|
SkipVerify: true,
|
||||||
|
Ui: cli.NewMockUi(),
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -230,6 +234,7 @@ func TestProviderInstallerPurgeUnused(t *testing.T) {
|
||||||
Dir: tmpDir,
|
Dir: tmpDir,
|
||||||
PluginProtocolVersion: 3,
|
PluginProtocolVersion: 3,
|
||||||
SkipVerify: true,
|
SkipVerify: true,
|
||||||
|
Ui: cli.NewMockUi(),
|
||||||
}
|
}
|
||||||
purged, err := i.PurgeUnused(map[string]PluginMeta{
|
purged, err := i.PurgeUnused(map[string]PluginMeta{
|
||||||
"test": PluginMeta{
|
"test": PluginMeta{
|
||||||
|
|
Loading…
Reference in New Issue