Revert "revendor hashicorp/terraform (#1923)" (#1925)

This reverts commit 654350d3d3.
This commit is contained in:
Dana Hoffman 2018-08-22 12:46:58 -07:00 committed by GitHub
parent 654350d3d3
commit 9b7f435ec3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 166 additions and 245 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", s)
return "", fmt.Errorf("Failed to decode input %q: cipher text must be base64-encoded", key)
}
block, _ := pem.Decode([]byte(key))

View File

@ -11,6 +11,7 @@ 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"
)
@ -63,19 +64,22 @@ 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
}
// NewStorage returns a new initialized Storage object.
func NewStorage(dir string, services *disco.Disco) *Storage {
regClient := registry.NewClient(services, nil)
func NewStorage(dir string, services *disco.Disco, creds auth.CredentialsSource) *Storage {
regClient := registry.NewClient(services, creds, nil)
return &Storage{
StorageDir: dir,

View File

@ -1,12 +1,9 @@
package logging
import (
"bytes"
"encoding/json"
"log"
"net/http"
"net/http/httputil"
"strings"
)
type transport struct {
@ -18,7 +15,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, prettyPrintJsonLines(reqData))
log.Printf("[DEBUG] "+logReqMsg, t.name, string(reqData))
} else {
log.Printf("[ERROR] %s API Request error: %#v", t.name, err)
}
@ -32,7 +29,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, prettyPrintJsonLines(respData))
log.Printf("[DEBUG] "+logRespMsg, t.name, string(respData))
} else {
log.Printf("[ERROR] %s API Response error: %#v", t.name, err)
}
@ -45,20 +42,6 @@ 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,15 +266,6 @@ 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,7 +1,6 @@
package resource
import (
"errors"
"fmt"
"log"
"strings"
@ -22,14 +21,6 @@ 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
@ -163,19 +154,3 @@ 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,7 +124,9 @@ type Resource struct {
Importer *ResourceImporter
// If non-empty, this string is emitted as a warning during Validate.
DeprecationMessage string
// This is a private interface for now, for use by DataSourceResourceShim,
// and not for general use. (But maybe later...)
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
@ -267,8 +269,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,12 +17,6 @@ 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,6 +15,7 @@ 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"
)
@ -36,14 +37,19 @@ 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
}
// NewClient returns a new initialized registry client.
func NewClient(services *disco.Disco, client *http.Client) *Client {
func NewClient(services *disco.Disco, creds auth.CredentialsSource, client *http.Client) *Client {
if services == nil {
services = disco.New()
services = disco.NewDisco()
}
services.SetCredentialsSource(creds)
if client == nil {
client = httpclient.New()
client.Timeout = requestTimeout
@ -54,6 +60,7 @@ func NewClient(services *disco.Disco, client *http.Client) *Client {
return &Client{
client: client,
services: services,
creds: creds,
}
}
@ -130,7 +137,11 @@ func (c *Client) Versions(module *regsrc.Module) (*response.ModuleVersions, erro
}
func (c *Client) addRequestCreds(host svchost.Hostname, req *http.Request) {
creds, err := c.services.CredentialsForHost(host)
if c.creds == nil {
return
}
creds, err := c.creds.ForHost(host)
if err != nil {
log.Printf("[WARN] Failed to get credentials for %s: %s (ignoring)", host, err)
return

View File

@ -42,9 +42,6 @@ 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,8 +18,3 @@ 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,15 +42,8 @@ type Disco struct {
Transport http.RoundTripper
}
// 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}
func NewDisco() *Disco {
return &Disco{}
}
// SetCredentialsSource provides a credentials source that will be used to
@ -62,15 +55,6 @@ 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
@ -133,7 +117,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: host.String(),
Host: string(host),
Path: discoPath,
}
@ -160,10 +144,15 @@ func (d *Disco) discover(host svchost.Hostname) Host {
URL: discoURL,
}
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
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)
}
}
log.Printf("[DEBUG] Service discovery for %s at %s", host, discoURL)
@ -177,8 +166,6 @@ 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 package should not import any other terraform packages.
// This pckage 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.8"
const Version = "0.11.7"
// 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,260 +537,242 @@
"revisionTime": "2015-06-09T07:04:31Z"
},
{
"checksumSHA1": "MpMvoeVDNxeoOQTI+hUxt+0bHdY=",
"checksumSHA1": "D2qVXjDywJu6wLj/4NCTsFnRrvw=",
"path": "github.com/hashicorp/terraform/config",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "WzQP2WfiCYlaALKZVqEFsxZsG1o=",
"path": "github.com/hashicorp/terraform/config/configschema",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "3V7300kyZF+AGy/cOKV0+P6M3LY=",
"path": "github.com/hashicorp/terraform/config/hcl2shim",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "/5UEeukyNbbP/j80Jht10AZ+Law=",
"checksumSHA1": "HayBWvFE+t9aERoz9kpE2MODurk=",
"path": "github.com/hashicorp/terraform/config/module",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "mPbjVPD2enEey45bP4M83W2AxlY=",
"path": "github.com/hashicorp/terraform/dag",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "P8gNPDuOzmiK4Lz9xG7OBy4Rlm8=",
"path": "github.com/hashicorp/terraform/flatmap",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "zx5DLo5aV0xDqxGTzSibXg7HHAA=",
"path": "github.com/hashicorp/terraform/helper/acctest",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "uT6Q9RdSRAkDjyUgQlJ2XKJRab4=",
"path": "github.com/hashicorp/terraform/helper/config",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "qVmQPoZmJ2w2OnaxIheWfuwun6g=",
"path": "github.com/hashicorp/terraform/helper/customdiff",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "FH5eOEHfHgdxPC/JnfmCeSBk66U=",
"path": "github.com/hashicorp/terraform/helper/encryption",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "KNvbU1r5jv0CBeQLnEtDoL3dRtc=",
"path": "github.com/hashicorp/terraform/helper/hashcode",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "B267stWNQd0/pBTXHfI/tJsxzfc=",
"path": "github.com/hashicorp/terraform/helper/hilmapstructure",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "j8XqkwLh2W3r3i6wnCRmve07BgI=",
"checksumSHA1": "BAXV9ruAyno3aFgwYI2/wWzB2Gc=",
"path": "github.com/hashicorp/terraform/helper/logging",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "twkFd4x71kBnDfrdqO5nhs8dMOY=",
"path": "github.com/hashicorp/terraform/helper/mutexkv",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "ImyqbHM/xe3eAT2moIjLI8ksuks=",
"path": "github.com/hashicorp/terraform/helper/pathorcontents",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "3ml5nA9mNVoK30lE2W0DxQIPWiw=",
"checksumSHA1": "ryCWu7RtMlYrAfSevaI7RtaXe98=",
"path": "github.com/hashicorp/terraform/helper/resource",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "zA2C6Pg+7DII0K3M0g49R/nRLvc=",
"checksumSHA1": "JHxGzmxcIS8NyLX9pGhK5beIra4=",
"path": "github.com/hashicorp/terraform/helper/schema",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "Fzbv+N7hFXOtrR6E7ZcHT3jEE9s=",
"path": "github.com/hashicorp/terraform/helper/structure",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "nEC56vB6M60BJtGPe+N9rziHqLg=",
"path": "github.com/hashicorp/terraform/helper/validation",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "kD1ayilNruf2cES1LDfNZjYRscQ=",
"path": "github.com/hashicorp/terraform/httpclient",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
},
{
"checksumSHA1": "yFWmdS6yEJZpRJzUqd/mULqCYGk=",
"path": "github.com/hashicorp/terraform/moduledeps",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "DqaoG++NXRCfvH/OloneLWrM+3k=",
"path": "github.com/hashicorp/terraform/plugin",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "tx5xrdiUWdAHqoRV5aEfALgT1aU=",
"path": "github.com/hashicorp/terraform/plugin/discovery",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "dD3uZ27A7V6r2ZcXabXbUwOxD2E=",
"checksumSHA1": "f6wDpr0uHKZqQw4ztvxMrtiuvQo=",
"path": "github.com/hashicorp/terraform/registry",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
},
{
"checksumSHA1": "cR87P4V5aiEfvF+1qoBi2JQyQS4=",
"path": "github.com/hashicorp/terraform/registry/regsrc",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
},
{
"checksumSHA1": "y9IXgIJQq9XNy1zIYUV2Kc0KsnA=",
"path": "github.com/hashicorp/terraform/registry/response",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
},
{
"checksumSHA1": "VXlzRRDVOqeMvnnrbUcR9H64OA4=",
"path": "github.com/hashicorp/terraform/svchost",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
},
{
"checksumSHA1": "o6CMncmy6Q2F+r13sEOeT6R9GF8=",
"checksumSHA1": "GzcKNlFL0N77JVjU8qbltXE4R3k=",
"path": "github.com/hashicorp/terraform/svchost/auth",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
},
{
"checksumSHA1": "uEzjKyPvbd8k5VGdgn4b/2rDDi0=",
"checksumSHA1": "jiDWmQieUE6OoUBMs53hj9P/JDQ=",
"path": "github.com/hashicorp/terraform/svchost/disco",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
},
{
"checksumSHA1": "lHCKONqlaHsn5cEaYltad7dvRq8=",
"path": "github.com/hashicorp/terraform/terraform",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z",
"version": "v0.11.2",
"versionExact": "v0.11.2"
},
{
"checksumSHA1": "+K+oz9mMTmQMxIA3KVkGRfjvm9I=",
"path": "github.com/hashicorp/terraform/tfdiags",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
},
{
"checksumSHA1": "Q4ecxPd9vFU2UX32HtqsZDSS9Po=",
"checksumSHA1": "+attjxAt9nwFpCjxWEL08YwpGD8=",
"path": "github.com/hashicorp/terraform/version",
"revision": "6dfc4d748de9cda23835bc5704307ed45e839622",
"revisionTime": "2018-08-15T22:00:39Z",
"version": "v0.11.8",
"versionExact": "v0.11.8"
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
"revisionTime": "2018-04-10T16:50:42Z"
},
{
"checksumSHA1": "au+CDkddC4sVFV15UaPiI7FvSw0=",