revendor hashicorp/terraform (#1923)

`govendor fetch github.com/hashicorp/terraform/...@v0.11.8`

I figured this was a good time to do it since we just had a release. I verified that everything still compiles and that a few tests are passing- I don't expect anything else to change, but if there are any weird failures that this exposes we'll catch them in CI with plenty of time before the next release.
This commit is contained in:
Dana Hoffman 2018-08-22 12:13:40 -07:00 committed by GitHub
parent 38790dab3f
commit 654350d3d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 245 additions and 166 deletions

View File

@ -1698,7 +1698,7 @@ func interpolationFuncRsaDecrypt() ast.Function {
b, err := base64.StdEncoding.DecodeString(s)
if err != nil {
return "", fmt.Errorf("Failed to decode input %q: cipher text must be base64-encoded", key)
return "", fmt.Errorf("Failed to decode input %q: cipher text must be base64-encoded", s)
}
block, _ := pem.Decode([]byte(key))

View File

@ -11,7 +11,6 @@ import (
getter "github.com/hashicorp/go-getter"
"github.com/hashicorp/terraform/registry"
"github.com/hashicorp/terraform/registry/regsrc"
"github.com/hashicorp/terraform/svchost/auth"
"github.com/hashicorp/terraform/svchost/disco"
"github.com/mitchellh/cli"
)
@ -64,22 +63,19 @@ type Storage struct {
// StorageDir is the full path to the directory where all modules will be
// stored.
StorageDir string
// Services is a required *disco.Disco, which may have services and
// credentials pre-loaded.
Services *disco.Disco
// Creds optionally provides credentials for communicating with service
// providers.
Creds auth.CredentialsSource
// Ui is an optional cli.Ui for user output
Ui cli.Ui
// Mode is the GetMode that will be used for various operations.
Mode GetMode
registry *registry.Client
}
func NewStorage(dir string, services *disco.Disco, creds auth.CredentialsSource) *Storage {
regClient := registry.NewClient(services, creds, nil)
// NewStorage returns a new initialized Storage object.
func NewStorage(dir string, services *disco.Disco) *Storage {
regClient := registry.NewClient(services, nil)
return &Storage{
StorageDir: dir,

View File

@ -1,9 +1,12 @@
package logging
import (
"bytes"
"encoding/json"
"log"
"net/http"
"net/http/httputil"
"strings"
)
type transport struct {
@ -15,7 +18,7 @@ func (t *transport) RoundTrip(req *http.Request) (*http.Response, error) {
if IsDebugOrHigher() {
reqData, err := httputil.DumpRequestOut(req, true)
if err == nil {
log.Printf("[DEBUG] "+logReqMsg, t.name, string(reqData))
log.Printf("[DEBUG] "+logReqMsg, t.name, prettyPrintJsonLines(reqData))
} else {
log.Printf("[ERROR] %s API Request error: %#v", t.name, err)
}
@ -29,7 +32,7 @@ func (t *transport) RoundTrip(req *http.Request) (*http.Response, error) {
if IsDebugOrHigher() {
respData, err := httputil.DumpResponse(resp, true)
if err == nil {
log.Printf("[DEBUG] "+logRespMsg, t.name, string(respData))
log.Printf("[DEBUG] "+logRespMsg, t.name, prettyPrintJsonLines(respData))
} else {
log.Printf("[ERROR] %s API Response error: %#v", t.name, err)
}
@ -42,6 +45,20 @@ func NewTransport(name string, t http.RoundTripper) *transport {
return &transport{name, t}
}
// prettyPrintJsonLines iterates through a []byte line-by-line,
// transforming any lines that are complete json into pretty-printed json.
func prettyPrintJsonLines(b []byte) string {
parts := strings.Split(string(b), "\n")
for i, p := range parts {
if b := []byte(p); json.Valid(b) {
var out bytes.Buffer
json.Indent(&out, b, "", " ")
parts[i] = out.String()
}
}
return strings.Join(parts, "\n")
}
const logReqMsg = `%s API Request Details:
---[ REQUEST ]---------------------------------------
%s

View File

@ -266,6 +266,15 @@ type TestStep struct {
// below.
PreConfig func()
// Taint is a list of resource addresses to taint prior to the execution of
// the step. Be sure to only include this at a step where the referenced
// address will be present in state, as it will fail the test if the resource
// is missing.
//
// This option is ignored on ImportState tests, and currently only works for
// resources in the root module path.
Taint []string
//---------------------------------------------------------------
// Test modes. One of the following groups of settings must be
// set to determine what the test step will do. Ideally we would've

View File

@ -1,6 +1,7 @@
package resource
import (
"errors"
"fmt"
"log"
"strings"
@ -21,6 +22,14 @@ func testStep(
opts terraform.ContextOpts,
state *terraform.State,
step TestStep) (*terraform.State, error) {
// Pre-taint any resources that have been defined in Taint, as long as this
// is not a destroy step.
if !step.Destroy {
if err := testStepTaint(state, step); err != nil {
return state, err
}
}
mod, err := testModule(opts, step)
if err != nil {
return state, err
@ -154,3 +163,19 @@ func testStep(
// Made it here? Good job test step!
return state, nil
}
func testStepTaint(state *terraform.State, step TestStep) error {
for _, p := range step.Taint {
m := state.RootModule()
if m == nil {
return errors.New("no state")
}
rs, ok := m.Resources[p]
if !ok {
return fmt.Errorf("resource %q not found in state", p)
}
log.Printf("[WARN] Test: Explicitly tainting resource %q", p)
rs.Taint()
}
return nil
}

View File

@ -32,7 +32,7 @@ func DataSourceResourceShim(name string, dataSource *Resource) *Resource {
// FIXME: Link to some further docs either on the website or in the
// changelog, once such a thing exists.
dataSource.deprecationMessage = fmt.Sprintf(
dataSource.DeprecationMessage = fmt.Sprintf(
"using %s as a resource is deprecated; consider using the data source instead",
name,
)

View File

@ -124,9 +124,7 @@ type Resource struct {
Importer *ResourceImporter
// If non-empty, this string is emitted as a warning during Validate.
// This is a private interface for now, for use by DataSourceResourceShim,
// and not for general use. (But maybe later...)
deprecationMessage string
DeprecationMessage string
// Timeouts allow users to specify specific time durations in which an
// operation should time out, to allow them to extend an action to suit their
@ -269,8 +267,8 @@ func (r *Resource) Diff(
func (r *Resource) Validate(c *terraform.ResourceConfig) ([]string, []error) {
warns, errs := schemaMap(r.Schema).Validate(c)
if r.deprecationMessage != "" {
warns = append(warns, r.deprecationMessage)
if r.DeprecationMessage != "" {
warns = append(warns, r.DeprecationMessage)
}
return warns, errs

View File

@ -17,6 +17,12 @@ func HashString(v interface{}) int {
return hashcode.String(v.(string))
}
// HashInt hashes integers. If you want a Set of integers, this is the
// SchemaSetFunc you want.
func HashInt(v interface{}) int {
return hashcode.String(strconv.Itoa(v.(int)))
}
// HashResource hashes complex structures that are described using
// a *Resource. This is the default set implementation used when a set's
// element type is a full resource.

View File

@ -15,7 +15,6 @@ import (
"github.com/hashicorp/terraform/registry/regsrc"
"github.com/hashicorp/terraform/registry/response"
"github.com/hashicorp/terraform/svchost"
"github.com/hashicorp/terraform/svchost/auth"
"github.com/hashicorp/terraform/svchost/disco"
"github.com/hashicorp/terraform/version"
)
@ -37,19 +36,14 @@ type Client struct {
// services is a required *disco.Disco, which may have services and
// credentials pre-loaded.
services *disco.Disco
// Creds optionally provides credentials for communicating with service
// providers.
creds auth.CredentialsSource
}
func NewClient(services *disco.Disco, creds auth.CredentialsSource, client *http.Client) *Client {
// NewClient returns a new initialized registry client.
func NewClient(services *disco.Disco, client *http.Client) *Client {
if services == nil {
services = disco.NewDisco()
services = disco.New()
}
services.SetCredentialsSource(creds)
if client == nil {
client = httpclient.New()
client.Timeout = requestTimeout
@ -60,7 +54,6 @@ func NewClient(services *disco.Disco, creds auth.CredentialsSource, client *http
return &Client{
client: client,
services: services,
creds: creds,
}
}
@ -137,11 +130,7 @@ func (c *Client) Versions(module *regsrc.Module) (*response.ModuleVersions, erro
}
func (c *Client) addRequestCreds(host svchost.Hostname, req *http.Request) {
if c.creds == nil {
return
}
creds, err := c.creds.ForHost(host)
creds, err := c.services.CredentialsForHost(host)
if err != nil {
log.Printf("[WARN] Failed to get credentials for %s: %s (ignoring)", host, err)
return

View File

@ -42,6 +42,9 @@ type HostCredentials interface {
// receiving credentials. The usual behavior of this method is to
// add some sort of Authorization header to the request.
PrepareRequest(req *http.Request)
// Token returns the authentication token.
Token() string
}
// ForHost iterates over the contained CredentialsSource objects and

View File

@ -18,3 +18,8 @@ func (tc HostCredentialsToken) PrepareRequest(req *http.Request) {
}
req.Header.Set("Authorization", "Bearer "+string(tc))
}
// Token returns the authentication token.
func (tc HostCredentialsToken) Token() string {
return string(tc)
}

View File

@ -42,8 +42,15 @@ type Disco struct {
Transport http.RoundTripper
}
func NewDisco() *Disco {
return &Disco{}
// New returns a new initialized discovery object.
func New() *Disco {
return NewWithCredentialsSource(nil)
}
// NewWithCredentialsSource returns a new discovery object initialized with
// the given credentials source.
func NewWithCredentialsSource(credsSrc auth.CredentialsSource) *Disco {
return &Disco{credsSrc: credsSrc}
}
// SetCredentialsSource provides a credentials source that will be used to
@ -55,6 +62,15 @@ func (d *Disco) SetCredentialsSource(src auth.CredentialsSource) {
d.credsSrc = src
}
// CredentialsForHost returns a non-nil HostCredentials if the embedded source has
// credentials available for the host, and a nil HostCredentials if it does not.
func (d *Disco) CredentialsForHost(host svchost.Hostname) (auth.HostCredentials, error) {
if d.credsSrc == nil {
return nil, nil
}
return d.credsSrc.ForHost(host)
}
// ForceHostServices provides a pre-defined set of services for a given
// host, which prevents the receiver from attempting network-based discovery
// for the given host. Instead, the given services map will be returned
@ -117,7 +133,7 @@ func (d *Disco) DiscoverServiceURL(host svchost.Hostname, serviceID string) *url
func (d *Disco) discover(host svchost.Hostname) Host {
discoURL := &url.URL{
Scheme: "https",
Host: string(host),
Host: host.String(),
Path: discoPath,
}
@ -144,15 +160,10 @@ func (d *Disco) discover(host svchost.Hostname) Host {
URL: discoURL,
}
if d.credsSrc != nil {
creds, err := d.credsSrc.ForHost(host)
if err == nil {
if creds != nil {
creds.PrepareRequest(req) // alters req to include credentials
}
} else {
log.Printf("[WARN] Failed to get credentials for %s: %s (ignoring)", host, err)
}
if creds, err := d.CredentialsForHost(host); err != nil {
log.Printf("[WARN] Failed to get credentials for %s: %s (ignoring)", host, err)
} else if creds != nil {
creds.PrepareRequest(req) // alters req to include credentials
}
log.Printf("[DEBUG] Service discovery for %s at %s", host, discoURL)
@ -166,6 +177,8 @@ func (d *Disco) discover(host svchost.Hostname) Host {
log.Printf("[WARN] Failed to request discovery document: %s", err)
return ret // empty
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
log.Printf("[WARN] Failed to request discovery document: %s", resp.Status)
return ret // empty

View File

@ -1,7 +1,7 @@
// The version package provides a location to set the release versions for all
// packages to consume, without creating import cycles.
//
// This pckage should not import any other terraform packages.
// This package should not import any other terraform packages.
package version
import (
@ -11,7 +11,7 @@ import (
)
// The main version number that is being run at the moment.
const Version = "0.11.7"
const Version = "0.11.8"
// A pre-release marker for the version. If this is "" (empty string)
// then it means that it is a final release. Otherwise, this is a pre-release

256
vendor/vendor.json vendored
View File

@ -537,242 +537,260 @@
"revisionTime": "2015-06-09T07:04:31Z"
},
{
"checksumSHA1": "D2qVXjDywJu6wLj/4NCTsFnRrvw=",
"checksumSHA1": "MpMvoeVDNxeoOQTI+hUxt+0bHdY=",
"path": "github.com/hashicorp/terraform/config",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "WzQP2WfiCYlaALKZVqEFsxZsG1o=",
"path": "github.com/hashicorp/terraform/config/configschema",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "3V7300kyZF+AGy/cOKV0+P6M3LY=",
"path": "github.com/hashicorp/terraform/config/hcl2shim",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "HayBWvFE+t9aERoz9kpE2MODurk=",
"checksumSHA1": "/5UEeukyNbbP/j80Jht10AZ+Law=",
"path": "github.com/hashicorp/terraform/config/module",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "mPbjVPD2enEey45bP4M83W2AxlY=",
"path": "github.com/hashicorp/terraform/dag",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "P8gNPDuOzmiK4Lz9xG7OBy4Rlm8=",
"path": "github.com/hashicorp/terraform/flatmap",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "zx5DLo5aV0xDqxGTzSibXg7HHAA=",
"path": "github.com/hashicorp/terraform/helper/acctest",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "uT6Q9RdSRAkDjyUgQlJ2XKJRab4=",
"path": "github.com/hashicorp/terraform/helper/config",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "qVmQPoZmJ2w2OnaxIheWfuwun6g=",
"path": "github.com/hashicorp/terraform/helper/customdiff",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "FH5eOEHfHgdxPC/JnfmCeSBk66U=",
"path": "github.com/hashicorp/terraform/helper/encryption",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "KNvbU1r5jv0CBeQLnEtDoL3dRtc=",
"path": "github.com/hashicorp/terraform/helper/hashcode",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "B267stWNQd0/pBTXHfI/tJsxzfc=",
"path": "github.com/hashicorp/terraform/helper/hilmapstructure",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "BAXV9ruAyno3aFgwYI2/wWzB2Gc=",
"checksumSHA1": "j8XqkwLh2W3r3i6wnCRmve07BgI=",
"path": "github.com/hashicorp/terraform/helper/logging",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "twkFd4x71kBnDfrdqO5nhs8dMOY=",
"path": "github.com/hashicorp/terraform/helper/mutexkv",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "ImyqbHM/xe3eAT2moIjLI8ksuks=",
"path": "github.com/hashicorp/terraform/helper/pathorcontents",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "ryCWu7RtMlYrAfSevaI7RtaXe98=",
"checksumSHA1": "3ml5nA9mNVoK30lE2W0DxQIPWiw=",
"path": "github.com/hashicorp/terraform/helper/resource",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "JHxGzmxcIS8NyLX9pGhK5beIra4=",
"checksumSHA1": "zA2C6Pg+7DII0K3M0g49R/nRLvc=",
"path": "github.com/hashicorp/terraform/helper/schema",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "Fzbv+N7hFXOtrR6E7ZcHT3jEE9s=",
"path": "github.com/hashicorp/terraform/helper/structure",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "nEC56vB6M60BJtGPe+N9rziHqLg=",
"path": "github.com/hashicorp/terraform/helper/validation",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "kD1ayilNruf2cES1LDfNZjYRscQ=",
"path": "github.com/hashicorp/terraform/httpclient",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "yFWmdS6yEJZpRJzUqd/mULqCYGk=",
"path": "github.com/hashicorp/terraform/moduledeps",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "DqaoG++NXRCfvH/OloneLWrM+3k=",
"path": "github.com/hashicorp/terraform/plugin",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "tx5xrdiUWdAHqoRV5aEfALgT1aU=",
"path": "github.com/hashicorp/terraform/plugin/discovery",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "f6wDpr0uHKZqQw4ztvxMrtiuvQo=",
"checksumSHA1": "dD3uZ27A7V6r2ZcXabXbUwOxD2E=",
"path": "github.com/hashicorp/terraform/registry",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "cR87P4V5aiEfvF+1qoBi2JQyQS4=",
"path": "github.com/hashicorp/terraform/registry/regsrc",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "y9IXgIJQq9XNy1zIYUV2Kc0KsnA=",
"path": "github.com/hashicorp/terraform/registry/response",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "VXlzRRDVOqeMvnnrbUcR9H64OA4=",
"path": "github.com/hashicorp/terraform/svchost",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "GzcKNlFL0N77JVjU8qbltXE4R3k=",
"checksumSHA1": "o6CMncmy6Q2F+r13sEOeT6R9GF8=",
"path": "github.com/hashicorp/terraform/svchost/auth",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "jiDWmQieUE6OoUBMs53hj9P/JDQ=",
"checksumSHA1": "uEzjKyPvbd8k5VGdgn4b/2rDDi0=",
"path": "github.com/hashicorp/terraform/svchost/disco",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "lHCKONqlaHsn5cEaYltad7dvRq8=",
"path": "github.com/hashicorp/terraform/terraform",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "+K+oz9mMTmQMxIA3KVkGRfjvm9I=",
"path": "github.com/hashicorp/terraform/tfdiags",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "+attjxAt9nwFpCjxWEL08YwpGD8=",
"checksumSHA1": "Q4ecxPd9vFU2UX32HtqsZDSS9Po=",
"path": "github.com/hashicorp/terraform/version",
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
},
{
"checksumSHA1": "au+CDkddC4sVFV15UaPiI7FvSw0=",