From af09d86892ad691d73ce486999891c79eaf81558 Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Mon, 23 Oct 2017 16:23:12 -0700 Subject: [PATCH] Make freeport testing friendly This PR allows the caller to decide if they would like to have the calling test fail, have the caller panic on error, or handle the errors themselves. --- lib/freeport/freeport.go | 32 +- .../mitchellh/go-testing-interface/LICENSE | 21 + .../mitchellh/go-testing-interface/README.md | 52 ++ .../mitchellh/go-testing-interface/testing.go | 84 +++ .../go-testing-interface/testing_go19.go | 108 +++ vendor/vendor.json | 632 +++++++++++++++--- 6 files changed, 837 insertions(+), 92 deletions(-) create mode 100644 vendor/github.com/mitchellh/go-testing-interface/LICENSE create mode 100644 vendor/github.com/mitchellh/go-testing-interface/README.md create mode 100644 vendor/github.com/mitchellh/go-testing-interface/testing.go create mode 100644 vendor/github.com/mitchellh/go-testing-interface/testing_go19.go diff --git a/lib/freeport/freeport.go b/lib/freeport/freeport.go index 08fdf6234..c09ff4cd6 100644 --- a/lib/freeport/freeport.go +++ b/lib/freeport/freeport.go @@ -3,10 +3,13 @@ package freeport import ( + "fmt" "math/rand" "net" "sync" "time" + + "github.com/mitchellh/go-testing-interface" ) const ( @@ -72,16 +75,37 @@ func tcpAddr(ip string, port int) *net.TCPAddr { return &net.TCPAddr{IP: net.ParseIP(ip), Port: port} } -// Get returns a list of free ports from the allocated port block. It is safe +// Get wraps the Free function and panics on any failure retrieving ports. +func Get(n int) (ports []int) { + ports, err := Free(n) + if err != nil { + panic(err) + } + + return ports +} + +// GetT is suitable for use when retrieving unused ports in tests. If there is +// an error retrieving free ports, the test will be failed. +func GetT(t testing.T, n int) (ports []int) { + ports, err := Free(n) + if err != nil { + t.Fatalf("Failed retrieving free port: %v", err) + } + + return ports +} + +// Free returns a list of free ports from the allocated port block. It is safe // to call this method concurrently. Ports have been tested to be available on // 127.0.0.1 TCP but there is no guarantee that they will remain free in the // future. -func Get(n int) (ports []int) { +func Free(n int) (ports []int, err error) { mu.Lock() defer mu.Unlock() if n > blockSize-1 { - panic("freeport: block size too small") + return nil, fmt.Errorf("freeport: block size too small") } for len(ports) < n { @@ -103,5 +127,5 @@ func Get(n int) (ports []int) { ports = append(ports, port) } // log.Println("[DEBUG] freeport: free ports:", ports) - return ports + return ports, nil } diff --git a/vendor/github.com/mitchellh/go-testing-interface/LICENSE b/vendor/github.com/mitchellh/go-testing-interface/LICENSE new file mode 100644 index 000000000..a3866a291 --- /dev/null +++ b/vendor/github.com/mitchellh/go-testing-interface/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Mitchell Hashimoto + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/mitchellh/go-testing-interface/README.md b/vendor/github.com/mitchellh/go-testing-interface/README.md new file mode 100644 index 000000000..26781bbae --- /dev/null +++ b/vendor/github.com/mitchellh/go-testing-interface/README.md @@ -0,0 +1,52 @@ +# go-testing-interface + +go-testing-interface is a Go library that exports an interface that +`*testing.T` implements as well as a runtime version you can use in its +place. + +The purpose of this library is so that you can export test helpers as a +public API without depending on the "testing" package, since you can't +create a `*testing.T` struct manually. This lets you, for example, use the +public testing APIs to generate mock data at runtime, rather than just at +test time. + +## Usage & Example + +For usage and examples see the [Godoc](http://godoc.org/github.com/mitchellh/go-testing-interface). + +Given a test helper written using `go-testing-interface` like this: + + import "github.com/mitchellh/go-testing-interface" + + func TestHelper(t testing.T) { + t.Fatal("I failed") + } + +You can call the test helper in a real test easily: + + import "testing" + + func TestThing(t *testing.T) { + TestHelper(t) + } + +You can also call the test helper at runtime if needed: + + import "github.com/mitchellh/go-testing-interface" + + func main() { + TestHelper(&testing.RuntimeT{}) + } + +## Why?! + +**Why would I call a test helper that takes a *testing.T at runtime?** + +You probably shouldn't. The only use case I've seen (and I've had) for this +is to implement a "dev mode" for a service where the test helpers are used +to populate mock data, create a mock DB, perhaps run service dependencies +in-memory, etc. + +Outside of a "dev mode", I've never seen a use case for this and I think +there shouldn't be one since the point of the `testing.T` interface is that +you can fail immediately. diff --git a/vendor/github.com/mitchellh/go-testing-interface/testing.go b/vendor/github.com/mitchellh/go-testing-interface/testing.go new file mode 100644 index 000000000..204afb420 --- /dev/null +++ b/vendor/github.com/mitchellh/go-testing-interface/testing.go @@ -0,0 +1,84 @@ +// +build !go1.9 + +package testing + +import ( + "fmt" + "log" +) + +// T is the interface that mimics the standard library *testing.T. +// +// In unit tests you can just pass a *testing.T struct. At runtime, outside +// of tests, you can pass in a RuntimeT struct from this package. +type T interface { + Error(args ...interface{}) + Errorf(format string, args ...interface{}) + Fail() + FailNow() + Failed() bool + Fatal(args ...interface{}) + Fatalf(format string, args ...interface{}) + Log(args ...interface{}) + Logf(format string, args ...interface{}) + Name() string + Skip(args ...interface{}) + SkipNow() + Skipf(format string, args ...interface{}) + Skipped() bool +} + +// RuntimeT implements T and can be instantiated and run at runtime to +// mimic *testing.T behavior. Unlike *testing.T, this will simply panic +// for calls to Fatal. For calls to Error, you'll have to check the errors +// list to determine whether to exit yourself. Name and Skip methods are +// unimplemented noops. +type RuntimeT struct { + failed bool +} + +func (t *RuntimeT) Error(args ...interface{}) { + log.Println(fmt.Sprintln(args...)) + t.Fail() +} + +func (t *RuntimeT) Errorf(format string, args ...interface{}) { + log.Println(fmt.Sprintf(format, args...)) + t.Fail() +} + +func (t *RuntimeT) Fatal(args ...interface{}) { + log.Println(fmt.Sprintln(args...)) + t.FailNow() +} + +func (t *RuntimeT) Fatalf(format string, args ...interface{}) { + log.Println(fmt.Sprintf(format, args...)) + t.FailNow() +} + +func (t *RuntimeT) Fail() { + t.failed = true +} + +func (t *RuntimeT) FailNow() { + panic("testing.T failed, see logs for output (if any)") +} + +func (t *RuntimeT) Failed() bool { + return t.failed +} + +func (t *RuntimeT) Log(args ...interface{}) { + log.Println(fmt.Sprintln(args...)) +} + +func (t *RuntimeT) Logf(format string, args ...interface{}) { + log.Println(fmt.Sprintf(format, args...)) +} + +func (t *RuntimeT) Name() string { return "" } +func (t *RuntimeT) Skip(args ...interface{}) {} +func (t *RuntimeT) SkipNow() {} +func (t *RuntimeT) Skipf(format string, args ...interface{}) {} +func (t *RuntimeT) Skipped() bool { return false } diff --git a/vendor/github.com/mitchellh/go-testing-interface/testing_go19.go b/vendor/github.com/mitchellh/go-testing-interface/testing_go19.go new file mode 100644 index 000000000..31b42cadf --- /dev/null +++ b/vendor/github.com/mitchellh/go-testing-interface/testing_go19.go @@ -0,0 +1,108 @@ +// +build go1.9 + +// NOTE: This is a temporary copy of testing.go for Go 1.9 with the addition +// of "Helper" to the T interface. Go 1.9 at the time of typing is in RC +// and is set for release shortly. We'll support this on master as the default +// as soon as 1.9 is released. + +package testing + +import ( + "fmt" + "log" +) + +// T is the interface that mimics the standard library *testing.T. +// +// In unit tests you can just pass a *testing.T struct. At runtime, outside +// of tests, you can pass in a RuntimeT struct from this package. +type T interface { + Error(args ...interface{}) + Errorf(format string, args ...interface{}) + Fail() + FailNow() + Failed() bool + Fatal(args ...interface{}) + Fatalf(format string, args ...interface{}) + Log(args ...interface{}) + Logf(format string, args ...interface{}) + Name() string + Skip(args ...interface{}) + SkipNow() + Skipf(format string, args ...interface{}) + Skipped() bool + Helper() +} + +// RuntimeT implements T and can be instantiated and run at runtime to +// mimic *testing.T behavior. Unlike *testing.T, this will simply panic +// for calls to Fatal. For calls to Error, you'll have to check the errors +// list to determine whether to exit yourself. +type RuntimeT struct { + skipped bool + failed bool +} + +func (t *RuntimeT) Error(args ...interface{}) { + log.Println(fmt.Sprintln(args...)) + t.Fail() +} + +func (t *RuntimeT) Errorf(format string, args ...interface{}) { + log.Printf(format, args...) + t.Fail() +} + +func (t *RuntimeT) Fail() { + t.failed = true +} + +func (t *RuntimeT) FailNow() { + panic("testing.T failed, see logs for output (if any)") +} + +func (t *RuntimeT) Failed() bool { + return t.failed +} + +func (t *RuntimeT) Fatal(args ...interface{}) { + log.Print(args...) + t.FailNow() +} + +func (t *RuntimeT) Fatalf(format string, args ...interface{}) { + log.Printf(format, args...) + t.FailNow() +} + +func (t *RuntimeT) Log(args ...interface{}) { + log.Println(fmt.Sprintln(args...)) +} + +func (t *RuntimeT) Logf(format string, args ...interface{}) { + log.Println(fmt.Sprintf(format, args...)) +} + +func (t *RuntimeT) Name() string { + return "" +} + +func (t *RuntimeT) Skip(args ...interface{}) { + log.Print(args...) + t.SkipNow() +} + +func (t *RuntimeT) SkipNow() { + t.skipped = true +} + +func (t *RuntimeT) Skipf(format string, args ...interface{}) { + log.Printf(format, args...) + t.SkipNow() +} + +func (t *RuntimeT) Skipped() bool { + return t.skipped +} + +func (t *RuntimeT) Helper() {} diff --git a/vendor/vendor.json b/vendor/vendor.json index c532a041b..8f4ab10b2 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -2,94 +2,550 @@ "comment": "", "ignore": "test appengine", "package": [ - {"path":"github.com/DataDog/datadog-go/statsd","checksumSHA1":"JhyS/zIicgtrSasHSZ6WtXGWJVk=","revision":"cc2f4770f4d61871e19bfee967bc767fe730b0d9","revisionTime":"2016-03-29T13:52:53Z"}, - {"path":"github.com/Microsoft/go-winio","checksumSHA1":"AzjRkOQtVBTwIw4RJLTygFhJs3s=","revision":"c4dc1301f1dc0307acd38e611aa375a64dfe0642","revisionTime":"2017-07-12T04:46:15Z"}, - {"path":"github.com/StackExchange/wmi","checksumSHA1":"9NR0rrcAT5J76C5xMS4AVksS9o0=","revision":"e54cbda6595d7293a7a468ccf9525f6bc8887f99","revisionTime":"2016-08-11T21:45:55Z"}, - {"path":"github.com/armon/circbuf","checksumSHA1":"l0iFqayYAaEip6Olaq3/LCOa/Sg=","revision":"bbbad097214e2918d8543d5201d12bfd7bca254d","revisionTime":"2015-08-27T00:49:46Z"}, - {"path":"github.com/armon/go-metrics","checksumSHA1":"0et4hA6AYqZCgYiY+c6Z17t3k3k=","revision":"023a4bbe4bb9bfb23ee7e1afc8d0abad217641f3","revisionTime":"2017-08-09T01:16:44Z"}, - {"path":"github.com/armon/go-metrics/circonus","checksumSHA1":"xCsGGM9TKBogZDfSN536KtQdLko=","revision":"ded85ed431a7aee3f3af79f082b704d948058f64","revisionTime":"2017-08-07T19:17:41Z"}, - {"path":"github.com/armon/go-metrics/datadog","checksumSHA1":"Dt0n1sSivvvdZQdzc4Hu/yOG+T0=","revision":"ded85ed431a7aee3f3af79f082b704d948058f64","revisionTime":"2017-08-07T19:17:41Z"}, - {"path":"github.com/armon/go-radix","checksumSHA1":"gNO0JNpLzYOdInGeq7HqMZUzx9M=","revision":"4239b77079c7b5d1243b7b4736304ce8ddb6f0f2","revisionTime":"2016-01-15T23:47:25Z"}, - {"path":"github.com/bgentry/speakeasy","checksumSHA1":"dvd7Su+WNmHRP1+w1HezrPUCDsc=","revision":"e1439544d8ecd0f3e9373a636d447668096a8f81","revisionTime":"2016-05-20T23:26:10Z"}, - {"path":"github.com/bgentry/speakeasy/example","checksumSHA1":"twtRfb6484vfr2qqjiFkLThTjcQ=","revision":"e1439544d8ecd0f3e9373a636d447668096a8f81","revisionTime":"2016-05-20T23:26:10Z"}, - {"path":"github.com/boltdb/bolt","checksumSHA1":"R1Q34Pfnt197F/nCOO9kG8c+Z90=","revision":"2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8","revisionTime":"2017-07-17T17:11:48Z"}, - {"path":"github.com/circonus-labs/circonus-gometrics","checksumSHA1":"szvY4u7TlXkrQ3PW8wmyJaIFy0U=","revision":"d17a8420c36e800fcb46bbd4d2a15b93c68605ea","revisionTime":"2016-11-09T19:23:37Z"}, - {"path":"github.com/circonus-labs/circonus-gometrics/api","checksumSHA1":"WUE6oF152uN5FcLmmq+nO3Yl7pU=","revision":"d17a8420c36e800fcb46bbd4d2a15b93c68605ea","revisionTime":"2016-11-09T19:23:37Z"}, - {"path":"github.com/circonus-labs/circonus-gometrics/checkmgr","checksumSHA1":"beRBHHy2+V6Ht4cACIMmZOCnzgg=","revision":"d17a8420c36e800fcb46bbd4d2a15b93c68605ea","revisionTime":"2016-11-09T19:23:37Z"}, - {"path":"github.com/circonus-labs/circonusllhist","checksumSHA1":"C4Z7+l5GOpOCW5DcvNYzheGvQRE=","revision":"365d370cc1459bdcaceda3499453668373dea1d0","revisionTime":"2016-11-10T00:26:50Z"}, - {"path":"github.com/elazarl/go-bindata-assetfs","checksumSHA1":"5ftkjfUwI9A6xCQ1PwIAd5+qlo0=","revision":"e1a2a7ec64b07d04ac9ebb072404fe8b7b60de1b","revisionTime":"2016-08-03T19:23:04Z"}, - {"path":"github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs","checksumSHA1":"CaThXbumVxZtNlItiXma5B78PwQ=","revision":"e1a2a7ec64b07d04ac9ebb072404fe8b7b60de1b","revisionTime":"2016-08-03T19:23:04Z"}, - {"path":"github.com/go-ole/go-ole","checksumSHA1":"oyULO1B/l2OLy2xereo+2w3hYk4=","revision":"02d3668a0cf01f58411cc85cd37c174c257ec7c2","revisionTime":"2017-06-01T13:56:11Z"}, - {"path":"github.com/go-ole/go-ole/oleutil","checksumSHA1":"IvdiJE1NIogRmGi3WmteEKZQJB8=","revision":"5e9c030faf78847db7aa77e3661b9cc449de29b7","revisionTime":"2016-11-16T06:46:58Z"}, - {"path":"github.com/google/gofuzz","checksumSHA1":"PFtXkXPO7pwRtykVUUXtc07wc7U=","revision":"24818f796faf91cd76ec7bddd72458fbced7a6c1","revisionTime":"2017-06-12T17:47:53Z"}, - {"path":"github.com/hashicorp/errwrap","checksumSHA1":"cdOCt0Yb+hdErz8NAQqayxPmRsY=","revision":"7554cd9344cec97297fa6649b055a8c98c2a1e55","revisionTime":"2014-10-28T05:47:10Z"}, - {"path":"github.com/hashicorp/go-checkpoint","checksumSHA1":"D267IUMW2rcb+vNe3QU+xhfSrgY=","revision":"1545e56e46dec3bba264e41fde2c1e2aa65b5dd4","revisionTime":"2017-10-09T17:35:28Z"}, - {"path":"github.com/hashicorp/go-cleanhttp","checksumSHA1":"b8F628srIitj5p7Y130xc9k0QWs=","revision":"3573b8b52aa7b37b9358d966a898feb387f62437","revisionTime":"2017-02-11T01:34:15Z"}, - {"path":"github.com/hashicorp/go-discover","checksumSHA1":"tWQmb13hmUBoWi0ZHnc4CLBqRc0=","revision":"745a463b035b25a4d0c12d056e208e3850fdd1be","revisionTime":"2017-10-04T16:46:45Z"}, - {"path":"github.com/hashicorp/go-discover/provider/aws","checksumSHA1":"lyPRg8aZKgGiNkMILk/VKwOqMy4=","revision":"25e4565347de14cea0a0e0730374c9fcffa7bab0","revisionTime":"2017-09-25T01:06:15Z","tree":true}, - {"path":"github.com/hashicorp/go-discover/provider/azure","checksumSHA1":"r97P32e+VmNMh2vwLkZa1zPEDQU=","revision":"b518491d039b6782035b8881502b4f5e9fcc887b","revisionTime":"2017-08-01T15:32:04Z","tree":true}, - {"path":"github.com/hashicorp/go-discover/provider/gce","checksumSHA1":"KC/MepQsQF17904UShiM61jmaEs=","revision":"b518491d039b6782035b8881502b4f5e9fcc887b","revisionTime":"2017-08-01T15:32:04Z","tree":true}, - {"path":"github.com/hashicorp/go-discover/provider/softlayer","checksumSHA1":"SIyZ44AHIUTBfI336ACpCeybsLg=","revision":"b518491d039b6782035b8881502b4f5e9fcc887b","revisionTime":"2017-08-01T15:32:04Z","tree":true}, - {"path":"github.com/hashicorp/go-immutable-radix","checksumSHA1":"Cas2nprG6pWzf05A2F/OlnjUu2Y=","revision":"8aac2701530899b64bdea735a1de8da899815220","revisionTime":"2017-07-25T22:12:15Z"}, - {"path":"github.com/hashicorp/go-memdb","checksumSHA1":"T65qvYBTy4rYks7oN+U0muEqtRw=","revision":"2b2d6c35e14e7557ea1003e707d5e179fa315028","revisionTime":"2017-07-25T22:15:03Z"}, - {"path":"github.com/hashicorp/go-msgpack/codec","checksumSHA1":"TNlVzNR1OaajcNi3CbQ3bGbaLGU=","revision":"fa3f63826f7c23912c15263591e65d54d080b458","revisionTime":"2015-05-18T23:42:57Z"}, - {"path":"github.com/hashicorp/go-multierror","checksumSHA1":"lrSl49G23l6NhfilxPM0XFs5rZo=","revision":"d30f09973e19c1dfcd120b2d9c4f168e68d6b5d5","revisionTime":"2015-09-16T20:57:42Z"}, - {"path":"github.com/hashicorp/go-retryablehttp","checksumSHA1":"yzoWV7yrS/TvOrKy5ZrdUjsYaOA=","revision":"794af36148bf63c118d6db80eb902a136b907e71","revisionTime":"2017-08-24T18:08:59Z"}, - {"path":"github.com/hashicorp/go-rootcerts","checksumSHA1":"A1PcINvF3UiwHRKn8UcgARgvGRs=","revision":"6bb64b370b90e7ef1fa532be9e591a81c3493e00","revisionTime":"2016-05-03T14:34:40Z"}, - {"path":"github.com/hashicorp/go-sockaddr","checksumSHA1":"GP24Vz4EmZAL1ZH2TYTkDiiCO94=","revision":"2d10d7c10258d11196c0ebf2943509e4afd06cd4","revisionTime":"2017-05-23T22:50:28Z"}, - {"path":"github.com/hashicorp/go-sockaddr/template","checksumSHA1":"mIUCMmRHslN2bxQZ0uObMnXxk9E=","revision":"2d10d7c10258d11196c0ebf2943509e4afd06cd4","revisionTime":"2017-05-23T22:50:28Z"}, - {"path":"github.com/hashicorp/go-syslog","checksumSHA1":"xZ7Ban1x//6uUIU1xtrTbCYNHBc=","revision":"42a2b573b664dbf281bd48c3cc12c086b17a39ba","revisionTime":"2015-02-18T18:19:46Z"}, - {"path":"github.com/hashicorp/go-uuid","checksumSHA1":"mAkPa/RLuIwN53GbwIEMATexams=","revision":"64130c7a86d732268a38cb04cfbaf0cc987fda98","revisionTime":"2016-07-17T02:21:40Z"}, - {"path":"github.com/hashicorp/go-version","checksumSHA1":"tUGxc7rfX0cmhOOUDhMuAZ9rWsA=","revision":"03c5bf6be031b6dd45afec16b1cf94fc8938bc77","revisionTime":"2017-02-02T08:07:59Z"}, - {"path":"github.com/hashicorp/golang-lru","checksumSHA1":"d9PxF1XQGLMJZRct2R8qVM/eYlE=","revision":"a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4","revisionTime":"2016-02-07T21:47:19Z"}, - {"path":"github.com/hashicorp/golang-lru/simplelru","checksumSHA1":"2nOpYjx8Sn57bqlZq17yM4YJuM4=","revision":"a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4","revisionTime":"2016-02-07T21:47:19Z"}, - {"path":"github.com/hashicorp/hcl","checksumSHA1":"HtpYAWHvd9mq+mHkpo7z8PGzMik=","revision":"23c074d0eceb2b8a5bfdbb271ab780cde70f05a8","revisionTime":"2017-10-17T18:19:29Z"}, - {"path":"github.com/hashicorp/hcl/hcl/ast","checksumSHA1":"IxyvRpCFeoJBGl2obLKJV7RCGjg=","revision":"d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1","revisionTime":"2016-07-11T23:17:52Z"}, - {"path":"github.com/hashicorp/hcl/hcl/parser","checksumSHA1":"l2oQxBsZRwn6eZjf+whXr8c9+8c=","revision":"d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1","revisionTime":"2016-07-11T23:17:52Z"}, - {"path":"github.com/hashicorp/hcl/hcl/scanner","checksumSHA1":"vjhDQVlgHhdxml1V8/cj0vOe+j8=","revision":"d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1","revisionTime":"2016-07-11T23:17:52Z"}, - {"path":"github.com/hashicorp/hcl/hcl/strconv","checksumSHA1":"JlZmnzqdmFFyb1+2afLyR3BOE/8=","revision":"d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1","revisionTime":"2016-07-11T23:17:52Z"}, - {"path":"github.com/hashicorp/hcl/hcl/token","checksumSHA1":"c6yprzj06ASwCo18TtbbNNBHljA=","revision":"d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1","revisionTime":"2016-07-11T23:17:52Z"}, - {"path":"github.com/hashicorp/hcl/json/parser","checksumSHA1":"jQ45CCc1ed/nlV7bbSnx6z72q1M=","revision":"d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1","revisionTime":"2016-07-11T23:17:52Z"}, - {"path":"github.com/hashicorp/hcl/json/scanner","checksumSHA1":"S1e0F9ZKSnqgOLfjDTYazRL28tA=","revision":"d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1","revisionTime":"2016-07-11T23:17:52Z"}, - {"path":"github.com/hashicorp/hcl/json/token","checksumSHA1":"fNlXQCQEnb+B3k5UDL/r15xtSJY=","revision":"d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1","revisionTime":"2016-07-11T23:17:52Z"}, - {"path":"github.com/hashicorp/hil","checksumSHA1":"kqCMCHy2b+RBMKC+ER+OPqp8C3E=","revision":"1e86c6b523c55d1fa6c6e930ce80b548664c95c2","revisionTime":"2016-07-11T23:18:37Z"}, - {"path":"github.com/hashicorp/hil/ast","checksumSHA1":"UICubs001+Q4MsUf9zl2vcMzWQQ=","revision":"1e86c6b523c55d1fa6c6e930ce80b548664c95c2","revisionTime":"2016-07-11T23:18:37Z"}, - {"path":"github.com/hashicorp/logutils","checksumSHA1":"vt+P9D2yWDO3gdvdgCzwqunlhxU=","revision":"0dc08b1671f34c4250ce212759ebd880f743d883","revisionTime":"2015-06-09T07:04:31Z"}, - {"path":"github.com/hashicorp/memberlist","checksumSHA1":"vwj2yOi577Mmn+IfJwV8YXYeALk=","revision":"687988a0b5daaf7ed5051e5e374aef27f8254822","revisionTime":"2017-09-19T17:31:51Z"}, - {"path":"github.com/hashicorp/net-rpc-msgpackrpc","checksumSHA1":"qnlqWJYV81ENr61SZk9c65R1mDo=","revision":"a14192a58a694c123d8fe5481d4a4727d6ae82f3","revisionTime":"2015-11-16T02:03:38Z"}, - {"path":"github.com/hashicorp/raft","checksumSHA1":"JjJtGJi1ywWhVhs/PvTXxe4TeD8=","revision":"6d14f0c70869faabd9e60ba7ed88a6cbbd6a661f","revisionTime":"2017-10-03T22:09:13Z","version":"v1.0.0","versionExact":"v1.0.0"}, - {"path":"github.com/hashicorp/raft-boltdb","checksumSHA1":"QAxukkv54/iIvLfsUP6IK4R0m/A=","revision":"d1e82c1ec3f15ee991f7cc7ffd5b67ff6f5bbaee","revisionTime":"2015-02-01T20:08:39Z"}, - {"path":"github.com/hashicorp/serf/coordinate","checksumSHA1":"mS15CkImPzXYsgNwl3Mt9Gh3Vb0=","comment":"v0.7.0-66-g6c4672d","revision":"c20a0b1b1ea9eb8168bcdec0116688fa9254e449","revisionTime":"2017-10-22T02:00:50Z"}, - {"path":"github.com/hashicorp/serf/serf","checksumSHA1":"iYhCWgAAUcQjU0JocsKgak5C8tY=","comment":"v0.7.0-66-g6c4672d","revision":"c20a0b1b1ea9eb8168bcdec0116688fa9254e449","revisionTime":"2017-10-22T02:00:50Z"}, - {"path":"github.com/hashicorp/yamux","checksumSHA1":"ZhK6IO2XN81Y+3RAjTcVm1Ic7oU=","revision":"d1caa6c97c9fc1cc9e83bbe34d0603f9ff0ce8bd","revisionTime":"2016-07-20T23:31:40Z"}, - {"path":"github.com/mattn/go-isatty","checksumSHA1":"xZuhljnmBysJPta/lMyYmJdujCg=","revision":"66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8","revisionTime":"2016-08-06T12:27:52Z"}, - {"path":"github.com/miekg/dns","checksumSHA1":"Jo+pItYOocIRdoFL0fc4nHhUEJY=","revision":"bbca4873b326f5dc54bfe31148446d4ed79a5a02","revisionTime":"2017-08-08T22:19:10Z"}, - {"path":"github.com/mitchellh/cli","checksumSHA1":"GzfpPGtV2UJH9hFsKwzGjKrhp/A=","revision":"dff723fff508858a44c1f4bd0911f00d73b0202f","revisionTime":"2017-09-05T22:10:09Z"}, - {"path":"github.com/mitchellh/copystructure","checksumSHA1":"86nE93o1VIND0Doe8PuhCXnhUx0=","revision":"cdac8253d00f2ecf0a0b19fbff173a9a72de4f82","revisionTime":"2016-08-04T03:23:30Z"}, - {"path":"github.com/mitchellh/go-homedir","checksumSHA1":"V/quM7+em2ByJbWBLOsEwnY3j/Q=","revision":"b8bc1bf767474819792c23f32d8286a45736f1c6","revisionTime":"2016-12-03T19:45:07Z"}, - {"path":"github.com/mitchellh/mapstructure","checksumSHA1":"gILp4IL+xwXLH6tJtRLrnZ56F24=","revision":"06020f85339e21b2478f756a78e295255ffa4d6a","revisionTime":"2017-10-17T17:18:08Z"}, - {"path":"github.com/mitchellh/reflectwalk","checksumSHA1":"mrqMlK6gqe//WsJSrJ1HgkPM0lM=","revision":"eecf4c70c626c7cfbb95c90195bc34d386c74ac6","revisionTime":"2015-05-27T15:31:53Z"}, - {"path":"github.com/pascaldekloe/goe/verify","checksumSHA1":"5h+ERzHw3Rl2G0kFPxoJzxiA9s0=","revision":"07ebd1e2481f616a278ab431cf04cc5cf5ab3ebe","revisionTime":"2017-03-28T18:37:59Z"}, - {"path":"github.com/pkg/errors","checksumSHA1":"ynJSWoF6v+3zMnh9R0QmmG6iGV8=","revision":"ff09b135c25aae272398c51a07235b90a75aa4f0","revisionTime":"2017-03-16T20:15:38Z","tree":true}, - {"path":"github.com/posener/complete","checksumSHA1":"rTNABfFJ9wtLQRH8uYNkEZGQOrY=","revision":"9f41f7636a724791a3b8b1d35e84caa1124f0d3c","revisionTime":"2017-08-29T17:11:12Z"}, - {"path":"github.com/posener/complete/cmd","checksumSHA1":"NB7uVS0/BJDmNu68vPAlbrq4TME=","revision":"9f41f7636a724791a3b8b1d35e84caa1124f0d3c","revisionTime":"2017-08-29T17:11:12Z"}, - {"path":"github.com/posener/complete/cmd/install","checksumSHA1":"gSX86Xl0w9hvtntdT8h23DZtSag=","revision":"9f41f7636a724791a3b8b1d35e84caa1124f0d3c","revisionTime":"2017-08-29T17:11:12Z"}, - {"path":"github.com/posener/complete/match","checksumSHA1":"DMo94FwJAm9ZCYCiYdJU2+bh4no=","revision":"9f41f7636a724791a3b8b1d35e84caa1124f0d3c","revisionTime":"2017-08-29T17:11:12Z"}, - {"path":"github.com/ryanuber/columnize","checksumSHA1":"ExnVEVNT8APpFTm26cUb5T09yR4=","comment":"v2.0.1-8-g983d3a5","revision":"9b3edd62028f107d7cabb19353292afd29311a4e","revisionTime":"2016-07-12T16:32:29Z"}, - {"path":"github.com/sean-/seed","checksumSHA1":"A/YUMbGg1LHIeK2+NLZBt+MIAao=","revision":"3c72d44db0c567f7c901f9c5da5fe68392227750","revisionTime":"2017-02-08T16:47:21Z"}, - {"path":"github.com/sergi/go-diff/diffmatchpatch","checksumSHA1":"v7C+aJ1D/z3MEeCte6bxvpoGjM4=","revision":"feef008d51ad2b3778f85d387ccf91735543008d","revisionTime":"2017-04-09T07:17:39Z"}, - {"path":"github.com/shirou/gopsutil/cpu","checksumSHA1":"zW2k8E1gkuySzTz2eXuSEDhpffY=","revision":"32b6636de04b303274daac3ca2b10d3b0e4afc35","revisionTime":"2017-02-04T05:36:48Z"}, - {"path":"github.com/shirou/gopsutil/host","checksumSHA1":"GsqEEmGv6sj8DreS2SYXRkoZ9NI=","revision":"b62e301a8b9958eebb7299683eb57fab229a9501","revisionTime":"2017-02-08T02:55:55Z"}, - {"path":"github.com/shirou/gopsutil/internal/common","checksumSHA1":"hz9RxkaV3Tnju2eiHBWO/Yv7n5c=","revision":"32b6636de04b303274daac3ca2b10d3b0e4afc35","revisionTime":"2017-02-04T05:36:48Z"}, - {"path":"github.com/shirou/gopsutil/mem","checksumSHA1":"XQwjGKI51Y3aQ3/jNyRh9Gnprgg=","revision":"32b6636de04b303274daac3ca2b10d3b0e4afc35","revisionTime":"2017-02-04T05:36:48Z"}, - {"path":"github.com/shirou/gopsutil/net","checksumSHA1":"OSvOZs5uK5iolCOeS46nB2InVy8=","revision":"32b6636de04b303274daac3ca2b10d3b0e4afc35","revisionTime":"2017-02-04T05:36:48Z"}, - {"path":"github.com/shirou/gopsutil/process","checksumSHA1":"JX0bRK/BdKVfbm4XOxMducVdY58=","revision":"32b6636de04b303274daac3ca2b10d3b0e4afc35","revisionTime":"2017-02-04T05:36:48Z"}, - {"path":"github.com/shirou/w32","checksumSHA1":"Nve7SpDmjsv6+rhkXAkfg/UQx94=","revision":"bb4de0191aa41b5507caa14b0650cdbddcd9280b","revisionTime":"2016-09-30T03:27:40Z"}, - {"path":"github.com/tonnerre/golang-text","checksumSHA1":"t24KnvC9jRxiANVhpw2pqFpmEu8=","revision":"048ed3d792f7104850acbc8cfc01e5a6070f4c04","revisionTime":"2013-09-25T19:58:46Z"}, - {"path":"golang.org/x/net/context","checksumSHA1":"9jjO5GjLa0XF/nfWihF02RoH4qc=","revision":"075e191f18186a8ff2becaf64478e30f4545cdad","revisionTime":"2016-08-05T06:12:51Z"}, - {"path":"golang.org/x/net/context/ctxhttp","checksumSHA1":"WHc3uByvGaMcnSoI21fhzYgbOgg=","revision":"075e191f18186a8ff2becaf64478e30f4545cdad","revisionTime":"2016-08-05T06:12:51Z"}, - {"path":"golang.org/x/sys/unix","checksumSHA1":"vlicYp+fe4ECQ+5QqpAk36VRA3s=","revision":"cd2c276457edda6df7fb04895d3fd6a6add42926","revisionTime":"2017-07-17T10:05:24Z"}, - {"path":"golang.org/x/time/rate","checksumSHA1":"vGfePfr0+weQUeTM/71mu+LCFuE=","revision":"8be79e1e0910c292df4e79c241bb7e8f7e725959","revisionTime":"2017-04-24T23:28:54Z"} + { + "checksumSHA1": "JhyS/zIicgtrSasHSZ6WtXGWJVk=", + "path": "github.com/DataDog/datadog-go/statsd", + "revision": "cc2f4770f4d61871e19bfee967bc767fe730b0d9", + "revisionTime": "2016-03-29T13:52:53Z" + }, + { + "checksumSHA1": "AzjRkOQtVBTwIw4RJLTygFhJs3s=", + "path": "github.com/Microsoft/go-winio", + "revision": "c4dc1301f1dc0307acd38e611aa375a64dfe0642", + "revisionTime": "2017-07-12T04:46:15Z" + }, + { + "checksumSHA1": "9NR0rrcAT5J76C5xMS4AVksS9o0=", + "path": "github.com/StackExchange/wmi", + "revision": "e54cbda6595d7293a7a468ccf9525f6bc8887f99", + "revisionTime": "2016-08-11T21:45:55Z" + }, + { + "checksumSHA1": "l0iFqayYAaEip6Olaq3/LCOa/Sg=", + "path": "github.com/armon/circbuf", + "revision": "bbbad097214e2918d8543d5201d12bfd7bca254d", + "revisionTime": "2015-08-27T00:49:46Z" + }, + { + "checksumSHA1": "0et4hA6AYqZCgYiY+c6Z17t3k3k=", + "path": "github.com/armon/go-metrics", + "revision": "023a4bbe4bb9bfb23ee7e1afc8d0abad217641f3", + "revisionTime": "2017-08-09T01:16:44Z" + }, + { + "checksumSHA1": "xCsGGM9TKBogZDfSN536KtQdLko=", + "path": "github.com/armon/go-metrics/circonus", + "revision": "ded85ed431a7aee3f3af79f082b704d948058f64", + "revisionTime": "2017-08-07T19:17:41Z" + }, + { + "checksumSHA1": "Dt0n1sSivvvdZQdzc4Hu/yOG+T0=", + "path": "github.com/armon/go-metrics/datadog", + "revision": "ded85ed431a7aee3f3af79f082b704d948058f64", + "revisionTime": "2017-08-07T19:17:41Z" + }, + { + "checksumSHA1": "gNO0JNpLzYOdInGeq7HqMZUzx9M=", + "path": "github.com/armon/go-radix", + "revision": "4239b77079c7b5d1243b7b4736304ce8ddb6f0f2", + "revisionTime": "2016-01-15T23:47:25Z" + }, + { + "checksumSHA1": "dvd7Su+WNmHRP1+w1HezrPUCDsc=", + "path": "github.com/bgentry/speakeasy", + "revision": "e1439544d8ecd0f3e9373a636d447668096a8f81", + "revisionTime": "2016-05-20T23:26:10Z" + }, + { + "checksumSHA1": "twtRfb6484vfr2qqjiFkLThTjcQ=", + "path": "github.com/bgentry/speakeasy/example", + "revision": "e1439544d8ecd0f3e9373a636d447668096a8f81", + "revisionTime": "2016-05-20T23:26:10Z" + }, + { + "checksumSHA1": "R1Q34Pfnt197F/nCOO9kG8c+Z90=", + "path": "github.com/boltdb/bolt", + "revision": "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8", + "revisionTime": "2017-07-17T17:11:48Z" + }, + { + "checksumSHA1": "szvY4u7TlXkrQ3PW8wmyJaIFy0U=", + "path": "github.com/circonus-labs/circonus-gometrics", + "revision": "d17a8420c36e800fcb46bbd4d2a15b93c68605ea", + "revisionTime": "2016-11-09T19:23:37Z" + }, + { + "checksumSHA1": "WUE6oF152uN5FcLmmq+nO3Yl7pU=", + "path": "github.com/circonus-labs/circonus-gometrics/api", + "revision": "d17a8420c36e800fcb46bbd4d2a15b93c68605ea", + "revisionTime": "2016-11-09T19:23:37Z" + }, + { + "checksumSHA1": "beRBHHy2+V6Ht4cACIMmZOCnzgg=", + "path": "github.com/circonus-labs/circonus-gometrics/checkmgr", + "revision": "d17a8420c36e800fcb46bbd4d2a15b93c68605ea", + "revisionTime": "2016-11-09T19:23:37Z" + }, + { + "checksumSHA1": "C4Z7+l5GOpOCW5DcvNYzheGvQRE=", + "path": "github.com/circonus-labs/circonusllhist", + "revision": "365d370cc1459bdcaceda3499453668373dea1d0", + "revisionTime": "2016-11-10T00:26:50Z" + }, + { + "checksumSHA1": "5ftkjfUwI9A6xCQ1PwIAd5+qlo0=", + "path": "github.com/elazarl/go-bindata-assetfs", + "revision": "e1a2a7ec64b07d04ac9ebb072404fe8b7b60de1b", + "revisionTime": "2016-08-03T19:23:04Z" + }, + { + "checksumSHA1": "CaThXbumVxZtNlItiXma5B78PwQ=", + "path": "github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs", + "revision": "e1a2a7ec64b07d04ac9ebb072404fe8b7b60de1b", + "revisionTime": "2016-08-03T19:23:04Z" + }, + { + "checksumSHA1": "oyULO1B/l2OLy2xereo+2w3hYk4=", + "path": "github.com/go-ole/go-ole", + "revision": "02d3668a0cf01f58411cc85cd37c174c257ec7c2", + "revisionTime": "2017-06-01T13:56:11Z" + }, + { + "checksumSHA1": "IvdiJE1NIogRmGi3WmteEKZQJB8=", + "path": "github.com/go-ole/go-ole/oleutil", + "revision": "5e9c030faf78847db7aa77e3661b9cc449de29b7", + "revisionTime": "2016-11-16T06:46:58Z" + }, + { + "checksumSHA1": "PFtXkXPO7pwRtykVUUXtc07wc7U=", + "path": "github.com/google/gofuzz", + "revision": "24818f796faf91cd76ec7bddd72458fbced7a6c1", + "revisionTime": "2017-06-12T17:47:53Z" + }, + { + "checksumSHA1": "cdOCt0Yb+hdErz8NAQqayxPmRsY=", + "path": "github.com/hashicorp/errwrap", + "revision": "7554cd9344cec97297fa6649b055a8c98c2a1e55", + "revisionTime": "2014-10-28T05:47:10Z" + }, + { + "checksumSHA1": "D267IUMW2rcb+vNe3QU+xhfSrgY=", + "path": "github.com/hashicorp/go-checkpoint", + "revision": "1545e56e46dec3bba264e41fde2c1e2aa65b5dd4", + "revisionTime": "2017-10-09T17:35:28Z" + }, + { + "checksumSHA1": "b8F628srIitj5p7Y130xc9k0QWs=", + "path": "github.com/hashicorp/go-cleanhttp", + "revision": "3573b8b52aa7b37b9358d966a898feb387f62437", + "revisionTime": "2017-02-11T01:34:15Z" + }, + { + "checksumSHA1": "tWQmb13hmUBoWi0ZHnc4CLBqRc0=", + "path": "github.com/hashicorp/go-discover", + "revision": "745a463b035b25a4d0c12d056e208e3850fdd1be", + "revisionTime": "2017-10-04T16:46:45Z" + }, + { + "checksumSHA1": "lyPRg8aZKgGiNkMILk/VKwOqMy4=", + "path": "github.com/hashicorp/go-discover/provider/aws", + "revision": "25e4565347de14cea0a0e0730374c9fcffa7bab0", + "revisionTime": "2017-09-25T01:06:15Z", + "tree": true + }, + { + "checksumSHA1": "r97P32e+VmNMh2vwLkZa1zPEDQU=", + "path": "github.com/hashicorp/go-discover/provider/azure", + "revision": "b518491d039b6782035b8881502b4f5e9fcc887b", + "revisionTime": "2017-08-01T15:32:04Z", + "tree": true + }, + { + "checksumSHA1": "KC/MepQsQF17904UShiM61jmaEs=", + "path": "github.com/hashicorp/go-discover/provider/gce", + "revision": "b518491d039b6782035b8881502b4f5e9fcc887b", + "revisionTime": "2017-08-01T15:32:04Z", + "tree": true + }, + { + "checksumSHA1": "SIyZ44AHIUTBfI336ACpCeybsLg=", + "path": "github.com/hashicorp/go-discover/provider/softlayer", + "revision": "b518491d039b6782035b8881502b4f5e9fcc887b", + "revisionTime": "2017-08-01T15:32:04Z", + "tree": true + }, + { + "checksumSHA1": "Cas2nprG6pWzf05A2F/OlnjUu2Y=", + "path": "github.com/hashicorp/go-immutable-radix", + "revision": "8aac2701530899b64bdea735a1de8da899815220", + "revisionTime": "2017-07-25T22:12:15Z" + }, + { + "checksumSHA1": "T65qvYBTy4rYks7oN+U0muEqtRw=", + "path": "github.com/hashicorp/go-memdb", + "revision": "2b2d6c35e14e7557ea1003e707d5e179fa315028", + "revisionTime": "2017-07-25T22:15:03Z" + }, + { + "checksumSHA1": "TNlVzNR1OaajcNi3CbQ3bGbaLGU=", + "path": "github.com/hashicorp/go-msgpack/codec", + "revision": "fa3f63826f7c23912c15263591e65d54d080b458", + "revisionTime": "2015-05-18T23:42:57Z" + }, + { + "checksumSHA1": "lrSl49G23l6NhfilxPM0XFs5rZo=", + "path": "github.com/hashicorp/go-multierror", + "revision": "d30f09973e19c1dfcd120b2d9c4f168e68d6b5d5", + "revisionTime": "2015-09-16T20:57:42Z" + }, + { + "checksumSHA1": "yzoWV7yrS/TvOrKy5ZrdUjsYaOA=", + "path": "github.com/hashicorp/go-retryablehttp", + "revision": "794af36148bf63c118d6db80eb902a136b907e71", + "revisionTime": "2017-08-24T18:08:59Z" + }, + { + "checksumSHA1": "A1PcINvF3UiwHRKn8UcgARgvGRs=", + "path": "github.com/hashicorp/go-rootcerts", + "revision": "6bb64b370b90e7ef1fa532be9e591a81c3493e00", + "revisionTime": "2016-05-03T14:34:40Z" + }, + { + "checksumSHA1": "GP24Vz4EmZAL1ZH2TYTkDiiCO94=", + "path": "github.com/hashicorp/go-sockaddr", + "revision": "2d10d7c10258d11196c0ebf2943509e4afd06cd4", + "revisionTime": "2017-05-23T22:50:28Z" + }, + { + "checksumSHA1": "mIUCMmRHslN2bxQZ0uObMnXxk9E=", + "path": "github.com/hashicorp/go-sockaddr/template", + "revision": "2d10d7c10258d11196c0ebf2943509e4afd06cd4", + "revisionTime": "2017-05-23T22:50:28Z" + }, + { + "checksumSHA1": "xZ7Ban1x//6uUIU1xtrTbCYNHBc=", + "path": "github.com/hashicorp/go-syslog", + "revision": "42a2b573b664dbf281bd48c3cc12c086b17a39ba", + "revisionTime": "2015-02-18T18:19:46Z" + }, + { + "checksumSHA1": "mAkPa/RLuIwN53GbwIEMATexams=", + "path": "github.com/hashicorp/go-uuid", + "revision": "64130c7a86d732268a38cb04cfbaf0cc987fda98", + "revisionTime": "2016-07-17T02:21:40Z" + }, + { + "checksumSHA1": "tUGxc7rfX0cmhOOUDhMuAZ9rWsA=", + "path": "github.com/hashicorp/go-version", + "revision": "03c5bf6be031b6dd45afec16b1cf94fc8938bc77", + "revisionTime": "2017-02-02T08:07:59Z" + }, + { + "checksumSHA1": "d9PxF1XQGLMJZRct2R8qVM/eYlE=", + "path": "github.com/hashicorp/golang-lru", + "revision": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4", + "revisionTime": "2016-02-07T21:47:19Z" + }, + { + "checksumSHA1": "2nOpYjx8Sn57bqlZq17yM4YJuM4=", + "path": "github.com/hashicorp/golang-lru/simplelru", + "revision": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4", + "revisionTime": "2016-02-07T21:47:19Z" + }, + { + "checksumSHA1": "HtpYAWHvd9mq+mHkpo7z8PGzMik=", + "path": "github.com/hashicorp/hcl", + "revision": "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8", + "revisionTime": "2017-10-17T18:19:29Z" + }, + { + "checksumSHA1": "IxyvRpCFeoJBGl2obLKJV7RCGjg=", + "path": "github.com/hashicorp/hcl/hcl/ast", + "revision": "d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1", + "revisionTime": "2016-07-11T23:17:52Z" + }, + { + "checksumSHA1": "l2oQxBsZRwn6eZjf+whXr8c9+8c=", + "path": "github.com/hashicorp/hcl/hcl/parser", + "revision": "d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1", + "revisionTime": "2016-07-11T23:17:52Z" + }, + { + "checksumSHA1": "vjhDQVlgHhdxml1V8/cj0vOe+j8=", + "path": "github.com/hashicorp/hcl/hcl/scanner", + "revision": "d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1", + "revisionTime": "2016-07-11T23:17:52Z" + }, + { + "checksumSHA1": "JlZmnzqdmFFyb1+2afLyR3BOE/8=", + "path": "github.com/hashicorp/hcl/hcl/strconv", + "revision": "d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1", + "revisionTime": "2016-07-11T23:17:52Z" + }, + { + "checksumSHA1": "c6yprzj06ASwCo18TtbbNNBHljA=", + "path": "github.com/hashicorp/hcl/hcl/token", + "revision": "d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1", + "revisionTime": "2016-07-11T23:17:52Z" + }, + { + "checksumSHA1": "jQ45CCc1ed/nlV7bbSnx6z72q1M=", + "path": "github.com/hashicorp/hcl/json/parser", + "revision": "d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1", + "revisionTime": "2016-07-11T23:17:52Z" + }, + { + "checksumSHA1": "S1e0F9ZKSnqgOLfjDTYazRL28tA=", + "path": "github.com/hashicorp/hcl/json/scanner", + "revision": "d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1", + "revisionTime": "2016-07-11T23:17:52Z" + }, + { + "checksumSHA1": "fNlXQCQEnb+B3k5UDL/r15xtSJY=", + "path": "github.com/hashicorp/hcl/json/token", + "revision": "d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1", + "revisionTime": "2016-07-11T23:17:52Z" + }, + { + "checksumSHA1": "kqCMCHy2b+RBMKC+ER+OPqp8C3E=", + "path": "github.com/hashicorp/hil", + "revision": "1e86c6b523c55d1fa6c6e930ce80b548664c95c2", + "revisionTime": "2016-07-11T23:18:37Z" + }, + { + "checksumSHA1": "UICubs001+Q4MsUf9zl2vcMzWQQ=", + "path": "github.com/hashicorp/hil/ast", + "revision": "1e86c6b523c55d1fa6c6e930ce80b548664c95c2", + "revisionTime": "2016-07-11T23:18:37Z" + }, + { + "checksumSHA1": "vt+P9D2yWDO3gdvdgCzwqunlhxU=", + "path": "github.com/hashicorp/logutils", + "revision": "0dc08b1671f34c4250ce212759ebd880f743d883", + "revisionTime": "2015-06-09T07:04:31Z" + }, + { + "checksumSHA1": "vwj2yOi577Mmn+IfJwV8YXYeALk=", + "path": "github.com/hashicorp/memberlist", + "revision": "687988a0b5daaf7ed5051e5e374aef27f8254822", + "revisionTime": "2017-09-19T17:31:51Z" + }, + { + "checksumSHA1": "qnlqWJYV81ENr61SZk9c65R1mDo=", + "path": "github.com/hashicorp/net-rpc-msgpackrpc", + "revision": "a14192a58a694c123d8fe5481d4a4727d6ae82f3", + "revisionTime": "2015-11-16T02:03:38Z" + }, + { + "checksumSHA1": "JjJtGJi1ywWhVhs/PvTXxe4TeD8=", + "path": "github.com/hashicorp/raft", + "revision": "6d14f0c70869faabd9e60ba7ed88a6cbbd6a661f", + "revisionTime": "2017-10-03T22:09:13Z", + "version": "v1.0.0", + "versionExact": "v1.0.0" + }, + { + "checksumSHA1": "QAxukkv54/iIvLfsUP6IK4R0m/A=", + "path": "github.com/hashicorp/raft-boltdb", + "revision": "d1e82c1ec3f15ee991f7cc7ffd5b67ff6f5bbaee", + "revisionTime": "2015-02-01T20:08:39Z" + }, + { + "checksumSHA1": "mS15CkImPzXYsgNwl3Mt9Gh3Vb0=", + "comment": "v0.7.0-66-g6c4672d", + "path": "github.com/hashicorp/serf/coordinate", + "revision": "c20a0b1b1ea9eb8168bcdec0116688fa9254e449", + "revisionTime": "2017-10-22T02:00:50Z" + }, + { + "checksumSHA1": "iYhCWgAAUcQjU0JocsKgak5C8tY=", + "comment": "v0.7.0-66-g6c4672d", + "path": "github.com/hashicorp/serf/serf", + "revision": "c20a0b1b1ea9eb8168bcdec0116688fa9254e449", + "revisionTime": "2017-10-22T02:00:50Z" + }, + { + "checksumSHA1": "ZhK6IO2XN81Y+3RAjTcVm1Ic7oU=", + "path": "github.com/hashicorp/yamux", + "revision": "d1caa6c97c9fc1cc9e83bbe34d0603f9ff0ce8bd", + "revisionTime": "2016-07-20T23:31:40Z" + }, + { + "checksumSHA1": "xZuhljnmBysJPta/lMyYmJdujCg=", + "path": "github.com/mattn/go-isatty", + "revision": "66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8", + "revisionTime": "2016-08-06T12:27:52Z" + }, + { + "checksumSHA1": "Jo+pItYOocIRdoFL0fc4nHhUEJY=", + "path": "github.com/miekg/dns", + "revision": "bbca4873b326f5dc54bfe31148446d4ed79a5a02", + "revisionTime": "2017-08-08T22:19:10Z" + }, + { + "checksumSHA1": "GzfpPGtV2UJH9hFsKwzGjKrhp/A=", + "path": "github.com/mitchellh/cli", + "revision": "dff723fff508858a44c1f4bd0911f00d73b0202f", + "revisionTime": "2017-09-05T22:10:09Z" + }, + { + "checksumSHA1": "86nE93o1VIND0Doe8PuhCXnhUx0=", + "path": "github.com/mitchellh/copystructure", + "revision": "cdac8253d00f2ecf0a0b19fbff173a9a72de4f82", + "revisionTime": "2016-08-04T03:23:30Z" + }, + { + "checksumSHA1": "V/quM7+em2ByJbWBLOsEwnY3j/Q=", + "path": "github.com/mitchellh/go-homedir", + "revision": "b8bc1bf767474819792c23f32d8286a45736f1c6", + "revisionTime": "2016-12-03T19:45:07Z" + }, + { + "checksumSHA1": "bDdhmDk8q6utWrccBhEOa6IoGkE=", + "path": "github.com/mitchellh/go-testing-interface", + "revision": "a61a99592b77c9ba629d254a693acffaeb4b7e28", + "revisionTime": "2017-10-04T22:19:16Z" + }, + { + "checksumSHA1": "gILp4IL+xwXLH6tJtRLrnZ56F24=", + "path": "github.com/mitchellh/mapstructure", + "revision": "06020f85339e21b2478f756a78e295255ffa4d6a", + "revisionTime": "2017-10-17T17:18:08Z" + }, + { + "checksumSHA1": "mrqMlK6gqe//WsJSrJ1HgkPM0lM=", + "path": "github.com/mitchellh/reflectwalk", + "revision": "eecf4c70c626c7cfbb95c90195bc34d386c74ac6", + "revisionTime": "2015-05-27T15:31:53Z" + }, + { + "checksumSHA1": "5h+ERzHw3Rl2G0kFPxoJzxiA9s0=", + "path": "github.com/pascaldekloe/goe/verify", + "revision": "07ebd1e2481f616a278ab431cf04cc5cf5ab3ebe", + "revisionTime": "2017-03-28T18:37:59Z" + }, + { + "checksumSHA1": "ynJSWoF6v+3zMnh9R0QmmG6iGV8=", + "path": "github.com/pkg/errors", + "revision": "ff09b135c25aae272398c51a07235b90a75aa4f0", + "revisionTime": "2017-03-16T20:15:38Z", + "tree": true + }, + { + "checksumSHA1": "rTNABfFJ9wtLQRH8uYNkEZGQOrY=", + "path": "github.com/posener/complete", + "revision": "9f41f7636a724791a3b8b1d35e84caa1124f0d3c", + "revisionTime": "2017-08-29T17:11:12Z" + }, + { + "checksumSHA1": "NB7uVS0/BJDmNu68vPAlbrq4TME=", + "path": "github.com/posener/complete/cmd", + "revision": "9f41f7636a724791a3b8b1d35e84caa1124f0d3c", + "revisionTime": "2017-08-29T17:11:12Z" + }, + { + "checksumSHA1": "gSX86Xl0w9hvtntdT8h23DZtSag=", + "path": "github.com/posener/complete/cmd/install", + "revision": "9f41f7636a724791a3b8b1d35e84caa1124f0d3c", + "revisionTime": "2017-08-29T17:11:12Z" + }, + { + "checksumSHA1": "DMo94FwJAm9ZCYCiYdJU2+bh4no=", + "path": "github.com/posener/complete/match", + "revision": "9f41f7636a724791a3b8b1d35e84caa1124f0d3c", + "revisionTime": "2017-08-29T17:11:12Z" + }, + { + "checksumSHA1": "ExnVEVNT8APpFTm26cUb5T09yR4=", + "comment": "v2.0.1-8-g983d3a5", + "path": "github.com/ryanuber/columnize", + "revision": "9b3edd62028f107d7cabb19353292afd29311a4e", + "revisionTime": "2016-07-12T16:32:29Z" + }, + { + "checksumSHA1": "A/YUMbGg1LHIeK2+NLZBt+MIAao=", + "path": "github.com/sean-/seed", + "revision": "3c72d44db0c567f7c901f9c5da5fe68392227750", + "revisionTime": "2017-02-08T16:47:21Z" + }, + { + "checksumSHA1": "v7C+aJ1D/z3MEeCte6bxvpoGjM4=", + "path": "github.com/sergi/go-diff/diffmatchpatch", + "revision": "feef008d51ad2b3778f85d387ccf91735543008d", + "revisionTime": "2017-04-09T07:17:39Z" + }, + { + "checksumSHA1": "zW2k8E1gkuySzTz2eXuSEDhpffY=", + "path": "github.com/shirou/gopsutil/cpu", + "revision": "32b6636de04b303274daac3ca2b10d3b0e4afc35", + "revisionTime": "2017-02-04T05:36:48Z" + }, + { + "checksumSHA1": "GsqEEmGv6sj8DreS2SYXRkoZ9NI=", + "path": "github.com/shirou/gopsutil/host", + "revision": "b62e301a8b9958eebb7299683eb57fab229a9501", + "revisionTime": "2017-02-08T02:55:55Z" + }, + { + "checksumSHA1": "hz9RxkaV3Tnju2eiHBWO/Yv7n5c=", + "path": "github.com/shirou/gopsutil/internal/common", + "revision": "32b6636de04b303274daac3ca2b10d3b0e4afc35", + "revisionTime": "2017-02-04T05:36:48Z" + }, + { + "checksumSHA1": "XQwjGKI51Y3aQ3/jNyRh9Gnprgg=", + "path": "github.com/shirou/gopsutil/mem", + "revision": "32b6636de04b303274daac3ca2b10d3b0e4afc35", + "revisionTime": "2017-02-04T05:36:48Z" + }, + { + "checksumSHA1": "OSvOZs5uK5iolCOeS46nB2InVy8=", + "path": "github.com/shirou/gopsutil/net", + "revision": "32b6636de04b303274daac3ca2b10d3b0e4afc35", + "revisionTime": "2017-02-04T05:36:48Z" + }, + { + "checksumSHA1": "JX0bRK/BdKVfbm4XOxMducVdY58=", + "path": "github.com/shirou/gopsutil/process", + "revision": "32b6636de04b303274daac3ca2b10d3b0e4afc35", + "revisionTime": "2017-02-04T05:36:48Z" + }, + { + "checksumSHA1": "Nve7SpDmjsv6+rhkXAkfg/UQx94=", + "path": "github.com/shirou/w32", + "revision": "bb4de0191aa41b5507caa14b0650cdbddcd9280b", + "revisionTime": "2016-09-30T03:27:40Z" + }, + { + "checksumSHA1": "t24KnvC9jRxiANVhpw2pqFpmEu8=", + "path": "github.com/tonnerre/golang-text", + "revision": "048ed3d792f7104850acbc8cfc01e5a6070f4c04", + "revisionTime": "2013-09-25T19:58:46Z" + }, + { + "checksumSHA1": "9jjO5GjLa0XF/nfWihF02RoH4qc=", + "path": "golang.org/x/net/context", + "revision": "075e191f18186a8ff2becaf64478e30f4545cdad", + "revisionTime": "2016-08-05T06:12:51Z" + }, + { + "checksumSHA1": "WHc3uByvGaMcnSoI21fhzYgbOgg=", + "path": "golang.org/x/net/context/ctxhttp", + "revision": "075e191f18186a8ff2becaf64478e30f4545cdad", + "revisionTime": "2016-08-05T06:12:51Z" + }, + { + "checksumSHA1": "vlicYp+fe4ECQ+5QqpAk36VRA3s=", + "path": "golang.org/x/sys/unix", + "revision": "cd2c276457edda6df7fb04895d3fd6a6add42926", + "revisionTime": "2017-07-17T10:05:24Z" + }, + { + "checksumSHA1": "vGfePfr0+weQUeTM/71mu+LCFuE=", + "path": "golang.org/x/time/rate", + "revision": "8be79e1e0910c292df4e79c241bb7e8f7e725959", + "revisionTime": "2017-04-24T23:28:54Z" + } ], "rootPath": "github.com/hashicorp/consul" }