diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json
index 796e403f..9afbc9ea 100644
--- a/Godeps/Godeps.json
+++ b/Godeps/Godeps.json
@@ -1,6 +1,7 @@
{
"ImportPath": "github.com/google/cadvisor",
- "GoVersion": "go1.5.3",
+ "GoVersion": "go1.5",
+ "GodepVersion": "v62",
"Packages": [
"./..."
],
@@ -326,72 +327,72 @@
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/apparmor",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/fs",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/systemd",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/configs",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/configs/validate",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/criurpc",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/label",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/seccomp",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/selinux",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/stacktrace",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/system",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/user",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
"ImportPath": "github.com/opencontainers/runc/libcontainer/utils",
- "Comment": "v0.0.7-12-g7ca2aa4",
+ "Comment": "v0.0.7",
"Rev": "7ca2aa4873aea7cb4265b1726acb24b90d8726c6"
},
{
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/examples/README.md b/Godeps/_workspace/src/github.com/Shopify/sarama/examples/README.md
deleted file mode 100644
index b6588051..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/examples/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Sarama examples
-
-This folder contains example applications to demonstrate the use of Sarama. For code snippet examples on how to use the different types in Sarama, see [Sarams's API documentation on godoc.org](https://godoc.org/github.com/Shopify/sarama)
-
-In these examples, we use `github.com/Shopify/sarama` as import path. We do this to ensure all the examples are up to date with the latest changes in Sarama. For your own applications, you may want to use `gopkg.in/Shopify/sarama.v1` to lock into a stable API version.
-
-#### HTTP server
-
-[http_server](./http_server) is a simple HTTP server uses both the sync producer to produce data as part of the request handling cycle, as well as the async producer to maintain an access log. It also uses the [mocks subpackage](https://godoc.org/github.com/Shopify/sarama/mocks) to test both.
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/examples/http_server/.gitignore b/Godeps/_workspace/src/github.com/Shopify/sarama/examples/http_server/.gitignore
deleted file mode 100644
index 9f6ed425..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/examples/http_server/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-http_server
-http_server.test
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/examples/http_server/README.md b/Godeps/_workspace/src/github.com/Shopify/sarama/examples/http_server/README.md
deleted file mode 100644
index 5ff2bc25..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/examples/http_server/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# HTTP server example
-
-This HTTP server example shows you how to use the AsyncProducer and SyncProducer, and how to test them using mocks. The server simply sends the data of the HTTP request's query string to Kafka, and send a 200 result if that succeeds. For every request, it will send an access log entry to Kafka as well in the background.
-
-If you need to know whether a message was successfully sent to the Kafka cluster before you can send your HTTP response, using the `SyncProducer` is probably the simplest way to achieve this. If you don't care, e.g. for the access log, using the `AsyncProducer` will let you fire and forget. You can send the HTTP response, while the message is being produced in the background.
-
-One important thing to note is that both the `SyncProducer` and `AsyncProducer` are **thread-safe**. Go's `http.Server` handles requests concurrently in different goroutines, but you can use a single producer safely. This will actually achieve efficiency gains as the producer will be able to batch messages from concurrent requests together.
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/examples/http_server/http_server.go b/Godeps/_workspace/src/github.com/Shopify/sarama/examples/http_server/http_server.go
deleted file mode 100644
index 03e47b6b..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/examples/http_server/http_server.go
+++ /dev/null
@@ -1,246 +0,0 @@
-package main
-
-import (
- "github.com/Shopify/sarama"
-
- "crypto/tls"
- "crypto/x509"
- "encoding/json"
- "flag"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
- "os"
- "strings"
- "time"
-)
-
-var (
- addr = flag.String("addr", ":8080", "The address to bind to")
- brokers = flag.String("brokers", os.Getenv("KAFKA_PEERS"), "The Kafka brokers to connect to, as a comma separated list")
- verbose = flag.Bool("verbose", false, "Turn on Sarama logging")
- certFile = flag.String("certificate", "", "The optional certificate file for client authentication")
- keyFile = flag.String("key", "", "The optional key file for client authentication")
- caFile = flag.String("ca", "", "The optional certificate authority file for TLS client authentication")
- verifySsl = flag.Bool("verify", false, "Optional verify ssl certificates chain")
-)
-
-func main() {
- flag.Parse()
-
- if *verbose {
- sarama.Logger = log.New(os.Stdout, "[sarama] ", log.LstdFlags)
- }
-
- if *brokers == "" {
- flag.PrintDefaults()
- os.Exit(1)
- }
-
- brokerList := strings.Split(*brokers, ",")
- log.Printf("Kafka brokers: %s", strings.Join(brokerList, ", "))
-
- server := &Server{
- DataCollector: newDataCollector(brokerList),
- AccessLogProducer: newAccessLogProducer(brokerList),
- }
- defer func() {
- if err := server.Close(); err != nil {
- log.Println("Failed to close server", err)
- }
- }()
-
- log.Fatal(server.Run(*addr))
-}
-
-func createTlsConfiguration() (t *tls.Config) {
- if *certFile != "" && *keyFile != "" && *caFile != "" {
- cert, err := tls.LoadX509KeyPair(*certFile, *keyFile)
- if err != nil {
- log.Fatal(err)
- }
-
- caCert, err := ioutil.ReadFile(*caFile)
- if err != nil {
- log.Fatal(err)
- }
-
- caCertPool := x509.NewCertPool()
- caCertPool.AppendCertsFromPEM(caCert)
-
- t = &tls.Config{
- Certificates: []tls.Certificate{cert},
- RootCAs: caCertPool,
- InsecureSkipVerify: *verifySsl,
- }
- }
- // will be nil by default if nothing is provided
- return t
-}
-
-type Server struct {
- DataCollector sarama.SyncProducer
- AccessLogProducer sarama.AsyncProducer
-}
-
-func (s *Server) Close() error {
- if err := s.DataCollector.Close(); err != nil {
- log.Println("Failed to shut down data collector cleanly", err)
- }
-
- if err := s.AccessLogProducer.Close(); err != nil {
- log.Println("Failed to shut down access log producer cleanly", err)
- }
-
- return nil
-}
-
-func (s *Server) Handler() http.Handler {
- return s.withAccessLog(s.collectQueryStringData())
-}
-
-func (s *Server) Run(addr string) error {
- httpServer := &http.Server{
- Addr: addr,
- Handler: s.Handler(),
- }
-
- log.Printf("Listening for requests on %s...\n", addr)
- return httpServer.ListenAndServe()
-}
-
-func (s *Server) collectQueryStringData() http.Handler {
- return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- if r.URL.Path != "/" {
- http.NotFound(w, r)
- return
- }
-
- // We are not setting a message key, which means that all messages will
- // be distributed randomly over the different partitions.
- partition, offset, err := s.DataCollector.SendMessage(&sarama.ProducerMessage{
- Topic: "important",
- Value: sarama.StringEncoder(r.URL.RawQuery),
- })
-
- if err != nil {
- w.WriteHeader(http.StatusInternalServerError)
- fmt.Fprintf(w, "Failed to store your data:, %s", err)
- } else {
- // The tuple (topic, partition, offset) can be used as a unique identifier
- // for a message in a Kafka cluster.
- fmt.Fprintf(w, "Your data is stored with unique identifier important/%d/%d", partition, offset)
- }
- })
-}
-
-type accessLogEntry struct {
- Method string `json:"method"`
- Host string `json:"host"`
- Path string `json:"path"`
- IP string `json:"ip"`
- ResponseTime float64 `json:"response_time"`
-
- encoded []byte
- err error
-}
-
-func (ale *accessLogEntry) ensureEncoded() {
- if ale.encoded == nil && ale.err == nil {
- ale.encoded, ale.err = json.Marshal(ale)
- }
-}
-
-func (ale *accessLogEntry) Length() int {
- ale.ensureEncoded()
- return len(ale.encoded)
-}
-
-func (ale *accessLogEntry) Encode() ([]byte, error) {
- ale.ensureEncoded()
- return ale.encoded, ale.err
-}
-
-func (s *Server) withAccessLog(next http.Handler) http.Handler {
-
- return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- started := time.Now()
-
- next.ServeHTTP(w, r)
-
- entry := &accessLogEntry{
- Method: r.Method,
- Host: r.Host,
- Path: r.RequestURI,
- IP: r.RemoteAddr,
- ResponseTime: float64(time.Since(started)) / float64(time.Second),
- }
-
- // We will use the client's IP address as key. This will cause
- // all the access log entries of the same IP address to end up
- // on the same partition.
- s.AccessLogProducer.Input() <- &sarama.ProducerMessage{
- Topic: "access_log",
- Key: sarama.StringEncoder(r.RemoteAddr),
- Value: entry,
- }
- })
-}
-
-func newDataCollector(brokerList []string) sarama.SyncProducer {
-
- // For the data collector, we are looking for strong consistency semantics.
- // Because we don't change the flush settings, sarama will try to produce messages
- // as fast as possible to keep latency low.
- config := sarama.NewConfig()
- config.Producer.RequiredAcks = sarama.WaitForAll // Wait for all in-sync replicas to ack the message
- config.Producer.Retry.Max = 10 // Retry up to 10 times to produce the message
- tlsConfig := createTlsConfiguration()
- if tlsConfig != nil {
- config.Net.TLS.Config = tlsConfig
- config.Net.TLS.Enable = true
- }
-
- // On the broker side, you may want to change the following settings to get
- // stronger consistency guarantees:
- // - For your broker, set `unclean.leader.election.enable` to false
- // - For the topic, you could increase `min.insync.replicas`.
-
- producer, err := sarama.NewSyncProducer(brokerList, config)
- if err != nil {
- log.Fatalln("Failed to start Sarama producer:", err)
- }
-
- return producer
-}
-
-func newAccessLogProducer(brokerList []string) sarama.AsyncProducer {
-
- // For the access log, we are looking for AP semantics, with high throughput.
- // By creating batches of compressed messages, we reduce network I/O at a cost of more latency.
- config := sarama.NewConfig()
- tlsConfig := createTlsConfiguration()
- if tlsConfig != nil {
- config.Net.TLS.Enable = true
- config.Net.TLS.Config = tlsConfig
- }
- config.Producer.RequiredAcks = sarama.WaitForLocal // Only wait for the leader to ack
- config.Producer.Compression = sarama.CompressionSnappy // Compress messages
- config.Producer.Flush.Frequency = 500 * time.Millisecond // Flush batches every 500ms
-
- producer, err := sarama.NewAsyncProducer(brokerList, config)
- if err != nil {
- log.Fatalln("Failed to start Sarama producer:", err)
- }
-
- // We will just log to STDOUT if we're not able to produce messages.
- // Note: messages will only be returned here after all retry attempts are exhausted.
- go func() {
- for err := range producer.Errors() {
- log.Println("Failed to write access log entry:", err)
- }
- }()
-
- return producer
-}
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/README.md b/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/README.md
deleted file mode 100644
index 55a6c2e6..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# sarama/mocks
-
-The `mocks` subpackage includes mock implementations that implement the interfaces of the major sarama types.
-You can use them to test your sarama applications using dependency injection.
-
-The following mock objects are available:
-
-- [Consumer](https://godoc.org/github.com/Shopify/sarama/mocks#Consumer), which will create [PartitionConsumer](https://godoc.org/github.com/Shopify/sarama/mocks#PartitionConsumer) mocks.
-- [AsyncProducer](https://godoc.org/github.com/Shopify/sarama/mocks#AsyncProducer)
-- [SyncProducer](https://godoc.org/github.com/Shopify/sarama/mocks#SyncProducer)
-
-The mocks allow you to set expectations on them. When you close the mocks, the expectations will be verified,
-and the results will be reported to the `*testing.T` object you provided when creating the mock.
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/async_producer.go b/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/async_producer.go
deleted file mode 100644
index 6ccf1f14..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/async_producer.go
+++ /dev/null
@@ -1,142 +0,0 @@
-package mocks
-
-import (
- "sync"
-
- "github.com/Shopify/sarama"
-)
-
-// AsyncProducer implements sarama's Producer interface for testing purposes.
-// Before you can send messages to it's Input channel, you have to set expectations
-// so it knows how to handle the input. This way you can easily test success and
-// failure scenarios.
-type AsyncProducer struct {
- l sync.Mutex
- t ErrorReporter
- expectations []*producerExpectation
- closed chan struct{}
- input chan *sarama.ProducerMessage
- successes chan *sarama.ProducerMessage
- errors chan *sarama.ProducerError
- lastOffset int64
-}
-
-// NewAsyncProducer instantiates a new Producer mock. The t argument should
-// be the *testing.T instance of your test method. An error will be written to it if
-// an expectation is violated. The config argument is used to determine whether it
-// should ack successes on the Successes channel.
-func NewAsyncProducer(t ErrorReporter, config *sarama.Config) *AsyncProducer {
- if config == nil {
- config = sarama.NewConfig()
- }
- mp := &AsyncProducer{
- t: t,
- closed: make(chan struct{}, 0),
- expectations: make([]*producerExpectation, 0),
- input: make(chan *sarama.ProducerMessage, config.ChannelBufferSize),
- successes: make(chan *sarama.ProducerMessage, config.ChannelBufferSize),
- errors: make(chan *sarama.ProducerError, config.ChannelBufferSize),
- }
-
- go func() {
- defer func() {
- close(mp.successes)
- close(mp.errors)
- }()
-
- for msg := range mp.input {
- mp.l.Lock()
- if mp.expectations == nil || len(mp.expectations) == 0 {
- mp.expectations = nil
- mp.t.Errorf("No more expectation set on this mock producer to handle the input message.")
- } else {
- expectation := mp.expectations[0]
- mp.expectations = mp.expectations[1:]
- if expectation.Result == errProduceSuccess {
- mp.lastOffset++
- if config.Producer.Return.Successes {
- msg.Offset = mp.lastOffset
- mp.successes <- msg
- }
- } else {
- if config.Producer.Return.Errors {
- mp.errors <- &sarama.ProducerError{Err: expectation.Result, Msg: msg}
- }
- }
- }
- mp.l.Unlock()
- }
-
- mp.l.Lock()
- if len(mp.expectations) > 0 {
- mp.t.Errorf("Expected to exhaust all expectations, but %d are left.", len(mp.expectations))
- }
- mp.l.Unlock()
-
- close(mp.closed)
- }()
-
- return mp
-}
-
-////////////////////////////////////////////////
-// Implement Producer interface
-////////////////////////////////////////////////
-
-// AsyncClose corresponds with the AsyncClose method of sarama's Producer implementation.
-// By closing a mock producer, you also tell it that no more input will be provided, so it will
-// write an error to the test state if there's any remaining expectations.
-func (mp *AsyncProducer) AsyncClose() {
- close(mp.input)
-}
-
-// Close corresponds with the Close method of sarama's Producer implementation.
-// By closing a mock producer, you also tell it that no more input will be provided, so it will
-// write an error to the test state if there's any remaining expectations.
-func (mp *AsyncProducer) Close() error {
- mp.AsyncClose()
- <-mp.closed
- return nil
-}
-
-// Input corresponds with the Input method of sarama's Producer implementation.
-// You have to set expectations on the mock producer before writing messages to the Input
-// channel, so it knows how to handle them. If there is no more remaining expectations and
-// a messages is written to the Input channel, the mock producer will write an error to the test
-// state object.
-func (mp *AsyncProducer) Input() chan<- *sarama.ProducerMessage {
- return mp.input
-}
-
-// Successes corresponds with the Successes method of sarama's Producer implementation.
-func (mp *AsyncProducer) Successes() <-chan *sarama.ProducerMessage {
- return mp.successes
-}
-
-// Errors corresponds with the Errors method of sarama's Producer implementation.
-func (mp *AsyncProducer) Errors() <-chan *sarama.ProducerError {
- return mp.errors
-}
-
-////////////////////////////////////////////////
-// Setting expectations
-////////////////////////////////////////////////
-
-// ExpectInputAndSucceed sets an expectation on the mock producer that a message will be provided
-// on the input channel. The mock producer will handle the message as if it is produced successfully,
-// i.e. it will make it available on the Successes channel if the Producer.Return.Successes setting
-// is set to true.
-func (mp *AsyncProducer) ExpectInputAndSucceed() {
- mp.l.Lock()
- defer mp.l.Unlock()
- mp.expectations = append(mp.expectations, &producerExpectation{Result: errProduceSuccess})
-}
-
-// ExpectInputAndFail sets an expectation on the mock producer that a message will be provided
-// on the input channel. The mock producer will handle the message as if it failed to produce
-// successfully. This means it will make a ProducerError available on the Errors channel.
-func (mp *AsyncProducer) ExpectInputAndFail(err error) {
- mp.l.Lock()
- defer mp.l.Unlock()
- mp.expectations = append(mp.expectations, &producerExpectation{Result: err})
-}
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/consumer.go b/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/consumer.go
deleted file mode 100644
index a2c394e3..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/consumer.go
+++ /dev/null
@@ -1,299 +0,0 @@
-package mocks
-
-import (
- "sync"
- "sync/atomic"
-
- "github.com/Shopify/sarama"
-)
-
-// Consumer implements sarama's Consumer interface for testing purposes.
-// Before you can start consuming from this consumer, you have to register
-// topic/partitions using ExpectConsumePartition, and set expectations on them.
-type Consumer struct {
- l sync.Mutex
- t ErrorReporter
- config *sarama.Config
- partitionConsumers map[string]map[int32]*PartitionConsumer
- metadata map[string][]int32
-}
-
-// NewConsumer returns a new mock Consumer instance. The t argument should
-// be the *testing.T instance of your test method. An error will be written to it if
-// an expectation is violated. The config argument is currently unused and can be set to nil.
-func NewConsumer(t ErrorReporter, config *sarama.Config) *Consumer {
- if config == nil {
- config = sarama.NewConfig()
- }
-
- c := &Consumer{
- t: t,
- config: config,
- partitionConsumers: make(map[string]map[int32]*PartitionConsumer),
- }
- return c
-}
-
-///////////////////////////////////////////////////
-// Consumer interface implementation
-///////////////////////////////////////////////////
-
-// ConsumePartition implements the ConsumePartition method from the sarama.Consumer interface.
-// Before you can start consuming a partition, you have to set expectations on it using
-// ExpectConsumePartition. You can only consume a partition once per consumer.
-func (c *Consumer) ConsumePartition(topic string, partition int32, offset int64) (sarama.PartitionConsumer, error) {
- c.l.Lock()
- defer c.l.Unlock()
-
- if c.partitionConsumers[topic] == nil || c.partitionConsumers[topic][partition] == nil {
- c.t.Errorf("No expectations set for %s/%d", topic, partition)
- return nil, errOutOfExpectations
- }
-
- pc := c.partitionConsumers[topic][partition]
- if pc.consumed {
- return nil, sarama.ConfigurationError("The topic/partition is already being consumed")
- }
-
- if pc.offset != AnyOffset && pc.offset != offset {
- c.t.Errorf("Unexpected offset when calling ConsumePartition for %s/%d. Expected %d, got %d.", topic, partition, pc.offset, offset)
- }
-
- pc.consumed = true
- return pc, nil
-}
-
-// Topics returns a list of topics, as registered with SetMetadata
-func (c *Consumer) Topics() ([]string, error) {
- c.l.Lock()
- defer c.l.Unlock()
-
- if c.metadata == nil {
- c.t.Errorf("Unexpected call to Topics. Initialize the mock's topic metadata with SetMetadata.")
- return nil, sarama.ErrOutOfBrokers
- }
-
- var result []string
- for topic := range c.metadata {
- result = append(result, topic)
- }
- return result, nil
-}
-
-// Partitions returns the list of parititons for the given topic, as registered with SetMetadata
-func (c *Consumer) Partitions(topic string) ([]int32, error) {
- c.l.Lock()
- defer c.l.Unlock()
-
- if c.metadata == nil {
- c.t.Errorf("Unexpected call to Partitions. Initialize the mock's topic metadata with SetMetadata.")
- return nil, sarama.ErrOutOfBrokers
- }
- if c.metadata[topic] == nil {
- return nil, sarama.ErrUnknownTopicOrPartition
- }
-
- return c.metadata[topic], nil
-}
-
-// Close implements the Close method from the sarama.Consumer interface. It will close
-// all registered PartitionConsumer instances.
-func (c *Consumer) Close() error {
- c.l.Lock()
- defer c.l.Unlock()
-
- for _, partitions := range c.partitionConsumers {
- for _, partitionConsumer := range partitions {
- _ = partitionConsumer.Close()
- }
- }
-
- return nil
-}
-
-///////////////////////////////////////////////////
-// Expectation API
-///////////////////////////////////////////////////
-
-// SetTopicMetadata sets the clusters topic/partition metadata,
-// which will be returned by Topics() and Partitions().
-func (c *Consumer) SetTopicMetadata(metadata map[string][]int32) {
- c.l.Lock()
- defer c.l.Unlock()
-
- c.metadata = metadata
-}
-
-// ExpectConsumePartition will register a topic/partition, so you can set expectations on it.
-// The registered PartitionConsumer will be returned, so you can set expectations
-// on it using method chanining. Once a topic/partition is registered, you are
-// expected to start consuming it using ConsumePartition. If that doesn't happen,
-// an error will be written to the error reporter once the mock consumer is closed. It will
-// also expect that the
-func (c *Consumer) ExpectConsumePartition(topic string, partition int32, offset int64) *PartitionConsumer {
- c.l.Lock()
- defer c.l.Unlock()
-
- if c.partitionConsumers[topic] == nil {
- c.partitionConsumers[topic] = make(map[int32]*PartitionConsumer)
- }
-
- if c.partitionConsumers[topic][partition] == nil {
- c.partitionConsumers[topic][partition] = &PartitionConsumer{
- t: c.t,
- topic: topic,
- partition: partition,
- offset: offset,
- messages: make(chan *sarama.ConsumerMessage, c.config.ChannelBufferSize),
- errors: make(chan *sarama.ConsumerError, c.config.ChannelBufferSize),
- }
- }
-
- return c.partitionConsumers[topic][partition]
-}
-
-///////////////////////////////////////////////////
-// PartitionConsumer mock type
-///////////////////////////////////////////////////
-
-// PartitionConsumer implements sarama's PartitionConsumer interface for testing purposes.
-// It is returned by the mock Consumers ConsumePartitionMethod, but only if it is
-// registered first using the Consumer's ExpectConsumePartition method. Before consuming the
-// Errors and Messages channel, you should specify what values will be provided on these
-// channels using YieldMessage and YieldError.
-type PartitionConsumer struct {
- l sync.Mutex
- t ErrorReporter
- topic string
- partition int32
- offset int64
- messages chan *sarama.ConsumerMessage
- errors chan *sarama.ConsumerError
- singleClose sync.Once
- consumed bool
- errorsShouldBeDrained bool
- messagesShouldBeDrained bool
- highWaterMarkOffset int64
-}
-
-///////////////////////////////////////////////////
-// PartitionConsumer interface implementation
-///////////////////////////////////////////////////
-
-// AsyncClose implements the AsyncClose method from the sarama.PartitionConsumer interface.
-func (pc *PartitionConsumer) AsyncClose() {
- pc.singleClose.Do(func() {
- close(pc.messages)
- close(pc.errors)
- })
-}
-
-// Close implements the Close method from the sarama.PartitionConsumer interface. It will
-// verify whether the partition consumer was actually started.
-func (pc *PartitionConsumer) Close() error {
- if !pc.consumed {
- pc.t.Errorf("Expectations set on %s/%d, but no partition consumer was started.", pc.topic, pc.partition)
- return errPartitionConsumerNotStarted
- }
-
- if pc.errorsShouldBeDrained && len(pc.errors) > 0 {
- pc.t.Errorf("Expected the errors channel for %s/%d to be drained on close, but found %d errors.", pc.topic, pc.partition, len(pc.errors))
- }
-
- if pc.messagesShouldBeDrained && len(pc.messages) > 0 {
- pc.t.Errorf("Expected the messages channel for %s/%d to be drained on close, but found %d messages.", pc.topic, pc.partition, len(pc.messages))
- }
-
- pc.AsyncClose()
-
- var (
- closeErr error
- wg sync.WaitGroup
- )
-
- wg.Add(1)
- go func() {
- defer wg.Done()
-
- var errs = make(sarama.ConsumerErrors, 0)
- for err := range pc.errors {
- errs = append(errs, err)
- }
-
- if len(errs) > 0 {
- closeErr = errs
- }
- }()
-
- wg.Add(1)
- go func() {
- defer wg.Done()
- for _ = range pc.messages {
- // drain
- }
- }()
-
- wg.Wait()
- return closeErr
-}
-
-// Errors implements the Errors method from the sarama.PartitionConsumer interface.
-func (pc *PartitionConsumer) Errors() <-chan *sarama.ConsumerError {
- return pc.errors
-}
-
-// Messages implements the Messages method from the sarama.PartitionConsumer interface.
-func (pc *PartitionConsumer) Messages() <-chan *sarama.ConsumerMessage {
- return pc.messages
-}
-
-func (pc *PartitionConsumer) HighWaterMarkOffset() int64 {
- return atomic.LoadInt64(&pc.highWaterMarkOffset) + 1
-}
-
-///////////////////////////////////////////////////
-// Expectation API
-///////////////////////////////////////////////////
-
-// YieldMessage will yield a messages Messages channel of this partition consumer
-// when it is consumed. By default, the mock consumer will not verify whether this
-// message was consumed from the Messages channel, because there are legitimate
-// reasons forthis not to happen. ou can call ExpectMessagesDrainedOnClose so it will
-// verify that the channel is empty on close.
-func (pc *PartitionConsumer) YieldMessage(msg *sarama.ConsumerMessage) {
- pc.l.Lock()
- defer pc.l.Unlock()
-
- msg.Topic = pc.topic
- msg.Partition = pc.partition
- msg.Offset = atomic.AddInt64(&pc.highWaterMarkOffset, 1)
-
- pc.messages <- msg
-}
-
-// YieldError will yield an error on the Errors channel of this partition consumer
-// when it is consumed. By default, the mock consumer will not verify whether this error was
-// consumed from the Errors channel, because there are legitimate reasons for this
-// not to happen. You can call ExpectErrorsDrainedOnClose so it will verify that
-// the channel is empty on close.
-func (pc *PartitionConsumer) YieldError(err error) {
- pc.errors <- &sarama.ConsumerError{
- Topic: pc.topic,
- Partition: pc.partition,
- Err: err,
- }
-}
-
-// ExpectMessagesDrainedOnClose sets an expectation on the partition consumer
-// that the messages channel will be fully drained when Close is called. If this
-// expectation is not met, an error is reported to the error reporter.
-func (pc *PartitionConsumer) ExpectMessagesDrainedOnClose() {
- pc.messagesShouldBeDrained = true
-}
-
-// ExpectErrorsDrainedOnClose sets an expectation on the partition consumer
-// that the errors channel will be fully drained when Close is called. If this
-// expectation is not met, an error is reported to the error reporter.
-func (pc *PartitionConsumer) ExpectErrorsDrainedOnClose() {
- pc.errorsShouldBeDrained = true
-}
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/mocks.go b/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/mocks.go
deleted file mode 100644
index 96b79bc0..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/mocks.go
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-Package mocks provides mocks that can be used for testing applications
-that use Sarama. The mock types provided by this package implement the
-interfaces Sarama exports, so you can use them for dependency injection
-in your tests.
-
-All mock instances require you to set expectations on them before you
-can use them. It will determine how the mock will behave. If an
-expectation is not met, it will make your test fail.
-
-NOTE: this package currently does not fall under the API stability
-guarantee of Sarama as it is still considered experimental.
-*/
-package mocks
-
-import (
- "errors"
-
- "github.com/Shopify/sarama"
-)
-
-// ErrorReporter is a simple interface that includes the testing.T methods we use to report
-// expectation violations when using the mock objects.
-type ErrorReporter interface {
- Errorf(string, ...interface{})
-}
-
-var (
- errProduceSuccess error = nil
- errOutOfExpectations = errors.New("No more expectations set on mock")
- errPartitionConsumerNotStarted = errors.New("The partition consumer was never started")
-)
-
-const AnyOffset int64 = -1000
-
-type producerExpectation struct {
- Result error
-}
-
-type consumerExpectation struct {
- Err error
- Msg *sarama.ConsumerMessage
-}
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/sync_producer.go b/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/sync_producer.go
deleted file mode 100644
index fa86b245..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/mocks/sync_producer.go
+++ /dev/null
@@ -1,94 +0,0 @@
-package mocks
-
-import (
- "sync"
-
- "github.com/Shopify/sarama"
-)
-
-// SyncProducer implements sarama's SyncProducer interface for testing purposes.
-// Before you can use it, you have to set expectations on the mock SyncProducer
-// to tell it how to handle calls to SendMessage, so you can easily test success
-// and failure scenarios.
-type SyncProducer struct {
- l sync.Mutex
- t ErrorReporter
- expectations []*producerExpectation
- lastOffset int64
-}
-
-// NewSyncProducer instantiates a new SyncProducer mock. The t argument should
-// be the *testing.T instance of your test method. An error will be written to it if
-// an expectation is violated. The config argument is currently unused, but is
-// maintained to be compatible with the async Producer.
-func NewSyncProducer(t ErrorReporter, config *sarama.Config) *SyncProducer {
- return &SyncProducer{
- t: t,
- expectations: make([]*producerExpectation, 0),
- }
-}
-
-////////////////////////////////////////////////
-// Implement SyncProducer interface
-////////////////////////////////////////////////
-
-// SendMessage corresponds with the SendMessage method of sarama's SyncProducer implementation.
-// You have to set expectations on the mock producer before calling SendMessage, so it knows
-// how to handle them. If there is no more remaining expectations when SendMessage is called,
-// the mock producer will write an error to the test state object.
-func (sp *SyncProducer) SendMessage(msg *sarama.ProducerMessage) (partition int32, offset int64, err error) {
- sp.l.Lock()
- defer sp.l.Unlock()
-
- if len(sp.expectations) > 0 {
- expectation := sp.expectations[0]
- sp.expectations = sp.expectations[1:]
-
- if expectation.Result == errProduceSuccess {
- sp.lastOffset++
- msg.Offset = sp.lastOffset
- return 0, msg.Offset, nil
- } else {
- return -1, -1, expectation.Result
- }
- } else {
- sp.t.Errorf("No more expectation set on this mock producer to handle the input message.")
- return -1, -1, errOutOfExpectations
- }
-}
-
-// Close corresponds with the Close method of sarama's SyncProducer implementation.
-// By closing a mock syncproducer, you also tell it that no more SendMessage calls will follow,
-// so it will write an error to the test state if there's any remaining expectations.
-func (sp *SyncProducer) Close() error {
- sp.l.Lock()
- defer sp.l.Unlock()
-
- if len(sp.expectations) > 0 {
- sp.t.Errorf("Expected to exhaust all expectations, but %d are left.", len(sp.expectations))
- }
-
- return nil
-}
-
-////////////////////////////////////////////////
-// Setting expectations
-////////////////////////////////////////////////
-
-// ExpectSendMessageAndSucceed sets an expectation on the mock producer that SendMessage will be
-// called. The mock producer will handle the message as if it produced successfully, i.e. by
-// returning a valid partition, and offset, and a nil error.
-func (sp *SyncProducer) ExpectSendMessageAndSucceed() {
- sp.l.Lock()
- defer sp.l.Unlock()
- sp.expectations = append(sp.expectations, &producerExpectation{Result: errProduceSuccess})
-}
-
-// ExpectSendMessageAndFail sets an expectation on the mock producer that SendMessage will be
-// called. The mock producer will handle the message as if it failed to produce
-// successfully, i.e. by returning the provided error.
-func (sp *SyncProducer) ExpectSendMessageAndFail(err error) {
- sp.l.Lock()
- defer sp.l.Unlock()
- sp.expectations = append(sp.expectations, &producerExpectation{Result: err})
-}
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/README.md b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/README.md
deleted file mode 100644
index 3464c4ad..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Sarama tools
-
-This folder contains applications that are useful for exploration of your Kafka cluster, or instrumentation.
-Some of these tools mirror tools that ship with Kafka, but these tools won't require installing the JVM to function.
-
-- [kafka-console-producer](./kafka-console-producer): a command line tool to produce a single message to your Kafka custer.
-- [kafka-console-partitionconsumer](./kafka-console-partitionconsumer): (deprecated) a command line tool to consume a single partition of a topic on your Kafka cluster.
-- [kafka-console-consumer](./kafka-console-consumer): a command line tool to consume arbitrary partitions of a topic on your Kafka cluster.
-
-To install all tools, run `go get github.com/Shopify/sarama/tools/...`
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-consumer/.gitignore b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-consumer/.gitignore
deleted file mode 100644
index 67da9dfa..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-consumer/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-kafka-console-consumer
-kafka-console-consumer.test
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-consumer/README.md b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-consumer/README.md
deleted file mode 100644
index 4e77f0b7..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-consumer/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# kafka-console-consumer
-
-A simple command line tool to consume partitions of a topic and print the
-messages on the standard output.
-
-### Installation
-
- go get github.com/Shopify/sarama/tools/kafka-console-consumer
-
-### Usage
-
- # Minimum invocation
- kafka-console-consumer -topic=test -brokers=kafka1:9092
-
- # It will pick up a KAFKA_PEERS environment variable
- export KAFKA_PEERS=kafka1:9092,kafka2:9092,kafka3:9092
- kafka-console-consumer -topic=test
-
- # You can specify the offset you want to start at. It can be either
- # `oldest`, `newest`. The default is `newest`.
- kafka-console-consumer -topic=test -offset=oldest
- kafka-console-consumer -topic=test -offset=newest
-
- # You can specify the partition(s) you want to consume as a comma-separated
- # list. The default is `all`.
- kafka-console-consumer -topic=test -partitions=1,2,3
-
- # Display all command line options
- kafka-console-consumer -help
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-consumer/kafka-console-consumer.go b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-consumer/kafka-console-consumer.go
deleted file mode 100644
index 0f1eb89a..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-consumer/kafka-console-consumer.go
+++ /dev/null
@@ -1,145 +0,0 @@
-package main
-
-import (
- "flag"
- "fmt"
- "log"
- "os"
- "os/signal"
- "strconv"
- "strings"
- "sync"
-
- "github.com/Shopify/sarama"
-)
-
-var (
- brokerList = flag.String("brokers", os.Getenv("KAFKA_PEERS"), "The comma separated list of brokers in the Kafka cluster")
- topic = flag.String("topic", "", "REQUIRED: the topic to consume")
- partitions = flag.String("partitions", "all", "The partitions to consume, can be 'all' or comma-separated numbers")
- offset = flag.String("offset", "newest", "The offset to start with. Can be `oldest`, `newest`")
- verbose = flag.Bool("verbose", false, "Whether to turn on sarama logging")
- bufferSize = flag.Int("buffer-size", 256, "The buffer size of the message channel.")
-
- logger = log.New(os.Stderr, "", log.LstdFlags)
-)
-
-func main() {
- flag.Parse()
-
- if *brokerList == "" {
- printUsageErrorAndExit("You have to provide -brokers as a comma-separated list, or set the KAFKA_PEERS environment variable.")
- }
-
- if *topic == "" {
- printUsageErrorAndExit("-topic is required")
- }
-
- if *verbose {
- sarama.Logger = logger
- }
-
- var initialOffset int64
- switch *offset {
- case "oldest":
- initialOffset = sarama.OffsetOldest
- case "newest":
- initialOffset = sarama.OffsetNewest
- default:
- printUsageErrorAndExit("-offset should be `oldest` or `newest`")
- }
-
- c, err := sarama.NewConsumer(strings.Split(*brokerList, ","), nil)
- if err != nil {
- printErrorAndExit(69, "Failed to start consumer: %s", err)
- }
-
- partitionList, err := getPartitions(c)
- if err != nil {
- printErrorAndExit(69, "Failed to get the list of partitions: %s", err)
- }
-
- var (
- messages = make(chan *sarama.ConsumerMessage, *bufferSize)
- closing = make(chan struct{})
- wg sync.WaitGroup
- )
-
- go func() {
- signals := make(chan os.Signal, 1)
- signal.Notify(signals, os.Kill, os.Interrupt)
- <-signals
- logger.Println("Initiating shutdown of consumer...")
- close(closing)
- }()
-
- for _, partition := range partitionList {
- pc, err := c.ConsumePartition(*topic, partition, initialOffset)
- if err != nil {
- printErrorAndExit(69, "Failed to start consumer for partition %d: %s", partition, err)
- }
-
- go func(pc sarama.PartitionConsumer) {
- <-closing
- pc.AsyncClose()
- }(pc)
-
- wg.Add(1)
- go func(pc sarama.PartitionConsumer) {
- defer wg.Done()
- for message := range pc.Messages() {
- messages <- message
- }
- }(pc)
- }
-
- go func() {
- for msg := range messages {
- fmt.Printf("Partition:\t%d\n", msg.Partition)
- fmt.Printf("Offset:\t%d\n", msg.Offset)
- fmt.Printf("Key:\t%s\n", string(msg.Key))
- fmt.Printf("Value:\t%s\n", string(msg.Value))
- fmt.Println()
- }
- }()
-
- wg.Wait()
- logger.Println("Done consuming topic", *topic)
- close(messages)
-
- if err := c.Close(); err != nil {
- logger.Println("Failed to close consumer: ", err)
- }
-}
-
-func getPartitions(c sarama.Consumer) ([]int32, error) {
- if *partitions == "all" {
- return c.Partitions(*topic)
- }
-
- tmp := strings.Split(*partitions, ",")
- var pList []int32
- for i := range tmp {
- val, err := strconv.ParseInt(tmp[i], 10, 32)
- if err != nil {
- return nil, err
- }
- pList = append(pList, int32(val))
- }
-
- return pList, nil
-}
-
-func printErrorAndExit(code int, format string, values ...interface{}) {
- fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...))
- fmt.Fprintln(os.Stderr)
- os.Exit(code)
-}
-
-func printUsageErrorAndExit(format string, values ...interface{}) {
- fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...))
- fmt.Fprintln(os.Stderr)
- fmt.Fprintln(os.Stderr, "Available command line options:")
- flag.PrintDefaults()
- os.Exit(64)
-}
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/.gitignore b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/.gitignore
deleted file mode 100644
index 5837fe8c..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-kafka-console-partitionconsumer
-kafka-console-partitionconsumer.test
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/README.md b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/README.md
deleted file mode 100644
index 646dd5f5..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# kafka-console-partitionconsumer
-
-NOTE: this tool is deprecated in favour of the more general and more powerful
-`kafka-console-consumer`.
-
-A simple command line tool to consume a partition of a topic and print the messages
-on the standard output.
-
-### Installation
-
- go get github.com/Shopify/sarama/tools/kafka-console-partitionconsumer
-
-### Usage
-
- # Minimum invocation
- kafka-console-partitionconsumer -topic=test -partition=4 -brokers=kafka1:9092
-
- # It will pick up a KAFKA_PEERS environment variable
- export KAFKA_PEERS=kafka1:9092,kafka2:9092,kafka3:9092
- kafka-console-partitionconsumer -topic=test -partition=4
-
- # You can specify the offset you want to start at. It can be either
- # `oldest`, `newest`, or a specific offset number
- kafka-console-partitionconsumer -topic=test -partition=3 -offset=oldest
- kafka-console-partitionconsumer -topic=test -partition=2 -offset=1337
-
- # Display all command line options
- kafka-console-partitionconsumer -help
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/kafka-console-partitionconsumer.go b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/kafka-console-partitionconsumer.go
deleted file mode 100644
index d5e4464d..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/kafka-console-partitionconsumer.go
+++ /dev/null
@@ -1,102 +0,0 @@
-package main
-
-import (
- "flag"
- "fmt"
- "log"
- "os"
- "os/signal"
- "strconv"
- "strings"
-
- "github.com/Shopify/sarama"
-)
-
-var (
- brokerList = flag.String("brokers", os.Getenv("KAFKA_PEERS"), "The comma separated list of brokers in the Kafka cluster")
- topic = flag.String("topic", "", "REQUIRED: the topic to consume")
- partition = flag.Int("partition", -1, "REQUIRED: the partition to consume")
- offset = flag.String("offset", "newest", "The offset to start with. Can be `oldest`, `newest`, or an actual offset")
- verbose = flag.Bool("verbose", false, "Whether to turn on sarama logging")
-
- logger = log.New(os.Stderr, "", log.LstdFlags)
-)
-
-func main() {
- flag.Parse()
-
- if *brokerList == "" {
- printUsageErrorAndExit("You have to provide -brokers as a comma-separated list, or set the KAFKA_PEERS environment variable.")
- }
-
- if *topic == "" {
- printUsageErrorAndExit("-topic is required")
- }
-
- if *partition == -1 {
- printUsageErrorAndExit("-partition is required")
- }
-
- if *verbose {
- sarama.Logger = logger
- }
-
- var (
- initialOffset int64
- offsetError error
- )
- switch *offset {
- case "oldest":
- initialOffset = sarama.OffsetOldest
- case "newest":
- initialOffset = sarama.OffsetNewest
- default:
- initialOffset, offsetError = strconv.ParseInt(*offset, 10, 64)
- }
-
- if offsetError != nil {
- printUsageErrorAndExit("Invalid initial offset: %s", *offset)
- }
-
- c, err := sarama.NewConsumer(strings.Split(*brokerList, ","), nil)
- if err != nil {
- printErrorAndExit(69, "Failed to start consumer: %s", err)
- }
-
- pc, err := c.ConsumePartition(*topic, int32(*partition), initialOffset)
- if err != nil {
- printErrorAndExit(69, "Failed to start partition consumer: %s", err)
- }
-
- go func() {
- signals := make(chan os.Signal, 1)
- signal.Notify(signals, os.Kill, os.Interrupt)
- <-signals
- pc.AsyncClose()
- }()
-
- for msg := range pc.Messages() {
- fmt.Printf("Offset:\t%d\n", msg.Offset)
- fmt.Printf("Key:\t%s\n", string(msg.Key))
- fmt.Printf("Value:\t%s\n", string(msg.Value))
- fmt.Println()
- }
-
- if err := c.Close(); err != nil {
- logger.Println("Failed to close consumer: ", err)
- }
-}
-
-func printErrorAndExit(code int, format string, values ...interface{}) {
- fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...))
- fmt.Fprintln(os.Stderr)
- os.Exit(code)
-}
-
-func printUsageErrorAndExit(format string, values ...interface{}) {
- fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...))
- fmt.Fprintln(os.Stderr)
- fmt.Fprintln(os.Stderr, "Available command line options:")
- flag.PrintDefaults()
- os.Exit(64)
-}
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-producer/.gitignore b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-producer/.gitignore
deleted file mode 100644
index 2b9e563a..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-producer/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-kafka-console-producer
-kafka-console-producer.test
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-producer/README.md b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-producer/README.md
deleted file mode 100644
index 6b3a65f2..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-producer/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# kafka-console-producer
-
-A simple command line tool to produce a single message to Kafka.
-
-### Installation
-
- go get github.com/Shopify/sarama/tools/kafka-console-producer
-
-
-### Usage
-
- # Minimum invocation
- kafka-console-producer -topic=test -value=value -brokers=kafka1:9092
-
- # It will pick up a KAFKA_PEERS environment variable
- export KAFKA_PEERS=kafka1:9092,kafka2:9092,kafka3:9092
- kafka-console-producer -topic=test -value=value
-
- # It will read the value from stdin by using pipes
- echo "hello world" | kafka-console-producer -topic=test
-
- # Specify a key:
- echo "hello world" | kafka-console-producer -topic=test -key=key
-
- # Partitioning: by default, kafka-console-producer will partition as follows:
- # - manual partitioning if a -partition is provided
- # - hash partitioning by key if a -key is provided
- # - random partioning otherwise.
- #
- # You can override this using the -partitioner argument:
- echo "hello world" | kafka-console-producer -topic=test -key=key -partitioner=random
-
- # Display all command line options
- kafka-console-producer -help
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-producer/kafka-console-producer.go b/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-producer/kafka-console-producer.go
deleted file mode 100644
index 6a1765d7..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/tools/kafka-console-producer/kafka-console-producer.go
+++ /dev/null
@@ -1,118 +0,0 @@
-package main
-
-import (
- "flag"
- "fmt"
- "io/ioutil"
- "log"
- "os"
- "strings"
-
- "github.com/Shopify/sarama"
-)
-
-var (
- brokerList = flag.String("brokers", os.Getenv("KAFKA_PEERS"), "The comma separated list of brokers in the Kafka cluster. You can also set the KAFKA_PEERS environment variable")
- topic = flag.String("topic", "", "REQUIRED: the topic to produce to")
- key = flag.String("key", "", "The key of the message to produce. Can be empty.")
- value = flag.String("value", "", "REQUIRED: the value of the message to produce. You can also provide the value on stdin.")
- partitioner = flag.String("partitioner", "", "The partitioning scheme to use. Can be `hash`, `manual`, or `random`")
- partition = flag.Int("partition", -1, "The partition to produce to.")
- verbose = flag.Bool("verbose", false, "Turn on sarama logging to stderr")
- silent = flag.Bool("silent", false, "Turn off printing the message's topic, partition, and offset to stdout")
-
- logger = log.New(os.Stderr, "", log.LstdFlags)
-)
-
-func main() {
- flag.Parse()
-
- if *brokerList == "" {
- printUsageErrorAndExit("no -brokers specified. Alternatively, set the KAFKA_PEERS environment variable")
- }
-
- if *topic == "" {
- printUsageErrorAndExit("no -topic specified")
- }
-
- if *verbose {
- sarama.Logger = logger
- }
-
- config := sarama.NewConfig()
- config.Producer.RequiredAcks = sarama.WaitForAll
-
- switch *partitioner {
- case "":
- if *partition >= 0 {
- config.Producer.Partitioner = sarama.NewManualPartitioner
- } else {
- config.Producer.Partitioner = sarama.NewHashPartitioner
- }
- case "hash":
- config.Producer.Partitioner = sarama.NewHashPartitioner
- case "random":
- config.Producer.Partitioner = sarama.NewRandomPartitioner
- case "manual":
- config.Producer.Partitioner = sarama.NewManualPartitioner
- if *partition == -1 {
- printUsageErrorAndExit("-partition is required when partitioning manually")
- }
- default:
- printUsageErrorAndExit(fmt.Sprintf("Partitioner %s not supported.", *partitioner))
- }
-
- message := &sarama.ProducerMessage{Topic: *topic, Partition: int32(*partition)}
-
- if *key != "" {
- message.Key = sarama.StringEncoder(*key)
- }
-
- if *value != "" {
- message.Value = sarama.StringEncoder(*value)
- } else if stdinAvailable() {
- bytes, err := ioutil.ReadAll(os.Stdin)
- if err != nil {
- printErrorAndExit(66, "Failed to read data from the standard input: %s", err)
- }
- message.Value = sarama.ByteEncoder(bytes)
- } else {
- printUsageErrorAndExit("-value is required, or you have to provide the value on stdin")
- }
-
- producer, err := sarama.NewSyncProducer(strings.Split(*brokerList, ","), config)
- if err != nil {
- printErrorAndExit(69, "Failed to open Kafka producer: %s", err)
- }
- defer func() {
- if err := producer.Close(); err != nil {
- logger.Println("Failed to close Kafka producer cleanly:", err)
- }
- }()
-
- partition, offset, err := producer.SendMessage(message)
- if err != nil {
- printErrorAndExit(69, "Failed to produce message: %s", err)
- } else if !*silent {
- fmt.Printf("topic=%s\tpartition=%d\toffset=%d\n", *topic, partition, offset)
- }
-}
-
-func printErrorAndExit(code int, format string, values ...interface{}) {
- fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...))
- fmt.Fprintln(os.Stderr)
- os.Exit(code)
-}
-
-func printUsageErrorAndExit(message string) {
- fmt.Fprintln(os.Stderr, "ERROR:", message)
- fmt.Fprintln(os.Stderr)
- fmt.Fprintln(os.Stderr, "Available command line options:")
- flag.PrintDefaults()
- os.Exit(64)
-}
-
-func stdinAvailable() bool {
- stat, _ := os.Stdin.Stat()
- return (stat.Mode() & os.ModeCharDevice) == 0
-}
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/boot_cluster.sh b/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/boot_cluster.sh
deleted file mode 100644
index 95e47dde..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/boot_cluster.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-set -ex
-
-# Launch and wait for toxiproxy
-${REPOSITORY_ROOT}/vagrant/run_toxiproxy.sh &
-while ! nc -q 1 localhost 2181 ${KAFKA_INSTALL_ROOT}/zookeeper-${ZK_PORT}/myid
-done
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/kafka.conf b/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/kafka.conf
deleted file mode 100644
index d975de43..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/kafka.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-start on started zookeeper-ZK_PORT
-stop on stopping zookeeper-ZK_PORT
-
-pre-start exec sleep 2
-exec /opt/kafka-KAFKAID/bin/kafka-server-start.sh /opt/kafka-KAFKAID/config/server.properties
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/provision.sh b/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/provision.sh
deleted file mode 100644
index b1e429fb..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/provision.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-set -ex
-
-apt-get update
-yes | apt-get install default-jre
-
-export KAFKA_INSTALL_ROOT=/opt
-export KAFKA_HOSTNAME=192.168.100.67
-export KAFKA_VERSION=0.9.0.0
-export REPOSITORY_ROOT=/vagrant
-
-sh /vagrant/vagrant/install_cluster.sh
-sh /vagrant/vagrant/setup_services.sh
-sh /vagrant/vagrant/create_topics.sh
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/run_toxiproxy.sh b/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/run_toxiproxy.sh
deleted file mode 100644
index e52c00e7..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/run_toxiproxy.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-set -ex
-
-${KAFKA_INSTALL_ROOT}/toxiproxy -port 8474 -host 0.0.0.0 &
-PID=$!
-
-while ! nc -q 1 localhost 8474
-
-# The number of threads handling network requests
-num.network.threads=2
-
-# The number of threads doing disk I/O
-num.io.threads=8
-
-# The send buffer (SO_SNDBUF) used by the socket server
-socket.send.buffer.bytes=1048576
-
-# The receive buffer (SO_RCVBUF) used by the socket server
-socket.receive.buffer.bytes=1048576
-
-# The maximum size of a request that the socket server will accept (protection against OOM)
-socket.request.max.bytes=104857600
-
-
-############################# Log Basics #############################
-
-# A comma seperated list of directories under which to store log files
-log.dirs=KAFKA_DATADIR
-
-# The default number of log partitions per topic. More partitions allow greater
-# parallelism for consumption, but this will also result in more files across
-# the brokers.
-num.partitions=2
-
-# Create new topics with a replication factor of 2 so failover can be tested
-# more easily.
-default.replication.factor=2
-
-auto.create.topics.enable=false
-delete.topic.enable=true
-
-############################# Log Flush Policy #############################
-
-# Messages are immediately written to the filesystem but by default we only fsync() to sync
-# the OS cache lazily. The following configurations control the flush of data to disk.
-# There are a few important trade-offs here:
-# 1. Durability: Unflushed data may be lost if you are not using replication.
-# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush.
-# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to exceessive seeks.
-# The settings below allow one to configure the flush policy to flush data after a period of time or
-# every N messages (or both). This can be done globally and overridden on a per-topic basis.
-
-# The number of messages to accept before forcing a flush of data to disk
-#log.flush.interval.messages=10000
-
-# The maximum amount of time a message can sit in a log before we force a flush
-#log.flush.interval.ms=1000
-
-############################# Log Retention Policy #############################
-
-# The following configurations control the disposal of log segments. The policy can
-# be set to delete segments after a period of time, or after a given size has accumulated.
-# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens
-# from the end of the log.
-
-# The minimum age of a log file to be eligible for deletion
-log.retention.hours=168
-
-# A size-based retention policy for logs. Segments are pruned from the log as long as the remaining
-# segments don't drop below log.retention.bytes.
-log.retention.bytes=268435456
-
-# The maximum size of a log segment file. When this size is reached a new log segment will be created.
-log.segment.bytes=268435456
-
-# The interval at which log segments are checked to see if they can be deleted according
-# to the retention policies
-log.retention.check.interval.ms=60000
-
-# By default the log cleaner is disabled and the log retention policy will default to just delete segments after their retention expires.
-# If log.cleaner.enable=true is set the cleaner will be enabled and individual logs can then be marked for log compaction.
-log.cleaner.enable=false
-
-############################# Zookeeper #############################
-
-# Zookeeper connection string (see zookeeper docs for details).
-# This is a comma separated host:port pairs, each corresponding to a zk
-# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
-# You can also append an optional chroot string to the urls to specify the
-# root directory for all kafka znodes.
-zookeeper.connect=localhost:ZK_PORT
-
-# Timeout in ms for connecting to zookeeper
-zookeeper.session.timeout.ms=3000
-zookeeper.connection.timeout.ms=3000
diff --git a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/setup_services.sh b/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/setup_services.sh
deleted file mode 100644
index 81d8ea05..00000000
--- a/Godeps/_workspace/src/github.com/Shopify/sarama/vagrant/setup_services.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-set -ex
-
-stop toxiproxy || true
-cp ${REPOSITORY_ROOT}/vagrant/toxiproxy.conf /etc/init/toxiproxy.conf
-cp ${REPOSITORY_ROOT}/vagrant/run_toxiproxy.sh ${KAFKA_INSTALL_ROOT}/
-start toxiproxy
-
-for i in 1 2 3 4 5; do
- ZK_PORT=`expr $i + 2180`
- KAFKA_PORT=`expr $i + 9090`
-
- stop zookeeper-${ZK_PORT} || true
-
- # set up zk service
- cp ${REPOSITORY_ROOT}/vagrant/zookeeper.conf /etc/init/zookeeper-${ZK_PORT}.conf
- sed -i s/KAFKAID/${KAFKA_PORT}/g /etc/init/zookeeper-${ZK_PORT}.conf
-
- # set up kafka service
- cp ${REPOSITORY_ROOT}/vagrant/kafka.conf /etc/init/kafka-${KAFKA_PORT}.conf
- sed -i s/KAFKAID/${KAFKA_PORT}/g /etc/init/kafka-${KAFKA_PORT}.conf
- sed -i s/ZK_PORT/${ZK_PORT}/g /etc/init/kafka-${KAFKA_PORT}.conf
-
- start zookeeper-${ZK_PORT}
-done
-
-# Wait for the last kafka node to finish booting
-while ! nc -q 1 localhost 29095
-
-[Papertrail](https://papertrailapp.com) provides hosted log management. Once stored in Papertrail, you can [group](http://help.papertrailapp.com/kb/how-it-works/groups/) your logs on various dimensions, [search](http://help.papertrailapp.com/kb/how-it-works/search-syntax) them, and trigger [alerts](http://help.papertrailapp.com/kb/how-it-works/alerts).
-
-In most deployments, you'll want to send logs to Papertrail via their [remote_syslog](http://help.papertrailapp.com/kb/configuration/configuring-centralized-logging-from-text-log-files-in-unix/) daemon, which requires no application-specific configuration. This hook is intended for relatively low-volume logging, likely in managed cloud hosting deployments where installing `remote_syslog` is not possible.
-
-## Usage
-
-You can find your Papertrail UDP port on your [Papertrail account page](https://papertrailapp.com/account/destinations). Substitute it below for `YOUR_PAPERTRAIL_UDP_PORT`.
-
-For `YOUR_APP_NAME`, substitute a short string that will readily identify your application or service in the logs.
-
-```go
-import (
- "log/syslog"
- "github.com/Sirupsen/logrus"
- "github.com/Sirupsen/logrus/hooks/papertrail"
-)
-
-func main() {
- log := logrus.New()
- hook, err := logrus_papertrail.NewPapertrailHook("logs.papertrailapp.com", YOUR_PAPERTRAIL_UDP_PORT, YOUR_APP_NAME)
-
- if err == nil {
- log.Hooks.Add(hook)
- }
-}
-```
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/papertrail/papertrail.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/papertrail/papertrail.go
deleted file mode 100644
index c0f10c1b..00000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/papertrail/papertrail.go
+++ /dev/null
@@ -1,55 +0,0 @@
-package logrus_papertrail
-
-import (
- "fmt"
- "net"
- "os"
- "time"
-
- "github.com/Sirupsen/logrus"
-)
-
-const (
- format = "Jan 2 15:04:05"
-)
-
-// PapertrailHook to send logs to a logging service compatible with the Papertrail API.
-type PapertrailHook struct {
- Host string
- Port int
- AppName string
- UDPConn net.Conn
-}
-
-// NewPapertrailHook creates a hook to be added to an instance of logger.
-func NewPapertrailHook(host string, port int, appName string) (*PapertrailHook, error) {
- conn, err := net.Dial("udp", fmt.Sprintf("%s:%d", host, port))
- return &PapertrailHook{host, port, appName, conn}, err
-}
-
-// Fire is called when a log event is fired.
-func (hook *PapertrailHook) Fire(entry *logrus.Entry) error {
- date := time.Now().Format(format)
- msg, _ := entry.String()
- payload := fmt.Sprintf("<22> %s %s: %s", date, hook.AppName, msg)
-
- bytesWritten, err := hook.UDPConn.Write([]byte(payload))
- if err != nil {
- fmt.Fprintf(os.Stderr, "Unable to send log line to Papertrail via UDP. Wrote %d bytes before error: %v", bytesWritten, err)
- return err
- }
-
- return nil
-}
-
-// Levels returns the available logging levels.
-func (hook *PapertrailHook) Levels() []logrus.Level {
- return []logrus.Level{
- logrus.PanicLevel,
- logrus.FatalLevel,
- logrus.ErrorLevel,
- logrus.WarnLevel,
- logrus.InfoLevel,
- logrus.DebugLevel,
- }
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/sentry/README.md b/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/sentry/README.md
deleted file mode 100644
index 19e58bb4..00000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/sentry/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# Sentry Hook for Logrus
-
-[Sentry](https://getsentry.com) provides both self-hosted and hosted
-solutions for exception tracking.
-Both client and server are
-[open source](https://github.com/getsentry/sentry).
-
-## Usage
-
-Every sentry application defined on the server gets a different
-[DSN](https://www.getsentry.com/docs/). In the example below replace
-`YOUR_DSN` with the one created for your application.
-
-```go
-import (
- "github.com/Sirupsen/logrus"
- "github.com/Sirupsen/logrus/hooks/sentry"
-)
-
-func main() {
- log := logrus.New()
- hook, err := logrus_sentry.NewSentryHook(YOUR_DSN, []logrus.Level{
- logrus.PanicLevel,
- logrus.FatalLevel,
- logrus.ErrorLevel,
- })
-
- if err == nil {
- log.Hooks.Add(hook)
- }
-}
-```
-
-## Special fields
-
-Some logrus fields have a special meaning in this hook,
-these are server_name and logger.
-When logs are sent to sentry these fields are treated differently.
-- server_name (also known as hostname) is the name of the server which
-is logging the event (hostname.example.com)
-- logger is the part of the application which is logging the event.
-In go this usually means setting it to the name of the package.
-
-## Timeout
-
-`Timeout` is the time the sentry hook will wait for a response
-from the sentry server.
-
-If this time elapses with no response from
-the server an error will be returned.
-
-If `Timeout` is set to 0 the SentryHook will not wait for a reply
-and will assume a correct delivery.
-
-The SentryHook has a default timeout of `100 milliseconds` when created
-with a call to `NewSentryHook`. This can be changed by assigning a value to the `Timeout` field:
-
-```go
-hook, _ := logrus_sentry.NewSentryHook(...)
-hook.Timeout = 20*time.Second
-```
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/sentry/sentry.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/sentry/sentry.go
deleted file mode 100644
index 379f281c..00000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/sentry/sentry.go
+++ /dev/null
@@ -1,100 +0,0 @@
-package logrus_sentry
-
-import (
- "fmt"
- "time"
-
- "github.com/Sirupsen/logrus"
- "github.com/getsentry/raven-go"
-)
-
-var (
- severityMap = map[logrus.Level]raven.Severity{
- logrus.DebugLevel: raven.DEBUG,
- logrus.InfoLevel: raven.INFO,
- logrus.WarnLevel: raven.WARNING,
- logrus.ErrorLevel: raven.ERROR,
- logrus.FatalLevel: raven.FATAL,
- logrus.PanicLevel: raven.FATAL,
- }
-)
-
-func getAndDel(d logrus.Fields, key string) (string, bool) {
- var (
- ok bool
- v interface{}
- val string
- )
- if v, ok = d[key]; !ok {
- return "", false
- }
-
- if val, ok = v.(string); !ok {
- return "", false
- }
- delete(d, key)
- return val, true
-}
-
-// SentryHook delivers logs to a sentry server.
-type SentryHook struct {
- // Timeout sets the time to wait for a delivery error from the sentry server.
- // If this is set to zero the server will not wait for any response and will
- // consider the message correctly sent
- Timeout time.Duration
-
- client *raven.Client
- levels []logrus.Level
-}
-
-// NewSentryHook creates a hook to be added to an instance of logger
-// and initializes the raven client.
-// This method sets the timeout to 100 milliseconds.
-func NewSentryHook(DSN string, levels []logrus.Level) (*SentryHook, error) {
- client, err := raven.NewClient(DSN, nil)
- if err != nil {
- return nil, err
- }
- return &SentryHook{100 * time.Millisecond, client, levels}, nil
-}
-
-// Called when an event should be sent to sentry
-// Special fields that sentry uses to give more information to the server
-// are extracted from entry.Data (if they are found)
-// These fields are: logger and server_name
-func (hook *SentryHook) Fire(entry *logrus.Entry) error {
- packet := &raven.Packet{
- Message: entry.Message,
- Timestamp: raven.Timestamp(entry.Time),
- Level: severityMap[entry.Level],
- Platform: "go",
- }
-
- d := entry.Data
-
- if logger, ok := getAndDel(d, "logger"); ok {
- packet.Logger = logger
- }
- if serverName, ok := getAndDel(d, "server_name"); ok {
- packet.ServerName = serverName
- }
- packet.Extra = map[string]interface{}(d)
-
- _, errCh := hook.client.Capture(packet, nil)
- timeout := hook.Timeout
- if timeout != 0 {
- timeoutCh := time.After(timeout)
- select {
- case err := <-errCh:
- return err
- case <-timeoutCh:
- return fmt.Errorf("no response from sentry server in %s", timeout)
- }
- }
- return nil
-}
-
-// Levels returns the available logging levels.
-func (hook *SentryHook) Levels() []logrus.Level {
- return hook.levels
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/syslog/README.md b/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/syslog/README.md
deleted file mode 100644
index 4dbb8e72..00000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/syslog/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Syslog Hooks for Logrus
-
-## Usage
-
-```go
-import (
- "log/syslog"
- "github.com/Sirupsen/logrus"
- logrus_syslog "github.com/Sirupsen/logrus/hooks/syslog"
-)
-
-func main() {
- log := logrus.New()
- hook, err := logrus_syslog.NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "")
-
- if err == nil {
- log.Hooks.Add(hook)
- }
-}
-```
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/syslog/syslog.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/syslog/syslog.go
deleted file mode 100644
index b6fa3746..00000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/syslog/syslog.go
+++ /dev/null
@@ -1,59 +0,0 @@
-package logrus_syslog
-
-import (
- "fmt"
- "github.com/Sirupsen/logrus"
- "log/syslog"
- "os"
-)
-
-// SyslogHook to send logs via syslog.
-type SyslogHook struct {
- Writer *syslog.Writer
- SyslogNetwork string
- SyslogRaddr string
-}
-
-// Creates a hook to be added to an instance of logger. This is called with
-// `hook, err := NewSyslogHook("udp", "localhost:514", syslog.LOG_DEBUG, "")`
-// `if err == nil { log.Hooks.Add(hook) }`
-func NewSyslogHook(network, raddr string, priority syslog.Priority, tag string) (*SyslogHook, error) {
- w, err := syslog.Dial(network, raddr, priority, tag)
- return &SyslogHook{w, network, raddr}, err
-}
-
-func (hook *SyslogHook) Fire(entry *logrus.Entry) error {
- line, err := entry.String()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Unable to read entry, %v", err)
- return err
- }
-
- switch entry.Level {
- case logrus.PanicLevel:
- return hook.Writer.Crit(line)
- case logrus.FatalLevel:
- return hook.Writer.Crit(line)
- case logrus.ErrorLevel:
- return hook.Writer.Err(line)
- case logrus.WarnLevel:
- return hook.Writer.Warning(line)
- case logrus.InfoLevel:
- return hook.Writer.Info(line)
- case logrus.DebugLevel:
- return hook.Writer.Debug(line)
- default:
- return nil
- }
-}
-
-func (hook *SyslogHook) Levels() []logrus.Level {
- return []logrus.Level{
- logrus.PanicLevel,
- logrus.FatalLevel,
- logrus.ErrorLevel,
- logrus.WarnLevel,
- logrus.InfoLevel,
- logrus.DebugLevel,
- }
-}
diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/basic.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/basic.go
deleted file mode 100644
index 49d3989d..00000000
--- a/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/basic.go
+++ /dev/null
@@ -1,35 +0,0 @@
-// +build ignore
-
-/*
- Example application using Basic auth
-
- Build with:
-
- go build basic.go
-*/
-
-package main
-
-import (
- auth ".."
- "fmt"
- "net/http"
-)
-
-func Secret(user, realm string) string {
- if user == "john" {
- // password is "hello"
- return "$1$dlPL2MqE$oQmn16q49SqdmhenQuNgs1"
- }
- return ""
-}
-
-func handle(w http.ResponseWriter, r *auth.AuthenticatedRequest) {
- fmt.Fprintf(w, "
", r.Username)
-}
-
-func main() {
- authenticator := auth.NewDigestAuthenticator("example.com", Secret)
- http.HandleFunc("/", authenticator.Wrap(handle))
- http.ListenAndServe(":8080", nil)
-}
diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/wrapped.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/wrapped.go
deleted file mode 100644
index aa95ec38..00000000
--- a/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/wrapped.go
+++ /dev/null
@@ -1,36 +0,0 @@
-// +build ignore
-
-/*
- Example demonstrating how to wrap an application which is unaware of
- authenticated requests with a "pass-through" authentication
-
- Build with:
-
- go build wrapped.go
-*/
-
-package main
-
-import (
- auth ".."
- "fmt"
- "net/http"
-)
-
-func Secret(user, realm string) string {
- if user == "john" {
- // password is "hello"
- return "$1$dlPL2MqE$oQmn16q49SqdmhenQuNgs1"
- }
- return ""
-}
-
-func regular_handler(w http.ResponseWriter, r *http.Request) {
- fmt.Fprintf(w, "
This application is unaware of authentication
")
-}
-
-func main() {
- authenticator := auth.NewBasicAuthenticator("example.com", Secret)
- http.HandleFunc("/", auth.JustCheck(authenticator, regular_handler))
- http.ListenAndServe(":8080", nil)
-}
diff --git a/Godeps/_workspace/src/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/LICENSE b/Godeps/_workspace/src/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/LICENSE
deleted file mode 100644
index 37ec93a1..00000000
--- a/Godeps/_workspace/src/github.com/aws/aws-sdk-go/vendor/github.com/go-ini/ini/LICENSE
+++ /dev/null
@@ -1,191 +0,0 @@
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and
-distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright
-owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities
-that control, are controlled by, or are under common control with that entity.
-For the purposes of this definition, "control" means (i) the power, direct or
-indirect, to cause the direction or management of such entity, whether by
-contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
-outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising
-permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including
-but not limited to software source code, documentation source, and configuration
-files.
-
-"Object" form shall mean any form resulting from mechanical transformation or
-translation of a Source form, including but not limited to compiled object code,
-generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made
-available under the License, as indicated by a copyright notice that is included
-in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that
-is based on (or derived from) the Work and for which the editorial revisions,
-annotations, elaborations, or other modifications represent, as a whole, an
-original work of authorship. For the purposes of this License, Derivative Works
-shall not include works that remain separable from, or merely link (or bind by
-name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version
-of the Work and any modifications or additions to that Work or Derivative Works
-thereof, that is intentionally submitted to Licensor for inclusion in the Work
-by the copyright owner or by an individual or Legal Entity authorized to submit
-on behalf of the copyright owner. For the purposes of this definition,
-"submitted" means any form of electronic, verbal, or written communication sent
-to the Licensor or its representatives, including but not limited to
-communication on electronic mailing lists, source code control systems, and
-issue tracking systems that are managed by, or on behalf of, the Licensor for
-the purpose of discussing and improving the Work, but excluding communication
-that is conspicuously marked or otherwise designated in writing by the copyright
-owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
-of whom a Contribution has been received by Licensor and subsequently
-incorporated within the Work.
-
-2. Grant of Copyright License.
-
-Subject to the terms and conditions of this License, each Contributor hereby
-grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
-irrevocable copyright license to reproduce, prepare Derivative Works of,
-publicly display, publicly perform, sublicense, and distribute the Work and such
-Derivative Works in Source or Object form.
-
-3. Grant of Patent License.
-
-Subject to the terms and conditions of this License, each Contributor hereby
-grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
-irrevocable (except as stated in this section) patent license to make, have
-made, use, offer to sell, sell, import, and otherwise transfer the Work, where
-such license applies only to those patent claims licensable by such Contributor
-that are necessarily infringed by their Contribution(s) alone or by combination
-of their Contribution(s) with the Work to which such Contribution(s) was
-submitted. If You institute patent litigation against any entity (including a
-cross-claim or counterclaim in a lawsuit) alleging that the Work or a
-Contribution incorporated within the Work constitutes direct or contributory
-patent infringement, then any patent licenses granted to You under this License
-for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution.
-
-You may reproduce and distribute copies of the Work or Derivative Works thereof
-in any medium, with or without modifications, and in Source or Object form,
-provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of
-this License; and
-You must cause any modified files to carry prominent notices stating that You
-changed the files; and
-You must retain, in the Source form of any Derivative Works that You distribute,
-all copyright, patent, trademark, and attribution notices from the Source form
-of the Work, excluding those notices that do not pertain to any part of the
-Derivative Works; and
-If the Work includes a "NOTICE" text file as part of its distribution, then any
-Derivative Works that You distribute must include a readable copy of the
-attribution notices contained within such NOTICE file, excluding those notices
-that do not pertain to any part of the Derivative Works, in at least one of the
-following places: within a NOTICE text file distributed as part of the
-Derivative Works; within the Source form or documentation, if provided along
-with the Derivative Works; or, within a display generated by the Derivative
-Works, if and wherever such third-party notices normally appear. The contents of
-the NOTICE file are for informational purposes only and do not modify the
-License. You may add Your own attribution notices within Derivative Works that
-You distribute, alongside or as an addendum to the NOTICE text from the Work,
-provided that such additional attribution notices cannot be construed as
-modifying the License.
-You may add Your own copyright statement to Your modifications and may provide
-additional or different license terms and conditions for use, reproduction, or
-distribution of Your modifications, or for any such Derivative Works as a whole,
-provided Your use, reproduction, and distribution of the Work otherwise complies
-with the conditions stated in this License.
-
-5. Submission of Contributions.
-
-Unless You explicitly state otherwise, any Contribution intentionally submitted
-for inclusion in the Work by You to the Licensor shall be under the terms and
-conditions of this License, without any additional terms or conditions.
-Notwithstanding the above, nothing herein shall supersede or modify the terms of
-any separate license agreement you may have executed with Licensor regarding
-such Contributions.
-
-6. Trademarks.
-
-This License does not grant permission to use the trade names, trademarks,
-service marks, or product names of the Licensor, except as required for
-reasonable and customary use in describing the origin of the Work and
-reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty.
-
-Unless required by applicable law or agreed to in writing, Licensor provides the
-Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
-including, without limitation, any warranties or conditions of TITLE,
-NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
-solely responsible for determining the appropriateness of using or
-redistributing the Work and assume any risks associated with Your exercise of
-permissions under this License.
-
-8. Limitation of Liability.
-
-In no event and under no legal theory, whether in tort (including negligence),
-contract, or otherwise, unless required by applicable law (such as deliberate
-and grossly negligent acts) or agreed to in writing, shall any Contributor be
-liable to You for damages, including any direct, indirect, special, incidental,
-or consequential damages of any character arising as a result of this License or
-out of the use or inability to use the Work (including but not limited to
-damages for loss of goodwill, work stoppage, computer failure or malfunction, or
-any and all other commercial damages or losses), even if such Contributor has
-been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability.
-
-While redistributing the Work or Derivative Works thereof, You may choose to
-offer, and charge a fee for, acceptance of support, warranty, indemnity, or
-other liability obligations and/or rights consistent with this License. However,
-in accepting such obligations, You may act only on Your own behalf and on Your
-sole responsibility, not on behalf of any other Contributor, and only if You
-agree to indemnify, defend, and hold each Contributor harmless for any liability
-incurred by, or claims asserted against, such Contributor by reason of your
-accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work
-
-To apply the Apache License to your work, attach the following boilerplate
-notice, with the fields enclosed by brackets "[]" replaced with your own
-identifying information. (Don't include the brackets!) The text should be
-enclosed in the appropriate comment syntax for the file format. We also
-recommend that a file or class name and description of purpose be included on
-the same "printed page" as the copyright notice for easier identification within
-third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/LICENSE b/Godeps/_workspace/src/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/LICENSE
deleted file mode 100644
index b03310a9..00000000
--- a/Godeps/_workspace/src/github.com/aws/aws-sdk-go/vendor/github.com/jmespath/go-jmespath/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright 2015 James Saryerwinnie
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/contrib/docker-engine-selinux/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/contrib/docker-engine-selinux/LICENSE
deleted file mode 100644
index 4362b491..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/contrib/docker-engine-selinux/LICENSE
+++ /dev/null
@@ -1,502 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- , 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim/LICENSE
deleted file mode 100644
index e67cdabd..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2013 Honza Pokorny
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/pkg/mflag/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/pkg/mflag/LICENSE
deleted file mode 100644
index ac74d8f0..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/pkg/mflag/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2014-2015 The Docker & Go Authors. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/Azure/go-ansiterm/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/Azure/go-ansiterm/LICENSE
deleted file mode 100644
index e3d9a64d..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/Azure/go-ansiterm/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Microsoft Corporation
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/COPYING b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/COPYING
deleted file mode 100644
index 5a8e3325..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/COPYING
+++ /dev/null
@@ -1,14 +0,0 @@
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- Version 2, December 2004
-
- Copyright (C) 2004 Sam Hocevar
-
- Everyone is permitted to copy and distribute verbatim or modified
- copies of this license document, and changing it is allowed as long
- as the name is changed.
-
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. You just DO WHAT THE FUCK YOU WANT TO.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING
deleted file mode 100644
index 5a8e3325..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING
+++ /dev/null
@@ -1,14 +0,0 @@
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- Version 2, December 2004
-
- Copyright (C) 2004 Sam Hocevar
-
- Everyone is permitted to copy and distribute verbatim or modified
- copies of this license document, and changing it is allowed as long
- as the name is changed.
-
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. You just DO WHAT THE FUCK YOU WANT TO.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING
deleted file mode 100644
index 5a8e3325..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING
+++ /dev/null
@@ -1,14 +0,0 @@
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- Version 2, December 2004
-
- Copyright (C) 2004 Sam Hocevar
-
- Everyone is permitted to copy and distribute verbatim or modified
- copies of this license document, and changing it is allowed as long
- as the name is changed.
-
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. You just DO WHAT THE FUCK YOU WANT TO.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/cmd/tomlv/COPYING b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/cmd/tomlv/COPYING
deleted file mode 100644
index 5a8e3325..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/BurntSushi/toml/cmd/tomlv/COPYING
+++ /dev/null
@@ -1,14 +0,0 @@
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- Version 2, December 2004
-
- Copyright (C) 2004 Sam Hocevar
-
- Everyone is permitted to copy and distribute verbatim or modified
- copies of this license document, and changing it is allowed as long
- as the name is changed.
-
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. You just DO WHAT THE FUCK YOU WANT TO.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/Graylog2/go-gelf/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/Graylog2/go-gelf/LICENSE
deleted file mode 100644
index bc756ae3..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/Graylog2/go-gelf/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright 2012 SocialCode
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/Sirupsen/logrus/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/Sirupsen/logrus/LICENSE
deleted file mode 100644
index f090cb42..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/Sirupsen/logrus/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Simon Eskildsen
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/agl/ed25519/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/agl/ed25519/LICENSE
deleted file mode 100644
index 74487567..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/agl/ed25519/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2012 The Go Authors. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/armon/go-metrics/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/armon/go-metrics/LICENSE
deleted file mode 100644
index 106569e5..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/armon/go-metrics/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 Armon Dadgar
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/aws/aws-sdk-go/LICENSE.txt b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/aws/aws-sdk-go/LICENSE.txt
deleted file mode 100644
index d6456956..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/aws/aws-sdk-go/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/boltdb/bolt/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/boltdb/bolt/LICENSE
deleted file mode 100644
index 004e77fe..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/boltdb/bolt/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 Ben Johnson
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/coreos/etcd/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/coreos/etcd/LICENSE
deleted file mode 100644
index d6456956..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/coreos/etcd/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/coreos/go-systemd/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/coreos/go-systemd/LICENSE
deleted file mode 100644
index 37ec93a1..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/coreos/go-systemd/LICENSE
+++ /dev/null
@@ -1,191 +0,0 @@
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and
-distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright
-owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities
-that control, are controlled by, or are under common control with that entity.
-For the purposes of this definition, "control" means (i) the power, direct or
-indirect, to cause the direction or management of such entity, whether by
-contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
-outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising
-permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including
-but not limited to software source code, documentation source, and configuration
-files.
-
-"Object" form shall mean any form resulting from mechanical transformation or
-translation of a Source form, including but not limited to compiled object code,
-generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made
-available under the License, as indicated by a copyright notice that is included
-in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that
-is based on (or derived from) the Work and for which the editorial revisions,
-annotations, elaborations, or other modifications represent, as a whole, an
-original work of authorship. For the purposes of this License, Derivative Works
-shall not include works that remain separable from, or merely link (or bind by
-name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version
-of the Work and any modifications or additions to that Work or Derivative Works
-thereof, that is intentionally submitted to Licensor for inclusion in the Work
-by the copyright owner or by an individual or Legal Entity authorized to submit
-on behalf of the copyright owner. For the purposes of this definition,
-"submitted" means any form of electronic, verbal, or written communication sent
-to the Licensor or its representatives, including but not limited to
-communication on electronic mailing lists, source code control systems, and
-issue tracking systems that are managed by, or on behalf of, the Licensor for
-the purpose of discussing and improving the Work, but excluding communication
-that is conspicuously marked or otherwise designated in writing by the copyright
-owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
-of whom a Contribution has been received by Licensor and subsequently
-incorporated within the Work.
-
-2. Grant of Copyright License.
-
-Subject to the terms and conditions of this License, each Contributor hereby
-grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
-irrevocable copyright license to reproduce, prepare Derivative Works of,
-publicly display, publicly perform, sublicense, and distribute the Work and such
-Derivative Works in Source or Object form.
-
-3. Grant of Patent License.
-
-Subject to the terms and conditions of this License, each Contributor hereby
-grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
-irrevocable (except as stated in this section) patent license to make, have
-made, use, offer to sell, sell, import, and otherwise transfer the Work, where
-such license applies only to those patent claims licensable by such Contributor
-that are necessarily infringed by their Contribution(s) alone or by combination
-of their Contribution(s) with the Work to which such Contribution(s) was
-submitted. If You institute patent litigation against any entity (including a
-cross-claim or counterclaim in a lawsuit) alleging that the Work or a
-Contribution incorporated within the Work constitutes direct or contributory
-patent infringement, then any patent licenses granted to You under this License
-for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution.
-
-You may reproduce and distribute copies of the Work or Derivative Works thereof
-in any medium, with or without modifications, and in Source or Object form,
-provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of
-this License; and
-You must cause any modified files to carry prominent notices stating that You
-changed the files; and
-You must retain, in the Source form of any Derivative Works that You distribute,
-all copyright, patent, trademark, and attribution notices from the Source form
-of the Work, excluding those notices that do not pertain to any part of the
-Derivative Works; and
-If the Work includes a "NOTICE" text file as part of its distribution, then any
-Derivative Works that You distribute must include a readable copy of the
-attribution notices contained within such NOTICE file, excluding those notices
-that do not pertain to any part of the Derivative Works, in at least one of the
-following places: within a NOTICE text file distributed as part of the
-Derivative Works; within the Source form or documentation, if provided along
-with the Derivative Works; or, within a display generated by the Derivative
-Works, if and wherever such third-party notices normally appear. The contents of
-the NOTICE file are for informational purposes only and do not modify the
-License. You may add Your own attribution notices within Derivative Works that
-You distribute, alongside or as an addendum to the NOTICE text from the Work,
-provided that such additional attribution notices cannot be construed as
-modifying the License.
-You may add Your own copyright statement to Your modifications and may provide
-additional or different license terms and conditions for use, reproduction, or
-distribution of Your modifications, or for any such Derivative Works as a whole,
-provided Your use, reproduction, and distribution of the Work otherwise complies
-with the conditions stated in this License.
-
-5. Submission of Contributions.
-
-Unless You explicitly state otherwise, any Contribution intentionally submitted
-for inclusion in the Work by You to the Licensor shall be under the terms and
-conditions of this License, without any additional terms or conditions.
-Notwithstanding the above, nothing herein shall supersede or modify the terms of
-any separate license agreement you may have executed with Licensor regarding
-such Contributions.
-
-6. Trademarks.
-
-This License does not grant permission to use the trade names, trademarks,
-service marks, or product names of the Licensor, except as required for
-reasonable and customary use in describing the origin of the Work and
-reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty.
-
-Unless required by applicable law or agreed to in writing, Licensor provides the
-Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
-including, without limitation, any warranties or conditions of TITLE,
-NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
-solely responsible for determining the appropriateness of using or
-redistributing the Work and assume any risks associated with Your exercise of
-permissions under this License.
-
-8. Limitation of Liability.
-
-In no event and under no legal theory, whether in tort (including negligence),
-contract, or otherwise, unless required by applicable law (such as deliberate
-and grossly negligent acts) or agreed to in writing, shall any Contributor be
-liable to You for damages, including any direct, indirect, special, incidental,
-or consequential damages of any character arising as a result of this License or
-out of the use or inability to use the Work (including but not limited to
-damages for loss of goodwill, work stoppage, computer failure or malfunction, or
-any and all other commercial damages or losses), even if such Contributor has
-been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability.
-
-While redistributing the Work or Derivative Works thereof, You may choose to
-offer, and charge a fee for, acceptance of support, warranty, indemnity, or
-other liability obligations and/or rights consistent with this License. However,
-in accepting such obligations, You may act only on Your own behalf and on Your
-sole responsibility, not on behalf of any other Contributor, and only if You
-agree to indemnify, defend, and hold each Contributor harmless for any liability
-incurred by, or claims asserted against, such Contributor by reason of your
-accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work
-
-To apply the Apache License to your work, attach the following boilerplate
-notice, with the fields enclosed by brackets "[]" replaced with your own
-identifying information. (Don't include the brackets!) The text should be
-enclosed in the appropriate comment syntax for the file format. We also
-recommend that a file or class name and description of purpose be included on
-the same "printed page" as the copyright notice for easier identification within
-third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/deckarep/golang-set/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/deckarep/golang-set/LICENSE
deleted file mode 100644
index b5768f89..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/deckarep/golang-set/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Open Source Initiative OSI - The MIT License (MIT):Licensing
-
-The MIT License (MIT)
-Copyright (c) 2013 Ralph Caraveo (deckarep@gmail.com)
-
-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.
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/distribution/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/distribution/LICENSE
deleted file mode 100644
index e06d2081..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/distribution/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libkv/LICENSE.code b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libkv/LICENSE.code
deleted file mode 100644
index 9e4bd4db..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libkv/LICENSE.code
+++ /dev/null
@@ -1,191 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- Copyright 2014-2015 Docker, Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libkv/LICENSE.docs b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libkv/LICENSE.docs
deleted file mode 100644
index e26cd4fc..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libkv/LICENSE.docs
+++ /dev/null
@@ -1,425 +0,0 @@
-Attribution-ShareAlike 4.0 International
-
-=======================================================================
-
-Creative Commons Corporation ("Creative Commons") is not a law firm and
-does not provide legal services or legal advice. Distribution of
-Creative Commons public licenses does not create a lawyer-client or
-other relationship. Creative Commons makes its licenses and related
-information available on an "as-is" basis. Creative Commons gives no
-warranties regarding its licenses, any material licensed under their
-terms and conditions, or any related information. Creative Commons
-disclaims all liability for damages resulting from their use to the
-fullest extent possible.
-
-Using Creative Commons Public Licenses
-
-Creative Commons public licenses provide a standard set of terms and
-conditions that creators and other rights holders may use to share
-original works of authorship and other material subject to copyright
-and certain other rights specified in the public license below. The
-following considerations are for informational purposes only, are not
-exhaustive, and do not form part of our licenses.
-
- Considerations for licensors: Our public licenses are
- intended for use by those authorized to give the public
- permission to use material in ways otherwise restricted by
- copyright and certain other rights. Our licenses are
- irrevocable. Licensors should read and understand the terms
- and conditions of the license they choose before applying it.
- Licensors should also secure all rights necessary before
- applying our licenses so that the public can reuse the
- material as expected. Licensors should clearly mark any
- material not subject to the license. This includes other CC-
- licensed material, or material used under an exception or
- limitation to copyright. More considerations for licensors:
- wiki.creativecommons.org/Considerations_for_licensors
-
- Considerations for the public: By using one of our public
- licenses, a licensor grants the public permission to use the
- licensed material under specified terms and conditions. If
- the licensor's permission is not necessary for any reason--for
- example, because of any applicable exception or limitation to
- copyright--then that use is not regulated by the license. Our
- licenses grant only permissions under copyright and certain
- other rights that a licensor has authority to grant. Use of
- the licensed material may still be restricted for other
- reasons, including because others have copyright or other
- rights in the material. A licensor may make special requests,
- such as asking that all changes be marked or described.
- Although not required by our licenses, you are encouraged to
- respect those requests where reasonable. More_considerations
- for the public:
- wiki.creativecommons.org/Considerations_for_licensees
-
-=======================================================================
-
-Creative Commons Attribution-ShareAlike 4.0 International Public
-License
-
-By exercising the Licensed Rights (defined below), You accept and agree
-to be bound by the terms and conditions of this Creative Commons
-Attribution-ShareAlike 4.0 International Public License ("Public
-License"). To the extent this Public License may be interpreted as a
-contract, You are granted the Licensed Rights in consideration of Your
-acceptance of these terms and conditions, and the Licensor grants You
-such rights in consideration of benefits the Licensor receives from
-making the Licensed Material available under these terms and
-conditions.
-
-
-Section 1 -- Definitions.
-
- a. Adapted Material means material subject to Copyright and Similar
- Rights that is derived from or based upon the Licensed Material
- and in which the Licensed Material is translated, altered,
- arranged, transformed, or otherwise modified in a manner requiring
- permission under the Copyright and Similar Rights held by the
- Licensor. For purposes of this Public License, where the Licensed
- Material is a musical work, performance, or sound recording,
- Adapted Material is always produced where the Licensed Material is
- synched in timed relation with a moving image.
-
- b. Adapter's License means the license You apply to Your Copyright
- and Similar Rights in Your contributions to Adapted Material in
- accordance with the terms and conditions of this Public License.
-
- c. BY-SA Compatible License means a license listed at
- creativecommons.org/compatiblelicenses, approved by Creative
- Commons as essentially the equivalent of this Public License.
-
- d. Copyright and Similar Rights means copyright and/or similar rights
- closely related to copyright including, without limitation,
- performance, broadcast, sound recording, and Sui Generis Database
- Rights, without regard to how the rights are labeled or
- categorized. For purposes of this Public License, the rights
- specified in Section 2(b)(1)-(2) are not Copyright and Similar
- Rights.
-
- e. Effective Technological Measures means those measures that, in the
- absence of proper authority, may not be circumvented under laws
- fulfilling obligations under Article 11 of the WIPO Copyright
- Treaty adopted on December 20, 1996, and/or similar international
- agreements.
-
- f. Exceptions and Limitations means fair use, fair dealing, and/or
- any other exception or limitation to Copyright and Similar Rights
- that applies to Your use of the Licensed Material.
-
- g. License Elements means the license attributes listed in the name
- of a Creative Commons Public License. The License Elements of this
- Public License are Attribution and ShareAlike.
-
- h. Licensed Material means the artistic or literary work, database,
- or other material to which the Licensor applied this Public
- License.
-
- i. Licensed Rights means the rights granted to You subject to the
- terms and conditions of this Public License, which are limited to
- all Copyright and Similar Rights that apply to Your use of the
- Licensed Material and that the Licensor has authority to license.
-
- j. Licensor means the individual(s) or entity(ies) granting rights
- under this Public License.
-
- k. Share means to provide material to the public by any means or
- process that requires permission under the Licensed Rights, such
- as reproduction, public display, public performance, distribution,
- dissemination, communication, or importation, and to make material
- available to the public including in ways that members of the
- public may access the material from a place and at a time
- individually chosen by them.
-
- l. Sui Generis Database Rights means rights other than copyright
- resulting from Directive 96/9/EC of the European Parliament and of
- the Council of 11 March 1996 on the legal protection of databases,
- as amended and/or succeeded, as well as other essentially
- equivalent rights anywhere in the world.
-
- m. You means the individual or entity exercising the Licensed Rights
- under this Public License. Your has a corresponding meaning.
-
-
-Section 2 -- Scope.
-
- a. License grant.
-
- 1. Subject to the terms and conditions of this Public License,
- the Licensor hereby grants You a worldwide, royalty-free,
- non-sublicensable, non-exclusive, irrevocable license to
- exercise the Licensed Rights in the Licensed Material to:
-
- a. reproduce and Share the Licensed Material, in whole or
- in part; and
-
- b. produce, reproduce, and Share Adapted Material.
-
- 2. Exceptions and Limitations. For the avoidance of doubt, where
- Exceptions and Limitations apply to Your use, this Public
- License does not apply, and You do not need to comply with
- its terms and conditions.
-
- 3. Term. The term of this Public License is specified in Section
- 6(a).
-
- 4. Media and formats; technical modifications allowed. The
- Licensor authorizes You to exercise the Licensed Rights in
- all media and formats whether now known or hereafter created,
- and to make technical modifications necessary to do so. The
- Licensor waives and/or agrees not to assert any right or
- authority to forbid You from making technical modifications
- necessary to exercise the Licensed Rights, including
- technical modifications necessary to circumvent Effective
- Technological Measures. For purposes of this Public License,
- simply making modifications authorized by this Section 2(a)
- (4) never produces Adapted Material.
-
- 5. Downstream recipients.
-
- a. Offer from the Licensor -- Licensed Material. Every
- recipient of the Licensed Material automatically
- receives an offer from the Licensor to exercise the
- Licensed Rights under the terms and conditions of this
- Public License.
-
- b. Additional offer from the Licensor -- Adapted Material.
- Every recipient of Adapted Material from You
- automatically receives an offer from the Licensor to
- exercise the Licensed Rights in the Adapted Material
- under the conditions of the Adapter's License You apply.
-
- c. No downstream restrictions. You may not offer or impose
- any additional or different terms or conditions on, or
- apply any Effective Technological Measures to, the
- Licensed Material if doing so restricts exercise of the
- Licensed Rights by any recipient of the Licensed
- Material.
-
- 6. No endorsement. Nothing in this Public License constitutes or
- may be construed as permission to assert or imply that You
- are, or that Your use of the Licensed Material is, connected
- with, or sponsored, endorsed, or granted official status by,
- the Licensor or others designated to receive attribution as
- provided in Section 3(a)(1)(A)(i).
-
- b. Other rights.
-
- 1. Moral rights, such as the right of integrity, are not
- licensed under this Public License, nor are publicity,
- privacy, and/or other similar personality rights; however, to
- the extent possible, the Licensor waives and/or agrees not to
- assert any such rights held by the Licensor to the limited
- extent necessary to allow You to exercise the Licensed
- Rights, but not otherwise.
-
- 2. Patent and trademark rights are not licensed under this
- Public License.
-
- 3. To the extent possible, the Licensor waives any right to
- collect royalties from You for the exercise of the Licensed
- Rights, whether directly or through a collecting society
- under any voluntary or waivable statutory or compulsory
- licensing scheme. In all other cases the Licensor expressly
- reserves any right to collect such royalties.
-
-
-Section 3 -- License Conditions.
-
-Your exercise of the Licensed Rights is expressly made subject to the
-following conditions.
-
- a. Attribution.
-
- 1. If You Share the Licensed Material (including in modified
- form), You must:
-
- a. retain the following if it is supplied by the Licensor
- with the Licensed Material:
-
- i. identification of the creator(s) of the Licensed
- Material and any others designated to receive
- attribution, in any reasonable manner requested by
- the Licensor (including by pseudonym if
- designated);
-
- ii. a copyright notice;
-
- iii. a notice that refers to this Public License;
-
- iv. a notice that refers to the disclaimer of
- warranties;
-
- v. a URI or hyperlink to the Licensed Material to the
- extent reasonably practicable;
-
- b. indicate if You modified the Licensed Material and
- retain an indication of any previous modifications; and
-
- c. indicate the Licensed Material is licensed under this
- Public License, and include the text of, or the URI or
- hyperlink to, this Public License.
-
- 2. You may satisfy the conditions in Section 3(a)(1) in any
- reasonable manner based on the medium, means, and context in
- which You Share the Licensed Material. For example, it may be
- reasonable to satisfy the conditions by providing a URI or
- hyperlink to a resource that includes the required
- information.
-
- 3. If requested by the Licensor, You must remove any of the
- information required by Section 3(a)(1)(A) to the extent
- reasonably practicable.
-
- b. ShareAlike.
-
- In addition to the conditions in Section 3(a), if You Share
- Adapted Material You produce, the following conditions also apply.
-
- 1. The Adapter's License You apply must be a Creative Commons
- license with the same License Elements, this version or
- later, or a BY-SA Compatible License.
-
- 2. You must include the text of, or the URI or hyperlink to, the
- Adapter's License You apply. You may satisfy this condition
- in any reasonable manner based on the medium, means, and
- context in which You Share Adapted Material.
-
- 3. You may not offer or impose any additional or different terms
- or conditions on, or apply any Effective Technological
- Measures to, Adapted Material that restrict exercise of the
- rights granted under the Adapter's License You apply.
-
-
-Section 4 -- Sui Generis Database Rights.
-
-Where the Licensed Rights include Sui Generis Database Rights that
-apply to Your use of the Licensed Material:
-
- a. for the avoidance of doubt, Section 2(a)(1) grants You the right
- to extract, reuse, reproduce, and Share all or a substantial
- portion of the contents of the database;
-
- b. if You include all or a substantial portion of the database
- contents in a database in which You have Sui Generis Database
- Rights, then the database in which You have Sui Generis Database
- Rights (but not its individual contents) is Adapted Material,
-
- including for purposes of Section 3(b); and
- c. You must comply with the conditions in Section 3(a) if You Share
- all or a substantial portion of the contents of the database.
-
-For the avoidance of doubt, this Section 4 supplements and does not
-replace Your obligations under this Public License where the Licensed
-Rights include other Copyright and Similar Rights.
-
-
-Section 5 -- Disclaimer of Warranties and Limitation of Liability.
-
- a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
- EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
- AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
- ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
- IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
- WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
- PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
- ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
- KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
- ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
-
- b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
- TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
- NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
- INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
- COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
- USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
- DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
- IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
-
- c. The disclaimer of warranties and limitation of liability provided
- above shall be interpreted in a manner that, to the extent
- possible, most closely approximates an absolute disclaimer and
- waiver of all liability.
-
-
-Section 6 -- Term and Termination.
-
- a. This Public License applies for the term of the Copyright and
- Similar Rights licensed here. However, if You fail to comply with
- this Public License, then Your rights under this Public License
- terminate automatically.
-
- b. Where Your right to use the Licensed Material has terminated under
- Section 6(a), it reinstates:
-
- 1. automatically as of the date the violation is cured, provided
- it is cured within 30 days of Your discovery of the
- violation; or
-
- 2. upon express reinstatement by the Licensor.
-
- For the avoidance of doubt, this Section 6(b) does not affect any
- right the Licensor may have to seek remedies for Your violations
- of this Public License.
-
- c. For the avoidance of doubt, the Licensor may also offer the
- Licensed Material under separate terms or conditions or stop
- distributing the Licensed Material at any time; however, doing so
- will not terminate this Public License.
-
- d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
- License.
-
-
-Section 7 -- Other Terms and Conditions.
-
- a. The Licensor shall not be bound by any additional or different
- terms or conditions communicated by You unless expressly agreed.
-
- b. Any arrangements, understandings, or agreements regarding the
- Licensed Material not stated herein are separate from and
- independent of the terms and conditions of this Public License.
-
-
-Section 8 -- Interpretation.
-
- a. For the avoidance of doubt, this Public License does not, and
- shall not be interpreted to, reduce, limit, restrict, or impose
- conditions on any use of the Licensed Material that could lawfully
- be made without permission under this Public License.
-
- b. To the extent possible, if any provision of this Public License is
- deemed unenforceable, it shall be automatically reformed to the
- minimum extent necessary to make it enforceable. If the provision
- cannot be reformed, it shall be severed from this Public License
- without affecting the enforceability of the remaining terms and
- conditions.
-
- c. No term or condition of this Public License will be waived and no
- failure to comply consented to unless expressly agreed to by the
- Licensor.
-
- d. Nothing in this Public License constitutes or may be interpreted
- as a limitation upon, or waiver of, any privileges and immunities
- that apply to the Licensor or You, including from the legal
- processes of any jurisdiction or authority.
-
-
-=======================================================================
-
-Creative Commons is not a party to its public licenses.
-Notwithstanding, Creative Commons may elect to apply one of its public
-licenses to material it publishes and in those instances will be
-considered the "Licensor." Except for the limited purpose of indicating
-that material is shared under a Creative Commons public license or as
-otherwise permitted by the Creative Commons policies published at
-creativecommons.org/policies, Creative Commons does not authorize the
-use of the trademark "Creative Commons" or any other trademark or logo
-of Creative Commons without its prior written consent including,
-without limitation, in connection with any unauthorized modifications
-to any of its public licenses or any other arrangements,
-understandings, or agreements concerning use of licensed material. For
-the avoidance of doubt, this paragraph does not form part of the public
-licenses.
-
-Creative Commons may be contacted at creativecommons.org.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libnetwork/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libnetwork/LICENSE
deleted file mode 100644
index e06d2081..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libnetwork/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libtrust/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libtrust/LICENSE
deleted file mode 100644
index 27448585..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/libtrust/LICENSE
+++ /dev/null
@@ -1,191 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- Copyright 2014 Docker, Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/notary/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/notary/LICENSE
deleted file mode 100644
index 6daf85e9..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/notary/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2015 Docker, Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/notary/notarymysql/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/notary/notarymysql/LICENSE
deleted file mode 100644
index c8476ac0..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/docker/notary/notarymysql/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Sameer Naik
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/endophage/gotuf/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/endophage/gotuf/LICENSE
deleted file mode 100644
index d92ae9ee..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/endophage/gotuf/LICENSE
+++ /dev/null
@@ -1,30 +0,0 @@
-Copyright (c) 2015, Docker Inc.
-Copyright (c) 2014-2015 Prime Directive, Inc.
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Prime Directive, Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/fluent/fluent-logger-golang/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/fluent/fluent-logger-golang/LICENSE
deleted file mode 100644
index 1aa91de6..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/fluent/fluent-logger-golang/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright (c) 2013 Tatsuo Kaniwa
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/go-check/check/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/go-check/check/LICENSE
deleted file mode 100644
index 545cf2d3..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/go-check/check/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-Gocheck - A rich testing framework for Go
-
-Copyright (c) 2010-2013 Gustavo Niemeyer
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/godbus/dbus/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/godbus/dbus/LICENSE
deleted file mode 100644
index 06b252bc..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/godbus/dbus/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2013, Georg Reinke ()
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/golang/protobuf/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/golang/protobuf/LICENSE
deleted file mode 100644
index 1b1b1921..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/golang/protobuf/LICENSE
+++ /dev/null
@@ -1,31 +0,0 @@
-Go support for Protocol Buffers - Google's data interchange format
-
-Copyright 2010 The Go Authors. All rights reserved.
-https://github.com/golang/protobuf
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/gorilla/context/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/gorilla/context/LICENSE
deleted file mode 100644
index 0e5fb872..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/gorilla/context/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2012 Rodrigo Moraes. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/gorilla/mux/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/gorilla/mux/LICENSE
deleted file mode 100644
index 0e5fb872..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/gorilla/mux/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2012 Rodrigo Moraes. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/consul/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/consul/LICENSE
deleted file mode 100644
index c33dcc7c..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/consul/LICENSE
+++ /dev/null
@@ -1,354 +0,0 @@
-Mozilla Public License, version 2.0
-
-1. Definitions
-
-1.1. “Contributor”
-
- means each individual or legal entity that creates, contributes to the
- creation of, or owns Covered Software.
-
-1.2. “Contributor Version”
-
- means the combination of the Contributions of others (if any) used by a
- Contributor and that particular Contributor’s Contribution.
-
-1.3. “Contribution”
-
- means Covered Software of a particular Contributor.
-
-1.4. “Covered Software”
-
- means Source Code Form to which the initial Contributor has attached the
- notice in Exhibit A, the Executable Form of such Source Code Form, and
- Modifications of such Source Code Form, in each case including portions
- thereof.
-
-1.5. “Incompatible With Secondary Licenses”
- means
-
- a. that the initial Contributor has attached the notice described in
- Exhibit B to the Covered Software; or
-
- b. that the Covered Software was made available under the terms of version
- 1.1 or earlier of the License, but not also under the terms of a
- Secondary License.
-
-1.6. “Executable Form”
-
- means any form of the work other than Source Code Form.
-
-1.7. “Larger Work”
-
- means a work that combines Covered Software with other material, in a separate
- file or files, that is not Covered Software.
-
-1.8. “License”
-
- means this document.
-
-1.9. “Licensable”
-
- means having the right to grant, to the maximum extent possible, whether at the
- time of the initial grant or subsequently, any and all of the rights conveyed by
- this License.
-
-1.10. “Modifications”
-
- means any of the following:
-
- a. any file in Source Code Form that results from an addition to, deletion
- from, or modification of the contents of Covered Software; or
-
- b. any new file in Source Code Form that contains any Covered Software.
-
-1.11. “Patent Claims” of a Contributor
-
- means any patent claim(s), including without limitation, method, process,
- and apparatus claims, in any patent Licensable by such Contributor that
- would be infringed, but for the grant of the License, by the making,
- using, selling, offering for sale, having made, import, or transfer of
- either its Contributions or its Contributor Version.
-
-1.12. “Secondary License”
-
- means either the GNU General Public License, Version 2.0, the GNU Lesser
- General Public License, Version 2.1, the GNU Affero General Public
- License, Version 3.0, or any later versions of those licenses.
-
-1.13. “Source Code Form”
-
- means the form of the work preferred for making modifications.
-
-1.14. “You” (or “Your”)
-
- means an individual or a legal entity exercising rights under this
- License. For legal entities, “You” includes any entity that controls, is
- controlled by, or is under common control with You. For purposes of this
- definition, “control” means (a) the power, direct or indirect, to cause
- the direction or management of such entity, whether by contract or
- otherwise, or (b) ownership of more than fifty percent (50%) of the
- outstanding shares or beneficial ownership of such entity.
-
-
-2. License Grants and Conditions
-
-2.1. Grants
-
- Each Contributor hereby grants You a world-wide, royalty-free,
- non-exclusive license:
-
- a. under intellectual property rights (other than patent or trademark)
- Licensable by such Contributor to use, reproduce, make available,
- modify, display, perform, distribute, and otherwise exploit its
- Contributions, either on an unmodified basis, with Modifications, or as
- part of a Larger Work; and
-
- b. under Patent Claims of such Contributor to make, use, sell, offer for
- sale, have made, import, and otherwise transfer either its Contributions
- or its Contributor Version.
-
-2.2. Effective Date
-
- The licenses granted in Section 2.1 with respect to any Contribution become
- effective for each Contribution on the date the Contributor first distributes
- such Contribution.
-
-2.3. Limitations on Grant Scope
-
- The licenses granted in this Section 2 are the only rights granted under this
- License. No additional rights or licenses will be implied from the distribution
- or licensing of Covered Software under this License. Notwithstanding Section
- 2.1(b) above, no patent license is granted by a Contributor:
-
- a. for any code that a Contributor has removed from Covered Software; or
-
- b. for infringements caused by: (i) Your and any other third party’s
- modifications of Covered Software, or (ii) the combination of its
- Contributions with other software (except as part of its Contributor
- Version); or
-
- c. under Patent Claims infringed by Covered Software in the absence of its
- Contributions.
-
- This License does not grant any rights in the trademarks, service marks, or
- logos of any Contributor (except as may be necessary to comply with the
- notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
- No Contributor makes additional grants as a result of Your choice to
- distribute the Covered Software under a subsequent version of this License
- (see Section 10.2) or under the terms of a Secondary License (if permitted
- under the terms of Section 3.3).
-
-2.5. Representation
-
- Each Contributor represents that the Contributor believes its Contributions
- are its original creation(s) or it has sufficient rights to grant the
- rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
- This License is not intended to limit any rights You have under applicable
- copyright doctrines of fair use, fair dealing, or other equivalents.
-
-2.7. Conditions
-
- Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
- Section 2.1.
-
-
-3. Responsibilities
-
-3.1. Distribution of Source Form
-
- All distribution of Covered Software in Source Code Form, including any
- Modifications that You create or to which You contribute, must be under the
- terms of this License. You must inform recipients that the Source Code Form
- of the Covered Software is governed by the terms of this License, and how
- they can obtain a copy of this License. You may not attempt to alter or
- restrict the recipients’ rights in the Source Code Form.
-
-3.2. Distribution of Executable Form
-
- If You distribute Covered Software in Executable Form then:
-
- a. such Covered Software must also be made available in Source Code Form,
- as described in Section 3.1, and You must inform recipients of the
- Executable Form how they can obtain a copy of such Source Code Form by
- reasonable means in a timely manner, at a charge no more than the cost
- of distribution to the recipient; and
-
- b. You may distribute such Executable Form under the terms of this License,
- or sublicense it under different terms, provided that the license for
- the Executable Form does not attempt to limit or alter the recipients’
- rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
- You may create and distribute a Larger Work under terms of Your choice,
- provided that You also comply with the requirements of this License for the
- Covered Software. If the Larger Work is a combination of Covered Software
- with a work governed by one or more Secondary Licenses, and the Covered
- Software is not Incompatible With Secondary Licenses, this License permits
- You to additionally distribute such Covered Software under the terms of
- such Secondary License(s), so that the recipient of the Larger Work may, at
- their option, further distribute the Covered Software under the terms of
- either this License or such Secondary License(s).
-
-3.4. Notices
-
- You may not remove or alter the substance of any license notices (including
- copyright notices, patent notices, disclaimers of warranty, or limitations
- of liability) contained within the Source Code Form of the Covered
- Software, except that You may alter any license notices to the extent
- required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
- You may choose to offer, and to charge a fee for, warranty, support,
- indemnity or liability obligations to one or more recipients of Covered
- Software. However, You may do so only on Your own behalf, and not on behalf
- of any Contributor. You must make it absolutely clear that any such
- warranty, support, indemnity, or liability obligation is offered by You
- alone, and You hereby agree to indemnify every Contributor for any
- liability incurred by such Contributor as a result of warranty, support,
- indemnity or liability terms You offer. You may include additional
- disclaimers of warranty and limitations of liability specific to any
- jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
-
- If it is impossible for You to comply with any of the terms of this License
- with respect to some or all of the Covered Software due to statute, judicial
- order, or regulation then You must: (a) comply with the terms of this License
- to the maximum extent possible; and (b) describe the limitations and the code
- they affect. Such description must be placed in a text file included with all
- distributions of the Covered Software under this License. Except to the
- extent prohibited by statute or regulation, such description must be
- sufficiently detailed for a recipient of ordinary skill to be able to
- understand it.
-
-5. Termination
-
-5.1. The rights granted under this License will terminate automatically if You
- fail to comply with any of its terms. However, if You become compliant,
- then the rights granted under this License from a particular Contributor
- are reinstated (a) provisionally, unless and until such Contributor
- explicitly and finally terminates Your grants, and (b) on an ongoing basis,
- if such Contributor fails to notify You of the non-compliance by some
- reasonable means prior to 60 days after You have come back into compliance.
- Moreover, Your grants from a particular Contributor are reinstated on an
- ongoing basis if such Contributor notifies You of the non-compliance by
- some reasonable means, this is the first time You have received notice of
- non-compliance with this License from such Contributor, and You become
- compliant prior to 30 days after Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
- infringement claim (excluding declaratory judgment actions, counter-claims,
- and cross-claims) alleging that a Contributor Version directly or
- indirectly infringes any patent, then the rights granted to You by any and
- all Contributors for the Covered Software under Section 2.1 of this License
- shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
- license agreements (excluding distributors and resellers) which have been
- validly granted by You or Your distributors under this License prior to
- termination shall survive termination.
-
-6. Disclaimer of Warranty
-
- Covered Software is provided under this License on an “as is” basis, without
- warranty of any kind, either expressed, implied, or statutory, including,
- without limitation, warranties that the Covered Software is free of defects,
- merchantable, fit for a particular purpose or non-infringing. The entire
- risk as to the quality and performance of the Covered Software is with You.
- Should any Covered Software prove defective in any respect, You (not any
- Contributor) assume the cost of any necessary servicing, repair, or
- correction. This disclaimer of warranty constitutes an essential part of this
- License. No use of any Covered Software is authorized under this License
- except under this disclaimer.
-
-7. Limitation of Liability
-
- Under no circumstances and under no legal theory, whether tort (including
- negligence), contract, or otherwise, shall any Contributor, or anyone who
- distributes Covered Software as permitted above, be liable to You for any
- direct, indirect, special, incidental, or consequential damages of any
- character including, without limitation, damages for lost profits, loss of
- goodwill, work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses, even if such party shall have been
- informed of the possibility of such damages. This limitation of liability
- shall not apply to liability for death or personal injury resulting from such
- party’s negligence to the extent applicable law prohibits such limitation.
- Some jurisdictions do not allow the exclusion or limitation of incidental or
- consequential damages, so this exclusion and limitation may not apply to You.
-
-8. Litigation
-
- Any litigation relating to this License may be brought only in the courts of
- a jurisdiction where the defendant maintains its principal place of business
- and such litigation shall be governed by laws of that jurisdiction, without
- reference to its conflict-of-law provisions. Nothing in this Section shall
- prevent a party’s ability to bring cross-claims or counter-claims.
-
-9. Miscellaneous
-
- This License represents the complete agreement concerning the subject matter
- hereof. If any provision of this License is held to be unenforceable, such
- provision shall be reformed only to the extent necessary to make it
- enforceable. Any law or regulation which provides that the language of a
- contract shall be construed against the drafter shall not be used to construe
- this License against a Contributor.
-
-
-10. Versions of the License
-
-10.1. New Versions
-
- Mozilla Foundation is the license steward. Except as provided in Section
- 10.3, no one other than the license steward has the right to modify or
- publish new versions of this License. Each version will be given a
- distinguishing version number.
-
-10.2. Effect of New Versions
-
- You may distribute the Covered Software under the terms of the version of
- the License under which You originally received the Covered Software, or
- under the terms of any subsequent version published by the license
- steward.
-
-10.3. Modified Versions
-
- If you create software not governed by this License, and you want to
- create a new license for such software, you may create and use a modified
- version of this License if you rename the license and remove any
- references to the name of the license steward (except to note that such
- modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
- If You choose to distribute Source Code Form that is Incompatible With
- Secondary Licenses under the terms of this version of the License, the
- notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
-
- This Source Code Form is subject to the
- terms of the Mozilla Public License, v.
- 2.0. If a copy of the MPL was not
- distributed with this file, You can
- obtain one at
- http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular file, then
-You may include the notice in a location (such as a LICENSE file in a relevant
-directory) where a recipient would be likely to look for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - “Incompatible With Secondary Licenses” Notice
-
- This Source Code Form is “Incompatible
- With Secondary Licenses”, as defined by
- the Mozilla Public License, v. 2.0.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/consul/website/LICENSE.md b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/consul/website/LICENSE.md
deleted file mode 100644
index ac2c0646..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/consul/website/LICENSE.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Proprietary License
-
-This license is temporary while a more official one is drafted. However,
-this should make it clear:
-
-* The text contents of this website are MPL 2.0 licensed.
-
-* The design contents of this website are proprietary and may not be reproduced
- or reused in any way other than to run the Consul website locally. The license
- for the design is owned solely by HashiCorp, Inc.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/go-msgpack/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/go-msgpack/LICENSE
deleted file mode 100644
index ccae99f6..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/go-msgpack/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2012, 2013 Ugorji Nwoke.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the author nor the names of its contributors may be used
- to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/memberlist/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/memberlist/LICENSE
deleted file mode 100644
index c33dcc7c..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/memberlist/LICENSE
+++ /dev/null
@@ -1,354 +0,0 @@
-Mozilla Public License, version 2.0
-
-1. Definitions
-
-1.1. “Contributor”
-
- means each individual or legal entity that creates, contributes to the
- creation of, or owns Covered Software.
-
-1.2. “Contributor Version”
-
- means the combination of the Contributions of others (if any) used by a
- Contributor and that particular Contributor’s Contribution.
-
-1.3. “Contribution”
-
- means Covered Software of a particular Contributor.
-
-1.4. “Covered Software”
-
- means Source Code Form to which the initial Contributor has attached the
- notice in Exhibit A, the Executable Form of such Source Code Form, and
- Modifications of such Source Code Form, in each case including portions
- thereof.
-
-1.5. “Incompatible With Secondary Licenses”
- means
-
- a. that the initial Contributor has attached the notice described in
- Exhibit B to the Covered Software; or
-
- b. that the Covered Software was made available under the terms of version
- 1.1 or earlier of the License, but not also under the terms of a
- Secondary License.
-
-1.6. “Executable Form”
-
- means any form of the work other than Source Code Form.
-
-1.7. “Larger Work”
-
- means a work that combines Covered Software with other material, in a separate
- file or files, that is not Covered Software.
-
-1.8. “License”
-
- means this document.
-
-1.9. “Licensable”
-
- means having the right to grant, to the maximum extent possible, whether at the
- time of the initial grant or subsequently, any and all of the rights conveyed by
- this License.
-
-1.10. “Modifications”
-
- means any of the following:
-
- a. any file in Source Code Form that results from an addition to, deletion
- from, or modification of the contents of Covered Software; or
-
- b. any new file in Source Code Form that contains any Covered Software.
-
-1.11. “Patent Claims” of a Contributor
-
- means any patent claim(s), including without limitation, method, process,
- and apparatus claims, in any patent Licensable by such Contributor that
- would be infringed, but for the grant of the License, by the making,
- using, selling, offering for sale, having made, import, or transfer of
- either its Contributions or its Contributor Version.
-
-1.12. “Secondary License”
-
- means either the GNU General Public License, Version 2.0, the GNU Lesser
- General Public License, Version 2.1, the GNU Affero General Public
- License, Version 3.0, or any later versions of those licenses.
-
-1.13. “Source Code Form”
-
- means the form of the work preferred for making modifications.
-
-1.14. “You” (or “Your”)
-
- means an individual or a legal entity exercising rights under this
- License. For legal entities, “You” includes any entity that controls, is
- controlled by, or is under common control with You. For purposes of this
- definition, “control” means (a) the power, direct or indirect, to cause
- the direction or management of such entity, whether by contract or
- otherwise, or (b) ownership of more than fifty percent (50%) of the
- outstanding shares or beneficial ownership of such entity.
-
-
-2. License Grants and Conditions
-
-2.1. Grants
-
- Each Contributor hereby grants You a world-wide, royalty-free,
- non-exclusive license:
-
- a. under intellectual property rights (other than patent or trademark)
- Licensable by such Contributor to use, reproduce, make available,
- modify, display, perform, distribute, and otherwise exploit its
- Contributions, either on an unmodified basis, with Modifications, or as
- part of a Larger Work; and
-
- b. under Patent Claims of such Contributor to make, use, sell, offer for
- sale, have made, import, and otherwise transfer either its Contributions
- or its Contributor Version.
-
-2.2. Effective Date
-
- The licenses granted in Section 2.1 with respect to any Contribution become
- effective for each Contribution on the date the Contributor first distributes
- such Contribution.
-
-2.3. Limitations on Grant Scope
-
- The licenses granted in this Section 2 are the only rights granted under this
- License. No additional rights or licenses will be implied from the distribution
- or licensing of Covered Software under this License. Notwithstanding Section
- 2.1(b) above, no patent license is granted by a Contributor:
-
- a. for any code that a Contributor has removed from Covered Software; or
-
- b. for infringements caused by: (i) Your and any other third party’s
- modifications of Covered Software, or (ii) the combination of its
- Contributions with other software (except as part of its Contributor
- Version); or
-
- c. under Patent Claims infringed by Covered Software in the absence of its
- Contributions.
-
- This License does not grant any rights in the trademarks, service marks, or
- logos of any Contributor (except as may be necessary to comply with the
- notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
- No Contributor makes additional grants as a result of Your choice to
- distribute the Covered Software under a subsequent version of this License
- (see Section 10.2) or under the terms of a Secondary License (if permitted
- under the terms of Section 3.3).
-
-2.5. Representation
-
- Each Contributor represents that the Contributor believes its Contributions
- are its original creation(s) or it has sufficient rights to grant the
- rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
- This License is not intended to limit any rights You have under applicable
- copyright doctrines of fair use, fair dealing, or other equivalents.
-
-2.7. Conditions
-
- Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
- Section 2.1.
-
-
-3. Responsibilities
-
-3.1. Distribution of Source Form
-
- All distribution of Covered Software in Source Code Form, including any
- Modifications that You create or to which You contribute, must be under the
- terms of this License. You must inform recipients that the Source Code Form
- of the Covered Software is governed by the terms of this License, and how
- they can obtain a copy of this License. You may not attempt to alter or
- restrict the recipients’ rights in the Source Code Form.
-
-3.2. Distribution of Executable Form
-
- If You distribute Covered Software in Executable Form then:
-
- a. such Covered Software must also be made available in Source Code Form,
- as described in Section 3.1, and You must inform recipients of the
- Executable Form how they can obtain a copy of such Source Code Form by
- reasonable means in a timely manner, at a charge no more than the cost
- of distribution to the recipient; and
-
- b. You may distribute such Executable Form under the terms of this License,
- or sublicense it under different terms, provided that the license for
- the Executable Form does not attempt to limit or alter the recipients’
- rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
- You may create and distribute a Larger Work under terms of Your choice,
- provided that You also comply with the requirements of this License for the
- Covered Software. If the Larger Work is a combination of Covered Software
- with a work governed by one or more Secondary Licenses, and the Covered
- Software is not Incompatible With Secondary Licenses, this License permits
- You to additionally distribute such Covered Software under the terms of
- such Secondary License(s), so that the recipient of the Larger Work may, at
- their option, further distribute the Covered Software under the terms of
- either this License or such Secondary License(s).
-
-3.4. Notices
-
- You may not remove or alter the substance of any license notices (including
- copyright notices, patent notices, disclaimers of warranty, or limitations
- of liability) contained within the Source Code Form of the Covered
- Software, except that You may alter any license notices to the extent
- required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
- You may choose to offer, and to charge a fee for, warranty, support,
- indemnity or liability obligations to one or more recipients of Covered
- Software. However, You may do so only on Your own behalf, and not on behalf
- of any Contributor. You must make it absolutely clear that any such
- warranty, support, indemnity, or liability obligation is offered by You
- alone, and You hereby agree to indemnify every Contributor for any
- liability incurred by such Contributor as a result of warranty, support,
- indemnity or liability terms You offer. You may include additional
- disclaimers of warranty and limitations of liability specific to any
- jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
-
- If it is impossible for You to comply with any of the terms of this License
- with respect to some or all of the Covered Software due to statute, judicial
- order, or regulation then You must: (a) comply with the terms of this License
- to the maximum extent possible; and (b) describe the limitations and the code
- they affect. Such description must be placed in a text file included with all
- distributions of the Covered Software under this License. Except to the
- extent prohibited by statute or regulation, such description must be
- sufficiently detailed for a recipient of ordinary skill to be able to
- understand it.
-
-5. Termination
-
-5.1. The rights granted under this License will terminate automatically if You
- fail to comply with any of its terms. However, if You become compliant,
- then the rights granted under this License from a particular Contributor
- are reinstated (a) provisionally, unless and until such Contributor
- explicitly and finally terminates Your grants, and (b) on an ongoing basis,
- if such Contributor fails to notify You of the non-compliance by some
- reasonable means prior to 60 days after You have come back into compliance.
- Moreover, Your grants from a particular Contributor are reinstated on an
- ongoing basis if such Contributor notifies You of the non-compliance by
- some reasonable means, this is the first time You have received notice of
- non-compliance with this License from such Contributor, and You become
- compliant prior to 30 days after Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
- infringement claim (excluding declaratory judgment actions, counter-claims,
- and cross-claims) alleging that a Contributor Version directly or
- indirectly infringes any patent, then the rights granted to You by any and
- all Contributors for the Covered Software under Section 2.1 of this License
- shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
- license agreements (excluding distributors and resellers) which have been
- validly granted by You or Your distributors under this License prior to
- termination shall survive termination.
-
-6. Disclaimer of Warranty
-
- Covered Software is provided under this License on an “as is” basis, without
- warranty of any kind, either expressed, implied, or statutory, including,
- without limitation, warranties that the Covered Software is free of defects,
- merchantable, fit for a particular purpose or non-infringing. The entire
- risk as to the quality and performance of the Covered Software is with You.
- Should any Covered Software prove defective in any respect, You (not any
- Contributor) assume the cost of any necessary servicing, repair, or
- correction. This disclaimer of warranty constitutes an essential part of this
- License. No use of any Covered Software is authorized under this License
- except under this disclaimer.
-
-7. Limitation of Liability
-
- Under no circumstances and under no legal theory, whether tort (including
- negligence), contract, or otherwise, shall any Contributor, or anyone who
- distributes Covered Software as permitted above, be liable to You for any
- direct, indirect, special, incidental, or consequential damages of any
- character including, without limitation, damages for lost profits, loss of
- goodwill, work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses, even if such party shall have been
- informed of the possibility of such damages. This limitation of liability
- shall not apply to liability for death or personal injury resulting from such
- party’s negligence to the extent applicable law prohibits such limitation.
- Some jurisdictions do not allow the exclusion or limitation of incidental or
- consequential damages, so this exclusion and limitation may not apply to You.
-
-8. Litigation
-
- Any litigation relating to this License may be brought only in the courts of
- a jurisdiction where the defendant maintains its principal place of business
- and such litigation shall be governed by laws of that jurisdiction, without
- reference to its conflict-of-law provisions. Nothing in this Section shall
- prevent a party’s ability to bring cross-claims or counter-claims.
-
-9. Miscellaneous
-
- This License represents the complete agreement concerning the subject matter
- hereof. If any provision of this License is held to be unenforceable, such
- provision shall be reformed only to the extent necessary to make it
- enforceable. Any law or regulation which provides that the language of a
- contract shall be construed against the drafter shall not be used to construe
- this License against a Contributor.
-
-
-10. Versions of the License
-
-10.1. New Versions
-
- Mozilla Foundation is the license steward. Except as provided in Section
- 10.3, no one other than the license steward has the right to modify or
- publish new versions of this License. Each version will be given a
- distinguishing version number.
-
-10.2. Effect of New Versions
-
- You may distribute the Covered Software under the terms of the version of
- the License under which You originally received the Covered Software, or
- under the terms of any subsequent version published by the license
- steward.
-
-10.3. Modified Versions
-
- If you create software not governed by this License, and you want to
- create a new license for such software, you may create and use a modified
- version of this License if you rename the license and remove any
- references to the name of the license steward (except to note that such
- modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
- If You choose to distribute Source Code Form that is Incompatible With
- Secondary Licenses under the terms of this version of the License, the
- notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
-
- This Source Code Form is subject to the
- terms of the Mozilla Public License, v.
- 2.0. If a copy of the MPL was not
- distributed with this file, You can
- obtain one at
- http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular file, then
-You may include the notice in a location (such as a LICENSE file in a relevant
-directory) where a recipient would be likely to look for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - “Incompatible With Secondary Licenses” Notice
-
- This Source Code Form is “Incompatible
- With Secondary Licenses”, as defined by
- the Mozilla Public License, v. 2.0.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/serf/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/serf/LICENSE
deleted file mode 100644
index c33dcc7c..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/serf/LICENSE
+++ /dev/null
@@ -1,354 +0,0 @@
-Mozilla Public License, version 2.0
-
-1. Definitions
-
-1.1. “Contributor”
-
- means each individual or legal entity that creates, contributes to the
- creation of, or owns Covered Software.
-
-1.2. “Contributor Version”
-
- means the combination of the Contributions of others (if any) used by a
- Contributor and that particular Contributor’s Contribution.
-
-1.3. “Contribution”
-
- means Covered Software of a particular Contributor.
-
-1.4. “Covered Software”
-
- means Source Code Form to which the initial Contributor has attached the
- notice in Exhibit A, the Executable Form of such Source Code Form, and
- Modifications of such Source Code Form, in each case including portions
- thereof.
-
-1.5. “Incompatible With Secondary Licenses”
- means
-
- a. that the initial Contributor has attached the notice described in
- Exhibit B to the Covered Software; or
-
- b. that the Covered Software was made available under the terms of version
- 1.1 or earlier of the License, but not also under the terms of a
- Secondary License.
-
-1.6. “Executable Form”
-
- means any form of the work other than Source Code Form.
-
-1.7. “Larger Work”
-
- means a work that combines Covered Software with other material, in a separate
- file or files, that is not Covered Software.
-
-1.8. “License”
-
- means this document.
-
-1.9. “Licensable”
-
- means having the right to grant, to the maximum extent possible, whether at the
- time of the initial grant or subsequently, any and all of the rights conveyed by
- this License.
-
-1.10. “Modifications”
-
- means any of the following:
-
- a. any file in Source Code Form that results from an addition to, deletion
- from, or modification of the contents of Covered Software; or
-
- b. any new file in Source Code Form that contains any Covered Software.
-
-1.11. “Patent Claims” of a Contributor
-
- means any patent claim(s), including without limitation, method, process,
- and apparatus claims, in any patent Licensable by such Contributor that
- would be infringed, but for the grant of the License, by the making,
- using, selling, offering for sale, having made, import, or transfer of
- either its Contributions or its Contributor Version.
-
-1.12. “Secondary License”
-
- means either the GNU General Public License, Version 2.0, the GNU Lesser
- General Public License, Version 2.1, the GNU Affero General Public
- License, Version 3.0, or any later versions of those licenses.
-
-1.13. “Source Code Form”
-
- means the form of the work preferred for making modifications.
-
-1.14. “You” (or “Your”)
-
- means an individual or a legal entity exercising rights under this
- License. For legal entities, “You” includes any entity that controls, is
- controlled by, or is under common control with You. For purposes of this
- definition, “control” means (a) the power, direct or indirect, to cause
- the direction or management of such entity, whether by contract or
- otherwise, or (b) ownership of more than fifty percent (50%) of the
- outstanding shares or beneficial ownership of such entity.
-
-
-2. License Grants and Conditions
-
-2.1. Grants
-
- Each Contributor hereby grants You a world-wide, royalty-free,
- non-exclusive license:
-
- a. under intellectual property rights (other than patent or trademark)
- Licensable by such Contributor to use, reproduce, make available,
- modify, display, perform, distribute, and otherwise exploit its
- Contributions, either on an unmodified basis, with Modifications, or as
- part of a Larger Work; and
-
- b. under Patent Claims of such Contributor to make, use, sell, offer for
- sale, have made, import, and otherwise transfer either its Contributions
- or its Contributor Version.
-
-2.2. Effective Date
-
- The licenses granted in Section 2.1 with respect to any Contribution become
- effective for each Contribution on the date the Contributor first distributes
- such Contribution.
-
-2.3. Limitations on Grant Scope
-
- The licenses granted in this Section 2 are the only rights granted under this
- License. No additional rights or licenses will be implied from the distribution
- or licensing of Covered Software under this License. Notwithstanding Section
- 2.1(b) above, no patent license is granted by a Contributor:
-
- a. for any code that a Contributor has removed from Covered Software; or
-
- b. for infringements caused by: (i) Your and any other third party’s
- modifications of Covered Software, or (ii) the combination of its
- Contributions with other software (except as part of its Contributor
- Version); or
-
- c. under Patent Claims infringed by Covered Software in the absence of its
- Contributions.
-
- This License does not grant any rights in the trademarks, service marks, or
- logos of any Contributor (except as may be necessary to comply with the
- notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
- No Contributor makes additional grants as a result of Your choice to
- distribute the Covered Software under a subsequent version of this License
- (see Section 10.2) or under the terms of a Secondary License (if permitted
- under the terms of Section 3.3).
-
-2.5. Representation
-
- Each Contributor represents that the Contributor believes its Contributions
- are its original creation(s) or it has sufficient rights to grant the
- rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
- This License is not intended to limit any rights You have under applicable
- copyright doctrines of fair use, fair dealing, or other equivalents.
-
-2.7. Conditions
-
- Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
- Section 2.1.
-
-
-3. Responsibilities
-
-3.1. Distribution of Source Form
-
- All distribution of Covered Software in Source Code Form, including any
- Modifications that You create or to which You contribute, must be under the
- terms of this License. You must inform recipients that the Source Code Form
- of the Covered Software is governed by the terms of this License, and how
- they can obtain a copy of this License. You may not attempt to alter or
- restrict the recipients’ rights in the Source Code Form.
-
-3.2. Distribution of Executable Form
-
- If You distribute Covered Software in Executable Form then:
-
- a. such Covered Software must also be made available in Source Code Form,
- as described in Section 3.1, and You must inform recipients of the
- Executable Form how they can obtain a copy of such Source Code Form by
- reasonable means in a timely manner, at a charge no more than the cost
- of distribution to the recipient; and
-
- b. You may distribute such Executable Form under the terms of this License,
- or sublicense it under different terms, provided that the license for
- the Executable Form does not attempt to limit or alter the recipients’
- rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
- You may create and distribute a Larger Work under terms of Your choice,
- provided that You also comply with the requirements of this License for the
- Covered Software. If the Larger Work is a combination of Covered Software
- with a work governed by one or more Secondary Licenses, and the Covered
- Software is not Incompatible With Secondary Licenses, this License permits
- You to additionally distribute such Covered Software under the terms of
- such Secondary License(s), so that the recipient of the Larger Work may, at
- their option, further distribute the Covered Software under the terms of
- either this License or such Secondary License(s).
-
-3.4. Notices
-
- You may not remove or alter the substance of any license notices (including
- copyright notices, patent notices, disclaimers of warranty, or limitations
- of liability) contained within the Source Code Form of the Covered
- Software, except that You may alter any license notices to the extent
- required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
- You may choose to offer, and to charge a fee for, warranty, support,
- indemnity or liability obligations to one or more recipients of Covered
- Software. However, You may do so only on Your own behalf, and not on behalf
- of any Contributor. You must make it absolutely clear that any such
- warranty, support, indemnity, or liability obligation is offered by You
- alone, and You hereby agree to indemnify every Contributor for any
- liability incurred by such Contributor as a result of warranty, support,
- indemnity or liability terms You offer. You may include additional
- disclaimers of warranty and limitations of liability specific to any
- jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
-
- If it is impossible for You to comply with any of the terms of this License
- with respect to some or all of the Covered Software due to statute, judicial
- order, or regulation then You must: (a) comply with the terms of this License
- to the maximum extent possible; and (b) describe the limitations and the code
- they affect. Such description must be placed in a text file included with all
- distributions of the Covered Software under this License. Except to the
- extent prohibited by statute or regulation, such description must be
- sufficiently detailed for a recipient of ordinary skill to be able to
- understand it.
-
-5. Termination
-
-5.1. The rights granted under this License will terminate automatically if You
- fail to comply with any of its terms. However, if You become compliant,
- then the rights granted under this License from a particular Contributor
- are reinstated (a) provisionally, unless and until such Contributor
- explicitly and finally terminates Your grants, and (b) on an ongoing basis,
- if such Contributor fails to notify You of the non-compliance by some
- reasonable means prior to 60 days after You have come back into compliance.
- Moreover, Your grants from a particular Contributor are reinstated on an
- ongoing basis if such Contributor notifies You of the non-compliance by
- some reasonable means, this is the first time You have received notice of
- non-compliance with this License from such Contributor, and You become
- compliant prior to 30 days after Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
- infringement claim (excluding declaratory judgment actions, counter-claims,
- and cross-claims) alleging that a Contributor Version directly or
- indirectly infringes any patent, then the rights granted to You by any and
- all Contributors for the Covered Software under Section 2.1 of this License
- shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
- license agreements (excluding distributors and resellers) which have been
- validly granted by You or Your distributors under this License prior to
- termination shall survive termination.
-
-6. Disclaimer of Warranty
-
- Covered Software is provided under this License on an “as is” basis, without
- warranty of any kind, either expressed, implied, or statutory, including,
- without limitation, warranties that the Covered Software is free of defects,
- merchantable, fit for a particular purpose or non-infringing. The entire
- risk as to the quality and performance of the Covered Software is with You.
- Should any Covered Software prove defective in any respect, You (not any
- Contributor) assume the cost of any necessary servicing, repair, or
- correction. This disclaimer of warranty constitutes an essential part of this
- License. No use of any Covered Software is authorized under this License
- except under this disclaimer.
-
-7. Limitation of Liability
-
- Under no circumstances and under no legal theory, whether tort (including
- negligence), contract, or otherwise, shall any Contributor, or anyone who
- distributes Covered Software as permitted above, be liable to You for any
- direct, indirect, special, incidental, or consequential damages of any
- character including, without limitation, damages for lost profits, loss of
- goodwill, work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses, even if such party shall have been
- informed of the possibility of such damages. This limitation of liability
- shall not apply to liability for death or personal injury resulting from such
- party’s negligence to the extent applicable law prohibits such limitation.
- Some jurisdictions do not allow the exclusion or limitation of incidental or
- consequential damages, so this exclusion and limitation may not apply to You.
-
-8. Litigation
-
- Any litigation relating to this License may be brought only in the courts of
- a jurisdiction where the defendant maintains its principal place of business
- and such litigation shall be governed by laws of that jurisdiction, without
- reference to its conflict-of-law provisions. Nothing in this Section shall
- prevent a party’s ability to bring cross-claims or counter-claims.
-
-9. Miscellaneous
-
- This License represents the complete agreement concerning the subject matter
- hereof. If any provision of this License is held to be unenforceable, such
- provision shall be reformed only to the extent necessary to make it
- enforceable. Any law or regulation which provides that the language of a
- contract shall be construed against the drafter shall not be used to construe
- this License against a Contributor.
-
-
-10. Versions of the License
-
-10.1. New Versions
-
- Mozilla Foundation is the license steward. Except as provided in Section
- 10.3, no one other than the license steward has the right to modify or
- publish new versions of this License. Each version will be given a
- distinguishing version number.
-
-10.2. Effect of New Versions
-
- You may distribute the Covered Software under the terms of the version of
- the License under which You originally received the Covered Software, or
- under the terms of any subsequent version published by the license
- steward.
-
-10.3. Modified Versions
-
- If you create software not governed by this License, and you want to
- create a new license for such software, you may create and use a modified
- version of this License if you rename the license and remove any
- references to the name of the license steward (except to note that such
- modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
- If You choose to distribute Source Code Form that is Incompatible With
- Secondary Licenses under the terms of this version of the License, the
- notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
-
- This Source Code Form is subject to the
- terms of the Mozilla Public License, v.
- 2.0. If a copy of the MPL was not
- distributed with this file, You can
- obtain one at
- http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular file, then
-You may include the notice in a location (such as a LICENSE file in a relevant
-directory) where a recipient would be likely to look for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - “Incompatible With Secondary Licenses” Notice
-
- This Source Code Form is “Incompatible
- With Secondary Licenses”, as defined by
- the Mozilla Public License, v. 2.0.
-
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/serf/website/LICENSE.md b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/serf/website/LICENSE.md
deleted file mode 100644
index 36c29d7f..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/serf/website/LICENSE.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Proprietary License
-
-This license is temporary while a more official one is drafted. However,
-this should make it clear:
-
-* The text contents of this website are MPL 2.0 licensed.
-
-* The design contents of this website are proprietary and may not be reproduced
- or reused in any way other than to run the Serf website locally. The license
- for the design is owned solely by HashiCorp, Inc.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/kr/pty/License b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/kr/pty/License
deleted file mode 100644
index 6b7558b6..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/kr/pty/License
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright (c) 2011 Keith Rarick
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/mattn/go-sqlite3/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/mattn/go-sqlite3/LICENSE
deleted file mode 100644
index ca458bb3..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/mattn/go-sqlite3/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Yasuhiro Matsumoto
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/microsoft/hcsshim/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/microsoft/hcsshim/LICENSE
deleted file mode 100644
index b8b569d7..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/microsoft/hcsshim/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Microsoft
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/mistifyio/go-zfs/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/mistifyio/go-zfs/LICENSE
deleted file mode 100644
index f4c265cf..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/mistifyio/go-zfs/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright (c) 2014, OmniTI Computer Consulting, Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/opencontainers/runc/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/opencontainers/runc/LICENSE
deleted file mode 100644
index 27448585..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/opencontainers/runc/LICENSE
+++ /dev/null
@@ -1,191 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- Copyright 2014 Docker, Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/samuel/go-zookeeper/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/samuel/go-zookeeper/LICENSE
deleted file mode 100644
index bc00498c..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/samuel/go-zookeeper/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2013, Samuel Stauffer
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-* Neither the name of the author nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/syndtr/gocapability/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/syndtr/gocapability/LICENSE
deleted file mode 100644
index 80dd96de..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/syndtr/gocapability/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-Copyright 2013 Suryandaru Triandana
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/tchap/go-patricia/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/tchap/go-patricia/LICENSE
deleted file mode 100644
index e50d398e..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/tchap/go-patricia/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 The AUTHORS
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/ugorji/go/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/ugorji/go/LICENSE
deleted file mode 100644
index 95a0f054..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/ugorji/go/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2012-2015 Ugorji Nwoke.
-All rights reserved.
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vaughan0/go-ini/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vaughan0/go-ini/LICENSE
deleted file mode 100644
index 968b4538..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vaughan0/go-ini/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) 2013 Vaughan Newton
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vbatts/tar-split/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vbatts/tar-split/LICENSE
deleted file mode 100644
index 8ba54919..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vbatts/tar-split/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2015 Vincent Batts, Raleigh, NC, USA
-
-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/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vishvananda/netlink/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vishvananda/netlink/LICENSE
deleted file mode 100644
index 9f64db85..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vishvananda/netlink/LICENSE
+++ /dev/null
@@ -1,192 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- Copyright 2014 Vishvananda Ishaya.
- Copyright 2014 Docker, Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vishvananda/netns/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vishvananda/netns/LICENSE
deleted file mode 100644
index 9f64db85..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/vishvananda/netns/LICENSE
+++ /dev/null
@@ -1,192 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- Copyright 2014 Vishvananda Ishaya.
- Copyright 2014 Docker, Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/golang.org/x/net/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/golang.org/x/net/LICENSE
deleted file mode 100644
index 6a66aea5..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/golang.org/x/net/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009 The Go Authors. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/gopkg.in/fsnotify.v1/LICENSE b/Godeps/_workspace/src/github.com/docker/docker/vendor/src/gopkg.in/fsnotify.v1/LICENSE
deleted file mode 100644
index f21e5408..00000000
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/gopkg.in/fsnotify.v1/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2012 The Go Authors. All rights reserved.
-Copyright (c) 2012 fsnotify Authors. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/AUTHORS b/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/AUTHORS
deleted file mode 100644
index fa15cf96..00000000
--- a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/AUTHORS
+++ /dev/null
@@ -1,134 +0,0 @@
-# This is the official list of go-dockerclient authors for copyright purposes.
-
-Abhishek Chanda
-Adam Bell-Hanssen
-Adrien Kohlbecker
-Aldrin Leal
-Andreas Jaekle
-Andrews Medina
-Andrey Sibiryov
-Andy Goldstein
-Antonio Murdaca
-Artem Sidorenko
-Ben Marini
-Ben McCann
-Ben Parees
-Benno van den Berg
-Bradley Cicenas
-Brendan Fosberry
-Brian Lalor
-Brian P. Hamachek
-Brian Palmer
-Bryan Boreham
-Burke Libbey
-Carlos Diaz-Padron
-Cesar Wong
-Cezar Sa Espinola
-Cheah Chu Yeow
-cheneydeng
-Chris Bednarski
-CMGS
-Colin Hebert
-Craig Jellick
-Dan Williams
-Daniel, Dao Quang Minh
-Daniel Garcia
-Daniel Hiltgen
-Darren Shepherd
-Dave Choi
-David Huie
-Dawn Chen
-Dinesh Subhraveti
-Drew Wells
-Ed
-Elias G. Schneevoigt
-Erez Horev
-Eric Anderson
-Ewout Prangsma
-Fabio Rehm
-Fatih Arslan
-Flavia Missi
-Francisco Souza
-Frank Groeneveld
-George Moura
-Grégoire Delattre
-Guillermo Álvarez Fernández
-Harry Zhang
-He Simei
-Ivan Mikushin
-James Bardin
-James Nugent
-Jari Kolehmainen
-Jason Wilder
-Jawher Moussa
-Jean-Baptiste Dalido
-Jeff Mitchell
-Jeffrey Hulten
-Jen Andre
-Jérôme Laurens
-Johan Euphrosine
-John Hughes
-Kamil Domanski
-Karan Misra
-Ken Herner
-Kim, Hirokuni
-Kyle Allan
-Liron Levin
-Lior Yankovich
-Liu Peng
-Lorenz Leutgeb
-Lucas Clemente
-Lucas Weiblen
-Lyon Hill
-Mantas Matelis
-Martin Sweeney
-Máximo Cuadros Ortiz
-Michael Schmatz
-Michal Fojtik
-Mike Dillon
-Mrunal Patel
-Nate Jones
-Nguyen Sy Thanh Son
-Nicholas Van Wiggeren
-Nick Ethier
-Omeid Matten
-Orivej Desh
-Paul Bellamy
-Paul Morie
-Paul Weil
-Peter Edge
-Peter Jihoon Kim
-Phil Lu
-Philippe Lafoucrière
-Rafe Colton
-Raphaël Pinson
-Rob Miller
-Robert Williamson
-Roman Khlystik
-Salvador Gironès
-Sam Rijs
-Sami Wagiaalla
-Samuel Archambault
-Samuel Karp
-Seth Jennings
-Silas Sewell
-Simon Eskildsen
-Simon Menke
-Skolos
-Soulou
-Sridhar Ratnakumar
-Summer Mousa
-Sunjin Lee
-Tarsis Azevedo
-Tim Schindler
-Timothy St. Clair
-Tobi Knaup
-Tom Wilkie
-Tonic
-ttyh061
-Victor Marmol
-Vincenzo Prignano
-Wiliam Souza
-Ye Yin
-Yu, Zou
-Yuriy Bogdanov
diff --git a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/Makefile b/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/Makefile
deleted file mode 100644
index dd8c73b1..00000000
--- a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/Makefile
+++ /dev/null
@@ -1,57 +0,0 @@
-.PHONY: \
- all \
- vendor \
- lint \
- vet \
- fmt \
- fmtcheck \
- pretest \
- test \
- integration \
- cov \
- clean
-
-PKGS = . ./testing
-
-all: test
-
-vendor:
- @ go get -v github.com/mjibson/party
- party -d external -c -u
-
-lint:
- @ go get -v github.com/golang/lint/golint
- @for file in $$(git ls-files '*.go' | grep -v 'external/'); do \
- export output="$$(golint $${file} | grep -v 'type name will be used as docker.DockerInfo')"; \
- [ -n "$${output}" ] && echo "$${output}" && export status=1; \
- done; \
- exit $${status:-0}
-
-vet:
- $(foreach pkg,$(PKGS),go vet $(pkg);)
-
-fmt:
- gofmt -s -w $(PKGS)
-
-fmtcheck:
- @ export output=$$(gofmt -s -d $(PKGS)); \
- [ -n "$${output}" ] && echo "$${output}" && export status=1; \
- exit $${status:-0}
-
-pretest: lint vet fmtcheck
-
-gotest:
- $(foreach pkg,$(PKGS),go test $(pkg) || exit;)
-
-test: pretest gotest
-
-integration:
- go test -tags docker_integration -run TestIntegration -v
-
-cov:
- @ go get -v github.com/axw/gocov/gocov
- @ go get golang.org/x/tools/cmd/cover
- gocov test | gocov report
-
-clean:
- $(foreach pkg,$(PKGS),go clean $(pkg) || exit;)
diff --git a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/README.markdown b/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/README.markdown
deleted file mode 100644
index 234b9e49..00000000
--- a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/README.markdown
+++ /dev/null
@@ -1,106 +0,0 @@
-# go-dockerclient
-
-[](https://travis-ci.org/fsouza/go-dockerclient)
-[](https://godoc.org/github.com/fsouza/go-dockerclient)
-
-This package presents a client for the Docker remote API. It also provides
-support for the extensions in the [Swarm API](https://docs.docker.com/swarm/swarm-api/).
-It currently supports the Docker API up to version 1.23.
-
-This package also provides support for docker's network API, which is a simple
-passthrough to the libnetwork remote API. Note that docker's network API is
-only available in docker 1.8 and above, and only enabled in docker if
-DOCKER_EXPERIMENTAL is defined during the docker build process.
-
-For more details, check the [remote API documentation](http://docs.docker.com/engine/reference/api/docker_remote_api/).
-
-## Vendoring
-
-If you are having issues with Go 1.5 and have `GO15VENDOREXPERIMENT` set with an application that has go-dockerclient vendored,
-please update your vendoring of go-dockerclient :) We recently moved the `vendor` directory to `external` so that go-dockerclient
-is compatible with this configuration. See [338](https://github.com/fsouza/go-dockerclient/issues/338) and [339](https://github.com/fsouza/go-dockerclient/pull/339)
-for details.
-
-## Example
-
-```go
-package main
-
-import (
- "fmt"
-
- "github.com/fsouza/go-dockerclient"
-)
-
-func main() {
- endpoint := "unix:///var/run/docker.sock"
- client, _ := docker.NewClient(endpoint)
- imgs, _ := client.ListImages(docker.ListImagesOptions{All: false})
- for _, img := range imgs {
- fmt.Println("ID: ", img.ID)
- fmt.Println("RepoTags: ", img.RepoTags)
- fmt.Println("Created: ", img.Created)
- fmt.Println("Size: ", img.Size)
- fmt.Println("VirtualSize: ", img.VirtualSize)
- fmt.Println("ParentId: ", img.ParentID)
- }
-}
-```
-
-## Using with TLS
-
-In order to instantiate the client for a TLS-enabled daemon, you should use NewTLSClient, passing the endpoint and path for key and certificates as parameters.
-
-```go
-package main
-
-import (
- "fmt"
-
- "github.com/fsouza/go-dockerclient"
-)
-
-func main() {
- endpoint := "tcp://[ip]:[port]"
- path := os.Getenv("DOCKER_CERT_PATH")
- ca := fmt.Sprintf("%s/ca.pem", path)
- cert := fmt.Sprintf("%s/cert.pem", path)
- key := fmt.Sprintf("%s/key.pem", path)
- client, _ := docker.NewTLSClient(endpoint, cert, key, ca)
- // use client
-}
-```
-
-If using [docker-machine](https://docs.docker.com/machine/), or another application that exports environment variables
-`DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKER_CERT_PATH`, you can use NewClientFromEnv.
-
-
-```go
-package main
-
-import (
- "fmt"
-
- "github.com/fsouza/go-dockerclient"
-)
-
-func main() {
- client, _ := docker.NewClientFromEnv()
- // use client
-}
-```
-
-See the documentation for more details.
-
-## Developing
-
-All development commands can be seen in the [Makefile](Makefile).
-
-Commited code must pass:
-
-* [golint](https://github.com/golang/lint)
-* [go vet](https://godoc.org/golang.org/x/tools/cmd/vet)
-* [gofmt](https://golang.org/cmd/gofmt)
-* [go test](https://golang.org/cmd/go/#hdr-Test_packages)
-
-Running `make test` will check all of these. If your editor does not automatically call gofmt, `make fmt` will format all go files in this repository.
diff --git a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/auth.go b/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/auth.go
deleted file mode 100644
index 95596d78..00000000
--- a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/auth.go
+++ /dev/null
@@ -1,158 +0,0 @@
-// Copyright 2015 go-dockerclient authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package docker
-
-import (
- "bytes"
- "encoding/base64"
- "encoding/json"
- "errors"
- "fmt"
- "io"
- "io/ioutil"
- "os"
- "path"
- "strings"
-)
-
-// ErrCannotParseDockercfg is the error returned by NewAuthConfigurations when the dockercfg cannot be parsed.
-var ErrCannotParseDockercfg = errors.New("Failed to read authentication from dockercfg")
-
-// AuthConfiguration represents authentication options to use in the PushImage
-// method. It represents the authentication in the Docker index server.
-type AuthConfiguration struct {
- Username string `json:"username,omitempty"`
- Password string `json:"password,omitempty"`
- Email string `json:"email,omitempty"`
- ServerAddress string `json:"serveraddress,omitempty"`
-}
-
-// AuthConfigurations represents authentication options to use for the
-// PushImage method accommodating the new X-Registry-Config header
-type AuthConfigurations struct {
- Configs map[string]AuthConfiguration `json:"configs"`
-}
-
-// AuthConfigurations119 is used to serialize a set of AuthConfigurations
-// for Docker API >= 1.19.
-type AuthConfigurations119 map[string]AuthConfiguration
-
-// dockerConfig represents a registry authentation configuration from the
-// .dockercfg file.
-type dockerConfig struct {
- Auth string `json:"auth"`
- Email string `json:"email"`
-}
-
-// NewAuthConfigurationsFromDockerCfg returns AuthConfigurations from the
-// ~/.dockercfg file.
-func NewAuthConfigurationsFromDockerCfg() (*AuthConfigurations, error) {
- var r io.Reader
- var err error
- p := path.Join(os.Getenv("HOME"), ".docker", "config.json")
- r, err = os.Open(p)
- if err != nil {
- p := path.Join(os.Getenv("HOME"), ".dockercfg")
- r, err = os.Open(p)
- if err != nil {
- return nil, err
- }
- }
- return NewAuthConfigurations(r)
-}
-
-// NewAuthConfigurations returns AuthConfigurations from a JSON encoded string in the
-// same format as the .dockercfg file.
-func NewAuthConfigurations(r io.Reader) (*AuthConfigurations, error) {
- var auth *AuthConfigurations
- confs, err := parseDockerConfig(r)
- if err != nil {
- return nil, err
- }
- auth, err = authConfigs(confs)
- if err != nil {
- return nil, err
- }
- return auth, nil
-}
-
-func parseDockerConfig(r io.Reader) (map[string]dockerConfig, error) {
- buf := new(bytes.Buffer)
- buf.ReadFrom(r)
- byteData := buf.Bytes()
-
- confsWrapper := struct {
- Auths map[string]dockerConfig `json:"auths"`
- }{}
- if err := json.Unmarshal(byteData, &confsWrapper); err == nil {
- if len(confsWrapper.Auths) > 0 {
- return confsWrapper.Auths, nil
- }
- }
-
- var confs map[string]dockerConfig
- if err := json.Unmarshal(byteData, &confs); err != nil {
- return nil, err
- }
- return confs, nil
-}
-
-// authConfigs converts a dockerConfigs map to a AuthConfigurations object.
-func authConfigs(confs map[string]dockerConfig) (*AuthConfigurations, error) {
- c := &AuthConfigurations{
- Configs: make(map[string]AuthConfiguration),
- }
- for reg, conf := range confs {
- data, err := base64.StdEncoding.DecodeString(conf.Auth)
- if err != nil {
- return nil, err
- }
- userpass := strings.SplitN(string(data), ":", 2)
- if len(userpass) != 2 {
- return nil, ErrCannotParseDockercfg
- }
- c.Configs[reg] = AuthConfiguration{
- Email: conf.Email,
- Username: userpass[0],
- Password: userpass[1],
- ServerAddress: reg,
- }
- }
- return c, nil
-}
-
-// AuthStatus returns the authentication status for Docker API versions >= 1.23.
-type AuthStatus struct {
- Status string `json:"Status,omitempty" yaml:"Status,omitempty"`
- IdentityToken string `json:"IdentityToken,omitempty" yaml:"IdentityToken,omitempty"`
-}
-
-// AuthCheck validates the given credentials. It returns nil if successful.
-//
-// For Docker API versions >= 1.23, the AuthStatus struct will be populated, otherwise it will be empty.`
-//
-// See https://goo.gl/6nsZkH for more details.
-func (c *Client) AuthCheck(conf *AuthConfiguration) (AuthStatus, error) {
- var authStatus AuthStatus
- if conf == nil {
- return authStatus, fmt.Errorf("conf is nil")
- }
- resp, err := c.do("POST", "/auth", doOptions{data: conf})
- if err != nil {
- return authStatus, err
- }
- defer resp.Body.Close()
- data, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return authStatus, err
- }
- if len(data) == 0 {
- return authStatus, nil
- }
- if err := json.Unmarshal(data, &authStatus); err != nil {
- return authStatus, err
- }
- return authStatus, nil
-}
diff --git a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/container.go b/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/container.go
deleted file mode 100644
index 99db6855..00000000
--- a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/container.go
+++ /dev/null
@@ -1,1314 +0,0 @@
-// Copyright 2015 go-dockerclient authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package docker
-
-import (
- "encoding/json"
- "errors"
- "fmt"
- "io"
- "net/http"
- "net/url"
- "strconv"
- "strings"
- "time"
-
- "github.com/fsouza/go-dockerclient/external/github.com/docker/go-units"
-)
-
-// ErrContainerAlreadyExists is the error returned by CreateContainer when the
-// container already exists.
-var ErrContainerAlreadyExists = errors.New("container already exists")
-
-// ListContainersOptions specify parameters to the ListContainers function.
-//
-// See https://goo.gl/47a6tO for more details.
-type ListContainersOptions struct {
- All bool
- Size bool
- Limit int
- Since string
- Before string
- Filters map[string][]string
-}
-
-// APIPort is a type that represents a port mapping returned by the Docker API
-type APIPort struct {
- PrivatePort int64 `json:"PrivatePort,omitempty" yaml:"PrivatePort,omitempty"`
- PublicPort int64 `json:"PublicPort,omitempty" yaml:"PublicPort,omitempty"`
- Type string `json:"Type,omitempty" yaml:"Type,omitempty"`
- IP string `json:"IP,omitempty" yaml:"IP,omitempty"`
-}
-
-// APIMount represents a mount point for a container.
-type APIMount struct {
- Name string `json:"Name,omitempty" yaml:"Name,omitempty"`
- Source string `json:"Source,omitempty" yaml:"Source,omitempty"`
- Destination string `json:"Destination,omitempty" yaml:"Destination,omitempty"`
- Driver string `json:"Driver,omitempty" yaml:"Driver,omitempty"`
- Mode string `json:"Mode,omitempty" yaml:"Mode,omitempty"`
- RW bool `json:"RW,omitempty" yaml:"RW,omitempty"`
- Propogation string `json:"Propogation,omitempty" yaml:"Propogation,omitempty"`
-}
-
-// APIContainers represents each container in the list returned by
-// ListContainers.
-type APIContainers struct {
- ID string `json:"Id" yaml:"Id"`
- Image string `json:"Image,omitempty" yaml:"Image,omitempty"`
- Command string `json:"Command,omitempty" yaml:"Command,omitempty"`
- Created int64 `json:"Created,omitempty" yaml:"Created,omitempty"`
- State string `json:"State,omitempty" yaml:"State,omitempty"`
- Status string `json:"Status,omitempty" yaml:"Status,omitempty"`
- Ports []APIPort `json:"Ports,omitempty" yaml:"Ports,omitempty"`
- SizeRw int64 `json:"SizeRw,omitempty" yaml:"SizeRw,omitempty"`
- SizeRootFs int64 `json:"SizeRootFs,omitempty" yaml:"SizeRootFs,omitempty"`
- Names []string `json:"Names,omitempty" yaml:"Names,omitempty"`
- Labels map[string]string `json:"Labels,omitempty" yaml:"Labels,omitempty"`
- Networks NetworkList `json:"NetworkSettings,omitempty" yaml:"NetworkSettings,omitempty"`
- Mounts []APIMount `json:"Mounts,omitempty" yaml:"Mounts,omitempty"`
-}
-
-// NetworkList encapsulates a map of networks, as returned by the Docker API in
-// ListContainers.
-type NetworkList struct {
- Networks map[string]ContainerNetwork `json:"Networks" yaml:"Networks,omitempty"`
-}
-
-// ListContainers returns a slice of containers matching the given criteria.
-//
-// See https://goo.gl/47a6tO for more details.
-func (c *Client) ListContainers(opts ListContainersOptions) ([]APIContainers, error) {
- path := "/containers/json?" + queryString(opts)
- resp, err := c.do("GET", path, doOptions{})
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- var containers []APIContainers
- if err := json.NewDecoder(resp.Body).Decode(&containers); err != nil {
- return nil, err
- }
- return containers, nil
-}
-
-// Port represents the port number and the protocol, in the form
-// /. For example: 80/tcp.
-type Port string
-
-// Port returns the number of the port.
-func (p Port) Port() string {
- return strings.Split(string(p), "/")[0]
-}
-
-// Proto returns the name of the protocol.
-func (p Port) Proto() string {
- parts := strings.Split(string(p), "/")
- if len(parts) == 1 {
- return "tcp"
- }
- return parts[1]
-}
-
-// State represents the state of a container.
-type State struct {
- Status string `json:"Status,omitempty" yaml:"Status,omitempty"`
- Running bool `json:"Running,omitempty" yaml:"Running,omitempty"`
- Paused bool `json:"Paused,omitempty" yaml:"Paused,omitempty"`
- Restarting bool `json:"Restarting,omitempty" yaml:"Restarting,omitempty"`
- OOMKilled bool `json:"OOMKilled,omitempty" yaml:"OOMKilled,omitempty"`
- RemovalInProgress bool `json:"RemovalInProgress,omitempty" yaml:"RemovalInProgress,omitempty"`
- Dead bool `json:"Dead,omitempty" yaml:"Dead,omitempty"`
- Pid int `json:"Pid,omitempty" yaml:"Pid,omitempty"`
- ExitCode int `json:"ExitCode,omitempty" yaml:"ExitCode,omitempty"`
- Error string `json:"Error,omitempty" yaml:"Error,omitempty"`
- StartedAt time.Time `json:"StartedAt,omitempty" yaml:"StartedAt,omitempty"`
- FinishedAt time.Time `json:"FinishedAt,omitempty" yaml:"FinishedAt,omitempty"`
-}
-
-// String returns a human-readable description of the state
-func (s *State) String() string {
- if s.Running {
- if s.Paused {
- return fmt.Sprintf("Up %s (Paused)", units.HumanDuration(time.Now().UTC().Sub(s.StartedAt)))
- }
- if s.Restarting {
- return fmt.Sprintf("Restarting (%d) %s ago", s.ExitCode, units.HumanDuration(time.Now().UTC().Sub(s.FinishedAt)))
- }
-
- return fmt.Sprintf("Up %s", units.HumanDuration(time.Now().UTC().Sub(s.StartedAt)))
- }
-
- if s.RemovalInProgress {
- return "Removal In Progress"
- }
-
- if s.Dead {
- return "Dead"
- }
-
- if s.StartedAt.IsZero() {
- return "Created"
- }
-
- if s.FinishedAt.IsZero() {
- return ""
- }
-
- return fmt.Sprintf("Exited (%d) %s ago", s.ExitCode, units.HumanDuration(time.Now().UTC().Sub(s.FinishedAt)))
-}
-
-// StateString returns a single string to describe state
-func (s *State) StateString() string {
- if s.Running {
- if s.Paused {
- return "paused"
- }
- if s.Restarting {
- return "restarting"
- }
- return "running"
- }
-
- if s.Dead {
- return "dead"
- }
-
- if s.StartedAt.IsZero() {
- return "created"
- }
-
- return "exited"
-}
-
-// PortBinding represents the host/container port mapping as returned in the
-// `docker inspect` json
-type PortBinding struct {
- HostIP string `json:"HostIP,omitempty" yaml:"HostIP,omitempty"`
- HostPort string `json:"HostPort,omitempty" yaml:"HostPort,omitempty"`
-}
-
-// PortMapping represents a deprecated field in the `docker inspect` output,
-// and its value as found in NetworkSettings should always be nil
-type PortMapping map[string]string
-
-// ContainerNetwork represents the networking settings of a container per network.
-type ContainerNetwork struct {
- MacAddress string `json:"MacAddress,omitempty" yaml:"MacAddress,omitempty"`
- GlobalIPv6PrefixLen int `json:"GlobalIPv6PrefixLen,omitempty" yaml:"GlobalIPv6PrefixLen,omitempty"`
- GlobalIPv6Address string `json:"GlobalIPv6Address,omitempty" yaml:"GlobalIPv6Address,omitempty"`
- IPv6Gateway string `json:"IPv6Gateway,omitempty" yaml:"IPv6Gateway,omitempty"`
- IPPrefixLen int `json:"IPPrefixLen,omitempty" yaml:"IPPrefixLen,omitempty"`
- IPAddress string `json:"IPAddress,omitempty" yaml:"IPAddress,omitempty"`
- Gateway string `json:"Gateway,omitempty" yaml:"Gateway,omitempty"`
- EndpointID string `json:"EndpointID,omitempty" yaml:"EndpointID,omitempty"`
- NetworkID string `json:"NetworkID,omitempty" yaml:"NetworkID,omitempty"`
-}
-
-// NetworkSettings contains network-related information about a container
-type NetworkSettings struct {
- Networks map[string]ContainerNetwork `json:"Networks,omitempty" yaml:"Networks,omitempty"`
- IPAddress string `json:"IPAddress,omitempty" yaml:"IPAddress,omitempty"`
- IPPrefixLen int `json:"IPPrefixLen,omitempty" yaml:"IPPrefixLen,omitempty"`
- MacAddress string `json:"MacAddress,omitempty" yaml:"MacAddress,omitempty"`
- Gateway string `json:"Gateway,omitempty" yaml:"Gateway,omitempty"`
- Bridge string `json:"Bridge,omitempty" yaml:"Bridge,omitempty"`
- PortMapping map[string]PortMapping `json:"PortMapping,omitempty" yaml:"PortMapping,omitempty"`
- Ports map[Port][]PortBinding `json:"Ports,omitempty" yaml:"Ports,omitempty"`
- NetworkID string `json:"NetworkID,omitempty" yaml:"NetworkID,omitempty"`
- EndpointID string `json:"EndpointID,omitempty" yaml:"EndpointID,omitempty"`
- SandboxKey string `json:"SandboxKey,omitempty" yaml:"SandboxKey,omitempty"`
- GlobalIPv6Address string `json:"GlobalIPv6Address,omitempty" yaml:"GlobalIPv6Address,omitempty"`
- GlobalIPv6PrefixLen int `json:"GlobalIPv6PrefixLen,omitempty" yaml:"GlobalIPv6PrefixLen,omitempty"`
- IPv6Gateway string `json:"IPv6Gateway,omitempty" yaml:"IPv6Gateway,omitempty"`
- LinkLocalIPv6Address string `json:"LinkLocalIPv6Address,omitempty" yaml:"LinkLocalIPv6Address,omitempty"`
- LinkLocalIPv6PrefixLen int `json:"LinkLocalIPv6PrefixLen,omitempty" yaml:"LinkLocalIPv6PrefixLen,omitempty"`
- SecondaryIPAddresses []string `json:"SecondaryIPAddresses,omitempty" yaml:"SecondaryIPAddresses,omitempty"`
- SecondaryIPv6Addresses []string `json:"SecondaryIPv6Addresses,omitempty" yaml:"SecondaryIPv6Addresses,omitempty"`
-}
-
-// PortMappingAPI translates the port mappings as contained in NetworkSettings
-// into the format in which they would appear when returned by the API
-func (settings *NetworkSettings) PortMappingAPI() []APIPort {
- var mapping []APIPort
- for port, bindings := range settings.Ports {
- p, _ := parsePort(port.Port())
- if len(bindings) == 0 {
- mapping = append(mapping, APIPort{
- PrivatePort: int64(p),
- Type: port.Proto(),
- })
- continue
- }
- for _, binding := range bindings {
- p, _ := parsePort(port.Port())
- h, _ := parsePort(binding.HostPort)
- mapping = append(mapping, APIPort{
- PrivatePort: int64(p),
- PublicPort: int64(h),
- Type: port.Proto(),
- IP: binding.HostIP,
- })
- }
- }
- return mapping
-}
-
-func parsePort(rawPort string) (int, error) {
- port, err := strconv.ParseUint(rawPort, 10, 16)
- if err != nil {
- return 0, err
- }
- return int(port), nil
-}
-
-// Config is the list of configuration options used when creating a container.
-// Config does not contain the options that are specific to starting a container on a
-// given host. Those are contained in HostConfig
-type Config struct {
- Hostname string `json:"Hostname,omitempty" yaml:"Hostname,omitempty"`
- Domainname string `json:"Domainname,omitempty" yaml:"Domainname,omitempty"`
- User string `json:"User,omitempty" yaml:"User,omitempty"`
- Memory int64 `json:"Memory,omitempty" yaml:"Memory,omitempty"`
- MemorySwap int64 `json:"MemorySwap,omitempty" yaml:"MemorySwap,omitempty"`
- MemoryReservation int64 `json:"MemoryReservation,omitempty" yaml:"MemoryReservation,omitempty"`
- KernelMemory int64 `json:"KernelMemory,omitempty" yaml:"KernelMemory,omitempty"`
- PidsLimit int64 `json:"PidsLimit,omitempty" yaml:"PidsLimit,omitempty"`
- CPUShares int64 `json:"CpuShares,omitempty" yaml:"CpuShares,omitempty"`
- CPUSet string `json:"Cpuset,omitempty" yaml:"Cpuset,omitempty"`
- AttachStdin bool `json:"AttachStdin,omitempty" yaml:"AttachStdin,omitempty"`
- AttachStdout bool `json:"AttachStdout,omitempty" yaml:"AttachStdout,omitempty"`
- AttachStderr bool `json:"AttachStderr,omitempty" yaml:"AttachStderr,omitempty"`
- PortSpecs []string `json:"PortSpecs,omitempty" yaml:"PortSpecs,omitempty"`
- ExposedPorts map[Port]struct{} `json:"ExposedPorts,omitempty" yaml:"ExposedPorts,omitempty"`
- StopSignal string `json:"StopSignal,omitempty" yaml:"StopSignal,omitempty"`
- Tty bool `json:"Tty,omitempty" yaml:"Tty,omitempty"`
- OpenStdin bool `json:"OpenStdin,omitempty" yaml:"OpenStdin,omitempty"`
- StdinOnce bool `json:"StdinOnce,omitempty" yaml:"StdinOnce,omitempty"`
- Env []string `json:"Env,omitempty" yaml:"Env,omitempty"`
- Cmd []string `json:"Cmd" yaml:"Cmd"`
- DNS []string `json:"Dns,omitempty" yaml:"Dns,omitempty"` // For Docker API v1.9 and below only
- Image string `json:"Image,omitempty" yaml:"Image,omitempty"`
- Volumes map[string]struct{} `json:"Volumes,omitempty" yaml:"Volumes,omitempty"`
- VolumeDriver string `json:"VolumeDriver,omitempty" yaml:"VolumeDriver,omitempty"`
- VolumesFrom string `json:"VolumesFrom,omitempty" yaml:"VolumesFrom,omitempty"`
- WorkingDir string `json:"WorkingDir,omitempty" yaml:"WorkingDir,omitempty"`
- MacAddress string `json:"MacAddress,omitempty" yaml:"MacAddress,omitempty"`
- Entrypoint []string `json:"Entrypoint" yaml:"Entrypoint"`
- NetworkDisabled bool `json:"NetworkDisabled,omitempty" yaml:"NetworkDisabled,omitempty"`
- SecurityOpts []string `json:"SecurityOpts,omitempty" yaml:"SecurityOpts,omitempty"`
- OnBuild []string `json:"OnBuild,omitempty" yaml:"OnBuild,omitempty"`
- Mounts []Mount `json:"Mounts,omitempty" yaml:"Mounts,omitempty"`
- Labels map[string]string `json:"Labels,omitempty" yaml:"Labels,omitempty"`
-}
-
-// Mount represents a mount point in the container.
-//
-// It has been added in the version 1.20 of the Docker API, available since
-// Docker 1.8.
-type Mount struct {
- Name string
- Source string
- Destination string
- Driver string
- Mode string
- RW bool
-}
-
-// LogConfig defines the log driver type and the configuration for it.
-type LogConfig struct {
- Type string `json:"Type,omitempty" yaml:"Type,omitempty"`
- Config map[string]string `json:"Config,omitempty" yaml:"Config,omitempty"`
-}
-
-// ULimit defines system-wide resource limitations
-// This can help a lot in system administration, e.g. when a user starts too many processes and therefore makes the system unresponsive for other users.
-type ULimit struct {
- Name string `json:"Name,omitempty" yaml:"Name,omitempty"`
- Soft int64 `json:"Soft,omitempty" yaml:"Soft,omitempty"`
- Hard int64 `json:"Hard,omitempty" yaml:"Hard,omitempty"`
-}
-
-// SwarmNode containers information about which Swarm node the container is on
-type SwarmNode struct {
- ID string `json:"ID,omitempty" yaml:"ID,omitempty"`
- IP string `json:"IP,omitempty" yaml:"IP,omitempty"`
- Addr string `json:"Addr,omitempty" yaml:"Addr,omitempty"`
- Name string `json:"Name,omitempty" yaml:"Name,omitempty"`
- CPUs int64 `json:"CPUs,omitempty" yaml:"CPUs,omitempty"`
- Memory int64 `json:"Memory,omitempty" yaml:"Memory,omitempty"`
- Labels map[string]string `json:"Labels,omitempty" yaml:"Labels,omitempty"`
-}
-
-// GraphDriver contains information about the GraphDriver used by the container
-type GraphDriver struct {
- Name string `json:"Name,omitempty" yaml:"Name,omitempty"`
- Data map[string]string `json:"Data,omitempty" yaml:"Data,omitempty"`
-}
-
-// Container is the type encompasing everything about a container - its config,
-// hostconfig, etc.
-type Container struct {
- ID string `json:"Id" yaml:"Id"`
-
- Created time.Time `json:"Created,omitempty" yaml:"Created,omitempty"`
-
- Path string `json:"Path,omitempty" yaml:"Path,omitempty"`
- Args []string `json:"Args,omitempty" yaml:"Args,omitempty"`
-
- Config *Config `json:"Config,omitempty" yaml:"Config,omitempty"`
- State State `json:"State,omitempty" yaml:"State,omitempty"`
- Image string `json:"Image,omitempty" yaml:"Image,omitempty"`
-
- Node *SwarmNode `json:"Node,omitempty" yaml:"Node,omitempty"`
-
- NetworkSettings *NetworkSettings `json:"NetworkSettings,omitempty" yaml:"NetworkSettings,omitempty"`
-
- SysInitPath string `json:"SysInitPath,omitempty" yaml:"SysInitPath,omitempty"`
- ResolvConfPath string `json:"ResolvConfPath,omitempty" yaml:"ResolvConfPath,omitempty"`
- HostnamePath string `json:"HostnamePath,omitempty" yaml:"HostnamePath,omitempty"`
- HostsPath string `json:"HostsPath,omitempty" yaml:"HostsPath,omitempty"`
- LogPath string `json:"LogPath,omitempty" yaml:"LogPath,omitempty"`
- Name string `json:"Name,omitempty" yaml:"Name,omitempty"`
- Driver string `json:"Driver,omitempty" yaml:"Driver,omitempty"`
- Mounts []Mount `json:"Mounts,omitempty" yaml:"Mounts,omitempty"`
-
- Volumes map[string]string `json:"Volumes,omitempty" yaml:"Volumes,omitempty"`
- VolumesRW map[string]bool `json:"VolumesRW,omitempty" yaml:"VolumesRW,omitempty"`
- HostConfig *HostConfig `json:"HostConfig,omitempty" yaml:"HostConfig,omitempty"`
- ExecIDs []string `json:"ExecIDs,omitempty" yaml:"ExecIDs,omitempty"`
- GraphDriver *GraphDriver `json:"GraphDriver,omitempty" yaml:"GraphDriver,omitempty"`
-
- RestartCount int `json:"RestartCount,omitempty" yaml:"RestartCount,omitempty"`
-
- AppArmorProfile string `json:"AppArmorProfile,omitempty" yaml:"AppArmorProfile,omitempty"`
-}
-
-// UpdateContainerOptions specify parameters to the UpdateContainer function.
-//
-// See https://goo.gl/Y6fXUy for more details.
-type UpdateContainerOptions struct {
- BlkioWeight int `json:"BlkioWeight"`
- CPUShares int `json:"CpuShares"`
- CPUPeriod int `json:"CpuPeriod"`
- CPUQuota int `json:"CpuQuota"`
- CpusetCpus string `json:"CpusetCpus"`
- CpusetMems string `json:"CpusetMems"`
- Memory int `json:"Memory"`
- MemorySwap int `json:"MemorySwap"`
- MemoryReservation int `json:"MemoryReservation"`
- KernelMemory int `json:"KernelMemory"`
- RestartPolicy RestartPolicy `json:"RestartPolicy,omitempty"`
-}
-
-// UpdateContainer updates the container at ID with the options
-//
-// See https://goo.gl/Y6fXUy for more details.
-func (c *Client) UpdateContainer(id string, opts UpdateContainerOptions) error {
- resp, err := c.do("POST", fmt.Sprintf("/containers/"+id+"/update"), doOptions{data: opts, forceJSON: true})
- if err != nil {
- return err
- }
- defer resp.Body.Close()
- return nil
-}
-
-// RenameContainerOptions specify parameters to the RenameContainer function.
-//
-// See https://goo.gl/laSOIy for more details.
-type RenameContainerOptions struct {
- // ID of container to rename
- ID string `qs:"-"`
-
- // New name
- Name string `json:"name,omitempty" yaml:"name,omitempty"`
-}
-
-// RenameContainer updates and existing containers name
-//
-// See https://goo.gl/laSOIy for more details.
-func (c *Client) RenameContainer(opts RenameContainerOptions) error {
- resp, err := c.do("POST", fmt.Sprintf("/containers/"+opts.ID+"/rename?%s", queryString(opts)), doOptions{})
- if err != nil {
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// InspectContainer returns information about a container by its ID.
-//
-// See https://goo.gl/RdIq0b for more details.
-func (c *Client) InspectContainer(id string) (*Container, error) {
- path := "/containers/" + id + "/json"
- resp, err := c.do("GET", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return nil, &NoSuchContainer{ID: id}
- }
- return nil, err
- }
- defer resp.Body.Close()
- var container Container
- if err := json.NewDecoder(resp.Body).Decode(&container); err != nil {
- return nil, err
- }
- return &container, nil
-}
-
-// ContainerChanges returns changes in the filesystem of the given container.
-//
-// See https://goo.gl/9GsTIF for more details.
-func (c *Client) ContainerChanges(id string) ([]Change, error) {
- path := "/containers/" + id + "/changes"
- resp, err := c.do("GET", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return nil, &NoSuchContainer{ID: id}
- }
- return nil, err
- }
- defer resp.Body.Close()
- var changes []Change
- if err := json.NewDecoder(resp.Body).Decode(&changes); err != nil {
- return nil, err
- }
- return changes, nil
-}
-
-// CreateContainerOptions specify parameters to the CreateContainer function.
-//
-// See https://goo.gl/WxQzrr for more details.
-type CreateContainerOptions struct {
- Name string
- Config *Config `qs:"-"`
- HostConfig *HostConfig `qs:"-"`
-}
-
-// CreateContainer creates a new container, returning the container instance,
-// or an error in case of failure.
-//
-// See https://goo.gl/WxQzrr for more details.
-func (c *Client) CreateContainer(opts CreateContainerOptions) (*Container, error) {
- path := "/containers/create?" + queryString(opts)
- resp, err := c.do(
- "POST",
- path,
- doOptions{
- data: struct {
- *Config
- HostConfig *HostConfig `json:"HostConfig,omitempty" yaml:"HostConfig,omitempty"`
- }{
- opts.Config,
- opts.HostConfig,
- },
- },
- )
-
- if e, ok := err.(*Error); ok {
- if e.Status == http.StatusNotFound {
- return nil, ErrNoSuchImage
- }
- if e.Status == http.StatusConflict {
- return nil, ErrContainerAlreadyExists
- }
- }
-
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- var container Container
- if err := json.NewDecoder(resp.Body).Decode(&container); err != nil {
- return nil, err
- }
-
- container.Name = opts.Name
-
- return &container, nil
-}
-
-// KeyValuePair is a type for generic key/value pairs as used in the Lxc
-// configuration
-type KeyValuePair struct {
- Key string `json:"Key,omitempty" yaml:"Key,omitempty"`
- Value string `json:"Value,omitempty" yaml:"Value,omitempty"`
-}
-
-// RestartPolicy represents the policy for automatically restarting a container.
-//
-// Possible values are:
-//
-// - always: the docker daemon will always restart the container
-// - on-failure: the docker daemon will restart the container on failures, at
-// most MaximumRetryCount times
-// - no: the docker daemon will not restart the container automatically
-type RestartPolicy struct {
- Name string `json:"Name,omitempty" yaml:"Name,omitempty"`
- MaximumRetryCount int `json:"MaximumRetryCount,omitempty" yaml:"MaximumRetryCount,omitempty"`
-}
-
-// AlwaysRestart returns a restart policy that tells the Docker daemon to
-// always restart the container.
-func AlwaysRestart() RestartPolicy {
- return RestartPolicy{Name: "always"}
-}
-
-// RestartOnFailure returns a restart policy that tells the Docker daemon to
-// restart the container on failures, trying at most maxRetry times.
-func RestartOnFailure(maxRetry int) RestartPolicy {
- return RestartPolicy{Name: "on-failure", MaximumRetryCount: maxRetry}
-}
-
-// NeverRestart returns a restart policy that tells the Docker daemon to never
-// restart the container on failures.
-func NeverRestart() RestartPolicy {
- return RestartPolicy{Name: "no"}
-}
-
-// Device represents a device mapping between the Docker host and the
-// container.
-type Device struct {
- PathOnHost string `json:"PathOnHost,omitempty" yaml:"PathOnHost,omitempty"`
- PathInContainer string `json:"PathInContainer,omitempty" yaml:"PathInContainer,omitempty"`
- CgroupPermissions string `json:"CgroupPermissions,omitempty" yaml:"CgroupPermissions,omitempty"`
-}
-
-// BlockWeight represents a relative device weight for an individual device inside
-// of a container
-//
-// See https://goo.gl/FSdP0H for more details.
-type BlockWeight struct {
- Path string `json:"Path,omitempty"`
- Weight string `json:"Weight,omitempty"`
-}
-
-// BlockLimit represents a read/write limit in IOPS or Bandwidth for a device
-// inside of a container
-//
-// See https://goo.gl/FSdP0H for more details.
-type BlockLimit struct {
- Path string `json:"Path,omitempty"`
- Rate string `json:"Rate,omitempty"`
-}
-
-// HostConfig contains the container options related to starting a container on
-// a given host
-type HostConfig struct {
- Binds []string `json:"Binds,omitempty" yaml:"Binds,omitempty"`
- CapAdd []string `json:"CapAdd,omitempty" yaml:"CapAdd,omitempty"`
- CapDrop []string `json:"CapDrop,omitempty" yaml:"CapDrop,omitempty"`
- GroupAdd []string `json:"GroupAdd,omitempty" yaml:"GroupAdd,omitempty"`
- ContainerIDFile string `json:"ContainerIDFile,omitempty" yaml:"ContainerIDFile,omitempty"`
- LxcConf []KeyValuePair `json:"LxcConf,omitempty" yaml:"LxcConf,omitempty"`
- Privileged bool `json:"Privileged,omitempty" yaml:"Privileged,omitempty"`
- PortBindings map[Port][]PortBinding `json:"PortBindings,omitempty" yaml:"PortBindings,omitempty"`
- Links []string `json:"Links,omitempty" yaml:"Links,omitempty"`
- PublishAllPorts bool `json:"PublishAllPorts,omitempty" yaml:"PublishAllPorts,omitempty"`
- DNS []string `json:"Dns,omitempty" yaml:"Dns,omitempty"` // For Docker API v1.10 and above only
- DNSOptions []string `json:"DnsOptions,omitempty" yaml:"DnsOptions,omitempty"`
- DNSSearch []string `json:"DnsSearch,omitempty" yaml:"DnsSearch,omitempty"`
- ExtraHosts []string `json:"ExtraHosts,omitempty" yaml:"ExtraHosts,omitempty"`
- VolumesFrom []string `json:"VolumesFrom,omitempty" yaml:"VolumesFrom,omitempty"`
- UsernsMode string `json:"UsernsMode,omitempty" yaml:"UsernsMode,omitempty"`
- NetworkMode string `json:"NetworkMode,omitempty" yaml:"NetworkMode,omitempty"`
- IpcMode string `json:"IpcMode,omitempty" yaml:"IpcMode,omitempty"`
- PidMode string `json:"PidMode,omitempty" yaml:"PidMode,omitempty"`
- UTSMode string `json:"UTSMode,omitempty" yaml:"UTSMode,omitempty"`
- RestartPolicy RestartPolicy `json:"RestartPolicy,omitempty" yaml:"RestartPolicy,omitempty"`
- Devices []Device `json:"Devices,omitempty" yaml:"Devices,omitempty"`
- LogConfig LogConfig `json:"LogConfig,omitempty" yaml:"LogConfig,omitempty"`
- ReadonlyRootfs bool `json:"ReadonlyRootfs,omitempty" yaml:"ReadonlyRootfs,omitempty"`
- SecurityOpt []string `json:"SecurityOpt,omitempty" yaml:"SecurityOpt,omitempty"`
- CgroupParent string `json:"CgroupParent,omitempty" yaml:"CgroupParent,omitempty"`
- Memory int64 `json:"Memory,omitempty" yaml:"Memory,omitempty"`
- MemorySwap int64 `json:"MemorySwap,omitempty" yaml:"MemorySwap,omitempty"`
- MemorySwappiness int64 `json:"MemorySwappiness,omitempty" yaml:"MemorySwappiness,omitempty"`
- OOMKillDisable bool `json:"OomKillDisable,omitempty" yaml:"OomKillDisable"`
- CPUShares int64 `json:"CpuShares,omitempty" yaml:"CpuShares,omitempty"`
- CPUSet string `json:"Cpuset,omitempty" yaml:"Cpuset,omitempty"`
- CPUSetCPUs string `json:"CpusetCpus,omitempty" yaml:"CpusetCpus,omitempty"`
- CPUSetMEMs string `json:"CpusetMems,omitempty" yaml:"CpusetMems,omitempty"`
- CPUQuota int64 `json:"CpuQuota,omitempty" yaml:"CpuQuota,omitempty"`
- CPUPeriod int64 `json:"CpuPeriod,omitempty" yaml:"CpuPeriod,omitempty"`
- BlkioWeight int64 `json:"BlkioWeight,omitempty" yaml:"BlkioWeight"`
- BlkioWeightDevice []BlockWeight `json:"BlkioWeightDevice,omitempty" yaml:"BlkioWeightDevice"`
- BlkioDeviceReadBps []BlockLimit `json:"BlkioDeviceReadBps,omitempty" yaml:"BlkioDeviceReadBps"`
- BlkioDeviceReadIOps []BlockLimit `json:"BlkioDeviceReadIOps,omitempty" yaml:"BlkioDeviceReadIOps"`
- BlkioDeviceWriteBps []BlockLimit `json:"BlkioDeviceWriteBps,omitempty" yaml:"BlkioDeviceWriteBps"`
- BlkioDeviceWriteIOps []BlockLimit `json:"BlkioDeviceWriteIOps,omitempty" yaml:"BlkioDeviceWriteIOps"`
- Ulimits []ULimit `json:"Ulimits,omitempty" yaml:"Ulimits,omitempty"`
- VolumeDriver string `json:"VolumeDriver,omitempty" yaml:"VolumeDriver,omitempty"`
- OomScoreAdj int `json:"OomScoreAdj,omitempty" yaml:"OomScoreAdj,omitempty"`
-}
-
-// StartContainer starts a container, returning an error in case of failure.
-//
-// See https://goo.gl/MrBAJv for more details.
-func (c *Client) StartContainer(id string, hostConfig *HostConfig) error {
- path := "/containers/" + id + "/start"
- resp, err := c.do("POST", path, doOptions{data: hostConfig, forceJSON: true})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchContainer{ID: id, Err: err}
- }
- return err
- }
- if resp.StatusCode == http.StatusNotModified {
- return &ContainerAlreadyRunning{ID: id}
- }
- resp.Body.Close()
- return nil
-}
-
-// StopContainer stops a container, killing it after the given timeout (in
-// seconds).
-//
-// See https://goo.gl/USqsFt for more details.
-func (c *Client) StopContainer(id string, timeout uint) error {
- path := fmt.Sprintf("/containers/%s/stop?t=%d", id, timeout)
- resp, err := c.do("POST", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchContainer{ID: id}
- }
- return err
- }
- if resp.StatusCode == http.StatusNotModified {
- return &ContainerNotRunning{ID: id}
- }
- resp.Body.Close()
- return nil
-}
-
-// RestartContainer stops a container, killing it after the given timeout (in
-// seconds), during the stop process.
-//
-// See https://goo.gl/QzsDnz for more details.
-func (c *Client) RestartContainer(id string, timeout uint) error {
- path := fmt.Sprintf("/containers/%s/restart?t=%d", id, timeout)
- resp, err := c.do("POST", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchContainer{ID: id}
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// PauseContainer pauses the given container.
-//
-// See https://goo.gl/OF7W9X for more details.
-func (c *Client) PauseContainer(id string) error {
- path := fmt.Sprintf("/containers/%s/pause", id)
- resp, err := c.do("POST", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchContainer{ID: id}
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// UnpauseContainer unpauses the given container.
-//
-// See https://goo.gl/7dwyPA for more details.
-func (c *Client) UnpauseContainer(id string) error {
- path := fmt.Sprintf("/containers/%s/unpause", id)
- resp, err := c.do("POST", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchContainer{ID: id}
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// TopResult represents the list of processes running in a container, as
-// returned by /containers//top.
-//
-// See https://goo.gl/Rb46aY for more details.
-type TopResult struct {
- Titles []string
- Processes [][]string
-}
-
-// TopContainer returns processes running inside a container
-//
-// See https://goo.gl/Rb46aY for more details.
-func (c *Client) TopContainer(id string, psArgs string) (TopResult, error) {
- var args string
- var result TopResult
- if psArgs != "" {
- args = fmt.Sprintf("?ps_args=%s", psArgs)
- }
- path := fmt.Sprintf("/containers/%s/top%s", id, args)
- resp, err := c.do("GET", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return result, &NoSuchContainer{ID: id}
- }
- return result, err
- }
- defer resp.Body.Close()
- if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
- return result, err
- }
- return result, nil
-}
-
-// Stats represents container statistics, returned by /containers//stats.
-//
-// See https://goo.gl/GNmLHb for more details.
-type Stats struct {
- Read time.Time `json:"read,omitempty" yaml:"read,omitempty"`
- PidsStats struct {
- Current uint64 `json:"current,omitempty" yaml:"current,omitempty"`
- } `json:"pids_stats,omitempty" yaml:"pids_stats,omitempty"`
- Network NetworkStats `json:"network,omitempty" yaml:"network,omitempty"`
- Networks map[string]NetworkStats `json:"networks,omitempty" yaml:"networks,omitempty"`
- MemoryStats struct {
- Stats struct {
- TotalPgmafault uint64 `json:"total_pgmafault,omitempty" yaml:"total_pgmafault,omitempty"`
- Cache uint64 `json:"cache,omitempty" yaml:"cache,omitempty"`
- MappedFile uint64 `json:"mapped_file,omitempty" yaml:"mapped_file,omitempty"`
- TotalInactiveFile uint64 `json:"total_inactive_file,omitempty" yaml:"total_inactive_file,omitempty"`
- Pgpgout uint64 `json:"pgpgout,omitempty" yaml:"pgpgout,omitempty"`
- Rss uint64 `json:"rss,omitempty" yaml:"rss,omitempty"`
- TotalMappedFile uint64 `json:"total_mapped_file,omitempty" yaml:"total_mapped_file,omitempty"`
- Writeback uint64 `json:"writeback,omitempty" yaml:"writeback,omitempty"`
- Unevictable uint64 `json:"unevictable,omitempty" yaml:"unevictable,omitempty"`
- Pgpgin uint64 `json:"pgpgin,omitempty" yaml:"pgpgin,omitempty"`
- TotalUnevictable uint64 `json:"total_unevictable,omitempty" yaml:"total_unevictable,omitempty"`
- Pgmajfault uint64 `json:"pgmajfault,omitempty" yaml:"pgmajfault,omitempty"`
- TotalRss uint64 `json:"total_rss,omitempty" yaml:"total_rss,omitempty"`
- TotalRssHuge uint64 `json:"total_rss_huge,omitempty" yaml:"total_rss_huge,omitempty"`
- TotalWriteback uint64 `json:"total_writeback,omitempty" yaml:"total_writeback,omitempty"`
- TotalInactiveAnon uint64 `json:"total_inactive_anon,omitempty" yaml:"total_inactive_anon,omitempty"`
- RssHuge uint64 `json:"rss_huge,omitempty" yaml:"rss_huge,omitempty"`
- HierarchicalMemoryLimit uint64 `json:"hierarchical_memory_limit,omitempty" yaml:"hierarchical_memory_limit,omitempty"`
- TotalPgfault uint64 `json:"total_pgfault,omitempty" yaml:"total_pgfault,omitempty"`
- TotalActiveFile uint64 `json:"total_active_file,omitempty" yaml:"total_active_file,omitempty"`
- ActiveAnon uint64 `json:"active_anon,omitempty" yaml:"active_anon,omitempty"`
- TotalActiveAnon uint64 `json:"total_active_anon,omitempty" yaml:"total_active_anon,omitempty"`
- TotalPgpgout uint64 `json:"total_pgpgout,omitempty" yaml:"total_pgpgout,omitempty"`
- TotalCache uint64 `json:"total_cache,omitempty" yaml:"total_cache,omitempty"`
- InactiveAnon uint64 `json:"inactive_anon,omitempty" yaml:"inactive_anon,omitempty"`
- ActiveFile uint64 `json:"active_file,omitempty" yaml:"active_file,omitempty"`
- Pgfault uint64 `json:"pgfault,omitempty" yaml:"pgfault,omitempty"`
- InactiveFile uint64 `json:"inactive_file,omitempty" yaml:"inactive_file,omitempty"`
- TotalPgpgin uint64 `json:"total_pgpgin,omitempty" yaml:"total_pgpgin,omitempty"`
- HierarchicalMemswLimit uint64 `json:"hierarchical_memsw_limit,omitempty" yaml:"hierarchical_memsw_limit,omitempty"`
- Swap uint64 `json:"swap,omitempty" yaml:"swap,omitempty"`
- } `json:"stats,omitempty" yaml:"stats,omitempty"`
- MaxUsage uint64 `json:"max_usage,omitempty" yaml:"max_usage,omitempty"`
- Usage uint64 `json:"usage,omitempty" yaml:"usage,omitempty"`
- Failcnt uint64 `json:"failcnt,omitempty" yaml:"failcnt,omitempty"`
- Limit uint64 `json:"limit,omitempty" yaml:"limit,omitempty"`
- } `json:"memory_stats,omitempty" yaml:"memory_stats,omitempty"`
- BlkioStats struct {
- IOServiceBytesRecursive []BlkioStatsEntry `json:"io_service_bytes_recursive,omitempty" yaml:"io_service_bytes_recursive,omitempty"`
- IOServicedRecursive []BlkioStatsEntry `json:"io_serviced_recursive,omitempty" yaml:"io_serviced_recursive,omitempty"`
- IOQueueRecursive []BlkioStatsEntry `json:"io_queue_recursive,omitempty" yaml:"io_queue_recursive,omitempty"`
- IOServiceTimeRecursive []BlkioStatsEntry `json:"io_service_time_recursive,omitempty" yaml:"io_service_time_recursive,omitempty"`
- IOWaitTimeRecursive []BlkioStatsEntry `json:"io_wait_time_recursive,omitempty" yaml:"io_wait_time_recursive,omitempty"`
- IOMergedRecursive []BlkioStatsEntry `json:"io_merged_recursive,omitempty" yaml:"io_merged_recursive,omitempty"`
- IOTimeRecursive []BlkioStatsEntry `json:"io_time_recursive,omitempty" yaml:"io_time_recursive,omitempty"`
- SectorsRecursive []BlkioStatsEntry `json:"sectors_recursive,omitempty" yaml:"sectors_recursive,omitempty"`
- } `json:"blkio_stats,omitempty" yaml:"blkio_stats,omitempty"`
- CPUStats CPUStats `json:"cpu_stats,omitempty" yaml:"cpu_stats,omitempty"`
- PreCPUStats CPUStats `json:"precpu_stats,omitempty"`
-}
-
-// NetworkStats is a stats entry for network stats
-type NetworkStats struct {
- RxDropped uint64 `json:"rx_dropped,omitempty" yaml:"rx_dropped,omitempty"`
- RxBytes uint64 `json:"rx_bytes,omitempty" yaml:"rx_bytes,omitempty"`
- RxErrors uint64 `json:"rx_errors,omitempty" yaml:"rx_errors,omitempty"`
- TxPackets uint64 `json:"tx_packets,omitempty" yaml:"tx_packets,omitempty"`
- TxDropped uint64 `json:"tx_dropped,omitempty" yaml:"tx_dropped,omitempty"`
- RxPackets uint64 `json:"rx_packets,omitempty" yaml:"rx_packets,omitempty"`
- TxErrors uint64 `json:"tx_errors,omitempty" yaml:"tx_errors,omitempty"`
- TxBytes uint64 `json:"tx_bytes,omitempty" yaml:"tx_bytes,omitempty"`
-}
-
-// CPUStats is a stats entry for cpu stats
-type CPUStats struct {
- CPUUsage struct {
- PercpuUsage []uint64 `json:"percpu_usage,omitempty" yaml:"percpu_usage,omitempty"`
- UsageInUsermode uint64 `json:"usage_in_usermode,omitempty" yaml:"usage_in_usermode,omitempty"`
- TotalUsage uint64 `json:"total_usage,omitempty" yaml:"total_usage,omitempty"`
- UsageInKernelmode uint64 `json:"usage_in_kernelmode,omitempty" yaml:"usage_in_kernelmode,omitempty"`
- } `json:"cpu_usage,omitempty" yaml:"cpu_usage,omitempty"`
- SystemCPUUsage uint64 `json:"system_cpu_usage,omitempty" yaml:"system_cpu_usage,omitempty"`
- ThrottlingData struct {
- Periods uint64 `json:"periods,omitempty"`
- ThrottledPeriods uint64 `json:"throttled_periods,omitempty"`
- ThrottledTime uint64 `json:"throttled_time,omitempty"`
- } `json:"throttling_data,omitempty" yaml:"throttling_data,omitempty"`
-}
-
-// BlkioStatsEntry is a stats entry for blkio_stats
-type BlkioStatsEntry struct {
- Major uint64 `json:"major,omitempty" yaml:"major,omitempty"`
- Minor uint64 `json:"minor,omitempty" yaml:"minor,omitempty"`
- Op string `json:"op,omitempty" yaml:"op,omitempty"`
- Value uint64 `json:"value,omitempty" yaml:"value,omitempty"`
-}
-
-// StatsOptions specify parameters to the Stats function.
-//
-// See https://goo.gl/GNmLHb for more details.
-type StatsOptions struct {
- ID string
- Stats chan<- *Stats
- Stream bool
- // A flag that enables stopping the stats operation
- Done <-chan bool
- // Initial connection timeout
- Timeout time.Duration
-}
-
-// Stats sends container statistics for the given container to the given channel.
-//
-// This function is blocking, similar to a streaming call for logs, and should be run
-// on a separate goroutine from the caller. Note that this function will block until
-// the given container is removed, not just exited. When finished, this function
-// will close the given channel. Alternatively, function can be stopped by
-// signaling on the Done channel.
-//
-// See https://goo.gl/GNmLHb for more details.
-func (c *Client) Stats(opts StatsOptions) (retErr error) {
- errC := make(chan error, 1)
- readCloser, writeCloser := io.Pipe()
-
- defer func() {
- close(opts.Stats)
-
- select {
- case err := <-errC:
- if err != nil && retErr == nil {
- retErr = err
- }
- default:
- // No errors
- }
-
- if err := readCloser.Close(); err != nil && retErr == nil {
- retErr = err
- }
- }()
-
- go func() {
- err := c.stream("GET", fmt.Sprintf("/containers/%s/stats?stream=%v", opts.ID, opts.Stream), streamOptions{
- rawJSONStream: true,
- useJSONDecoder: true,
- stdout: writeCloser,
- timeout: opts.Timeout,
- })
- if err != nil {
- dockerError, ok := err.(*Error)
- if ok {
- if dockerError.Status == http.StatusNotFound {
- err = &NoSuchContainer{ID: opts.ID}
- }
- }
- }
- if closeErr := writeCloser.Close(); closeErr != nil && err == nil {
- err = closeErr
- }
- errC <- err
- close(errC)
- }()
-
- quit := make(chan struct{})
- defer close(quit)
- go func() {
- // block here waiting for the signal to stop function
- select {
- case <-opts.Done:
- readCloser.Close()
- case <-quit:
- return
- }
- }()
-
- decoder := json.NewDecoder(readCloser)
- stats := new(Stats)
- for err := decoder.Decode(stats); err != io.EOF; err = decoder.Decode(stats) {
- if err != nil {
- return err
- }
- opts.Stats <- stats
- stats = new(Stats)
- }
- return nil
-}
-
-// KillContainerOptions represents the set of options that can be used in a
-// call to KillContainer.
-//
-// See https://goo.gl/hkS9i8 for more details.
-type KillContainerOptions struct {
- // The ID of the container.
- ID string `qs:"-"`
-
- // The signal to send to the container. When omitted, Docker server
- // will assume SIGKILL.
- Signal Signal
-}
-
-// KillContainer sends a signal to a container, returning an error in case of
-// failure.
-//
-// See https://goo.gl/hkS9i8 for more details.
-func (c *Client) KillContainer(opts KillContainerOptions) error {
- path := "/containers/" + opts.ID + "/kill" + "?" + queryString(opts)
- resp, err := c.do("POST", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchContainer{ID: opts.ID}
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// RemoveContainerOptions encapsulates options to remove a container.
-//
-// See https://goo.gl/RQyX62 for more details.
-type RemoveContainerOptions struct {
- // The ID of the container.
- ID string `qs:"-"`
-
- // A flag that indicates whether Docker should remove the volumes
- // associated to the container.
- RemoveVolumes bool `qs:"v"`
-
- // A flag that indicates whether Docker should remove the container
- // even if it is currently running.
- Force bool
-}
-
-// RemoveContainer removes a container, returning an error in case of failure.
-//
-// See https://goo.gl/RQyX62 for more details.
-func (c *Client) RemoveContainer(opts RemoveContainerOptions) error {
- path := "/containers/" + opts.ID + "?" + queryString(opts)
- resp, err := c.do("DELETE", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchContainer{ID: opts.ID}
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// UploadToContainerOptions is the set of options that can be used when
-// uploading an archive into a container.
-//
-// See https://goo.gl/Ss97HW for more details.
-type UploadToContainerOptions struct {
- InputStream io.Reader `json:"-" qs:"-"`
- Path string `qs:"path"`
- NoOverwriteDirNonDir bool `qs:"noOverwriteDirNonDir"`
-}
-
-// UploadToContainer uploads a tar archive to be extracted to a path in the
-// filesystem of the container.
-//
-// See https://goo.gl/Ss97HW for more details.
-func (c *Client) UploadToContainer(id string, opts UploadToContainerOptions) error {
- url := fmt.Sprintf("/containers/%s/archive?", id) + queryString(opts)
-
- return c.stream("PUT", url, streamOptions{
- in: opts.InputStream,
- })
-}
-
-// DownloadFromContainerOptions is the set of options that can be used when
-// downloading resources from a container.
-//
-// See https://goo.gl/KnZJDX for more details.
-type DownloadFromContainerOptions struct {
- OutputStream io.Writer `json:"-" qs:"-"`
- Path string `qs:"path"`
-}
-
-// DownloadFromContainer downloads a tar archive of files or folders in a container.
-//
-// See https://goo.gl/KnZJDX for more details.
-func (c *Client) DownloadFromContainer(id string, opts DownloadFromContainerOptions) error {
- url := fmt.Sprintf("/containers/%s/archive?", id) + queryString(opts)
-
- return c.stream("GET", url, streamOptions{
- setRawTerminal: true,
- stdout: opts.OutputStream,
- })
-}
-
-// CopyFromContainerOptions has been DEPRECATED, please use DownloadFromContainerOptions along with DownloadFromContainer.
-//
-// See https://goo.gl/R2jevW for more details.
-type CopyFromContainerOptions struct {
- OutputStream io.Writer `json:"-"`
- Container string `json:"-"`
- Resource string
-}
-
-// CopyFromContainer has been DEPRECATED, please use DownloadFromContainerOptions along with DownloadFromContainer.
-//
-// See https://goo.gl/R2jevW for more details.
-func (c *Client) CopyFromContainer(opts CopyFromContainerOptions) error {
- if opts.Container == "" {
- return &NoSuchContainer{ID: opts.Container}
- }
- url := fmt.Sprintf("/containers/%s/copy", opts.Container)
- resp, err := c.do("POST", url, doOptions{data: opts})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchContainer{ID: opts.Container}
- }
- return err
- }
- defer resp.Body.Close()
- _, err = io.Copy(opts.OutputStream, resp.Body)
- return err
-}
-
-// WaitContainer blocks until the given container stops, return the exit code
-// of the container status.
-//
-// See https://goo.gl/Gc1rge for more details.
-func (c *Client) WaitContainer(id string) (int, error) {
- resp, err := c.do("POST", "/containers/"+id+"/wait", doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return 0, &NoSuchContainer{ID: id}
- }
- return 0, err
- }
- defer resp.Body.Close()
- var r struct{ StatusCode int }
- if err := json.NewDecoder(resp.Body).Decode(&r); err != nil {
- return 0, err
- }
- return r.StatusCode, nil
-}
-
-// CommitContainerOptions aggregates parameters to the CommitContainer method.
-//
-// See https://goo.gl/mqfoCw for more details.
-type CommitContainerOptions struct {
- Container string
- Repository string `qs:"repo"`
- Tag string
- Message string `qs:"comment"`
- Author string
- Run *Config `qs:"-"`
-}
-
-// CommitContainer creates a new image from a container's changes.
-//
-// See https://goo.gl/mqfoCw for more details.
-func (c *Client) CommitContainer(opts CommitContainerOptions) (*Image, error) {
- path := "/commit?" + queryString(opts)
- resp, err := c.do("POST", path, doOptions{data: opts.Run})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return nil, &NoSuchContainer{ID: opts.Container}
- }
- return nil, err
- }
- defer resp.Body.Close()
- var image Image
- if err := json.NewDecoder(resp.Body).Decode(&image); err != nil {
- return nil, err
- }
- return &image, nil
-}
-
-// AttachToContainerOptions is the set of options that can be used when
-// attaching to a container.
-//
-// See https://goo.gl/NKpkFk for more details.
-type AttachToContainerOptions struct {
- Container string `qs:"-"`
- InputStream io.Reader `qs:"-"`
- OutputStream io.Writer `qs:"-"`
- ErrorStream io.Writer `qs:"-"`
-
- // Get container logs, sending it to OutputStream.
- Logs bool
-
- // Stream the response?
- Stream bool
-
- // Attach to stdin, and use InputStream.
- Stdin bool
-
- // Attach to stdout, and use OutputStream.
- Stdout bool
-
- // Attach to stderr, and use ErrorStream.
- Stderr bool
-
- // If set, after a successful connect, a sentinel will be sent and then the
- // client will block on receive before continuing.
- //
- // It must be an unbuffered channel. Using a buffered channel can lead
- // to unexpected behavior.
- Success chan struct{}
-
- // Use raw terminal? Usually true when the container contains a TTY.
- RawTerminal bool `qs:"-"`
-}
-
-// AttachToContainer attaches to a container, using the given options.
-//
-// See https://goo.gl/NKpkFk for more details.
-func (c *Client) AttachToContainer(opts AttachToContainerOptions) error {
- cw, err := c.AttachToContainerNonBlocking(opts)
- if err != nil {
- return err
- }
- return cw.Wait()
-}
-
-// AttachToContainerNonBlocking attaches to a container, using the given options.
-// This function does not block.
-//
-// See https://goo.gl/NKpkFk for more details.
-func (c *Client) AttachToContainerNonBlocking(opts AttachToContainerOptions) (CloseWaiter, error) {
- if opts.Container == "" {
- return nil, &NoSuchContainer{ID: opts.Container}
- }
- path := "/containers/" + opts.Container + "/attach?" + queryString(opts)
- return c.hijack("POST", path, hijackOptions{
- success: opts.Success,
- setRawTerminal: opts.RawTerminal,
- in: opts.InputStream,
- stdout: opts.OutputStream,
- stderr: opts.ErrorStream,
- })
-}
-
-// LogsOptions represents the set of options used when getting logs from a
-// container.
-//
-// See https://goo.gl/yl8PGm for more details.
-type LogsOptions struct {
- Container string `qs:"-"`
- OutputStream io.Writer `qs:"-"`
- ErrorStream io.Writer `qs:"-"`
- Follow bool
- Stdout bool
- Stderr bool
- Since int64
- Timestamps bool
- Tail string
-
- // Use raw terminal? Usually true when the container contains a TTY.
- RawTerminal bool `qs:"-"`
-}
-
-// Logs gets stdout and stderr logs from the specified container.
-//
-// See https://goo.gl/yl8PGm for more details.
-func (c *Client) Logs(opts LogsOptions) error {
- if opts.Container == "" {
- return &NoSuchContainer{ID: opts.Container}
- }
- if opts.Tail == "" {
- opts.Tail = "all"
- }
- path := "/containers/" + opts.Container + "/logs?" + queryString(opts)
- return c.stream("GET", path, streamOptions{
- setRawTerminal: opts.RawTerminal,
- stdout: opts.OutputStream,
- stderr: opts.ErrorStream,
- })
-}
-
-// ResizeContainerTTY resizes the terminal to the given height and width.
-//
-// See https://goo.gl/xERhCc for more details.
-func (c *Client) ResizeContainerTTY(id string, height, width int) error {
- params := make(url.Values)
- params.Set("h", strconv.Itoa(height))
- params.Set("w", strconv.Itoa(width))
- resp, err := c.do("POST", "/containers/"+id+"/resize?"+params.Encode(), doOptions{})
- if err != nil {
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// ExportContainerOptions is the set of parameters to the ExportContainer
-// method.
-//
-// See https://goo.gl/dOkTyk for more details.
-type ExportContainerOptions struct {
- ID string
- OutputStream io.Writer
-}
-
-// ExportContainer export the contents of container id as tar archive
-// and prints the exported contents to stdout.
-//
-// See https://goo.gl/dOkTyk for more details.
-func (c *Client) ExportContainer(opts ExportContainerOptions) error {
- if opts.ID == "" {
- return &NoSuchContainer{ID: opts.ID}
- }
- url := fmt.Sprintf("/containers/%s/export", opts.ID)
- return c.stream("GET", url, streamOptions{
- setRawTerminal: true,
- stdout: opts.OutputStream,
- })
-}
-
-// NoSuchContainer is the error returned when a given container does not exist.
-type NoSuchContainer struct {
- ID string
- Err error
-}
-
-func (err *NoSuchContainer) Error() string {
- if err.Err != nil {
- return err.Err.Error()
- }
- return "No such container: " + err.ID
-}
-
-// ContainerAlreadyRunning is the error returned when a given container is
-// already running.
-type ContainerAlreadyRunning struct {
- ID string
-}
-
-func (err *ContainerAlreadyRunning) Error() string {
- return "Container already running: " + err.ID
-}
-
-// ContainerNotRunning is the error returned when a given container is not
-// running.
-type ContainerNotRunning struct {
- ID string
-}
-
-func (err *ContainerNotRunning) Error() string {
- return "Container not running: " + err.ID
-}
diff --git a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/image.go b/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/image.go
deleted file mode 100644
index fb265732..00000000
--- a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/image.go
+++ /dev/null
@@ -1,630 +0,0 @@
-// Copyright 2015 go-dockerclient authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package docker
-
-import (
- "bytes"
- "encoding/base64"
- "encoding/json"
- "errors"
- "fmt"
- "io"
- "net/http"
- "net/url"
- "os"
- "time"
-)
-
-// APIImages represent an image returned in the ListImages call.
-type APIImages struct {
- ID string `json:"Id" yaml:"Id"`
- RepoTags []string `json:"RepoTags,omitempty" yaml:"RepoTags,omitempty"`
- Created int64 `json:"Created,omitempty" yaml:"Created,omitempty"`
- Size int64 `json:"Size,omitempty" yaml:"Size,omitempty"`
- VirtualSize int64 `json:"VirtualSize,omitempty" yaml:"VirtualSize,omitempty"`
- ParentID string `json:"ParentId,omitempty" yaml:"ParentId,omitempty"`
- RepoDigests []string `json:"RepoDigests,omitempty" yaml:"RepoDigests,omitempty"`
- Labels map[string]string `json:"Labels,omitempty" yaml:"Labels,omitempty"`
-}
-
-// RootFS represents the underlying layers used by an image
-type RootFS struct {
- Type string `json:"Type,omitempty" yaml:"Type,omitempty"`
- Layers []string `json:"Layers,omitempty" yaml:"Layers,omitempty"`
-}
-
-// Image is the type representing a docker image and its various properties
-type Image struct {
- ID string `json:"Id" yaml:"Id"`
- RepoTags []string `json:"RepoTags,omitempty" yaml:"RepoTags,omitempty"`
- Parent string `json:"Parent,omitempty" yaml:"Parent,omitempty"`
- Comment string `json:"Comment,omitempty" yaml:"Comment,omitempty"`
- Created time.Time `json:"Created,omitempty" yaml:"Created,omitempty"`
- Container string `json:"Container,omitempty" yaml:"Container,omitempty"`
- ContainerConfig Config `json:"ContainerConfig,omitempty" yaml:"ContainerConfig,omitempty"`
- DockerVersion string `json:"DockerVersion,omitempty" yaml:"DockerVersion,omitempty"`
- Author string `json:"Author,omitempty" yaml:"Author,omitempty"`
- Config *Config `json:"Config,omitempty" yaml:"Config,omitempty"`
- Architecture string `json:"Architecture,omitempty" yaml:"Architecture,omitempty"`
- Size int64 `json:"Size,omitempty" yaml:"Size,omitempty"`
- VirtualSize int64 `json:"VirtualSize,omitempty" yaml:"VirtualSize,omitempty"`
- RepoDigests []string `json:"RepoDigests,omitempty" yaml:"RepoDigests,omitempty"`
- RootFS *RootFS `json:"RootFS,omitempty" yaml:"RootFS,omitempty"`
-}
-
-// ImagePre012 serves the same purpose as the Image type except that it is for
-// earlier versions of the Docker API (pre-012 to be specific)
-type ImagePre012 struct {
- ID string `json:"id"`
- Parent string `json:"parent,omitempty"`
- Comment string `json:"comment,omitempty"`
- Created time.Time `json:"created"`
- Container string `json:"container,omitempty"`
- ContainerConfig Config `json:"container_config,omitempty"`
- DockerVersion string `json:"docker_version,omitempty"`
- Author string `json:"author,omitempty"`
- Config *Config `json:"config,omitempty"`
- Architecture string `json:"architecture,omitempty"`
- Size int64 `json:"size,omitempty"`
-}
-
-var (
- // ErrNoSuchImage is the error returned when the image does not exist.
- ErrNoSuchImage = errors.New("no such image")
-
- // ErrMissingRepo is the error returned when the remote repository is
- // missing.
- ErrMissingRepo = errors.New("missing remote repository e.g. 'github.com/user/repo'")
-
- // ErrMissingOutputStream is the error returned when no output stream
- // is provided to some calls, like BuildImage.
- ErrMissingOutputStream = errors.New("missing output stream")
-
- // ErrMultipleContexts is the error returned when both a ContextDir and
- // InputStream are provided in BuildImageOptions
- ErrMultipleContexts = errors.New("image build may not be provided BOTH context dir and input stream")
-
- // ErrMustSpecifyNames is the error rreturned when the Names field on
- // ExportImagesOptions is nil or empty
- ErrMustSpecifyNames = errors.New("must specify at least one name to export")
-)
-
-// ListImagesOptions specify parameters to the ListImages function.
-//
-// See https://goo.gl/xBe1u3 for more details.
-type ListImagesOptions struct {
- All bool
- Filters map[string][]string
- Digests bool
- Filter string
-}
-
-// ListImages returns the list of available images in the server.
-//
-// See https://goo.gl/xBe1u3 for more details.
-func (c *Client) ListImages(opts ListImagesOptions) ([]APIImages, error) {
- path := "/images/json?" + queryString(opts)
- resp, err := c.do("GET", path, doOptions{})
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- var images []APIImages
- if err := json.NewDecoder(resp.Body).Decode(&images); err != nil {
- return nil, err
- }
- return images, nil
-}
-
-// ImageHistory represent a layer in an image's history returned by the
-// ImageHistory call.
-type ImageHistory struct {
- ID string `json:"Id" yaml:"Id"`
- Tags []string `json:"Tags,omitempty" yaml:"Tags,omitempty"`
- Created int64 `json:"Created,omitempty" yaml:"Created,omitempty"`
- CreatedBy string `json:"CreatedBy,omitempty" yaml:"CreatedBy,omitempty"`
- Size int64 `json:"Size,omitempty" yaml:"Size,omitempty"`
-}
-
-// ImageHistory returns the history of the image by its name or ID.
-//
-// See https://goo.gl/8bnTId for more details.
-func (c *Client) ImageHistory(name string) ([]ImageHistory, error) {
- resp, err := c.do("GET", "/images/"+name+"/history", doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return nil, ErrNoSuchImage
- }
- return nil, err
- }
- defer resp.Body.Close()
- var history []ImageHistory
- if err := json.NewDecoder(resp.Body).Decode(&history); err != nil {
- return nil, err
- }
- return history, nil
-}
-
-// RemoveImage removes an image by its name or ID.
-//
-// See https://goo.gl/V3ZWnK for more details.
-func (c *Client) RemoveImage(name string) error {
- resp, err := c.do("DELETE", "/images/"+name, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return ErrNoSuchImage
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// RemoveImageOptions present the set of options available for removing an image
-// from a registry.
-//
-// See https://goo.gl/V3ZWnK for more details.
-type RemoveImageOptions struct {
- Force bool `qs:"force"`
- NoPrune bool `qs:"noprune"`
-}
-
-// RemoveImageExtended removes an image by its name or ID.
-// Extra params can be passed, see RemoveImageOptions
-//
-// See https://goo.gl/V3ZWnK for more details.
-func (c *Client) RemoveImageExtended(name string, opts RemoveImageOptions) error {
- uri := fmt.Sprintf("/images/%s?%s", name, queryString(&opts))
- resp, err := c.do("DELETE", uri, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return ErrNoSuchImage
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// InspectImage returns an image by its name or ID.
-//
-// See https://goo.gl/jHPcg6 for more details.
-func (c *Client) InspectImage(name string) (*Image, error) {
- resp, err := c.do("GET", "/images/"+name+"/json", doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return nil, ErrNoSuchImage
- }
- return nil, err
- }
- defer resp.Body.Close()
-
- var image Image
-
- // if the caller elected to skip checking the server's version, assume it's the latest
- if c.SkipServerVersionCheck || c.expectedAPIVersion.GreaterThanOrEqualTo(apiVersion112) {
- if err := json.NewDecoder(resp.Body).Decode(&image); err != nil {
- return nil, err
- }
- } else {
- var imagePre012 ImagePre012
- if err := json.NewDecoder(resp.Body).Decode(&imagePre012); err != nil {
- return nil, err
- }
-
- image.ID = imagePre012.ID
- image.Parent = imagePre012.Parent
- image.Comment = imagePre012.Comment
- image.Created = imagePre012.Created
- image.Container = imagePre012.Container
- image.ContainerConfig = imagePre012.ContainerConfig
- image.DockerVersion = imagePre012.DockerVersion
- image.Author = imagePre012.Author
- image.Config = imagePre012.Config
- image.Architecture = imagePre012.Architecture
- image.Size = imagePre012.Size
- }
-
- return &image, nil
-}
-
-// PushImageOptions represents options to use in the PushImage method.
-//
-// See https://goo.gl/zPtZaT for more details.
-type PushImageOptions struct {
- // Name of the image
- Name string
-
- // Tag of the image
- Tag string
-
- // Registry server to push the image
- Registry string
-
- OutputStream io.Writer `qs:"-"`
- RawJSONStream bool `qs:"-"`
-}
-
-// PushImage pushes an image to a remote registry, logging progress to w.
-//
-// An empty instance of AuthConfiguration may be used for unauthenticated
-// pushes.
-//
-// See https://goo.gl/zPtZaT for more details.
-func (c *Client) PushImage(opts PushImageOptions, auth AuthConfiguration) error {
- if opts.Name == "" {
- return ErrNoSuchImage
- }
- headers, err := headersWithAuth(auth)
- if err != nil {
- return err
- }
- name := opts.Name
- opts.Name = ""
- path := "/images/" + name + "/push?" + queryString(&opts)
- return c.stream("POST", path, streamOptions{
- setRawTerminal: true,
- rawJSONStream: opts.RawJSONStream,
- headers: headers,
- stdout: opts.OutputStream,
- })
-}
-
-// PullImageOptions present the set of options available for pulling an image
-// from a registry.
-//
-// See https://goo.gl/iJkZjD for more details.
-type PullImageOptions struct {
- Repository string `qs:"fromImage"`
- Registry string
- Tag string
- OutputStream io.Writer `qs:"-"`
- RawJSONStream bool `qs:"-"`
-}
-
-// PullImage pulls an image from a remote registry, logging progress to
-// opts.OutputStream.
-//
-// See https://goo.gl/iJkZjD for more details.
-func (c *Client) PullImage(opts PullImageOptions, auth AuthConfiguration) error {
- if opts.Repository == "" {
- return ErrNoSuchImage
- }
-
- headers, err := headersWithAuth(auth)
- if err != nil {
- return err
- }
- return c.createImage(queryString(&opts), headers, nil, opts.OutputStream, opts.RawJSONStream)
-}
-
-func (c *Client) createImage(qs string, headers map[string]string, in io.Reader, w io.Writer, rawJSONStream bool) error {
- path := "/images/create?" + qs
- return c.stream("POST", path, streamOptions{
- setRawTerminal: true,
- rawJSONStream: rawJSONStream,
- headers: headers,
- in: in,
- stdout: w,
- })
-}
-
-// LoadImageOptions represents the options for LoadImage Docker API Call
-//
-// See https://goo.gl/JyClMX for more details.
-type LoadImageOptions struct {
- InputStream io.Reader
-}
-
-// LoadImage imports a tarball docker image
-//
-// See https://goo.gl/JyClMX for more details.
-func (c *Client) LoadImage(opts LoadImageOptions) error {
- return c.stream("POST", "/images/load", streamOptions{
- setRawTerminal: true,
- in: opts.InputStream,
- })
-}
-
-// ExportImageOptions represent the options for ExportImage Docker API call.
-//
-// See https://goo.gl/le7vK8 for more details.
-type ExportImageOptions struct {
- Name string
- OutputStream io.Writer
-}
-
-// ExportImage exports an image (as a tar file) into the stream.
-//
-// See https://goo.gl/le7vK8 for more details.
-func (c *Client) ExportImage(opts ExportImageOptions) error {
- return c.stream("GET", fmt.Sprintf("/images/%s/get", opts.Name), streamOptions{
- setRawTerminal: true,
- stdout: opts.OutputStream,
- })
-}
-
-// ExportImagesOptions represent the options for ExportImages Docker API call
-//
-// See https://goo.gl/huC7HA for more details.
-type ExportImagesOptions struct {
- Names []string
- OutputStream io.Writer `qs:"-"`
-}
-
-// ExportImages exports one or more images (as a tar file) into the stream
-//
-// See https://goo.gl/huC7HA for more details.
-func (c *Client) ExportImages(opts ExportImagesOptions) error {
- if opts.Names == nil || len(opts.Names) == 0 {
- return ErrMustSpecifyNames
- }
- return c.stream("GET", "/images/get?"+queryString(&opts), streamOptions{
- setRawTerminal: true,
- stdout: opts.OutputStream,
- })
-}
-
-// ImportImageOptions present the set of informations available for importing
-// an image from a source file or the stdin.
-//
-// See https://goo.gl/iJkZjD for more details.
-type ImportImageOptions struct {
- Repository string `qs:"repo"`
- Source string `qs:"fromSrc"`
- Tag string `qs:"tag"`
-
- InputStream io.Reader `qs:"-"`
- OutputStream io.Writer `qs:"-"`
- RawJSONStream bool `qs:"-"`
-}
-
-// ImportImage imports an image from a url, a file or stdin
-//
-// See https://goo.gl/iJkZjD for more details.
-func (c *Client) ImportImage(opts ImportImageOptions) error {
- if opts.Repository == "" {
- return ErrNoSuchImage
- }
- if opts.Source != "-" {
- opts.InputStream = nil
- }
- if opts.Source != "-" && !isURL(opts.Source) {
- f, err := os.Open(opts.Source)
- if err != nil {
- return err
- }
- opts.InputStream = f
- opts.Source = "-"
- }
- return c.createImage(queryString(&opts), nil, opts.InputStream, opts.OutputStream, opts.RawJSONStream)
-}
-
-// BuildImageOptions present the set of informations available for building an
-// image from a tarfile with a Dockerfile in it.
-//
-// For more details about the Docker building process, see
-// http://goo.gl/tlPXPu.
-type BuildImageOptions struct {
- Name string `qs:"t"`
- Dockerfile string `qs:"dockerfile"`
- NoCache bool `qs:"nocache"`
- SuppressOutput bool `qs:"q"`
- Pull bool `qs:"pull"`
- RmTmpContainer bool `qs:"rm"`
- ForceRmTmpContainer bool `qs:"forcerm"`
- Memory int64 `qs:"memory"`
- Memswap int64 `qs:"memswap"`
- CPUShares int64 `qs:"cpushares"`
- CPUQuota int64 `qs:"cpuquota"`
- CPUPeriod int64 `qs:"cpuperiod"`
- CPUSetCPUs string `qs:"cpusetcpus"`
- InputStream io.Reader `qs:"-"`
- OutputStream io.Writer `qs:"-"`
- RawJSONStream bool `qs:"-"`
- Remote string `qs:"remote"`
- Auth AuthConfiguration `qs:"-"` // for older docker X-Registry-Auth header
- AuthConfigs AuthConfigurations `qs:"-"` // for newer docker X-Registry-Config header
- ContextDir string `qs:"-"`
- Ulimits []ULimit `qs:"-"`
- BuildArgs []BuildArg `qs:"-"`
-}
-
-// BuildArg represents arguments that can be passed to the image when building
-// it from a Dockerfile.
-//
-// For more details about the Docker building process, see
-// http://goo.gl/tlPXPu.
-type BuildArg struct {
- Name string `json:"Name,omitempty" yaml:"Name,omitempty"`
- Value string `json:"Value,omitempty" yaml:"Value,omitempty"`
-}
-
-// BuildImage builds an image from a tarball's url or a Dockerfile in the input
-// stream.
-//
-// See https://goo.gl/xySxCe for more details.
-func (c *Client) BuildImage(opts BuildImageOptions) error {
- if opts.OutputStream == nil {
- return ErrMissingOutputStream
- }
- headers, err := headersWithAuth(opts.Auth, c.versionedAuthConfigs(opts.AuthConfigs))
- if err != nil {
- return err
- }
-
- if opts.Remote != "" && opts.Name == "" {
- opts.Name = opts.Remote
- }
- if opts.InputStream != nil || opts.ContextDir != "" {
- headers["Content-Type"] = "application/tar"
- } else if opts.Remote == "" {
- return ErrMissingRepo
- }
- if opts.ContextDir != "" {
- if opts.InputStream != nil {
- return ErrMultipleContexts
- }
- var err error
- if opts.InputStream, err = createTarStream(opts.ContextDir, opts.Dockerfile); err != nil {
- return err
- }
- }
-
- qs := queryString(&opts)
- if len(opts.Ulimits) > 0 {
- if b, err := json.Marshal(opts.Ulimits); err == nil {
- item := url.Values(map[string][]string{})
- item.Add("ulimits", string(b))
- qs = fmt.Sprintf("%s&%s", qs, item.Encode())
- }
- }
-
- if len(opts.BuildArgs) > 0 {
- v := make(map[string]string)
- for _, arg := range opts.BuildArgs {
- v[arg.Name] = arg.Value
- }
- if b, err := json.Marshal(v); err == nil {
- item := url.Values(map[string][]string{})
- item.Add("buildargs", string(b))
- qs = fmt.Sprintf("%s&%s", qs, item.Encode())
- }
- }
-
- return c.stream("POST", fmt.Sprintf("/build?%s", qs), streamOptions{
- setRawTerminal: true,
- rawJSONStream: opts.RawJSONStream,
- headers: headers,
- in: opts.InputStream,
- stdout: opts.OutputStream,
- })
-}
-
-func (c *Client) versionedAuthConfigs(authConfigs AuthConfigurations) interface{} {
- if c.serverAPIVersion == nil {
- c.checkAPIVersion()
- }
- if c.serverAPIVersion != nil && c.serverAPIVersion.GreaterThanOrEqualTo(apiVersion119) {
- return AuthConfigurations119(authConfigs.Configs)
- }
- return authConfigs
-}
-
-// TagImageOptions present the set of options to tag an image.
-//
-// See https://goo.gl/98ZzkU for more details.
-type TagImageOptions struct {
- Repo string
- Tag string
- Force bool
-}
-
-// TagImage adds a tag to the image identified by the given name.
-//
-// See https://goo.gl/98ZzkU for more details.
-func (c *Client) TagImage(name string, opts TagImageOptions) error {
- if name == "" {
- return ErrNoSuchImage
- }
- resp, err := c.do("POST", fmt.Sprintf("/images/"+name+"/tag?%s",
- queryString(&opts)), doOptions{})
-
- if err != nil {
- return err
- }
-
- defer resp.Body.Close()
-
- if resp.StatusCode == http.StatusNotFound {
- return ErrNoSuchImage
- }
-
- return err
-}
-
-func isURL(u string) bool {
- p, err := url.Parse(u)
- if err != nil {
- return false
- }
- return p.Scheme == "http" || p.Scheme == "https"
-}
-
-func headersWithAuth(auths ...interface{}) (map[string]string, error) {
- var headers = make(map[string]string)
-
- for _, auth := range auths {
- switch auth.(type) {
- case AuthConfiguration:
- var buf bytes.Buffer
- if err := json.NewEncoder(&buf).Encode(auth); err != nil {
- return nil, err
- }
- headers["X-Registry-Auth"] = base64.URLEncoding.EncodeToString(buf.Bytes())
- case AuthConfigurations, AuthConfigurations119:
- var buf bytes.Buffer
- if err := json.NewEncoder(&buf).Encode(auth); err != nil {
- return nil, err
- }
- headers["X-Registry-Config"] = base64.URLEncoding.EncodeToString(buf.Bytes())
- }
- }
-
- return headers, nil
-}
-
-// APIImageSearch reflect the result of a search on the Docker Hub.
-//
-// See https://goo.gl/AYjyrF for more details.
-type APIImageSearch struct {
- Description string `json:"description,omitempty" yaml:"description,omitempty"`
- IsOfficial bool `json:"is_official,omitempty" yaml:"is_official,omitempty"`
- IsAutomated bool `json:"is_automated,omitempty" yaml:"is_automated,omitempty"`
- Name string `json:"name,omitempty" yaml:"name,omitempty"`
- StarCount int `json:"star_count,omitempty" yaml:"star_count,omitempty"`
-}
-
-// SearchImages search the docker hub with a specific given term.
-//
-// See https://goo.gl/AYjyrF for more details.
-func (c *Client) SearchImages(term string) ([]APIImageSearch, error) {
- resp, err := c.do("GET", "/images/search?term="+term, doOptions{})
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- var searchResult []APIImageSearch
- if err := json.NewDecoder(resp.Body).Decode(&searchResult); err != nil {
- return nil, err
- }
- return searchResult, nil
-}
-
-// SearchImagesEx search the docker hub with a specific given term and authentication.
-//
-// See https://goo.gl/AYjyrF for more details.
-func (c *Client) SearchImagesEx(term string, auth AuthConfiguration) ([]APIImageSearch, error) {
- headers, err := headersWithAuth(auth)
- if err != nil {
- return nil, err
- }
-
- resp, err := c.do("GET", "/images/search?term="+term, doOptions{
- headers: headers,
- })
- if err != nil {
- return nil, err
- }
-
- defer resp.Body.Close()
-
- var searchResult []APIImageSearch
- if err := json.NewDecoder(resp.Body).Decode(&searchResult); err != nil {
- return nil, err
- }
-
- return searchResult, nil
-}
diff --git a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/network.go b/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/network.go
deleted file mode 100644
index 22d6dbdb..00000000
--- a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/network.go
+++ /dev/null
@@ -1,273 +0,0 @@
-// Copyright 2015 go-dockerclient authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package docker
-
-import (
- "bytes"
- "encoding/json"
- "errors"
- "fmt"
- "net/http"
-)
-
-// ErrNetworkAlreadyExists is the error returned by CreateNetwork when the
-// network already exists.
-var ErrNetworkAlreadyExists = errors.New("network already exists")
-
-// Network represents a network.
-//
-// See https://goo.gl/6GugX3 for more details.
-type Network struct {
- Name string
- ID string `json:"Id"`
- Scope string
- Driver string
- IPAM IPAMOptions
- Containers map[string]Endpoint
- Options map[string]string
- Internal bool
- EnableIPv6 bool `json:"EnableIPv6"`
-}
-
-// Endpoint contains network resources allocated and used for a container in a network
-//
-// See https://goo.gl/6GugX3 for more details.
-type Endpoint struct {
- Name string
- ID string `json:"EndpointID"`
- MacAddress string
- IPv4Address string
- IPv6Address string
-}
-
-// ListNetworks returns all networks.
-//
-// See https://goo.gl/6GugX3 for more details.
-func (c *Client) ListNetworks() ([]Network, error) {
- resp, err := c.do("GET", "/networks", doOptions{})
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- var networks []Network
- if err := json.NewDecoder(resp.Body).Decode(&networks); err != nil {
- return nil, err
- }
- return networks, nil
-}
-
-// NetworkFilterOpts is an aggregation of key=value that Docker
-// uses to filter networks
-type NetworkFilterOpts map[string]map[string]bool
-
-// FilteredListNetworks returns all networks with the filters applied
-//
-// See goo.gl/zd2mx4 for more details.
-func (c *Client) FilteredListNetworks(opts NetworkFilterOpts) ([]Network, error) {
- params := bytes.NewBuffer(nil)
- if err := json.NewEncoder(params).Encode(&opts); err != nil {
- return nil, err
- }
- path := "/networks?filters=" + params.String()
- resp, err := c.do("GET", path, doOptions{})
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- var networks []Network
- if err := json.NewDecoder(resp.Body).Decode(&networks); err != nil {
- return nil, err
- }
- return networks, nil
-}
-
-// NetworkInfo returns information about a network by its ID.
-//
-// See https://goo.gl/6GugX3 for more details.
-func (c *Client) NetworkInfo(id string) (*Network, error) {
- path := "/networks/" + id
- resp, err := c.do("GET", path, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return nil, &NoSuchNetwork{ID: id}
- }
- return nil, err
- }
- defer resp.Body.Close()
- var network Network
- if err := json.NewDecoder(resp.Body).Decode(&network); err != nil {
- return nil, err
- }
- return &network, nil
-}
-
-// CreateNetworkOptions specify parameters to the CreateNetwork function and
-// (for now) is the expected body of the "create network" http request message
-//
-// See https://goo.gl/6GugX3 for more details.
-type CreateNetworkOptions struct {
- Name string `json:"Name"`
- CheckDuplicate bool `json:"CheckDuplicate"`
- Driver string `json:"Driver"`
- IPAM IPAMOptions `json:"IPAM"`
- Options map[string]interface{} `json:"Options"`
- Internal bool `json:"Internal"`
- EnableIPv6 bool `json:"EnableIPv6"`
-}
-
-// IPAMOptions controls IP Address Management when creating a network
-//
-// See https://goo.gl/T8kRVH for more details.
-type IPAMOptions struct {
- Driver string `json:"Driver"`
- Config []IPAMConfig `json:"IPAMConfig"`
-}
-
-// IPAMConfig represents IPAM configurations
-//
-// See https://goo.gl/T8kRVH for more details.
-type IPAMConfig struct {
- Subnet string `json:",omitempty"`
- IPRange string `json:",omitempty"`
- Gateway string `json:",omitempty"`
- AuxAddress map[string]string `json:"AuxiliaryAddresses,omitempty"`
-}
-
-// CreateNetwork creates a new network, returning the network instance,
-// or an error in case of failure.
-//
-// See https://goo.gl/6GugX3 for more details.
-func (c *Client) CreateNetwork(opts CreateNetworkOptions) (*Network, error) {
- resp, err := c.do(
- "POST",
- "/networks/create",
- doOptions{
- data: opts,
- },
- )
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusConflict {
- return nil, ErrNetworkAlreadyExists
- }
- return nil, err
- }
- defer resp.Body.Close()
-
- type createNetworkResponse struct {
- ID string
- }
- var (
- network Network
- cnr createNetworkResponse
- )
- if err := json.NewDecoder(resp.Body).Decode(&cnr); err != nil {
- return nil, err
- }
-
- network.Name = opts.Name
- network.ID = cnr.ID
- network.Driver = opts.Driver
-
- return &network, nil
-}
-
-// RemoveNetwork removes a network or returns an error in case of failure.
-//
-// See https://goo.gl/6GugX3 for more details.
-func (c *Client) RemoveNetwork(id string) error {
- resp, err := c.do("DELETE", "/networks/"+id, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchNetwork{ID: id}
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// NetworkConnectionOptions specify parameters to the ConnectNetwork and
-// DisconnectNetwork function.
-//
-// See https://goo.gl/RV7BJU for more details.
-type NetworkConnectionOptions struct {
- Container string
-
- // EndpointConfig is only applicable to the ConnectNetwork call
- EndpointConfig *EndpointConfig `json:"EndpointConfig,omitempty"`
-
- // Force is only applicable to the DisconnectNetwork call
- Force bool
-}
-
-// EndpointConfig stores network endpoint details
-//
-// See https://goo.gl/RV7BJU for more details.
-type EndpointConfig struct {
- IPAMConfig *EndpointIPAMConfig
- Links []string
- Aliases []string
-}
-
-// EndpointIPAMConfig represents IPAM configurations for an
-// endpoint
-//
-// See https://goo.gl/RV7BJU for more details.
-type EndpointIPAMConfig struct {
- IPv4Address string `json:",omitempty"`
- IPv6Address string `json:",omitempty"`
-}
-
-// ConnectNetwork adds a container to a network or returns an error in case of
-// failure.
-//
-// See https://goo.gl/6GugX3 for more details.
-func (c *Client) ConnectNetwork(id string, opts NetworkConnectionOptions) error {
- resp, err := c.do("POST", "/networks/"+id+"/connect", doOptions{data: opts})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchNetworkOrContainer{NetworkID: id, ContainerID: opts.Container}
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// DisconnectNetwork removes a container from a network or returns an error in
-// case of failure.
-//
-// See https://goo.gl/6GugX3 for more details.
-func (c *Client) DisconnectNetwork(id string, opts NetworkConnectionOptions) error {
- resp, err := c.do("POST", "/networks/"+id+"/disconnect", doOptions{data: opts})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return &NoSuchNetworkOrContainer{NetworkID: id, ContainerID: opts.Container}
- }
- return err
- }
- resp.Body.Close()
- return nil
-}
-
-// NoSuchNetwork is the error returned when a given network does not exist.
-type NoSuchNetwork struct {
- ID string
-}
-
-func (err *NoSuchNetwork) Error() string {
- return fmt.Sprintf("No such network: %s", err.ID)
-}
-
-// NoSuchNetworkOrContainer is the error returned when a given network or
-// container does not exist.
-type NoSuchNetworkOrContainer struct {
- NetworkID string
- ContainerID string
-}
-
-func (err *NoSuchNetworkOrContainer) Error() string {
- return fmt.Sprintf("No such network (%s) or container (%s)", err.NetworkID, err.ContainerID)
-}
diff --git a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/volume.go b/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/volume.go
deleted file mode 100644
index 5fe8ee3d..00000000
--- a/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/volume.go
+++ /dev/null
@@ -1,128 +0,0 @@
-// Copyright 2015 go-dockerclient authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package docker
-
-import (
- "encoding/json"
- "errors"
- "net/http"
-)
-
-var (
- // ErrNoSuchVolume is the error returned when the volume does not exist.
- ErrNoSuchVolume = errors.New("no such volume")
-
- // ErrVolumeInUse is the error returned when the volume requested to be removed is still in use.
- ErrVolumeInUse = errors.New("volume in use and cannot be removed")
-)
-
-// Volume represents a volume.
-//
-// See https://goo.gl/FZA4BK for more details.
-type Volume struct {
- Name string `json:"Name" yaml:"Name"`
- Driver string `json:"Driver,omitempty" yaml:"Driver,omitempty"`
- Mountpoint string `json:"Mountpoint,omitempty" yaml:"Mountpoint,omitempty"`
- Labels map[string]string `json:"Labels,omitempty" yaml:"Labels,omitempty"`
-}
-
-// ListVolumesOptions specify parameters to the ListVolumes function.
-//
-// See https://goo.gl/FZA4BK for more details.
-type ListVolumesOptions struct {
- Filters map[string][]string
-}
-
-// ListVolumes returns a list of available volumes in the server.
-//
-// See https://goo.gl/FZA4BK for more details.
-func (c *Client) ListVolumes(opts ListVolumesOptions) ([]Volume, error) {
- resp, err := c.do("GET", "/volumes?"+queryString(opts), doOptions{})
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- m := make(map[string]interface{})
- if err := json.NewDecoder(resp.Body).Decode(&m); err != nil {
- return nil, err
- }
- var volumes []Volume
- volumesJSON, ok := m["Volumes"]
- if !ok {
- return volumes, nil
- }
- data, err := json.Marshal(volumesJSON)
- if err != nil {
- return nil, err
- }
- if err := json.Unmarshal(data, &volumes); err != nil {
- return nil, err
- }
- return volumes, nil
-}
-
-// CreateVolumeOptions specify parameters to the CreateVolume function.
-//
-// See https://goo.gl/pBUbZ9 for more details.
-type CreateVolumeOptions struct {
- Name string
- Driver string
- DriverOpts map[string]string
-}
-
-// CreateVolume creates a volume on the server.
-//
-// See https://goo.gl/pBUbZ9 for more details.
-func (c *Client) CreateVolume(opts CreateVolumeOptions) (*Volume, error) {
- resp, err := c.do("POST", "/volumes/create", doOptions{data: opts})
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- var volume Volume
- if err := json.NewDecoder(resp.Body).Decode(&volume); err != nil {
- return nil, err
- }
- return &volume, nil
-}
-
-// InspectVolume returns a volume by its name.
-//
-// See https://goo.gl/0g9A6i for more details.
-func (c *Client) InspectVolume(name string) (*Volume, error) {
- resp, err := c.do("GET", "/volumes/"+name, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return nil, ErrNoSuchVolume
- }
- return nil, err
- }
- defer resp.Body.Close()
- var volume Volume
- if err := json.NewDecoder(resp.Body).Decode(&volume); err != nil {
- return nil, err
- }
- return &volume, nil
-}
-
-// RemoveVolume removes a volume by its name.
-//
-// See https://goo.gl/79GNQz for more details.
-func (c *Client) RemoveVolume(name string) error {
- resp, err := c.do("DELETE", "/volumes/"+name, doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok {
- if e.Status == http.StatusNotFound {
- return ErrNoSuchVolume
- }
- if e.Status == http.StatusConflict {
- return ErrVolumeInUse
- }
- }
- return nil
- }
- defer resp.Body.Close()
- return nil
-}
diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/internal/redistest/testdb.go b/Godeps/_workspace/src/github.com/garyburd/redigo/internal/redistest/testdb.go
deleted file mode 100644
index 5f955c42..00000000
--- a/Godeps/_workspace/src/github.com/garyburd/redigo/internal/redistest/testdb.go
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2014 Gary Burd
-//
-// Licensed under the Apache License, Version 2.0 (the "License"): you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-// Package redistest contains utilities for writing Redigo tests.
-package redistest
-
-import (
- "errors"
- "time"
-
- "github.com/garyburd/redigo/redis"
-)
-
-type testConn struct {
- redis.Conn
-}
-
-func (t testConn) Close() error {
- _, err := t.Conn.Do("SELECT", "9")
- if err != nil {
- return nil
- }
- _, err = t.Conn.Do("FLUSHDB")
- if err != nil {
- return err
- }
- return t.Conn.Close()
-}
-
-// Dial dials the local Redis server and selects database 9. To prevent
-// stomping on real data, DialTestDB fails if database 9 contains data. The
-// returned connection flushes database 9 on close.
-func Dial() (redis.Conn, error) {
- c, err := redis.DialTimeout("tcp", ":6379", 0, 1*time.Second, 1*time.Second)
- if err != nil {
- return nil, err
- }
-
- _, err = c.Do("SELECT", "9")
- if err != nil {
- return nil, err
- }
-
- n, err := redis.Int(c.Do("DBSIZE"))
- if err != nil {
- return nil, err
- }
-
- if n != 0 {
- return nil, errors.New("database #9 is not empty, test can not continue")
- }
-
- return testConn{c}, nil
-}
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/call.go b/Godeps/_workspace/src/github.com/godbus/dbus/introspect/call.go
deleted file mode 100644
index 790a23ec..00000000
--- a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/call.go
+++ /dev/null
@@ -1,27 +0,0 @@
-package introspect
-
-import (
- "encoding/xml"
- "github.com/godbus/dbus"
- "strings"
-)
-
-// Call calls org.freedesktop.Introspectable.Introspect on a remote object
-// and returns the introspection data.
-func Call(o dbus.BusObject) (*Node, error) {
- var xmldata string
- var node Node
-
- err := o.Call("org.freedesktop.DBus.Introspectable.Introspect", 0).Store(&xmldata)
- if err != nil {
- return nil, err
- }
- err = xml.NewDecoder(strings.NewReader(xmldata)).Decode(&node)
- if err != nil {
- return nil, err
- }
- if node.Name == "" {
- node.Name = string(o.Path())
- }
- return &node, nil
-}
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspect.go b/Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspect.go
deleted file mode 100644
index b06c3f1c..00000000
--- a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspect.go
+++ /dev/null
@@ -1,86 +0,0 @@
-// Package introspect provides some utilities for dealing with the DBus
-// introspection format.
-package introspect
-
-import "encoding/xml"
-
-// The introspection data for the org.freedesktop.DBus.Introspectable interface.
-var IntrospectData = Interface{
- Name: "org.freedesktop.DBus.Introspectable",
- Methods: []Method{
- {
- Name: "Introspect",
- Args: []Arg{
- {"out", "s", "out"},
- },
- },
- },
-}
-
-// XML document type declaration of the introspection format version 1.0
-const IntrospectDeclarationString = `
-
-`
-
-// The introspection data for the org.freedesktop.DBus.Introspectable interface,
-// as a string.
-const IntrospectDataString = `
-
-
-
-
-
-`
-
-// Node is the root element of an introspection.
-type Node struct {
- XMLName xml.Name `xml:"node"`
- Name string `xml:"name,attr,omitempty"`
- Interfaces []Interface `xml:"interface"`
- Children []Node `xml:"node,omitempty"`
-}
-
-// Interface describes a DBus interface that is available on the message bus.
-type Interface struct {
- Name string `xml:"name,attr"`
- Methods []Method `xml:"method"`
- Signals []Signal `xml:"signal"`
- Properties []Property `xml:"property"`
- Annotations []Annotation `xml:"annotation"`
-}
-
-// Method describes a Method on an Interface as retured by an introspection.
-type Method struct {
- Name string `xml:"name,attr"`
- Args []Arg `xml:"arg"`
- Annotations []Annotation `xml:"annotation"`
-}
-
-// Signal describes a Signal emitted on an Interface.
-type Signal struct {
- Name string `xml:"name,attr"`
- Args []Arg `xml:"arg"`
- Annotations []Annotation `xml:"annotation"`
-}
-
-// Property describes a property of an Interface.
-type Property struct {
- Name string `xml:"name,attr"`
- Type string `xml:"type,attr"`
- Access string `xml:"access,attr"`
- Annotations []Annotation `xml:"annotation"`
-}
-
-// Arg represents an argument of a method or a signal.
-type Arg struct {
- Name string `xml:"name,attr,omitempty"`
- Type string `xml:"type,attr"`
- Direction string `xml:"direction,attr,omitempty"`
-}
-
-// Annotation is an annotation in the introspection format.
-type Annotation struct {
- Name string `xml:"name,attr"`
- Value string `xml:"value,attr"`
-}
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspectable.go b/Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspectable.go
deleted file mode 100644
index 2f16690b..00000000
--- a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspectable.go
+++ /dev/null
@@ -1,76 +0,0 @@
-package introspect
-
-import (
- "encoding/xml"
- "github.com/godbus/dbus"
- "reflect"
- "strings"
-)
-
-// Introspectable implements org.freedesktop.Introspectable.
-//
-// You can create it by converting the XML-formatted introspection data from a
-// string to an Introspectable or call NewIntrospectable with a Node. Then,
-// export it as org.freedesktop.Introspectable on you object.
-type Introspectable string
-
-// NewIntrospectable returns an Introspectable that returns the introspection
-// data that corresponds to the given Node. If n.Interfaces doesn't contain the
-// data for org.freedesktop.DBus.Introspectable, it is added automatically.
-func NewIntrospectable(n *Node) Introspectable {
- found := false
- for _, v := range n.Interfaces {
- if v.Name == "org.freedesktop.DBus.Introspectable" {
- found = true
- break
- }
- }
- if !found {
- n.Interfaces = append(n.Interfaces, IntrospectData)
- }
- b, err := xml.Marshal(n)
- if err != nil {
- panic(err)
- }
- return Introspectable(strings.TrimSpace(IntrospectDeclarationString) + string(b))
-}
-
-// Introspect implements org.freedesktop.Introspectable.Introspect.
-func (i Introspectable) Introspect() (string, *dbus.Error) {
- return string(i), nil
-}
-
-// Methods returns the description of the methods of v. This can be used to
-// create a Node which can be passed to NewIntrospectable.
-func Methods(v interface{}) []Method {
- t := reflect.TypeOf(v)
- ms := make([]Method, 0, t.NumMethod())
- for i := 0; i < t.NumMethod(); i++ {
- if t.Method(i).PkgPath != "" {
- continue
- }
- mt := t.Method(i).Type
- if mt.NumOut() == 0 ||
- mt.Out(mt.NumOut()-1) != reflect.TypeOf(&dbus.Error{}) {
-
- continue
- }
- var m Method
- m.Name = t.Method(i).Name
- m.Args = make([]Arg, 0, mt.NumIn()+mt.NumOut()-2)
- for j := 1; j < mt.NumIn(); j++ {
- if mt.In(j) != reflect.TypeOf((*dbus.Sender)(nil)).Elem() &&
- mt.In(j) != reflect.TypeOf((*dbus.Message)(nil)).Elem() {
- arg := Arg{"", dbus.SignatureOfType(mt.In(j)).String(), "in"}
- m.Args = append(m.Args, arg)
- }
- }
- for j := 0; j < mt.NumOut()-1; j++ {
- arg := Arg{"", dbus.SignatureOfType(mt.Out(j)).String(), "out"}
- m.Args = append(m.Args, arg)
- }
- m.Annotations = make([]Annotation, 0)
- ms = append(ms, m)
- }
- return ms
-}
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/prop/prop.go b/Godeps/_workspace/src/github.com/godbus/dbus/prop/prop.go
deleted file mode 100644
index 834a1fa8..00000000
--- a/Godeps/_workspace/src/github.com/godbus/dbus/prop/prop.go
+++ /dev/null
@@ -1,264 +0,0 @@
-// Package prop provides the Properties struct which can be used to implement
-// org.freedesktop.DBus.Properties.
-package prop
-
-import (
- "github.com/godbus/dbus"
- "github.com/godbus/dbus/introspect"
- "sync"
-)
-
-// EmitType controls how org.freedesktop.DBus.Properties.PropertiesChanged is
-// emitted for a property. If it is EmitTrue, the signal is emitted. If it is
-// EmitInvalidates, the signal is also emitted, but the new value of the property
-// is not disclosed.
-type EmitType byte
-
-const (
- EmitFalse EmitType = iota
- EmitTrue
- EmitInvalidates
-)
-
-// ErrIfaceNotFound is the error returned to peers who try to access properties
-// on interfaces that aren't found.
-var ErrIfaceNotFound = dbus.NewError("org.freedesktop.DBus.Properties.Error.InterfaceNotFound", nil)
-
-// ErrPropNotFound is the error returned to peers trying to access properties
-// that aren't found.
-var ErrPropNotFound = dbus.NewError("org.freedesktop.DBus.Properties.Error.PropertyNotFound", nil)
-
-// ErrReadOnly is the error returned to peers trying to set a read-only
-// property.
-var ErrReadOnly = dbus.NewError("org.freedesktop.DBus.Properties.Error.ReadOnly", nil)
-
-// ErrInvalidArg is returned to peers if the type of the property that is being
-// changed and the argument don't match.
-var ErrInvalidArg = dbus.NewError("org.freedesktop.DBus.Properties.Error.InvalidArg", nil)
-
-// The introspection data for the org.freedesktop.DBus.Properties interface.
-var IntrospectData = introspect.Interface{
- Name: "org.freedesktop.DBus.Properties",
- Methods: []introspect.Method{
- {
- Name: "Get",
- Args: []introspect.Arg{
- {"interface", "s", "in"},
- {"property", "s", "in"},
- {"value", "v", "out"},
- },
- },
- {
- Name: "GetAll",
- Args: []introspect.Arg{
- {"interface", "s", "in"},
- {"props", "a{sv}", "out"},
- },
- },
- {
- Name: "Set",
- Args: []introspect.Arg{
- {"interface", "s", "in"},
- {"property", "s", "in"},
- {"value", "v", "in"},
- },
- },
- },
- Signals: []introspect.Signal{
- {
- Name: "PropertiesChanged",
- Args: []introspect.Arg{
- {"interface", "s", "out"},
- {"changed_properties", "a{sv}", "out"},
- {"invalidates_properties", "as", "out"},
- },
- },
- },
-}
-
-// The introspection data for the org.freedesktop.DBus.Properties interface, as
-// a string.
-const IntrospectDataString = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-`
-
-// Prop represents a single property. It is used for creating a Properties
-// value.
-type Prop struct {
- // Initial value. Must be a DBus-representable type.
- Value interface{}
-
- // If true, the value can be modified by calls to Set.
- Writable bool
-
- // Controls how org.freedesktop.DBus.Properties.PropertiesChanged is
- // emitted if this property changes.
- Emit EmitType
-
- // If not nil, anytime this property is changed by Set, this function is
- // called with an appropiate Change as its argument. If the returned error
- // is not nil, it is sent back to the caller of Set and the property is not
- // changed.
- Callback func(*Change) *dbus.Error
-}
-
-// Change represents a change of a property by a call to Set.
-type Change struct {
- Props *Properties
- Iface string
- Name string
- Value interface{}
-}
-
-// Properties is a set of values that can be made available to the message bus
-// using the org.freedesktop.DBus.Properties interface. It is safe for
-// concurrent use by multiple goroutines.
-type Properties struct {
- m map[string]map[string]*Prop
- mut sync.RWMutex
- conn *dbus.Conn
- path dbus.ObjectPath
-}
-
-// New returns a new Properties structure that manages the given properties.
-// The key for the first-level map of props is the name of the interface; the
-// second-level key is the name of the property. The returned structure will be
-// exported as org.freedesktop.DBus.Properties on path.
-func New(conn *dbus.Conn, path dbus.ObjectPath, props map[string]map[string]*Prop) *Properties {
- p := &Properties{m: props, conn: conn, path: path}
- conn.Export(p, path, "org.freedesktop.DBus.Properties")
- return p
-}
-
-// Get implements org.freedesktop.DBus.Properties.Get.
-func (p *Properties) Get(iface, property string) (dbus.Variant, *dbus.Error) {
- p.mut.RLock()
- defer p.mut.RUnlock()
- m, ok := p.m[iface]
- if !ok {
- return dbus.Variant{}, ErrIfaceNotFound
- }
- prop, ok := m[property]
- if !ok {
- return dbus.Variant{}, ErrPropNotFound
- }
- return dbus.MakeVariant(prop.Value), nil
-}
-
-// GetAll implements org.freedesktop.DBus.Properties.GetAll.
-func (p *Properties) GetAll(iface string) (map[string]dbus.Variant, *dbus.Error) {
- p.mut.RLock()
- defer p.mut.RUnlock()
- m, ok := p.m[iface]
- if !ok {
- return nil, ErrIfaceNotFound
- }
- rm := make(map[string]dbus.Variant, len(m))
- for k, v := range m {
- rm[k] = dbus.MakeVariant(v.Value)
- }
- return rm, nil
-}
-
-// GetMust returns the value of the given property and panics if either the
-// interface or the property name are invalid.
-func (p *Properties) GetMust(iface, property string) interface{} {
- p.mut.RLock()
- defer p.mut.RUnlock()
- return p.m[iface][property].Value
-}
-
-// Introspection returns the introspection data that represents the properties
-// of iface.
-func (p *Properties) Introspection(iface string) []introspect.Property {
- p.mut.RLock()
- defer p.mut.RUnlock()
- m := p.m[iface]
- s := make([]introspect.Property, 0, len(m))
- for k, v := range m {
- p := introspect.Property{Name: k, Type: dbus.SignatureOf(v.Value).String()}
- if v.Writable {
- p.Access = "readwrite"
- } else {
- p.Access = "read"
- }
- s = append(s, p)
- }
- return s
-}
-
-// set sets the given property and emits PropertyChanged if appropiate. p.mut
-// must already be locked.
-func (p *Properties) set(iface, property string, v interface{}) {
- prop := p.m[iface][property]
- prop.Value = v
- switch prop.Emit {
- case EmitFalse:
- // do nothing
- case EmitInvalidates:
- p.conn.Emit(p.path, "org.freedesktop.DBus.Properties.PropertiesChanged",
- iface, map[string]dbus.Variant{}, []string{property})
- case EmitTrue:
- p.conn.Emit(p.path, "org.freedesktop.DBus.Properties.PropertiesChanged",
- iface, map[string]dbus.Variant{property: dbus.MakeVariant(v)},
- []string{})
- default:
- panic("invalid value for EmitType")
- }
-}
-
-// Set implements org.freedesktop.Properties.Set.
-func (p *Properties) Set(iface, property string, newv dbus.Variant) *dbus.Error {
- p.mut.Lock()
- defer p.mut.Unlock()
- m, ok := p.m[iface]
- if !ok {
- return ErrIfaceNotFound
- }
- prop, ok := m[property]
- if !ok {
- return ErrPropNotFound
- }
- if !prop.Writable {
- return ErrReadOnly
- }
- if newv.Signature() != dbus.SignatureOf(prop.Value) {
- return ErrInvalidArg
- }
- if prop.Callback != nil {
- err := prop.Callback(&Change{p, iface, property, newv.Value()})
- if err != nil {
- return err
- }
- }
- p.set(iface, property, newv.Value())
- return nil
-}
-
-// SetMust sets the value of the given property and panics if the interface or
-// the property name are invalid.
-func (p *Properties) SetMust(iface, property string, v interface{}) {
- p.mut.Lock()
- p.set(iface, property, v)
- p.mut.Unlock()
-}
diff --git a/Godeps/_workspace/src/github.com/influxdb/influxdb/client/v2/client.go b/Godeps/_workspace/src/github.com/influxdb/influxdb/client/v2/client.go
deleted file mode 100644
index 4dce0c28..00000000
--- a/Godeps/_workspace/src/github.com/influxdb/influxdb/client/v2/client.go
+++ /dev/null
@@ -1,498 +0,0 @@
-package client
-
-import (
- "bytes"
- "crypto/tls"
- "encoding/json"
- "errors"
- "fmt"
- "io/ioutil"
- "net"
- "net/http"
- "net/url"
- "time"
-
- "github.com/influxdb/influxdb/models"
-)
-
-// UDPPayloadSize is a reasonable default payload size for UDP packets that
-// could be travelling over the internet.
-const (
- UDPPayloadSize = 512
-)
-
-type HTTPConfig struct {
- // Addr should be of the form "http://host:port"
- // or "http://[ipv6-host%zone]:port".
- Addr string
-
- // Username is the influxdb username, optional
- Username string
-
- // Password is the influxdb password, optional
- Password string
-
- // UserAgent is the http User Agent, defaults to "InfluxDBClient"
- UserAgent string
-
- // Timeout for influxdb writes, defaults to no timeout
- Timeout time.Duration
-
- // InsecureSkipVerify gets passed to the http client, if true, it will
- // skip https certificate verification. Defaults to false
- InsecureSkipVerify bool
-}
-
-type UDPConfig struct {
- // Addr should be of the form "host:port"
- // or "[ipv6-host%zone]:port".
- Addr string
-
- // PayloadSize is the maximum size of a UDP client message, optional
- // Tune this based on your network. Defaults to UDPBufferSize.
- PayloadSize int
-}
-
-type BatchPointsConfig struct {
- // Precision is the write precision of the points, defaults to "ns"
- Precision string
-
- // Database is the database to write points to
- Database string
-
- // RetentionPolicy is the retention policy of the points
- RetentionPolicy string
-
- // Write consistency is the number of servers required to confirm write
- WriteConsistency string
-}
-
-// Client is a client interface for writing & querying the database
-type Client interface {
- // Write takes a BatchPoints object and writes all Points to InfluxDB.
- Write(bp BatchPoints) error
-
- // Query makes an InfluxDB Query on the database. This will fail if using
- // the UDP client.
- Query(q Query) (*Response, error)
-
- // Close releases any resources a Client may be using.
- Close() error
-}
-
-// NewClient creates a client interface from the given config.
-func NewHTTPClient(conf HTTPConfig) (Client, error) {
- if conf.UserAgent == "" {
- conf.UserAgent = "InfluxDBClient"
- }
-
- u, err := url.Parse(conf.Addr)
- if err != nil {
- return nil, err
- } else if u.Scheme != "http" && u.Scheme != "https" {
- m := fmt.Sprintf("Unsupported protocol scheme: %s, your address"+
- " must start with http:// or https://", u.Scheme)
- return nil, errors.New(m)
- }
-
- tr := &http.Transport{
- TLSClientConfig: &tls.Config{
- InsecureSkipVerify: conf.InsecureSkipVerify,
- },
- }
- return &client{
- url: u,
- username: conf.Username,
- password: conf.Password,
- useragent: conf.UserAgent,
- httpClient: &http.Client{
- Timeout: conf.Timeout,
- Transport: tr,
- },
- }, nil
-}
-
-// Close releases the client's resources.
-func (c *client) Close() error {
- return nil
-}
-
-// NewUDPClient returns a client interface for writing to an InfluxDB UDP
-// service from the given config.
-func NewUDPClient(conf UDPConfig) (Client, error) {
- var udpAddr *net.UDPAddr
- udpAddr, err := net.ResolveUDPAddr("udp", conf.Addr)
- if err != nil {
- return nil, err
- }
-
- conn, err := net.DialUDP("udp", nil, udpAddr)
- if err != nil {
- return nil, err
- }
-
- payloadSize := conf.PayloadSize
- if payloadSize == 0 {
- payloadSize = UDPPayloadSize
- }
-
- return &udpclient{
- conn: conn,
- payloadSize: payloadSize,
- }, nil
-}
-
-// Close releases the udpclient's resources.
-func (uc *udpclient) Close() error {
- return uc.conn.Close()
-}
-
-type client struct {
- url *url.URL
- username string
- password string
- useragent string
- httpClient *http.Client
-}
-
-type udpclient struct {
- conn *net.UDPConn
- payloadSize int
-}
-
-// BatchPoints is an interface into a batched grouping of points to write into
-// InfluxDB together. BatchPoints is NOT thread-safe, you must create a separate
-// batch for each goroutine.
-type BatchPoints interface {
- // AddPoint adds the given point to the Batch of points
- AddPoint(p *Point)
- // Points lists the points in the Batch
- Points() []*Point
-
- // Precision returns the currently set precision of this Batch
- Precision() string
- // SetPrecision sets the precision of this batch.
- SetPrecision(s string) error
-
- // Database returns the currently set database of this Batch
- Database() string
- // SetDatabase sets the database of this Batch
- SetDatabase(s string)
-
- // WriteConsistency returns the currently set write consistency of this Batch
- WriteConsistency() string
- // SetWriteConsistency sets the write consistency of this Batch
- SetWriteConsistency(s string)
-
- // RetentionPolicy returns the currently set retention policy of this Batch
- RetentionPolicy() string
- // SetRetentionPolicy sets the retention policy of this Batch
- SetRetentionPolicy(s string)
-}
-
-// NewBatchPoints returns a BatchPoints interface based on the given config.
-func NewBatchPoints(conf BatchPointsConfig) (BatchPoints, error) {
- if conf.Precision == "" {
- conf.Precision = "ns"
- }
- if _, err := time.ParseDuration("1" + conf.Precision); err != nil {
- return nil, err
- }
- bp := &batchpoints{
- database: conf.Database,
- precision: conf.Precision,
- retentionPolicy: conf.RetentionPolicy,
- writeConsistency: conf.WriteConsistency,
- }
- return bp, nil
-}
-
-type batchpoints struct {
- points []*Point
- database string
- precision string
- retentionPolicy string
- writeConsistency string
-}
-
-func (bp *batchpoints) AddPoint(p *Point) {
- bp.points = append(bp.points, p)
-}
-
-func (bp *batchpoints) Points() []*Point {
- return bp.points
-}
-
-func (bp *batchpoints) Precision() string {
- return bp.precision
-}
-
-func (bp *batchpoints) Database() string {
- return bp.database
-}
-
-func (bp *batchpoints) WriteConsistency() string {
- return bp.writeConsistency
-}
-
-func (bp *batchpoints) RetentionPolicy() string {
- return bp.retentionPolicy
-}
-
-func (bp *batchpoints) SetPrecision(p string) error {
- if _, err := time.ParseDuration("1" + p); err != nil {
- return err
- }
- bp.precision = p
- return nil
-}
-
-func (bp *batchpoints) SetDatabase(db string) {
- bp.database = db
-}
-
-func (bp *batchpoints) SetWriteConsistency(wc string) {
- bp.writeConsistency = wc
-}
-
-func (bp *batchpoints) SetRetentionPolicy(rp string) {
- bp.retentionPolicy = rp
-}
-
-type Point struct {
- pt models.Point
-}
-
-// NewPoint returns a point with the given timestamp. If a timestamp is not
-// given, then data is sent to the database without a timestamp, in which case
-// the server will assign local time upon reception. NOTE: it is recommended
-// to send data without a timestamp.
-func NewPoint(
- name string,
- tags map[string]string,
- fields map[string]interface{},
- t ...time.Time,
-) (*Point, error) {
- var T time.Time
- if len(t) > 0 {
- T = t[0]
- }
-
- pt, err := models.NewPoint(name, tags, fields, T)
- if err != nil {
- return nil, err
- }
- return &Point{
- pt: pt,
- }, nil
-}
-
-// String returns a line-protocol string of the Point
-func (p *Point) String() string {
- return p.pt.String()
-}
-
-// PrecisionString returns a line-protocol string of the Point, at precision
-func (p *Point) PrecisionString(precison string) string {
- return p.pt.PrecisionString(precison)
-}
-
-// Name returns the measurement name of the point
-func (p *Point) Name() string {
- return p.pt.Name()
-}
-
-// Name returns the tags associated with the point
-func (p *Point) Tags() map[string]string {
- return p.pt.Tags()
-}
-
-// Time return the timestamp for the point
-func (p *Point) Time() time.Time {
- return p.pt.Time()
-}
-
-// UnixNano returns the unix nano time of the point
-func (p *Point) UnixNano() int64 {
- return p.pt.UnixNano()
-}
-
-// Fields returns the fields for the point
-func (p *Point) Fields() map[string]interface{} {
- return p.pt.Fields()
-}
-
-func (uc *udpclient) Write(bp BatchPoints) error {
- var b bytes.Buffer
- var d time.Duration
- d, _ = time.ParseDuration("1" + bp.Precision())
-
- for _, p := range bp.Points() {
- pointstring := p.pt.RoundedString(d) + "\n"
-
- // Write and reset the buffer if we reach the max size
- if b.Len()+len(pointstring) >= uc.payloadSize {
- if _, err := uc.conn.Write(b.Bytes()); err != nil {
- return err
- }
- b.Reset()
- }
-
- if _, err := b.WriteString(pointstring); err != nil {
- return err
- }
- }
-
- _, err := uc.conn.Write(b.Bytes())
- return err
-}
-
-func (c *client) Write(bp BatchPoints) error {
- var b bytes.Buffer
-
- for _, p := range bp.Points() {
- if _, err := b.WriteString(p.pt.PrecisionString(bp.Precision())); err != nil {
- return err
- }
-
- if err := b.WriteByte('\n'); err != nil {
- return err
- }
- }
-
- u := c.url
- u.Path = "write"
- req, err := http.NewRequest("POST", u.String(), &b)
- if err != nil {
- return err
- }
- req.Header.Set("Content-Type", "")
- req.Header.Set("User-Agent", c.useragent)
- if c.username != "" {
- req.SetBasicAuth(c.username, c.password)
- }
-
- params := req.URL.Query()
- params.Set("db", bp.Database())
- params.Set("rp", bp.RetentionPolicy())
- params.Set("precision", bp.Precision())
- params.Set("consistency", bp.WriteConsistency())
- req.URL.RawQuery = params.Encode()
-
- resp, err := c.httpClient.Do(req)
- if err != nil {
- return err
- }
- defer resp.Body.Close()
-
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return err
- }
-
- if resp.StatusCode != http.StatusNoContent && resp.StatusCode != http.StatusOK {
- var err = fmt.Errorf(string(body))
- return err
- }
-
- return nil
-}
-
-// Query defines a query to send to the server
-type Query struct {
- Command string
- Database string
- Precision string
-}
-
-// NewQuery returns a query object
-// database and precision strings can be empty strings if they are not needed
-// for the query.
-func NewQuery(command, database, precision string) Query {
- return Query{
- Command: command,
- Database: database,
- Precision: precision,
- }
-}
-
-// Response represents a list of statement results.
-type Response struct {
- Results []Result
- Err error
-}
-
-// Error returns the first error from any statement.
-// Returns nil if no errors occurred on any statements.
-func (r *Response) Error() error {
- if r.Err != nil {
- return r.Err
- }
- for _, result := range r.Results {
- if result.Err != nil {
- return result.Err
- }
- }
- return nil
-}
-
-// Result represents a resultset returned from a single statement.
-type Result struct {
- Series []models.Row
- Err error
-}
-
-func (uc *udpclient) Query(q Query) (*Response, error) {
- return nil, fmt.Errorf("Querying via UDP is not supported")
-}
-
-// Query sends a command to the server and returns the Response
-func (c *client) Query(q Query) (*Response, error) {
- u := c.url
- u.Path = "query"
-
- req, err := http.NewRequest("GET", u.String(), nil)
- if err != nil {
- return nil, err
- }
- req.Header.Set("Content-Type", "")
- req.Header.Set("User-Agent", c.useragent)
- if c.username != "" {
- req.SetBasicAuth(c.username, c.password)
- }
-
- params := req.URL.Query()
- params.Set("q", q.Command)
- params.Set("db", q.Database)
- if q.Precision != "" {
- params.Set("epoch", q.Precision)
- }
- req.URL.RawQuery = params.Encode()
-
- resp, err := c.httpClient.Do(req)
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
-
- var response Response
- dec := json.NewDecoder(resp.Body)
- dec.UseNumber()
- decErr := dec.Decode(&response)
-
- // ignore this error if we got an invalid status code
- if decErr != nil && decErr.Error() == "EOF" && resp.StatusCode != http.StatusOK {
- decErr = nil
- }
- // If we got a valid decode error, send that back
- if decErr != nil {
- return nil, decErr
- }
- // If we don't have an error in our json response, and didn't get statusOK
- // then send back an error
- if resp.StatusCode != http.StatusOK && response.Error() == nil {
- return &response, fmt.Errorf("received status code %d from server",
- resp.StatusCode)
- }
- return &response, nil
-}
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/basic.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/basic.json
deleted file mode 100644
index d550e969..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/basic.json
+++ /dev/null
@@ -1,96 +0,0 @@
-[{
- "given":
- {"foo": {"bar": {"baz": "correct"}}},
- "cases": [
- {
- "expression": "foo",
- "result": {"bar": {"baz": "correct"}}
- },
- {
- "expression": "foo.bar",
- "result": {"baz": "correct"}
- },
- {
- "expression": "foo.bar.baz",
- "result": "correct"
- },
- {
- "expression": "foo\n.\nbar\n.baz",
- "result": "correct"
- },
- {
- "expression": "foo.bar.baz.bad",
- "result": null
- },
- {
- "expression": "foo.bar.bad",
- "result": null
- },
- {
- "expression": "foo.bad",
- "result": null
- },
- {
- "expression": "bad",
- "result": null
- },
- {
- "expression": "bad.morebad.morebad",
- "result": null
- }
- ]
-},
-{
- "given":
- {"foo": {"bar": ["one", "two", "three"]}},
- "cases": [
- {
- "expression": "foo",
- "result": {"bar": ["one", "two", "three"]}
- },
- {
- "expression": "foo.bar",
- "result": ["one", "two", "three"]
- }
- ]
-},
-{
- "given": ["one", "two", "three"],
- "cases": [
- {
- "expression": "one",
- "result": null
- },
- {
- "expression": "two",
- "result": null
- },
- {
- "expression": "three",
- "result": null
- },
- {
- "expression": "one.two",
- "result": null
- }
- ]
-},
-{
- "given":
- {"foo": {"1": ["one", "two", "three"], "-1": "bar"}},
- "cases": [
- {
- "expression": "foo.\"1\"",
- "result": ["one", "two", "three"]
- },
- {
- "expression": "foo.\"1\"[0]",
- "result": "one"
- },
- {
- "expression": "foo.\"-1\"",
- "result": "bar"
- }
- ]
-}
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/boolean.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/boolean.json
deleted file mode 100644
index e3fa196b..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/boolean.json
+++ /dev/null
@@ -1,257 +0,0 @@
-[
- {
- "given": {
- "outer": {
- "foo": "foo",
- "bar": "bar",
- "baz": "baz"
- }
- },
- "cases": [
- {
- "expression": "outer.foo || outer.bar",
- "result": "foo"
- },
- {
- "expression": "outer.foo||outer.bar",
- "result": "foo"
- },
- {
- "expression": "outer.bar || outer.baz",
- "result": "bar"
- },
- {
- "expression": "outer.bar||outer.baz",
- "result": "bar"
- },
- {
- "expression": "outer.bad || outer.foo",
- "result": "foo"
- },
- {
- "expression": "outer.bad||outer.foo",
- "result": "foo"
- },
- {
- "expression": "outer.foo || outer.bad",
- "result": "foo"
- },
- {
- "expression": "outer.foo||outer.bad",
- "result": "foo"
- },
- {
- "expression": "outer.bad || outer.alsobad",
- "result": null
- },
- {
- "expression": "outer.bad||outer.alsobad",
- "result": null
- }
- ]
- },
- {
- "given": {
- "outer": {
- "foo": "foo",
- "bool": false,
- "empty_list": [],
- "empty_string": ""
- }
- },
- "cases": [
- {
- "expression": "outer.empty_string || outer.foo",
- "result": "foo"
- },
- {
- "expression": "outer.nokey || outer.bool || outer.empty_list || outer.empty_string || outer.foo",
- "result": "foo"
- }
- ]
- },
- {
- "given": {
- "True": true,
- "False": false,
- "Number": 5,
- "EmptyList": [],
- "Zero": 0
- },
- "cases": [
- {
- "expression": "True && False",
- "result": false
- },
- {
- "expression": "False && True",
- "result": false
- },
- {
- "expression": "True && True",
- "result": true
- },
- {
- "expression": "False && False",
- "result": false
- },
- {
- "expression": "True && Number",
- "result": 5
- },
- {
- "expression": "Number && True",
- "result": true
- },
- {
- "expression": "Number && False",
- "result": false
- },
- {
- "expression": "Number && EmptyList",
- "result": []
- },
- {
- "expression": "Number && True",
- "result": true
- },
- {
- "expression": "EmptyList && True",
- "result": []
- },
- {
- "expression": "EmptyList && False",
- "result": []
- },
- {
- "expression": "True || False",
- "result": true
- },
- {
- "expression": "True || True",
- "result": true
- },
- {
- "expression": "False || True",
- "result": true
- },
- {
- "expression": "False || False",
- "result": false
- },
- {
- "expression": "Number || EmptyList",
- "result": 5
- },
- {
- "expression": "Number || True",
- "result": 5
- },
- {
- "expression": "Number || True && False",
- "result": 5
- },
- {
- "expression": "(Number || True) && False",
- "result": false
- },
- {
- "expression": "Number || (True && False)",
- "result": 5
- },
- {
- "expression": "!True",
- "result": false
- },
- {
- "expression": "!False",
- "result": true
- },
- {
- "expression": "!Number",
- "result": false
- },
- {
- "expression": "!EmptyList",
- "result": true
- },
- {
- "expression": "True && !False",
- "result": true
- },
- {
- "expression": "True && !EmptyList",
- "result": true
- },
- {
- "expression": "!False && !EmptyList",
- "result": true
- },
- {
- "expression": "!(True && False)",
- "result": true
- },
- {
- "expression": "!Zero",
- "result": false
- },
- {
- "expression": "!!Zero",
- "result": true
- }
- ]
- },
- {
- "given": {
- "one": 1,
- "two": 2,
- "three": 3
- },
- "cases": [
- {
- "expression": "one < two",
- "result": true
- },
- {
- "expression": "one <= two",
- "result": true
- },
- {
- "expression": "one == one",
- "result": true
- },
- {
- "expression": "one == two",
- "result": false
- },
- {
- "expression": "one > two",
- "result": false
- },
- {
- "expression": "one >= two",
- "result": false
- },
- {
- "expression": "one != two",
- "result": true
- },
- {
- "expression": "one < two && three > one",
- "result": true
- },
- {
- "expression": "one < two || three > one",
- "result": true
- },
- {
- "expression": "one < two || three < one",
- "result": true
- },
- {
- "expression": "two < one || three < one",
- "result": false
- }
- ]
- }
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/current.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/current.json
deleted file mode 100644
index 0c26248d..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/current.json
+++ /dev/null
@@ -1,25 +0,0 @@
-[
- {
- "given": {
- "foo": [{"name": "a"}, {"name": "b"}],
- "bar": {"baz": "qux"}
- },
- "cases": [
- {
- "expression": "@",
- "result": {
- "foo": [{"name": "a"}, {"name": "b"}],
- "bar": {"baz": "qux"}
- }
- },
- {
- "expression": "@.bar",
- "result": {"baz": "qux"}
- },
- {
- "expression": "@.foo[0]",
- "result": {"name": "a"}
- }
- ]
- }
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/escape.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/escape.json
deleted file mode 100644
index 4a62d951..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/escape.json
+++ /dev/null
@@ -1,46 +0,0 @@
-[{
- "given": {
- "foo.bar": "dot",
- "foo bar": "space",
- "foo\nbar": "newline",
- "foo\"bar": "doublequote",
- "c:\\\\windows\\path": "windows",
- "/unix/path": "unix",
- "\"\"\"": "threequotes",
- "bar": {"baz": "qux"}
- },
- "cases": [
- {
- "expression": "\"foo.bar\"",
- "result": "dot"
- },
- {
- "expression": "\"foo bar\"",
- "result": "space"
- },
- {
- "expression": "\"foo\\nbar\"",
- "result": "newline"
- },
- {
- "expression": "\"foo\\\"bar\"",
- "result": "doublequote"
- },
- {
- "expression": "\"c:\\\\\\\\windows\\\\path\"",
- "result": "windows"
- },
- {
- "expression": "\"/unix/path\"",
- "result": "unix"
- },
- {
- "expression": "\"\\\"\\\"\\\"\"",
- "result": "threequotes"
- },
- {
- "expression": "\"bar\".\"baz\"",
- "result": "qux"
- }
- ]
-}]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/filters.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/filters.json
deleted file mode 100644
index 5b9f52b1..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/filters.json
+++ /dev/null
@@ -1,468 +0,0 @@
-[
- {
- "given": {"foo": [{"name": "a"}, {"name": "b"}]},
- "cases": [
- {
- "comment": "Matching a literal",
- "expression": "foo[?name == 'a']",
- "result": [{"name": "a"}]
- }
- ]
- },
- {
- "given": {"foo": [0, 1], "bar": [2, 3]},
- "cases": [
- {
- "comment": "Matching a literal",
- "expression": "*[?[0] == `0`]",
- "result": [[], []]
- }
- ]
- },
- {
- "given": {"foo": [{"first": "foo", "last": "bar"},
- {"first": "foo", "last": "foo"},
- {"first": "foo", "last": "baz"}]},
- "cases": [
- {
- "comment": "Matching an expression",
- "expression": "foo[?first == last]",
- "result": [{"first": "foo", "last": "foo"}]
- },
- {
- "comment": "Verify projection created from filter",
- "expression": "foo[?first == last].first",
- "result": ["foo"]
- }
- ]
- },
- {
- "given": {"foo": [{"age": 20},
- {"age": 25},
- {"age": 30}]},
- "cases": [
- {
- "comment": "Greater than with a number",
- "expression": "foo[?age > `25`]",
- "result": [{"age": 30}]
- },
- {
- "expression": "foo[?age >= `25`]",
- "result": [{"age": 25}, {"age": 30}]
- },
- {
- "comment": "Greater than with a number",
- "expression": "foo[?age > `30`]",
- "result": []
- },
- {
- "comment": "Greater than with a number",
- "expression": "foo[?age < `25`]",
- "result": [{"age": 20}]
- },
- {
- "comment": "Greater than with a number",
- "expression": "foo[?age <= `25`]",
- "result": [{"age": 20}, {"age": 25}]
- },
- {
- "comment": "Greater than with a number",
- "expression": "foo[?age < `20`]",
- "result": []
- },
- {
- "expression": "foo[?age == `20`]",
- "result": [{"age": 20}]
- },
- {
- "expression": "foo[?age != `20`]",
- "result": [{"age": 25}, {"age": 30}]
- }
- ]
- },
- {
- "given": {"foo": [{"top": {"name": "a"}},
- {"top": {"name": "b"}}]},
- "cases": [
- {
- "comment": "Filter with subexpression",
- "expression": "foo[?top.name == 'a']",
- "result": [{"top": {"name": "a"}}]
- }
- ]
- },
- {
- "given": {"foo": [{"top": {"first": "foo", "last": "bar"}},
- {"top": {"first": "foo", "last": "foo"}},
- {"top": {"first": "foo", "last": "baz"}}]},
- "cases": [
- {
- "comment": "Matching an expression",
- "expression": "foo[?top.first == top.last]",
- "result": [{"top": {"first": "foo", "last": "foo"}}]
- },
- {
- "comment": "Matching a JSON array",
- "expression": "foo[?top == `{\"first\": \"foo\", \"last\": \"bar\"}`]",
- "result": [{"top": {"first": "foo", "last": "bar"}}]
- }
- ]
- },
- {
- "given": {"foo": [
- {"key": true},
- {"key": false},
- {"key": 0},
- {"key": 1},
- {"key": [0]},
- {"key": {"bar": [0]}},
- {"key": null},
- {"key": [1]},
- {"key": {"a":2}}
- ]},
- "cases": [
- {
- "expression": "foo[?key == `true`]",
- "result": [{"key": true}]
- },
- {
- "expression": "foo[?key == `false`]",
- "result": [{"key": false}]
- },
- {
- "expression": "foo[?key == `0`]",
- "result": [{"key": 0}]
- },
- {
- "expression": "foo[?key == `1`]",
- "result": [{"key": 1}]
- },
- {
- "expression": "foo[?key == `[0]`]",
- "result": [{"key": [0]}]
- },
- {
- "expression": "foo[?key == `{\"bar\": [0]}`]",
- "result": [{"key": {"bar": [0]}}]
- },
- {
- "expression": "foo[?key == `null`]",
- "result": [{"key": null}]
- },
- {
- "expression": "foo[?key == `[1]`]",
- "result": [{"key": [1]}]
- },
- {
- "expression": "foo[?key == `{\"a\":2}`]",
- "result": [{"key": {"a":2}}]
- },
- {
- "expression": "foo[?`true` == key]",
- "result": [{"key": true}]
- },
- {
- "expression": "foo[?`false` == key]",
- "result": [{"key": false}]
- },
- {
- "expression": "foo[?`0` == key]",
- "result": [{"key": 0}]
- },
- {
- "expression": "foo[?`1` == key]",
- "result": [{"key": 1}]
- },
- {
- "expression": "foo[?`[0]` == key]",
- "result": [{"key": [0]}]
- },
- {
- "expression": "foo[?`{\"bar\": [0]}` == key]",
- "result": [{"key": {"bar": [0]}}]
- },
- {
- "expression": "foo[?`null` == key]",
- "result": [{"key": null}]
- },
- {
- "expression": "foo[?`[1]` == key]",
- "result": [{"key": [1]}]
- },
- {
- "expression": "foo[?`{\"a\":2}` == key]",
- "result": [{"key": {"a":2}}]
- },
- {
- "expression": "foo[?key != `true`]",
- "result": [{"key": false}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?key != `false`]",
- "result": [{"key": true}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?key != `0`]",
- "result": [{"key": true}, {"key": false}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?key != `1`]",
- "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?key != `null`]",
- "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?key != `[1]`]",
- "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?key != `{\"a\":2}`]",
- "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}]
- },
- {
- "expression": "foo[?`true` != key]",
- "result": [{"key": false}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?`false` != key]",
- "result": [{"key": true}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?`0` != key]",
- "result": [{"key": true}, {"key": false}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?`1` != key]",
- "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?`null` != key]",
- "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": [1]}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?`[1]` != key]",
- "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": {"a":2}}]
- },
- {
- "expression": "foo[?`{\"a\":2}` != key]",
- "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]},
- {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}]
- }
- ]
- },
- {
- "given": {"reservations": [
- {"instances": [
- {"foo": 1, "bar": 2}, {"foo": 1, "bar": 3},
- {"foo": 1, "bar": 2}, {"foo": 2, "bar": 1}]}]},
- "cases": [
- {
- "expression": "reservations[].instances[?bar==`1`]",
- "result": [[{"foo": 2, "bar": 1}]]
- },
- {
- "expression": "reservations[*].instances[?bar==`1`]",
- "result": [[{"foo": 2, "bar": 1}]]
- },
- {
- "expression": "reservations[].instances[?bar==`1`][]",
- "result": [{"foo": 2, "bar": 1}]
- }
- ]
- },
- {
- "given": {
- "baz": "other",
- "foo": [
- {"bar": 1}, {"bar": 2}, {"bar": 3}, {"bar": 4}, {"bar": 1, "baz": 2}
- ]
- },
- "cases": [
- {
- "expression": "foo[?bar==`1`].bar[0]",
- "result": []
- }
- ]
- },
- {
- "given": {
- "foo": [
- {"a": 1, "b": {"c": "x"}},
- {"a": 1, "b": {"c": "y"}},
- {"a": 1, "b": {"c": "z"}},
- {"a": 2, "b": {"c": "z"}},
- {"a": 1, "baz": 2}
- ]
- },
- "cases": [
- {
- "expression": "foo[?a==`1`].b.c",
- "result": ["x", "y", "z"]
- }
- ]
- },
- {
- "given": {"foo": [{"name": "a"}, {"name": "b"}, {"name": "c"}]},
- "cases": [
- {
- "comment": "Filter with or expression",
- "expression": "foo[?name == 'a' || name == 'b']",
- "result": [{"name": "a"}, {"name": "b"}]
- },
- {
- "expression": "foo[?name == 'a' || name == 'e']",
- "result": [{"name": "a"}]
- },
- {
- "expression": "foo[?name == 'a' || name == 'b' || name == 'c']",
- "result": [{"name": "a"}, {"name": "b"}, {"name": "c"}]
- }
- ]
- },
- {
- "given": {"foo": [{"a": 1, "b": 2}, {"a": 1, "b": 3}]},
- "cases": [
- {
- "comment": "Filter with and expression",
- "expression": "foo[?a == `1` && b == `2`]",
- "result": [{"a": 1, "b": 2}]
- },
- {
- "expression": "foo[?a == `1` && b == `4`]",
- "result": []
- }
- ]
- },
- {
- "given": {"foo": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}]},
- "cases": [
- {
- "comment": "Filter with Or and And expressions",
- "expression": "foo[?c == `3` || a == `1` && b == `4`]",
- "result": [{"a": 1, "b": 2, "c": 3}]
- },
- {
- "expression": "foo[?b == `2` || a == `3` && b == `4`]",
- "result": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}]
- },
- {
- "expression": "foo[?a == `3` && b == `4` || b == `2`]",
- "result": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}]
- },
- {
- "expression": "foo[?(a == `3` && b == `4`) || b == `2`]",
- "result": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}]
- },
- {
- "expression": "foo[?((a == `3` && b == `4`)) || b == `2`]",
- "result": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}]
- },
- {
- "expression": "foo[?a == `3` && (b == `4` || b == `2`)]",
- "result": [{"a": 3, "b": 4}]
- },
- {
- "expression": "foo[?a == `3` && ((b == `4` || b == `2`))]",
- "result": [{"a": 3, "b": 4}]
- }
- ]
- },
- {
- "given": {"foo": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}]},
- "cases": [
- {
- "comment": "Verify precedence of or/and expressions",
- "expression": "foo[?a == `1` || b ==`2` && c == `5`]",
- "result": [{"a": 1, "b": 2, "c": 3}]
- },
- {
- "comment": "Parentheses can alter precedence",
- "expression": "foo[?(a == `1` || b ==`2`) && c == `5`]",
- "result": []
- },
- {
- "comment": "Not expressions combined with and/or",
- "expression": "foo[?!(a == `1` || b ==`2`)]",
- "result": [{"a": 3, "b": 4}]
- }
- ]
- },
- {
- "given": {
- "foo": [
- {"key": true},
- {"key": false},
- {"key": []},
- {"key": {}},
- {"key": [0]},
- {"key": {"a": "b"}},
- {"key": 0},
- {"key": 1},
- {"key": null},
- {"notkey": true}
- ]
- },
- "cases": [
- {
- "comment": "Unary filter expression",
- "expression": "foo[?key]",
- "result": [
- {"key": true}, {"key": [0]}, {"key": {"a": "b"}},
- {"key": 0}, {"key": 1}
- ]
- },
- {
- "comment": "Unary not filter expression",
- "expression": "foo[?!key]",
- "result": [
- {"key": false}, {"key": []}, {"key": {}},
- {"key": null}, {"notkey": true}
- ]
- },
- {
- "comment": "Equality with null RHS",
- "expression": "foo[?key == `null`]",
- "result": [
- {"key": null}, {"notkey": true}
- ]
- }
- ]
- },
- {
- "given": {
- "foo": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- "cases": [
- {
- "comment": "Using @ in a filter expression",
- "expression": "foo[?@ < `5`]",
- "result": [0, 1, 2, 3, 4]
- },
- {
- "comment": "Using @ in a filter expression",
- "expression": "foo[?`5` > @]",
- "result": [0, 1, 2, 3, 4]
- },
- {
- "comment": "Using @ in a filter expression",
- "expression": "foo[?@ == @]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- }
- ]
- }
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/functions.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/functions.json
deleted file mode 100644
index 8b8db363..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/functions.json
+++ /dev/null
@@ -1,825 +0,0 @@
-[{
- "given":
- {
- "foo": -1,
- "zero": 0,
- "numbers": [-1, 3, 4, 5],
- "array": [-1, 3, 4, 5, "a", "100"],
- "strings": ["a", "b", "c"],
- "decimals": [1.01, 1.2, -1.5],
- "str": "Str",
- "false": false,
- "empty_list": [],
- "empty_hash": {},
- "objects": {"foo": "bar", "bar": "baz"},
- "null_key": null
- },
- "cases": [
- {
- "expression": "abs(foo)",
- "result": 1
- },
- {
- "expression": "abs(foo)",
- "result": 1
- },
- {
- "expression": "abs(str)",
- "error": "invalid-type"
- },
- {
- "expression": "abs(array[1])",
- "result": 3
- },
- {
- "expression": "abs(array[1])",
- "result": 3
- },
- {
- "expression": "abs(`false`)",
- "error": "invalid-type"
- },
- {
- "expression": "abs(`-24`)",
- "result": 24
- },
- {
- "expression": "abs(`-24`)",
- "result": 24
- },
- {
- "expression": "abs(`1`, `2`)",
- "error": "invalid-arity"
- },
- {
- "expression": "abs()",
- "error": "invalid-arity"
- },
- {
- "expression": "unknown_function(`1`, `2`)",
- "error": "unknown-function"
- },
- {
- "expression": "avg(numbers)",
- "result": 2.75
- },
- {
- "expression": "avg(array)",
- "error": "invalid-type"
- },
- {
- "expression": "avg('abc')",
- "error": "invalid-type"
- },
- {
- "expression": "avg(foo)",
- "error": "invalid-type"
- },
- {
- "expression": "avg(@)",
- "error": "invalid-type"
- },
- {
- "expression": "avg(strings)",
- "error": "invalid-type"
- },
- {
- "expression": "ceil(`1.2`)",
- "result": 2
- },
- {
- "expression": "ceil(decimals[0])",
- "result": 2
- },
- {
- "expression": "ceil(decimals[1])",
- "result": 2
- },
- {
- "expression": "ceil(decimals[2])",
- "result": -1
- },
- {
- "expression": "ceil('string')",
- "error": "invalid-type"
- },
- {
- "expression": "contains('abc', 'a')",
- "result": true
- },
- {
- "expression": "contains('abc', 'd')",
- "result": false
- },
- {
- "expression": "contains(`false`, 'd')",
- "error": "invalid-type"
- },
- {
- "expression": "contains(strings, 'a')",
- "result": true
- },
- {
- "expression": "contains(decimals, `1.2`)",
- "result": true
- },
- {
- "expression": "contains(decimals, `false`)",
- "result": false
- },
- {
- "expression": "ends_with(str, 'r')",
- "result": true
- },
- {
- "expression": "ends_with(str, 'tr')",
- "result": true
- },
- {
- "expression": "ends_with(str, 'Str')",
- "result": true
- },
- {
- "expression": "ends_with(str, 'SStr')",
- "result": false
- },
- {
- "expression": "ends_with(str, 'foo')",
- "result": false
- },
- {
- "expression": "ends_with(str, `0`)",
- "error": "invalid-type"
- },
- {
- "expression": "floor(`1.2`)",
- "result": 1
- },
- {
- "expression": "floor('string')",
- "error": "invalid-type"
- },
- {
- "expression": "floor(decimals[0])",
- "result": 1
- },
- {
- "expression": "floor(foo)",
- "result": -1
- },
- {
- "expression": "floor(str)",
- "error": "invalid-type"
- },
- {
- "expression": "length('abc')",
- "result": 3
- },
- {
- "expression": "length('✓foo')",
- "result": 4
- },
- {
- "expression": "length('')",
- "result": 0
- },
- {
- "expression": "length(@)",
- "result": 12
- },
- {
- "expression": "length(strings[0])",
- "result": 1
- },
- {
- "expression": "length(str)",
- "result": 3
- },
- {
- "expression": "length(array)",
- "result": 6
- },
- {
- "expression": "length(objects)",
- "result": 2
- },
- {
- "expression": "length(`false`)",
- "error": "invalid-type"
- },
- {
- "expression": "length(foo)",
- "error": "invalid-type"
- },
- {
- "expression": "length(strings[0])",
- "result": 1
- },
- {
- "expression": "max(numbers)",
- "result": 5
- },
- {
- "expression": "max(decimals)",
- "result": 1.2
- },
- {
- "expression": "max(strings)",
- "result": "c"
- },
- {
- "expression": "max(abc)",
- "error": "invalid-type"
- },
- {
- "expression": "max(array)",
- "error": "invalid-type"
- },
- {
- "expression": "max(decimals)",
- "result": 1.2
- },
- {
- "expression": "max(empty_list)",
- "result": null
- },
- {
- "expression": "merge(`{}`)",
- "result": {}
- },
- {
- "expression": "merge(`{}`, `{}`)",
- "result": {}
- },
- {
- "expression": "merge(`{\"a\": 1}`, `{\"b\": 2}`)",
- "result": {"a": 1, "b": 2}
- },
- {
- "expression": "merge(`{\"a\": 1}`, `{\"a\": 2}`)",
- "result": {"a": 2}
- },
- {
- "expression": "merge(`{\"a\": 1, \"b\": 2}`, `{\"a\": 2, \"c\": 3}`, `{\"d\": 4}`)",
- "result": {"a": 2, "b": 2, "c": 3, "d": 4}
- },
- {
- "expression": "min(numbers)",
- "result": -1
- },
- {
- "expression": "min(decimals)",
- "result": -1.5
- },
- {
- "expression": "min(abc)",
- "error": "invalid-type"
- },
- {
- "expression": "min(array)",
- "error": "invalid-type"
- },
- {
- "expression": "min(empty_list)",
- "result": null
- },
- {
- "expression": "min(decimals)",
- "result": -1.5
- },
- {
- "expression": "min(strings)",
- "result": "a"
- },
- {
- "expression": "type('abc')",
- "result": "string"
- },
- {
- "expression": "type(`1.0`)",
- "result": "number"
- },
- {
- "expression": "type(`2`)",
- "result": "number"
- },
- {
- "expression": "type(`true`)",
- "result": "boolean"
- },
- {
- "expression": "type(`false`)",
- "result": "boolean"
- },
- {
- "expression": "type(`null`)",
- "result": "null"
- },
- {
- "expression": "type(`[0]`)",
- "result": "array"
- },
- {
- "expression": "type(`{\"a\": \"b\"}`)",
- "result": "object"
- },
- {
- "expression": "type(@)",
- "result": "object"
- },
- {
- "expression": "sort(keys(objects))",
- "result": ["bar", "foo"]
- },
- {
- "expression": "keys(foo)",
- "error": "invalid-type"
- },
- {
- "expression": "keys(strings)",
- "error": "invalid-type"
- },
- {
- "expression": "keys(`false`)",
- "error": "invalid-type"
- },
- {
- "expression": "sort(values(objects))",
- "result": ["bar", "baz"]
- },
- {
- "expression": "keys(empty_hash)",
- "result": []
- },
- {
- "expression": "values(foo)",
- "error": "invalid-type"
- },
- {
- "expression": "join(', ', strings)",
- "result": "a, b, c"
- },
- {
- "expression": "join(', ', strings)",
- "result": "a, b, c"
- },
- {
- "expression": "join(',', `[\"a\", \"b\"]`)",
- "result": "a,b"
- },
- {
- "expression": "join(',', `[\"a\", 0]`)",
- "error": "invalid-type"
- },
- {
- "expression": "join(', ', str)",
- "error": "invalid-type"
- },
- {
- "expression": "join('|', strings)",
- "result": "a|b|c"
- },
- {
- "expression": "join(`2`, strings)",
- "error": "invalid-type"
- },
- {
- "expression": "join('|', decimals)",
- "error": "invalid-type"
- },
- {
- "expression": "join('|', decimals[].to_string(@))",
- "result": "1.01|1.2|-1.5"
- },
- {
- "expression": "join('|', empty_list)",
- "result": ""
- },
- {
- "expression": "reverse(numbers)",
- "result": [5, 4, 3, -1]
- },
- {
- "expression": "reverse(array)",
- "result": ["100", "a", 5, 4, 3, -1]
- },
- {
- "expression": "reverse(`[]`)",
- "result": []
- },
- {
- "expression": "reverse('')",
- "result": ""
- },
- {
- "expression": "reverse('hello world')",
- "result": "dlrow olleh"
- },
- {
- "expression": "starts_with(str, 'S')",
- "result": true
- },
- {
- "expression": "starts_with(str, 'St')",
- "result": true
- },
- {
- "expression": "starts_with(str, 'Str')",
- "result": true
- },
- {
- "expression": "starts_with(str, 'String')",
- "result": false
- },
- {
- "expression": "starts_with(str, `0`)",
- "error": "invalid-type"
- },
- {
- "expression": "sum(numbers)",
- "result": 11
- },
- {
- "expression": "sum(decimals)",
- "result": 0.71
- },
- {
- "expression": "sum(array)",
- "error": "invalid-type"
- },
- {
- "expression": "sum(array[].to_number(@))",
- "result": 111
- },
- {
- "expression": "sum(`[]`)",
- "result": 0
- },
- {
- "expression": "to_array('foo')",
- "result": ["foo"]
- },
- {
- "expression": "to_array(`0`)",
- "result": [0]
- },
- {
- "expression": "to_array(objects)",
- "result": [{"foo": "bar", "bar": "baz"}]
- },
- {
- "expression": "to_array(`[1, 2, 3]`)",
- "result": [1, 2, 3]
- },
- {
- "expression": "to_array(false)",
- "result": [false]
- },
- {
- "expression": "to_string('foo')",
- "result": "foo"
- },
- {
- "expression": "to_string(`1.2`)",
- "result": "1.2"
- },
- {
- "expression": "to_string(`[0, 1]`)",
- "result": "[0,1]"
- },
- {
- "expression": "to_number('1.0')",
- "result": 1.0
- },
- {
- "expression": "to_number('1.1')",
- "result": 1.1
- },
- {
- "expression": "to_number('4')",
- "result": 4
- },
- {
- "expression": "to_number('notanumber')",
- "result": null
- },
- {
- "expression": "to_number(`false`)",
- "result": null
- },
- {
- "expression": "to_number(`null`)",
- "result": null
- },
- {
- "expression": "to_number(`[0]`)",
- "result": null
- },
- {
- "expression": "to_number(`{\"foo\": 0}`)",
- "result": null
- },
- {
- "expression": "\"to_string\"(`1.0`)",
- "error": "syntax"
- },
- {
- "expression": "sort(numbers)",
- "result": [-1, 3, 4, 5]
- },
- {
- "expression": "sort(strings)",
- "result": ["a", "b", "c"]
- },
- {
- "expression": "sort(decimals)",
- "result": [-1.5, 1.01, 1.2]
- },
- {
- "expression": "sort(array)",
- "error": "invalid-type"
- },
- {
- "expression": "sort(abc)",
- "error": "invalid-type"
- },
- {
- "expression": "sort(empty_list)",
- "result": []
- },
- {
- "expression": "sort(@)",
- "error": "invalid-type"
- },
- {
- "expression": "not_null(unknown_key, str)",
- "result": "Str"
- },
- {
- "expression": "not_null(unknown_key, foo.bar, empty_list, str)",
- "result": []
- },
- {
- "expression": "not_null(unknown_key, null_key, empty_list, str)",
- "result": []
- },
- {
- "expression": "not_null(all, expressions, are_null)",
- "result": null
- },
- {
- "expression": "not_null()",
- "error": "invalid-arity"
- },
- {
- "description": "function projection on single arg function",
- "expression": "numbers[].to_string(@)",
- "result": ["-1", "3", "4", "5"]
- },
- {
- "description": "function projection on single arg function",
- "expression": "array[].to_number(@)",
- "result": [-1, 3, 4, 5, 100]
- }
- ]
-}, {
- "given":
- {
- "foo": [
- {"b": "b", "a": "a"},
- {"c": "c", "b": "b"},
- {"d": "d", "c": "c"},
- {"e": "e", "d": "d"},
- {"f": "f", "e": "e"}
- ]
- },
- "cases": [
- {
- "description": "function projection on variadic function",
- "expression": "foo[].not_null(f, e, d, c, b, a)",
- "result": ["b", "c", "d", "e", "f"]
- }
- ]
-}, {
- "given":
- {
- "people": [
- {"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"},
- {"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"},
- {"age": 30, "age_str": "30", "bool": true, "name": "c"},
- {"age": 50, "age_str": "50", "bool": false, "name": "d"},
- {"age": 10, "age_str": "10", "bool": true, "name": 3}
- ]
- },
- "cases": [
- {
- "description": "sort by field expression",
- "expression": "sort_by(people, &age)",
- "result": [
- {"age": 10, "age_str": "10", "bool": true, "name": 3},
- {"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"},
- {"age": 30, "age_str": "30", "bool": true, "name": "c"},
- {"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"},
- {"age": 50, "age_str": "50", "bool": false, "name": "d"}
- ]
- },
- {
- "expression": "sort_by(people, &age_str)",
- "result": [
- {"age": 10, "age_str": "10", "bool": true, "name": 3},
- {"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"},
- {"age": 30, "age_str": "30", "bool": true, "name": "c"},
- {"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"},
- {"age": 50, "age_str": "50", "bool": false, "name": "d"}
- ]
- },
- {
- "description": "sort by function expression",
- "expression": "sort_by(people, &to_number(age_str))",
- "result": [
- {"age": 10, "age_str": "10", "bool": true, "name": 3},
- {"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"},
- {"age": 30, "age_str": "30", "bool": true, "name": "c"},
- {"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"},
- {"age": 50, "age_str": "50", "bool": false, "name": "d"}
- ]
- },
- {
- "description": "function projection on sort_by function",
- "expression": "sort_by(people, &age)[].name",
- "result": [3, "a", "c", "b", "d"]
- },
- {
- "expression": "sort_by(people, &extra)",
- "error": "invalid-type"
- },
- {
- "expression": "sort_by(people, &bool)",
- "error": "invalid-type"
- },
- {
- "expression": "sort_by(people, &name)",
- "error": "invalid-type"
- },
- {
- "expression": "sort_by(people, name)",
- "error": "invalid-type"
- },
- {
- "expression": "sort_by(people, &age)[].extra",
- "result": ["foo", "bar"]
- },
- {
- "expression": "sort_by(`[]`, &age)",
- "result": []
- },
- {
- "expression": "max_by(people, &age)",
- "result": {"age": 50, "age_str": "50", "bool": false, "name": "d"}
- },
- {
- "expression": "max_by(people, &age_str)",
- "result": {"age": 50, "age_str": "50", "bool": false, "name": "d"}
- },
- {
- "expression": "max_by(people, &bool)",
- "error": "invalid-type"
- },
- {
- "expression": "max_by(people, &extra)",
- "error": "invalid-type"
- },
- {
- "expression": "max_by(people, &to_number(age_str))",
- "result": {"age": 50, "age_str": "50", "bool": false, "name": "d"}
- },
- {
- "expression": "min_by(people, &age)",
- "result": {"age": 10, "age_str": "10", "bool": true, "name": 3}
- },
- {
- "expression": "min_by(people, &age_str)",
- "result": {"age": 10, "age_str": "10", "bool": true, "name": 3}
- },
- {
- "expression": "min_by(people, &bool)",
- "error": "invalid-type"
- },
- {
- "expression": "min_by(people, &extra)",
- "error": "invalid-type"
- },
- {
- "expression": "min_by(people, &to_number(age_str))",
- "result": {"age": 10, "age_str": "10", "bool": true, "name": 3}
- }
- ]
-}, {
- "given":
- {
- "people": [
- {"age": 10, "order": "1"},
- {"age": 10, "order": "2"},
- {"age": 10, "order": "3"},
- {"age": 10, "order": "4"},
- {"age": 10, "order": "5"},
- {"age": 10, "order": "6"},
- {"age": 10, "order": "7"},
- {"age": 10, "order": "8"},
- {"age": 10, "order": "9"},
- {"age": 10, "order": "10"},
- {"age": 10, "order": "11"}
- ]
- },
- "cases": [
- {
- "description": "stable sort order",
- "expression": "sort_by(people, &age)",
- "result": [
- {"age": 10, "order": "1"},
- {"age": 10, "order": "2"},
- {"age": 10, "order": "3"},
- {"age": 10, "order": "4"},
- {"age": 10, "order": "5"},
- {"age": 10, "order": "6"},
- {"age": 10, "order": "7"},
- {"age": 10, "order": "8"},
- {"age": 10, "order": "9"},
- {"age": 10, "order": "10"},
- {"age": 10, "order": "11"}
- ]
- }
- ]
-}, {
- "given":
- {
- "people": [
- {"a": 10, "b": 1, "c": "z"},
- {"a": 10, "b": 2, "c": null},
- {"a": 10, "b": 3},
- {"a": 10, "b": 4, "c": "z"},
- {"a": 10, "b": 5, "c": null},
- {"a": 10, "b": 6},
- {"a": 10, "b": 7, "c": "z"},
- {"a": 10, "b": 8, "c": null},
- {"a": 10, "b": 9}
- ],
- "empty": []
- },
- "cases": [
- {
- "expression": "map(&a, people)",
- "result": [10, 10, 10, 10, 10, 10, 10, 10, 10]
- },
- {
- "expression": "map(&c, people)",
- "result": ["z", null, null, "z", null, null, "z", null, null]
- },
- {
- "expression": "map(&a, badkey)",
- "error": "invalid-type"
- },
- {
- "expression": "map(&foo, empty)",
- "result": []
- }
- ]
-}, {
- "given": {
- "array": [
- {
- "foo": {"bar": "yes1"}
- },
- {
- "foo": {"bar": "yes2"}
- },
- {
- "foo1": {"bar": "no"}
- }
- ]},
- "cases": [
- {
- "expression": "map(&foo.bar, array)",
- "result": ["yes1", "yes2", null]
- },
- {
- "expression": "map(&foo1.bar, array)",
- "result": [null, null, "no"]
- },
- {
- "expression": "map(&foo.bar.baz, array)",
- "result": [null, null, null]
- }
- ]
-}, {
- "given": {
- "array": [[1, 2, 3, [4]], [5, 6, 7, [8, 9]]]
- },
- "cases": [
- {
- "expression": "map(&[], array)",
- "result": [[1, 2, 3, 4], [5, 6, 7, 8, 9]]
- }
- ]
-}
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/identifiers.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/identifiers.json
deleted file mode 100644
index 7998a41a..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/identifiers.json
+++ /dev/null
@@ -1,1377 +0,0 @@
-[
- {
- "given": {
- "__L": true
- },
- "cases": [
- {
- "expression": "__L",
- "result": true
- }
- ]
- },
- {
- "given": {
- "!\r": true
- },
- "cases": [
- {
- "expression": "\"!\\r\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "Y_1623": true
- },
- "cases": [
- {
- "expression": "Y_1623",
- "result": true
- }
- ]
- },
- {
- "given": {
- "x": true
- },
- "cases": [
- {
- "expression": "x",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\tF\uCebb": true
- },
- "cases": [
- {
- "expression": "\"\\tF\\uCebb\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- " \t": true
- },
- "cases": [
- {
- "expression": "\" \\t\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- " ": true
- },
- "cases": [
- {
- "expression": "\" \"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "v2": true
- },
- "cases": [
- {
- "expression": "v2",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\t": true
- },
- "cases": [
- {
- "expression": "\"\\t\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "_X": true
- },
- "cases": [
- {
- "expression": "_X",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\t4\ud9da\udd15": true
- },
- "cases": [
- {
- "expression": "\"\\t4\\ud9da\\udd15\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "v24_W": true
- },
- "cases": [
- {
- "expression": "v24_W",
- "result": true
- }
- ]
- },
- {
- "given": {
- "H": true
- },
- "cases": [
- {
- "expression": "\"H\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\f": true
- },
- "cases": [
- {
- "expression": "\"\\f\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "E4": true
- },
- "cases": [
- {
- "expression": "\"E4\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "!": true
- },
- "cases": [
- {
- "expression": "\"!\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "tM": true
- },
- "cases": [
- {
- "expression": "tM",
- "result": true
- }
- ]
- },
- {
- "given": {
- " [": true
- },
- "cases": [
- {
- "expression": "\" [\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "R!": true
- },
- "cases": [
- {
- "expression": "\"R!\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "_6W": true
- },
- "cases": [
- {
- "expression": "_6W",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\uaBA1\r": true
- },
- "cases": [
- {
- "expression": "\"\\uaBA1\\r\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "tL7": true
- },
- "cases": [
- {
- "expression": "tL7",
- "result": true
- }
- ]
- },
- {
- "given": {
- "<": true
- },
- "cases": [
- {
- "expression": "\">\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "hvu": true
- },
- "cases": [
- {
- "expression": "hvu",
- "result": true
- }
- ]
- },
- {
- "given": {
- "; !": true
- },
- "cases": [
- {
- "expression": "\"; !\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "hU": true
- },
- "cases": [
- {
- "expression": "hU",
- "result": true
- }
- ]
- },
- {
- "given": {
- "!I\n\/": true
- },
- "cases": [
- {
- "expression": "\"!I\\n\\/\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\uEEbF": true
- },
- "cases": [
- {
- "expression": "\"\\uEEbF\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "U)\t": true
- },
- "cases": [
- {
- "expression": "\"U)\\t\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "fa0_9": true
- },
- "cases": [
- {
- "expression": "fa0_9",
- "result": true
- }
- ]
- },
- {
- "given": {
- "/": true
- },
- "cases": [
- {
- "expression": "\"/\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "Gy": true
- },
- "cases": [
- {
- "expression": "Gy",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\b": true
- },
- "cases": [
- {
- "expression": "\"\\b\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "<": true
- },
- "cases": [
- {
- "expression": "\"<\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\t": true
- },
- "cases": [
- {
- "expression": "\"\\t\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\t&\\\r": true
- },
- "cases": [
- {
- "expression": "\"\\t&\\\\\\r\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "#": true
- },
- "cases": [
- {
- "expression": "\"#\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "B__": true
- },
- "cases": [
- {
- "expression": "B__",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\nS \n": true
- },
- "cases": [
- {
- "expression": "\"\\nS \\n\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "Bp": true
- },
- "cases": [
- {
- "expression": "Bp",
- "result": true
- }
- ]
- },
- {
- "given": {
- ",\t;": true
- },
- "cases": [
- {
- "expression": "\",\\t;\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "B_q": true
- },
- "cases": [
- {
- "expression": "B_q",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\/+\t\n\b!Z": true
- },
- "cases": [
- {
- "expression": "\"\\/+\\t\\n\\b!Z\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\udadd\udfc7\\ueFAc": true
- },
- "cases": [
- {
- "expression": "\"\udadd\udfc7\\\\ueFAc\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- ":\f": true
- },
- "cases": [
- {
- "expression": "\":\\f\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\/": true
- },
- "cases": [
- {
- "expression": "\"\\/\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "_BW_6Hg_Gl": true
- },
- "cases": [
- {
- "expression": "_BW_6Hg_Gl",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\udbcf\udc02": true
- },
- "cases": [
- {
- "expression": "\"\udbcf\udc02\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "zs1DC": true
- },
- "cases": [
- {
- "expression": "zs1DC",
- "result": true
- }
- ]
- },
- {
- "given": {
- "__434": true
- },
- "cases": [
- {
- "expression": "__434",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\udb94\udd41": true
- },
- "cases": [
- {
- "expression": "\"\udb94\udd41\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "Z_5": true
- },
- "cases": [
- {
- "expression": "Z_5",
- "result": true
- }
- ]
- },
- {
- "given": {
- "z_M_": true
- },
- "cases": [
- {
- "expression": "z_M_",
- "result": true
- }
- ]
- },
- {
- "given": {
- "YU_2": true
- },
- "cases": [
- {
- "expression": "YU_2",
- "result": true
- }
- ]
- },
- {
- "given": {
- "_0": true
- },
- "cases": [
- {
- "expression": "_0",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\b+": true
- },
- "cases": [
- {
- "expression": "\"\\b+\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\"": true
- },
- "cases": [
- {
- "expression": "\"\\\"\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "D7": true
- },
- "cases": [
- {
- "expression": "D7",
- "result": true
- }
- ]
- },
- {
- "given": {
- "_62L": true
- },
- "cases": [
- {
- "expression": "_62L",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\tK\t": true
- },
- "cases": [
- {
- "expression": "\"\\tK\\t\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\n\\\f": true
- },
- "cases": [
- {
- "expression": "\"\\n\\\\\\f\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "I_": true
- },
- "cases": [
- {
- "expression": "I_",
- "result": true
- }
- ]
- },
- {
- "given": {
- "W_a0_": true
- },
- "cases": [
- {
- "expression": "W_a0_",
- "result": true
- }
- ]
- },
- {
- "given": {
- "BQ": true
- },
- "cases": [
- {
- "expression": "BQ",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\tX$\uABBb": true
- },
- "cases": [
- {
- "expression": "\"\\tX$\\uABBb\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "Z9": true
- },
- "cases": [
- {
- "expression": "Z9",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\b%\"\uda38\udd0f": true
- },
- "cases": [
- {
- "expression": "\"\\b%\\\"\uda38\udd0f\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "_F": true
- },
- "cases": [
- {
- "expression": "_F",
- "result": true
- }
- ]
- },
- {
- "given": {
- "!,": true
- },
- "cases": [
- {
- "expression": "\"!,\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\"!": true
- },
- "cases": [
- {
- "expression": "\"\\\"!\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "Hh": true
- },
- "cases": [
- {
- "expression": "Hh",
- "result": true
- }
- ]
- },
- {
- "given": {
- "&": true
- },
- "cases": [
- {
- "expression": "\"&\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "9\r\\R": true
- },
- "cases": [
- {
- "expression": "\"9\\r\\\\R\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "M_k": true
- },
- "cases": [
- {
- "expression": "M_k",
- "result": true
- }
- ]
- },
- {
- "given": {
- "!\b\n\udb06\ude52\"\"": true
- },
- "cases": [
- {
- "expression": "\"!\\b\\n\udb06\ude52\\\"\\\"\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "6": true
- },
- "cases": [
- {
- "expression": "\"6\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "_7": true
- },
- "cases": [
- {
- "expression": "_7",
- "result": true
- }
- ]
- },
- {
- "given": {
- "0": true
- },
- "cases": [
- {
- "expression": "\"0\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\\8\\": true
- },
- "cases": [
- {
- "expression": "\"\\\\8\\\\\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "b7eo": true
- },
- "cases": [
- {
- "expression": "b7eo",
- "result": true
- }
- ]
- },
- {
- "given": {
- "xIUo9": true
- },
- "cases": [
- {
- "expression": "xIUo9",
- "result": true
- }
- ]
- },
- {
- "given": {
- "5": true
- },
- "cases": [
- {
- "expression": "\"5\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "?": true
- },
- "cases": [
- {
- "expression": "\"?\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "sU": true
- },
- "cases": [
- {
- "expression": "sU",
- "result": true
- }
- ]
- },
- {
- "given": {
- "VH2&H\\\/": true
- },
- "cases": [
- {
- "expression": "\"VH2&H\\\\\\/\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "_C": true
- },
- "cases": [
- {
- "expression": "_C",
- "result": true
- }
- ]
- },
- {
- "given": {
- "_": true
- },
- "cases": [
- {
- "expression": "_",
- "result": true
- }
- ]
- },
- {
- "given": {
- "<\t": true
- },
- "cases": [
- {
- "expression": "\"<\\t\"",
- "result": true
- }
- ]
- },
- {
- "given": {
- "\uD834\uDD1E": true
- },
- "cases": [
- {
- "expression": "\"\\uD834\\uDD1E\"",
- "result": true
- }
- ]
- }
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/indices.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/indices.json
deleted file mode 100644
index aa03b35d..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/indices.json
+++ /dev/null
@@ -1,346 +0,0 @@
-[{
- "given":
- {"foo": {"bar": ["zero", "one", "two"]}},
- "cases": [
- {
- "expression": "foo.bar[0]",
- "result": "zero"
- },
- {
- "expression": "foo.bar[1]",
- "result": "one"
- },
- {
- "expression": "foo.bar[2]",
- "result": "two"
- },
- {
- "expression": "foo.bar[3]",
- "result": null
- },
- {
- "expression": "foo.bar[-1]",
- "result": "two"
- },
- {
- "expression": "foo.bar[-2]",
- "result": "one"
- },
- {
- "expression": "foo.bar[-3]",
- "result": "zero"
- },
- {
- "expression": "foo.bar[-4]",
- "result": null
- }
- ]
-},
-{
- "given":
- {"foo": [{"bar": "one"}, {"bar": "two"}, {"bar": "three"}, {"notbar": "four"}]},
- "cases": [
- {
- "expression": "foo.bar",
- "result": null
- },
- {
- "expression": "foo[0].bar",
- "result": "one"
- },
- {
- "expression": "foo[1].bar",
- "result": "two"
- },
- {
- "expression": "foo[2].bar",
- "result": "three"
- },
- {
- "expression": "foo[3].notbar",
- "result": "four"
- },
- {
- "expression": "foo[3].bar",
- "result": null
- },
- {
- "expression": "foo[0]",
- "result": {"bar": "one"}
- },
- {
- "expression": "foo[1]",
- "result": {"bar": "two"}
- },
- {
- "expression": "foo[2]",
- "result": {"bar": "three"}
- },
- {
- "expression": "foo[3]",
- "result": {"notbar": "four"}
- },
- {
- "expression": "foo[4]",
- "result": null
- }
- ]
-},
-{
- "given": [
- "one", "two", "three"
- ],
- "cases": [
- {
- "expression": "[0]",
- "result": "one"
- },
- {
- "expression": "[1]",
- "result": "two"
- },
- {
- "expression": "[2]",
- "result": "three"
- },
- {
- "expression": "[-1]",
- "result": "three"
- },
- {
- "expression": "[-2]",
- "result": "two"
- },
- {
- "expression": "[-3]",
- "result": "one"
- }
- ]
-},
-{
- "given": {"reservations": [
- {"instances": [{"foo": 1}, {"foo": 2}]}
- ]},
- "cases": [
- {
- "expression": "reservations[].instances[].foo",
- "result": [1, 2]
- },
- {
- "expression": "reservations[].instances[].bar",
- "result": []
- },
- {
- "expression": "reservations[].notinstances[].foo",
- "result": []
- },
- {
- "expression": "reservations[].notinstances[].foo",
- "result": []
- }
- ]
-},
-{
- "given": {"reservations": [{
- "instances": [
- {"foo": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]},
- {"foo": [{"bar": 5}, {"bar": 6}, {"notbar": [7]}, {"bar": 8}]},
- {"foo": "bar"},
- {"notfoo": [{"bar": 20}, {"bar": 21}, {"notbar": [7]}, {"bar": 22}]},
- {"bar": [{"baz": [1]}, {"baz": [2]}, {"baz": [3]}, {"baz": [4]}]},
- {"baz": [{"baz": [1, 2]}, {"baz": []}, {"baz": []}, {"baz": [3, 4]}]},
- {"qux": [{"baz": []}, {"baz": [1, 2, 3]}, {"baz": [4]}, {"baz": []}]}
- ],
- "otherkey": {"foo": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]}
- }, {
- "instances": [
- {"a": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]},
- {"b": [{"bar": 5}, {"bar": 6}, {"notbar": [7]}, {"bar": 8}]},
- {"c": "bar"},
- {"notfoo": [{"bar": 23}, {"bar": 24}, {"notbar": [7]}, {"bar": 25}]},
- {"qux": [{"baz": []}, {"baz": [1, 2, 3]}, {"baz": [4]}, {"baz": []}]}
- ],
- "otherkey": {"foo": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]}
- }
- ]},
- "cases": [
- {
- "expression": "reservations[].instances[].foo[].bar",
- "result": [1, 2, 4, 5, 6, 8]
- },
- {
- "expression": "reservations[].instances[].foo[].baz",
- "result": []
- },
- {
- "expression": "reservations[].instances[].notfoo[].bar",
- "result": [20, 21, 22, 23, 24, 25]
- },
- {
- "expression": "reservations[].instances[].notfoo[].notbar",
- "result": [[7], [7]]
- },
- {
- "expression": "reservations[].notinstances[].foo",
- "result": []
- },
- {
- "expression": "reservations[].instances[].foo[].notbar",
- "result": [3, [7]]
- },
- {
- "expression": "reservations[].instances[].bar[].baz",
- "result": [[1], [2], [3], [4]]
- },
- {
- "expression": "reservations[].instances[].baz[].baz",
- "result": [[1, 2], [], [], [3, 4]]
- },
- {
- "expression": "reservations[].instances[].qux[].baz",
- "result": [[], [1, 2, 3], [4], [], [], [1, 2, 3], [4], []]
- },
- {
- "expression": "reservations[].instances[].qux[].baz[]",
- "result": [1, 2, 3, 4, 1, 2, 3, 4]
- }
- ]
-},
-{
- "given": {
- "foo": [
- [["one", "two"], ["three", "four"]],
- [["five", "six"], ["seven", "eight"]],
- [["nine"], ["ten"]]
- ]
- },
- "cases": [
- {
- "expression": "foo[]",
- "result": [["one", "two"], ["three", "four"], ["five", "six"],
- ["seven", "eight"], ["nine"], ["ten"]]
- },
- {
- "expression": "foo[][0]",
- "result": ["one", "three", "five", "seven", "nine", "ten"]
- },
- {
- "expression": "foo[][1]",
- "result": ["two", "four", "six", "eight"]
- },
- {
- "expression": "foo[][0][0]",
- "result": []
- },
- {
- "expression": "foo[][2][2]",
- "result": []
- },
- {
- "expression": "foo[][0][0][100]",
- "result": []
- }
- ]
-},
-{
- "given": {
- "foo": [{
- "bar": [
- {
- "qux": 2,
- "baz": 1
- },
- {
- "qux": 4,
- "baz": 3
- }
- ]
- },
- {
- "bar": [
- {
- "qux": 6,
- "baz": 5
- },
- {
- "qux": 8,
- "baz": 7
- }
- ]
- }
- ]
- },
- "cases": [
- {
- "expression": "foo",
- "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]},
- {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}]
- },
- {
- "expression": "foo[]",
- "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]},
- {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}]
- },
- {
- "expression": "foo[].bar",
- "result": [[{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}],
- [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]]
- },
- {
- "expression": "foo[].bar[]",
- "result": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3},
- {"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]
- },
- {
- "expression": "foo[].bar[].baz",
- "result": [1, 3, 5, 7]
- }
- ]
-},
-{
- "given": {
- "string": "string",
- "hash": {"foo": "bar", "bar": "baz"},
- "number": 23,
- "nullvalue": null
- },
- "cases": [
- {
- "expression": "string[]",
- "result": null
- },
- {
- "expression": "hash[]",
- "result": null
- },
- {
- "expression": "number[]",
- "result": null
- },
- {
- "expression": "nullvalue[]",
- "result": null
- },
- {
- "expression": "string[].foo",
- "result": null
- },
- {
- "expression": "hash[].foo",
- "result": null
- },
- {
- "expression": "number[].foo",
- "result": null
- },
- {
- "expression": "nullvalue[].foo",
- "result": null
- },
- {
- "expression": "nullvalue[].foo[].bar",
- "result": null
- }
- ]
-}
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/literal.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/literal.json
deleted file mode 100644
index c6706b97..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/literal.json
+++ /dev/null
@@ -1,185 +0,0 @@
-[
- {
- "given": {
- "foo": [{"name": "a"}, {"name": "b"}],
- "bar": {"baz": "qux"}
- },
- "cases": [
- {
- "expression": "`\"foo\"`",
- "result": "foo"
- },
- {
- "comment": "Interpret escaped unicode.",
- "expression": "`\"\\u03a6\"`",
- "result": "Φ"
- },
- {
- "expression": "`\"✓\"`",
- "result": "✓"
- },
- {
- "expression": "`[1, 2, 3]`",
- "result": [1, 2, 3]
- },
- {
- "expression": "`{\"a\": \"b\"}`",
- "result": {"a": "b"}
- },
- {
- "expression": "`true`",
- "result": true
- },
- {
- "expression": "`false`",
- "result": false
- },
- {
- "expression": "`null`",
- "result": null
- },
- {
- "expression": "`0`",
- "result": 0
- },
- {
- "expression": "`1`",
- "result": 1
- },
- {
- "expression": "`2`",
- "result": 2
- },
- {
- "expression": "`3`",
- "result": 3
- },
- {
- "expression": "`4`",
- "result": 4
- },
- {
- "expression": "`5`",
- "result": 5
- },
- {
- "expression": "`6`",
- "result": 6
- },
- {
- "expression": "`7`",
- "result": 7
- },
- {
- "expression": "`8`",
- "result": 8
- },
- {
- "expression": "`9`",
- "result": 9
- },
- {
- "comment": "Escaping a backtick in quotes",
- "expression": "`\"foo\\`bar\"`",
- "result": "foo`bar"
- },
- {
- "comment": "Double quote in literal",
- "expression": "`\"foo\\\"bar\"`",
- "result": "foo\"bar"
- },
- {
- "expression": "`\"1\\`\"`",
- "result": "1`"
- },
- {
- "comment": "Multiple literal expressions with escapes",
- "expression": "`\"\\\\\"`.{a:`\"b\"`}",
- "result": {"a": "b"}
- },
- {
- "comment": "literal . identifier",
- "expression": "`{\"a\": \"b\"}`.a",
- "result": "b"
- },
- {
- "comment": "literal . identifier . identifier",
- "expression": "`{\"a\": {\"b\": \"c\"}}`.a.b",
- "result": "c"
- },
- {
- "comment": "literal . identifier bracket-expr",
- "expression": "`[0, 1, 2]`[1]",
- "result": 1
- }
- ]
- },
- {
- "comment": "Literals",
- "given": {"type": "object"},
- "cases": [
- {
- "comment": "Literal with leading whitespace",
- "expression": "` {\"foo\": true}`",
- "result": {"foo": true}
- },
- {
- "comment": "Literal with trailing whitespace",
- "expression": "`{\"foo\": true} `",
- "result": {"foo": true}
- },
- {
- "comment": "Literal on RHS of subexpr not allowed",
- "expression": "foo.`\"bar\"`",
- "error": "syntax"
- }
- ]
- },
- {
- "comment": "Raw String Literals",
- "given": {},
- "cases": [
- {
- "expression": "'foo'",
- "result": "foo"
- },
- {
- "expression": "' foo '",
- "result": " foo "
- },
- {
- "expression": "'0'",
- "result": "0"
- },
- {
- "expression": "'newline\n'",
- "result": "newline\n"
- },
- {
- "expression": "'\n'",
- "result": "\n"
- },
- {
- "expression": "'✓'",
- "result": "✓"
- },
- {
- "expression": "'𝄞'",
- "result": "𝄞"
- },
- {
- "expression": "' [foo] '",
- "result": " [foo] "
- },
- {
- "expression": "'[foo]'",
- "result": "[foo]"
- },
- {
- "comment": "Do not interpret escaped unicode.",
- "expression": "'\\u03a6'",
- "result": "\\u03a6"
- }
- ]
- }
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/multiselect.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/multiselect.json
deleted file mode 100644
index 8f2a481e..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/multiselect.json
+++ /dev/null
@@ -1,393 +0,0 @@
-[{
- "given": {
- "foo": {
- "bar": "bar",
- "baz": "baz",
- "qux": "qux",
- "nested": {
- "one": {
- "a": "first",
- "b": "second",
- "c": "third"
- },
- "two": {
- "a": "first",
- "b": "second",
- "c": "third"
- },
- "three": {
- "a": "first",
- "b": "second",
- "c": {"inner": "third"}
- }
- }
- },
- "bar": 1,
- "baz": 2,
- "qux\"": 3
- },
- "cases": [
- {
- "expression": "foo.{bar: bar}",
- "result": {"bar": "bar"}
- },
- {
- "expression": "foo.{\"bar\": bar}",
- "result": {"bar": "bar"}
- },
- {
- "expression": "foo.{\"foo.bar\": bar}",
- "result": {"foo.bar": "bar"}
- },
- {
- "expression": "foo.{bar: bar, baz: baz}",
- "result": {"bar": "bar", "baz": "baz"}
- },
- {
- "expression": "foo.{\"bar\": bar, \"baz\": baz}",
- "result": {"bar": "bar", "baz": "baz"}
- },
- {
- "expression": "{\"baz\": baz, \"qux\\\"\": \"qux\\\"\"}",
- "result": {"baz": 2, "qux\"": 3}
- },
- {
- "expression": "foo.{bar:bar,baz:baz}",
- "result": {"bar": "bar", "baz": "baz"}
- },
- {
- "expression": "foo.{bar: bar,qux: qux}",
- "result": {"bar": "bar", "qux": "qux"}
- },
- {
- "expression": "foo.{bar: bar, noexist: noexist}",
- "result": {"bar": "bar", "noexist": null}
- },
- {
- "expression": "foo.{noexist: noexist, alsonoexist: alsonoexist}",
- "result": {"noexist": null, "alsonoexist": null}
- },
- {
- "expression": "foo.badkey.{nokey: nokey, alsonokey: alsonokey}",
- "result": null
- },
- {
- "expression": "foo.nested.*.{a: a,b: b}",
- "result": [{"a": "first", "b": "second"},
- {"a": "first", "b": "second"},
- {"a": "first", "b": "second"}]
- },
- {
- "expression": "foo.nested.three.{a: a, cinner: c.inner}",
- "result": {"a": "first", "cinner": "third"}
- },
- {
- "expression": "foo.nested.three.{a: a, c: c.inner.bad.key}",
- "result": {"a": "first", "c": null}
- },
- {
- "expression": "foo.{a: nested.one.a, b: nested.two.b}",
- "result": {"a": "first", "b": "second"}
- },
- {
- "expression": "{bar: bar, baz: baz}",
- "result": {"bar": 1, "baz": 2}
- },
- {
- "expression": "{bar: bar}",
- "result": {"bar": 1}
- },
- {
- "expression": "{otherkey: bar}",
- "result": {"otherkey": 1}
- },
- {
- "expression": "{no: no, exist: exist}",
- "result": {"no": null, "exist": null}
- },
- {
- "expression": "foo.[bar]",
- "result": ["bar"]
- },
- {
- "expression": "foo.[bar,baz]",
- "result": ["bar", "baz"]
- },
- {
- "expression": "foo.[bar,qux]",
- "result": ["bar", "qux"]
- },
- {
- "expression": "foo.[bar,noexist]",
- "result": ["bar", null]
- },
- {
- "expression": "foo.[noexist,alsonoexist]",
- "result": [null, null]
- }
- ]
-}, {
- "given": {
- "foo": {"bar": 1, "baz": [2, 3, 4]}
- },
- "cases": [
- {
- "expression": "foo.{bar:bar,baz:baz}",
- "result": {"bar": 1, "baz": [2, 3, 4]}
- },
- {
- "expression": "foo.[bar,baz[0]]",
- "result": [1, 2]
- },
- {
- "expression": "foo.[bar,baz[1]]",
- "result": [1, 3]
- },
- {
- "expression": "foo.[bar,baz[2]]",
- "result": [1, 4]
- },
- {
- "expression": "foo.[bar,baz[3]]",
- "result": [1, null]
- },
- {
- "expression": "foo.[bar[0],baz[3]]",
- "result": [null, null]
- }
- ]
-}, {
- "given": {
- "foo": {"bar": 1, "baz": 2}
- },
- "cases": [
- {
- "expression": "foo.{bar: bar, baz: baz}",
- "result": {"bar": 1, "baz": 2}
- },
- {
- "expression": "foo.[bar,baz]",
- "result": [1, 2]
- }
- ]
-}, {
- "given": {
- "foo": {
- "bar": {"baz": [{"common": "first", "one": 1},
- {"common": "second", "two": 2}]},
- "ignoreme": 1,
- "includeme": true
- }
- },
- "cases": [
- {
- "expression": "foo.{bar: bar.baz[1],includeme: includeme}",
- "result": {"bar": {"common": "second", "two": 2}, "includeme": true}
- },
- {
- "expression": "foo.{\"bar.baz.two\": bar.baz[1].two, includeme: includeme}",
- "result": {"bar.baz.two": 2, "includeme": true}
- },
- {
- "expression": "foo.[includeme, bar.baz[*].common]",
- "result": [true, ["first", "second"]]
- },
- {
- "expression": "foo.[includeme, bar.baz[*].none]",
- "result": [true, []]
- },
- {
- "expression": "foo.[includeme, bar.baz[].common]",
- "result": [true, ["first", "second"]]
- }
- ]
-}, {
- "given": {
- "reservations": [{
- "instances": [
- {"id": "id1",
- "name": "first"},
- {"id": "id2",
- "name": "second"}
- ]}, {
- "instances": [
- {"id": "id3",
- "name": "third"},
- {"id": "id4",
- "name": "fourth"}
- ]}
- ]},
- "cases": [
- {
- "expression": "reservations[*].instances[*].{id: id, name: name}",
- "result": [[{"id": "id1", "name": "first"}, {"id": "id2", "name": "second"}],
- [{"id": "id3", "name": "third"}, {"id": "id4", "name": "fourth"}]]
- },
- {
- "expression": "reservations[].instances[].{id: id, name: name}",
- "result": [{"id": "id1", "name": "first"},
- {"id": "id2", "name": "second"},
- {"id": "id3", "name": "third"},
- {"id": "id4", "name": "fourth"}]
- },
- {
- "expression": "reservations[].instances[].[id, name]",
- "result": [["id1", "first"],
- ["id2", "second"],
- ["id3", "third"],
- ["id4", "fourth"]]
- }
- ]
-},
-{
- "given": {
- "foo": [{
- "bar": [
- {
- "qux": 2,
- "baz": 1
- },
- {
- "qux": 4,
- "baz": 3
- }
- ]
- },
- {
- "bar": [
- {
- "qux": 6,
- "baz": 5
- },
- {
- "qux": 8,
- "baz": 7
- }
- ]
- }
- ]
- },
- "cases": [
- {
- "expression": "foo",
- "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]},
- {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}]
- },
- {
- "expression": "foo[]",
- "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]},
- {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}]
- },
- {
- "expression": "foo[].bar",
- "result": [[{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}],
- [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]]
- },
- {
- "expression": "foo[].bar[]",
- "result": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3},
- {"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]
- },
- {
- "expression": "foo[].bar[].[baz, qux]",
- "result": [[1, 2], [3, 4], [5, 6], [7, 8]]
- },
- {
- "expression": "foo[].bar[].[baz]",
- "result": [[1], [3], [5], [7]]
- },
- {
- "expression": "foo[].bar[].[baz, qux][]",
- "result": [1, 2, 3, 4, 5, 6, 7, 8]
- }
- ]
-},
-{
- "given": {
- "foo": {
- "baz": [
- {
- "bar": "abc"
- }, {
- "bar": "def"
- }
- ],
- "qux": ["zero"]
- }
- },
- "cases": [
- {
- "expression": "foo.[baz[*].bar, qux[0]]",
- "result": [["abc", "def"], "zero"]
- }
- ]
-},
-{
- "given": {
- "foo": {
- "baz": [
- {
- "bar": "a",
- "bam": "b",
- "boo": "c"
- }, {
- "bar": "d",
- "bam": "e",
- "boo": "f"
- }
- ],
- "qux": ["zero"]
- }
- },
- "cases": [
- {
- "expression": "foo.[baz[*].[bar, boo], qux[0]]",
- "result": [[["a", "c" ], ["d", "f" ]], "zero"]
- }
- ]
-},
-{
- "given": {
- "foo": {
- "baz": [
- {
- "bar": "a",
- "bam": "b",
- "boo": "c"
- }, {
- "bar": "d",
- "bam": "e",
- "boo": "f"
- }
- ],
- "qux": ["zero"]
- }
- },
- "cases": [
- {
- "expression": "foo.[baz[*].not_there || baz[*].bar, qux[0]]",
- "result": [["a", "d"], "zero"]
- }
- ]
-},
-{
- "given": {"type": "object"},
- "cases": [
- {
- "comment": "Nested multiselect",
- "expression": "[[*],*]",
- "result": [null, ["object"]]
- }
- ]
-},
-{
- "given": [],
- "cases": [
- {
- "comment": "Nested multiselect",
- "expression": "[[*]]",
- "result": [[]]
- }
- ]
-}
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/ormatch.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/ormatch.json
deleted file mode 100644
index 2127cf44..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/ormatch.json
+++ /dev/null
@@ -1,59 +0,0 @@
-[{
- "given":
- {"outer": {"foo": "foo", "bar": "bar", "baz": "baz"}},
- "cases": [
- {
- "expression": "outer.foo || outer.bar",
- "result": "foo"
- },
- {
- "expression": "outer.foo||outer.bar",
- "result": "foo"
- },
- {
- "expression": "outer.bar || outer.baz",
- "result": "bar"
- },
- {
- "expression": "outer.bar||outer.baz",
- "result": "bar"
- },
- {
- "expression": "outer.bad || outer.foo",
- "result": "foo"
- },
- {
- "expression": "outer.bad||outer.foo",
- "result": "foo"
- },
- {
- "expression": "outer.foo || outer.bad",
- "result": "foo"
- },
- {
- "expression": "outer.foo||outer.bad",
- "result": "foo"
- },
- {
- "expression": "outer.bad || outer.alsobad",
- "result": null
- },
- {
- "expression": "outer.bad||outer.alsobad",
- "result": null
- }
- ]
-}, {
- "given":
- {"outer": {"foo": "foo", "bool": false, "empty_list": [], "empty_string": ""}},
- "cases": [
- {
- "expression": "outer.empty_string || outer.foo",
- "result": "foo"
- },
- {
- "expression": "outer.nokey || outer.bool || outer.empty_list || outer.empty_string || outer.foo",
- "result": "foo"
- }
- ]
-}]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/pipe.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/pipe.json
deleted file mode 100644
index b10c0a49..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/pipe.json
+++ /dev/null
@@ -1,131 +0,0 @@
-[{
- "given": {
- "foo": {
- "bar": {
- "baz": "subkey"
- },
- "other": {
- "baz": "subkey"
- },
- "other2": {
- "baz": "subkey"
- },
- "other3": {
- "notbaz": ["a", "b", "c"]
- },
- "other4": {
- "notbaz": ["a", "b", "c"]
- }
- }
- },
- "cases": [
- {
- "expression": "foo.*.baz | [0]",
- "result": "subkey"
- },
- {
- "expression": "foo.*.baz | [1]",
- "result": "subkey"
- },
- {
- "expression": "foo.*.baz | [2]",
- "result": "subkey"
- },
- {
- "expression": "foo.bar.* | [0]",
- "result": "subkey"
- },
- {
- "expression": "foo.*.notbaz | [*]",
- "result": [["a", "b", "c"], ["a", "b", "c"]]
- },
- {
- "expression": "{\"a\": foo.bar, \"b\": foo.other} | *.baz",
- "result": ["subkey", "subkey"]
- }
- ]
-}, {
- "given": {
- "foo": {
- "bar": {
- "baz": "one"
- },
- "other": {
- "baz": "two"
- },
- "other2": {
- "baz": "three"
- },
- "other3": {
- "notbaz": ["a", "b", "c"]
- },
- "other4": {
- "notbaz": ["d", "e", "f"]
- }
- }
- },
- "cases": [
- {
- "expression": "foo | bar",
- "result": {"baz": "one"}
- },
- {
- "expression": "foo | bar | baz",
- "result": "one"
- },
- {
- "expression": "foo|bar| baz",
- "result": "one"
- },
- {
- "expression": "not_there | [0]",
- "result": null
- },
- {
- "expression": "not_there | [0]",
- "result": null
- },
- {
- "expression": "[foo.bar, foo.other] | [0]",
- "result": {"baz": "one"}
- },
- {
- "expression": "{\"a\": foo.bar, \"b\": foo.other} | a",
- "result": {"baz": "one"}
- },
- {
- "expression": "{\"a\": foo.bar, \"b\": foo.other} | b",
- "result": {"baz": "two"}
- },
- {
- "expression": "foo.bam || foo.bar | baz",
- "result": "one"
- },
- {
- "expression": "foo | not_there || bar",
- "result": {"baz": "one"}
- }
- ]
-}, {
- "given": {
- "foo": [{
- "bar": [{
- "baz": "one"
- }, {
- "baz": "two"
- }]
- }, {
- "bar": [{
- "baz": "three"
- }, {
- "baz": "four"
- }]
- }]
- },
- "cases": [
- {
- "expression": "foo[*].bar[*] | [0][0]",
- "result": {"baz": "one"}
- }
- ]
-}]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/slice.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/slice.json
deleted file mode 100644
index 35947727..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/slice.json
+++ /dev/null
@@ -1,187 +0,0 @@
-[{
- "given": {
- "foo": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
- "bar": {
- "baz": 1
- }
- },
- "cases": [
- {
- "expression": "bar[0:10]",
- "result": null
- },
- {
- "expression": "foo[0:10:1]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[0:10]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[0:10:]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[0::1]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[0::]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[0:]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[:10:1]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[::1]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[:10:]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[::]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[:]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[1:9]",
- "result": [1, 2, 3, 4, 5, 6, 7, 8]
- },
- {
- "expression": "foo[0:10:2]",
- "result": [0, 2, 4, 6, 8]
- },
- {
- "expression": "foo[5:]",
- "result": [5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[5::2]",
- "result": [5, 7, 9]
- },
- {
- "expression": "foo[::2]",
- "result": [0, 2, 4, 6, 8]
- },
- {
- "expression": "foo[::-1]",
- "result": [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
- },
- {
- "expression": "foo[1::2]",
- "result": [1, 3, 5, 7, 9]
- },
- {
- "expression": "foo[10:0:-1]",
- "result": [9, 8, 7, 6, 5, 4, 3, 2, 1]
- },
- {
- "expression": "foo[10:5:-1]",
- "result": [9, 8, 7, 6]
- },
- {
- "expression": "foo[8:2:-2]",
- "result": [8, 6, 4]
- },
- {
- "expression": "foo[0:20]",
- "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "expression": "foo[10:-20:-1]",
- "result": [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
- },
- {
- "expression": "foo[10:-20]",
- "result": []
- },
- {
- "expression": "foo[-4:-1]",
- "result": [6, 7, 8]
- },
- {
- "expression": "foo[:-5:-1]",
- "result": [9, 8, 7, 6]
- },
- {
- "expression": "foo[8:2:0]",
- "error": "invalid-value"
- },
- {
- "expression": "foo[8:2:0:1]",
- "error": "syntax"
- },
- {
- "expression": "foo[8:2&]",
- "error": "syntax"
- },
- {
- "expression": "foo[2:a:3]",
- "error": "syntax"
- }
- ]
-}, {
- "given": {
- "foo": [{"a": 1}, {"a": 2}, {"a": 3}],
- "bar": [{"a": {"b": 1}}, {"a": {"b": 2}},
- {"a": {"b": 3}}],
- "baz": 50
- },
- "cases": [
- {
- "expression": "foo[:2].a",
- "result": [1, 2]
- },
- {
- "expression": "foo[:2].b",
- "result": []
- },
- {
- "expression": "foo[:2].a.b",
- "result": []
- },
- {
- "expression": "bar[::-1].a.b",
- "result": [3, 2, 1]
- },
- {
- "expression": "bar[:2].a.b",
- "result": [1, 2]
- },
- {
- "expression": "baz[:2].a",
- "result": null
- }
- ]
-}, {
- "given": [{"a": 1}, {"a": 2}, {"a": 3}],
- "cases": [
- {
- "expression": "[:]",
- "result": [{"a": 1}, {"a": 2}, {"a": 3}]
- },
- {
- "expression": "[:2].a",
- "result": [1, 2]
- },
- {
- "expression": "[::-1].a",
- "result": [3, 2, 1]
- },
- {
- "expression": "[:2].b",
- "result": []
- }
- ]
-}]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/syntax.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/syntax.json
deleted file mode 100644
index 003c2945..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/syntax.json
+++ /dev/null
@@ -1,616 +0,0 @@
-[{
- "comment": "Dot syntax",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "foo.bar",
- "result": null
- },
- {
- "expression": "foo.1",
- "error": "syntax"
- },
- {
- "expression": "foo.-11",
- "error": "syntax"
- },
- {
- "expression": "foo",
- "result": null
- },
- {
- "expression": "foo.",
- "error": "syntax"
- },
- {
- "expression": "foo.",
- "error": "syntax"
- },
- {
- "expression": ".foo",
- "error": "syntax"
- },
- {
- "expression": "foo..bar",
- "error": "syntax"
- },
- {
- "expression": "foo.bar.",
- "error": "syntax"
- },
- {
- "expression": "foo[.]",
- "error": "syntax"
- }
- ]
-},
- {
- "comment": "Simple token errors",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": ".",
- "error": "syntax"
- },
- {
- "expression": ":",
- "error": "syntax"
- },
- {
- "expression": ",",
- "error": "syntax"
- },
- {
- "expression": "]",
- "error": "syntax"
- },
- {
- "expression": "[",
- "error": "syntax"
- },
- {
- "expression": "}",
- "error": "syntax"
- },
- {
- "expression": "{",
- "error": "syntax"
- },
- {
- "expression": ")",
- "error": "syntax"
- },
- {
- "expression": "(",
- "error": "syntax"
- },
- {
- "expression": "((&",
- "error": "syntax"
- },
- {
- "expression": "a[",
- "error": "syntax"
- },
- {
- "expression": "a]",
- "error": "syntax"
- },
- {
- "expression": "a][",
- "error": "syntax"
- },
- {
- "expression": "!",
- "error": "syntax"
- }
- ]
- },
- {
- "comment": "Boolean syntax errors",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "![!(!",
- "error": "syntax"
- }
- ]
- },
- {
- "comment": "Wildcard syntax",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "*",
- "result": ["object"]
- },
- {
- "expression": "*.*",
- "result": []
- },
- {
- "expression": "*.foo",
- "result": []
- },
- {
- "expression": "*[0]",
- "result": []
- },
- {
- "expression": ".*",
- "error": "syntax"
- },
- {
- "expression": "*foo",
- "error": "syntax"
- },
- {
- "expression": "*0",
- "error": "syntax"
- },
- {
- "expression": "foo[*]bar",
- "error": "syntax"
- },
- {
- "expression": "foo[*]*",
- "error": "syntax"
- }
- ]
- },
- {
- "comment": "Flatten syntax",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "[]",
- "result": null
- }
- ]
- },
- {
- "comment": "Simple bracket syntax",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "[0]",
- "result": null
- },
- {
- "expression": "[*]",
- "result": null
- },
- {
- "expression": "*.[0]",
- "error": "syntax"
- },
- {
- "expression": "*.[\"0\"]",
- "result": [[null]]
- },
- {
- "expression": "[*].bar",
- "result": null
- },
- {
- "expression": "[*][0]",
- "result": null
- },
- {
- "expression": "foo[#]",
- "error": "syntax"
- }
- ]
- },
- {
- "comment": "Multi-select list syntax",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "foo[0]",
- "result": null
- },
- {
- "comment": "Valid multi-select of a list",
- "expression": "foo[0, 1]",
- "error": "syntax"
- },
- {
- "expression": "foo.[0]",
- "error": "syntax"
- },
- {
- "expression": "foo.[*]",
- "result": null
- },
- {
- "comment": "Multi-select of a list with trailing comma",
- "expression": "foo[0, ]",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a list with trailing comma and no close",
- "expression": "foo[0,",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a list with trailing comma and no close",
- "expression": "foo.[a",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a list with extra comma",
- "expression": "foo[0,, 1]",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a list using an identifier index",
- "expression": "foo[abc]",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a list using identifier indices",
- "expression": "foo[abc, def]",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a list using an identifier index",
- "expression": "foo[abc, 1]",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a list using an identifier index with trailing comma",
- "expression": "foo[abc, ]",
- "error": "syntax"
- },
- {
- "comment": "Valid multi-select of a hash using an identifier index",
- "expression": "foo.[abc]",
- "result": null
- },
- {
- "comment": "Valid multi-select of a hash",
- "expression": "foo.[abc, def]",
- "result": null
- },
- {
- "comment": "Multi-select of a hash using a numeric index",
- "expression": "foo.[abc, 1]",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a hash with a trailing comma",
- "expression": "foo.[abc, ]",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a hash with extra commas",
- "expression": "foo.[abc,, def]",
- "error": "syntax"
- },
- {
- "comment": "Multi-select of a hash using number indices",
- "expression": "foo.[0, 1]",
- "error": "syntax"
- }
- ]
- },
- {
- "comment": "Multi-select hash syntax",
- "given": {"type": "object"},
- "cases": [
- {
- "comment": "No key or value",
- "expression": "a{}",
- "error": "syntax"
- },
- {
- "comment": "No closing token",
- "expression": "a{",
- "error": "syntax"
- },
- {
- "comment": "Not a key value pair",
- "expression": "a{foo}",
- "error": "syntax"
- },
- {
- "comment": "Missing value and closing character",
- "expression": "a{foo:",
- "error": "syntax"
- },
- {
- "comment": "Missing closing character",
- "expression": "a{foo: 0",
- "error": "syntax"
- },
- {
- "comment": "Missing value",
- "expression": "a{foo:}",
- "error": "syntax"
- },
- {
- "comment": "Trailing comma and no closing character",
- "expression": "a{foo: 0, ",
- "error": "syntax"
- },
- {
- "comment": "Missing value with trailing comma",
- "expression": "a{foo: ,}",
- "error": "syntax"
- },
- {
- "comment": "Accessing Array using an identifier",
- "expression": "a{foo: bar}",
- "error": "syntax"
- },
- {
- "expression": "a{foo: 0}",
- "error": "syntax"
- },
- {
- "comment": "Missing key-value pair",
- "expression": "a.{}",
- "error": "syntax"
- },
- {
- "comment": "Not a key-value pair",
- "expression": "a.{foo}",
- "error": "syntax"
- },
- {
- "comment": "Missing value",
- "expression": "a.{foo:}",
- "error": "syntax"
- },
- {
- "comment": "Missing value with trailing comma",
- "expression": "a.{foo: ,}",
- "error": "syntax"
- },
- {
- "comment": "Valid multi-select hash extraction",
- "expression": "a.{foo: bar}",
- "result": null
- },
- {
- "comment": "Valid multi-select hash extraction",
- "expression": "a.{foo: bar, baz: bam}",
- "result": null
- },
- {
- "comment": "Trailing comma",
- "expression": "a.{foo: bar, }",
- "error": "syntax"
- },
- {
- "comment": "Missing key in second key-value pair",
- "expression": "a.{foo: bar, baz}",
- "error": "syntax"
- },
- {
- "comment": "Missing value in second key-value pair",
- "expression": "a.{foo: bar, baz:}",
- "error": "syntax"
- },
- {
- "comment": "Trailing comma",
- "expression": "a.{foo: bar, baz: bam, }",
- "error": "syntax"
- },
- {
- "comment": "Nested multi select",
- "expression": "{\"\\\\\":{\" \":*}}",
- "result": {"\\": {" ": ["object"]}}
- }
- ]
- },
- {
- "comment": "Or expressions",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "foo || bar",
- "result": null
- },
- {
- "expression": "foo ||",
- "error": "syntax"
- },
- {
- "expression": "foo.|| bar",
- "error": "syntax"
- },
- {
- "expression": " || foo",
- "error": "syntax"
- },
- {
- "expression": "foo || || foo",
- "error": "syntax"
- },
- {
- "expression": "foo.[a || b]",
- "result": null
- },
- {
- "expression": "foo.[a ||]",
- "error": "syntax"
- },
- {
- "expression": "\"foo",
- "error": "syntax"
- }
- ]
- },
- {
- "comment": "Filter expressions",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "foo[?bar==`\"baz\"`]",
- "result": null
- },
- {
- "expression": "foo[? bar == `\"baz\"` ]",
- "result": null
- },
- {
- "expression": "foo[ ?bar==`\"baz\"`]",
- "error": "syntax"
- },
- {
- "expression": "foo[?bar==]",
- "error": "syntax"
- },
- {
- "expression": "foo[?==]",
- "error": "syntax"
- },
- {
- "expression": "foo[?==bar]",
- "error": "syntax"
- },
- {
- "expression": "foo[?bar==baz?]",
- "error": "syntax"
- },
- {
- "expression": "foo[?a.b.c==d.e.f]",
- "result": null
- },
- {
- "expression": "foo[?bar==`[0, 1, 2]`]",
- "result": null
- },
- {
- "expression": "foo[?bar==`[\"a\", \"b\", \"c\"]`]",
- "result": null
- },
- {
- "comment": "Literal char not escaped",
- "expression": "foo[?bar==`[\"foo`bar\"]`]",
- "error": "syntax"
- },
- {
- "comment": "Literal char escaped",
- "expression": "foo[?bar==`[\"foo\\`bar\"]`]",
- "result": null
- },
- {
- "comment": "Unknown comparator",
- "expression": "foo[?bar<>baz]",
- "error": "syntax"
- },
- {
- "comment": "Unknown comparator",
- "expression": "foo[?bar^baz]",
- "error": "syntax"
- },
- {
- "expression": "foo[bar==baz]",
- "error": "syntax"
- },
- {
- "comment": "Quoted identifier in filter expression no spaces",
- "expression": "[?\"\\\\\">`\"foo\"`]",
- "result": null
- },
- {
- "comment": "Quoted identifier in filter expression with spaces",
- "expression": "[?\"\\\\\" > `\"foo\"`]",
- "result": null
- }
- ]
- },
- {
- "comment": "Filter expression errors",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "bar.`\"anything\"`",
- "error": "syntax"
- },
- {
- "expression": "bar.baz.noexists.`\"literal\"`",
- "error": "syntax"
- },
- {
- "comment": "Literal wildcard projection",
- "expression": "foo[*].`\"literal\"`",
- "error": "syntax"
- },
- {
- "expression": "foo[*].name.`\"literal\"`",
- "error": "syntax"
- },
- {
- "expression": "foo[].name.`\"literal\"`",
- "error": "syntax"
- },
- {
- "expression": "foo[].name.`\"literal\"`.`\"subliteral\"`",
- "error": "syntax"
- },
- {
- "comment": "Projecting a literal onto an empty list",
- "expression": "foo[*].name.noexist.`\"literal\"`",
- "error": "syntax"
- },
- {
- "expression": "foo[].name.noexist.`\"literal\"`",
- "error": "syntax"
- },
- {
- "expression": "twolen[*].`\"foo\"`",
- "error": "syntax"
- },
- {
- "comment": "Two level projection of a literal",
- "expression": "twolen[*].threelen[*].`\"bar\"`",
- "error": "syntax"
- },
- {
- "comment": "Two level flattened projection of a literal",
- "expression": "twolen[].threelen[].`\"bar\"`",
- "error": "syntax"
- }
- ]
- },
- {
- "comment": "Identifiers",
- "given": {"type": "object"},
- "cases": [
- {
- "expression": "foo",
- "result": null
- },
- {
- "expression": "\"foo\"",
- "result": null
- },
- {
- "expression": "\"\\\\\"",
- "result": null
- }
- ]
- },
- {
- "comment": "Combined syntax",
- "given": [],
- "cases": [
- {
- "expression": "*||*|*|*",
- "result": null
- },
- {
- "expression": "*[]||[*]",
- "result": []
- },
- {
- "expression": "[*.*]",
- "result": [null]
- }
- ]
- }
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/unicode.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/unicode.json
deleted file mode 100644
index 6b07b0b6..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/unicode.json
+++ /dev/null
@@ -1,38 +0,0 @@
-[
- {
- "given": {"foo": [{"✓": "✓"}, {"✓": "✗"}]},
- "cases": [
- {
- "expression": "foo[].\"✓\"",
- "result": ["✓", "✗"]
- }
- ]
- },
- {
- "given": {"☯": true},
- "cases": [
- {
- "expression": "\"☯\"",
- "result": true
- }
- ]
- },
- {
- "given": {"♪♫•*¨*•.¸¸❤¸¸.•*¨*•♫♪": true},
- "cases": [
- {
- "expression": "\"♪♫•*¨*•.¸¸❤¸¸.•*¨*•♫♪\"",
- "result": true
- }
- ]
- },
- {
- "given": {"☃": true},
- "cases": [
- {
- "expression": "\"☃\"",
- "result": true
- }
- ]
- }
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/wildcard.json b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/wildcard.json
deleted file mode 100644
index 3bcec302..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/compliance/wildcard.json
+++ /dev/null
@@ -1,460 +0,0 @@
-[{
- "given": {
- "foo": {
- "bar": {
- "baz": "val"
- },
- "other": {
- "baz": "val"
- },
- "other2": {
- "baz": "val"
- },
- "other3": {
- "notbaz": ["a", "b", "c"]
- },
- "other4": {
- "notbaz": ["a", "b", "c"]
- },
- "other5": {
- "other": {
- "a": 1,
- "b": 1,
- "c": 1
- }
- }
- }
- },
- "cases": [
- {
- "expression": "foo.*.baz",
- "result": ["val", "val", "val"]
- },
- {
- "expression": "foo.bar.*",
- "result": ["val"]
- },
- {
- "expression": "foo.*.notbaz",
- "result": [["a", "b", "c"], ["a", "b", "c"]]
- },
- {
- "expression": "foo.*.notbaz[0]",
- "result": ["a", "a"]
- },
- {
- "expression": "foo.*.notbaz[-1]",
- "result": ["c", "c"]
- }
- ]
-}, {
- "given": {
- "foo": {
- "first-1": {
- "second-1": "val"
- },
- "first-2": {
- "second-1": "val"
- },
- "first-3": {
- "second-1": "val"
- }
- }
- },
- "cases": [
- {
- "expression": "foo.*",
- "result": [{"second-1": "val"}, {"second-1": "val"},
- {"second-1": "val"}]
- },
- {
- "expression": "foo.*.*",
- "result": [["val"], ["val"], ["val"]]
- },
- {
- "expression": "foo.*.*.*",
- "result": [[], [], []]
- },
- {
- "expression": "foo.*.*.*.*",
- "result": [[], [], []]
- }
- ]
-}, {
- "given": {
- "foo": {
- "bar": "one"
- },
- "other": {
- "bar": "one"
- },
- "nomatch": {
- "notbar": "three"
- }
- },
- "cases": [
- {
- "expression": "*.bar",
- "result": ["one", "one"]
- }
- ]
-}, {
- "given": {
- "top1": {
- "sub1": {"foo": "one"}
- },
- "top2": {
- "sub1": {"foo": "one"}
- }
- },
- "cases": [
- {
- "expression": "*",
- "result": [{"sub1": {"foo": "one"}},
- {"sub1": {"foo": "one"}}]
- },
- {
- "expression": "*.sub1",
- "result": [{"foo": "one"},
- {"foo": "one"}]
- },
- {
- "expression": "*.*",
- "result": [[{"foo": "one"}],
- [{"foo": "one"}]]
- },
- {
- "expression": "*.*.foo[]",
- "result": ["one", "one"]
- },
- {
- "expression": "*.sub1.foo",
- "result": ["one", "one"]
- }
- ]
-},
-{
- "given":
- {"foo": [{"bar": "one"}, {"bar": "two"}, {"bar": "three"}, {"notbar": "four"}]},
- "cases": [
- {
- "expression": "foo[*].bar",
- "result": ["one", "two", "three"]
- },
- {
- "expression": "foo[*].notbar",
- "result": ["four"]
- }
- ]
-},
-{
- "given":
- [{"bar": "one"}, {"bar": "two"}, {"bar": "three"}, {"notbar": "four"}],
- "cases": [
- {
- "expression": "[*]",
- "result": [{"bar": "one"}, {"bar": "two"}, {"bar": "three"}, {"notbar": "four"}]
- },
- {
- "expression": "[*].bar",
- "result": ["one", "two", "three"]
- },
- {
- "expression": "[*].notbar",
- "result": ["four"]
- }
- ]
-},
-{
- "given": {
- "foo": {
- "bar": [
- {"baz": ["one", "two", "three"]},
- {"baz": ["four", "five", "six"]},
- {"baz": ["seven", "eight", "nine"]}
- ]
- }
- },
- "cases": [
- {
- "expression": "foo.bar[*].baz",
- "result": [["one", "two", "three"], ["four", "five", "six"], ["seven", "eight", "nine"]]
- },
- {
- "expression": "foo.bar[*].baz[0]",
- "result": ["one", "four", "seven"]
- },
- {
- "expression": "foo.bar[*].baz[1]",
- "result": ["two", "five", "eight"]
- },
- {
- "expression": "foo.bar[*].baz[2]",
- "result": ["three", "six", "nine"]
- },
- {
- "expression": "foo.bar[*].baz[3]",
- "result": []
- }
- ]
-},
-{
- "given": {
- "foo": {
- "bar": [["one", "two"], ["three", "four"]]
- }
- },
- "cases": [
- {
- "expression": "foo.bar[*]",
- "result": [["one", "two"], ["three", "four"]]
- },
- {
- "expression": "foo.bar[0]",
- "result": ["one", "two"]
- },
- {
- "expression": "foo.bar[0][0]",
- "result": "one"
- },
- {
- "expression": "foo.bar[0][0][0]",
- "result": null
- },
- {
- "expression": "foo.bar[0][0][0][0]",
- "result": null
- },
- {
- "expression": "foo[0][0]",
- "result": null
- }
- ]
-},
-{
- "given": {
- "foo": [
- {"bar": [{"kind": "basic"}, {"kind": "intermediate"}]},
- {"bar": [{"kind": "advanced"}, {"kind": "expert"}]},
- {"bar": "string"}
- ]
-
- },
- "cases": [
- {
- "expression": "foo[*].bar[*].kind",
- "result": [["basic", "intermediate"], ["advanced", "expert"]]
- },
- {
- "expression": "foo[*].bar[0].kind",
- "result": ["basic", "advanced"]
- }
- ]
-},
-{
- "given": {
- "foo": [
- {"bar": {"kind": "basic"}},
- {"bar": {"kind": "intermediate"}},
- {"bar": {"kind": "advanced"}},
- {"bar": {"kind": "expert"}},
- {"bar": "string"}
- ]
- },
- "cases": [
- {
- "expression": "foo[*].bar.kind",
- "result": ["basic", "intermediate", "advanced", "expert"]
- }
- ]
-},
-{
- "given": {
- "foo": [{"bar": ["one", "two"]}, {"bar": ["three", "four"]}, {"bar": ["five"]}]
- },
- "cases": [
- {
- "expression": "foo[*].bar[0]",
- "result": ["one", "three", "five"]
- },
- {
- "expression": "foo[*].bar[1]",
- "result": ["two", "four"]
- },
- {
- "expression": "foo[*].bar[2]",
- "result": []
- }
- ]
-},
-{
- "given": {
- "foo": [{"bar": []}, {"bar": []}, {"bar": []}]
- },
- "cases": [
- {
- "expression": "foo[*].bar[0]",
- "result": []
- }
- ]
-},
-{
- "given": {
- "foo": [["one", "two"], ["three", "four"], ["five"]]
- },
- "cases": [
- {
- "expression": "foo[*][0]",
- "result": ["one", "three", "five"]
- },
- {
- "expression": "foo[*][1]",
- "result": ["two", "four"]
- }
- ]
-},
-{
- "given": {
- "foo": [
- [
- ["one", "two"], ["three", "four"]
- ], [
- ["five", "six"], ["seven", "eight"]
- ], [
- ["nine"], ["ten"]
- ]
- ]
- },
- "cases": [
- {
- "expression": "foo[*][0]",
- "result": [["one", "two"], ["five", "six"], ["nine"]]
- },
- {
- "expression": "foo[*][1]",
- "result": [["three", "four"], ["seven", "eight"], ["ten"]]
- },
- {
- "expression": "foo[*][0][0]",
- "result": ["one", "five", "nine"]
- },
- {
- "expression": "foo[*][1][0]",
- "result": ["three", "seven", "ten"]
- },
- {
- "expression": "foo[*][0][1]",
- "result": ["two", "six"]
- },
- {
- "expression": "foo[*][1][1]",
- "result": ["four", "eight"]
- },
- {
- "expression": "foo[*][2]",
- "result": []
- },
- {
- "expression": "foo[*][2][2]",
- "result": []
- },
- {
- "expression": "bar[*]",
- "result": null
- },
- {
- "expression": "bar[*].baz[*]",
- "result": null
- }
- ]
-},
-{
- "given": {
- "string": "string",
- "hash": {"foo": "bar", "bar": "baz"},
- "number": 23,
- "nullvalue": null
- },
- "cases": [
- {
- "expression": "string[*]",
- "result": null
- },
- {
- "expression": "hash[*]",
- "result": null
- },
- {
- "expression": "number[*]",
- "result": null
- },
- {
- "expression": "nullvalue[*]",
- "result": null
- },
- {
- "expression": "string[*].foo",
- "result": null
- },
- {
- "expression": "hash[*].foo",
- "result": null
- },
- {
- "expression": "number[*].foo",
- "result": null
- },
- {
- "expression": "nullvalue[*].foo",
- "result": null
- },
- {
- "expression": "nullvalue[*].foo[*].bar",
- "result": null
- }
- ]
-},
-{
- "given": {
- "string": "string",
- "hash": {"foo": "val", "bar": "val"},
- "number": 23,
- "array": [1, 2, 3],
- "nullvalue": null
- },
- "cases": [
- {
- "expression": "string.*",
- "result": null
- },
- {
- "expression": "hash.*",
- "result": ["val", "val"]
- },
- {
- "expression": "number.*",
- "result": null
- },
- {
- "expression": "array.*",
- "result": null
- },
- {
- "expression": "nullvalue.*",
- "result": null
- }
- ]
-},
-{
- "given": {
- "a": [0, 1, 2],
- "b": [0, 1, 2]
- },
- "cases": [
- {
- "expression": "*[0]",
- "result": [0, 0]
- }
- ]
-}
-]
diff --git a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/fuzz/jmespath.go b/Godeps/_workspace/src/github.com/jmespath/go-jmespath/fuzz/jmespath.go
deleted file mode 100644
index c7df0878..00000000
--- a/Godeps/_workspace/src/github.com/jmespath/go-jmespath/fuzz/jmespath.go
+++ /dev/null
@@ -1,13 +0,0 @@
-package jmespath
-
-import "github.com/jmespath/go-jmespath"
-
-// Fuzz will fuzz test the JMESPath parser.
-func Fuzz(data []byte) int {
- p := jmespath.NewParser()
- _, err := p.Parse(string(data))
- if err != nil {
- return 1
- }
- return 0
-}
diff --git a/Godeps/_workspace/src/github.com/kr/text/colwriter/Readme b/Godeps/_workspace/src/github.com/kr/text/colwriter/Readme
deleted file mode 100644
index 1c1f4e68..00000000
--- a/Godeps/_workspace/src/github.com/kr/text/colwriter/Readme
+++ /dev/null
@@ -1,5 +0,0 @@
-Package colwriter provides a write filter that formats
-input lines in multiple columns.
-
-The package is a straightforward translation from
-/src/cmd/draw/mc.c in Plan 9 from User Space.
diff --git a/Godeps/_workspace/src/github.com/kr/text/colwriter/column.go b/Godeps/_workspace/src/github.com/kr/text/colwriter/column.go
deleted file mode 100644
index 7302ce9f..00000000
--- a/Godeps/_workspace/src/github.com/kr/text/colwriter/column.go
+++ /dev/null
@@ -1,147 +0,0 @@
-// Package colwriter provides a write filter that formats
-// input lines in multiple columns.
-//
-// The package is a straightforward translation from
-// /src/cmd/draw/mc.c in Plan 9 from User Space.
-package colwriter
-
-import (
- "bytes"
- "io"
- "unicode/utf8"
-)
-
-const (
- tab = 4
-)
-
-const (
- // Print each input line ending in a colon ':' separately.
- BreakOnColon uint = 1 << iota
-)
-
-// A Writer is a filter that arranges input lines in as many columns as will
-// fit in its width. Tab '\t' chars in the input are translated to sequences
-// of spaces ending at multiples of 4 positions.
-//
-// If BreakOnColon is set, each input line ending in a colon ':' is written
-// separately.
-//
-// The Writer assumes that all Unicode code points have the same width; this
-// may not be true in some fonts.
-type Writer struct {
- w io.Writer
- buf []byte
- width int
- flag uint
-}
-
-// NewWriter allocates and initializes a new Writer writing to w.
-// Parameter width controls the total number of characters on each line
-// across all columns.
-func NewWriter(w io.Writer, width int, flag uint) *Writer {
- return &Writer{
- w: w,
- width: width,
- flag: flag,
- }
-}
-
-// Write writes p to the writer w. The only errors returned are ones
-// encountered while writing to the underlying output stream.
-func (w *Writer) Write(p []byte) (n int, err error) {
- var linelen int
- var lastWasColon bool
- for i, c := range p {
- w.buf = append(w.buf, c)
- linelen++
- if c == '\t' {
- w.buf[len(w.buf)-1] = ' '
- for linelen%tab != 0 {
- w.buf = append(w.buf, ' ')
- linelen++
- }
- }
- if w.flag&BreakOnColon != 0 && c == ':' {
- lastWasColon = true
- } else if lastWasColon {
- if c == '\n' {
- pos := bytes.LastIndex(w.buf[:len(w.buf)-1], []byte{'\n'})
- if pos < 0 {
- pos = 0
- }
- line := w.buf[pos:]
- w.buf = w.buf[:pos]
- if err = w.columnate(); err != nil {
- if len(line) < i {
- return i - len(line), err
- }
- return 0, err
- }
- if n, err := w.w.Write(line); err != nil {
- if r := len(line) - n; r < i {
- return i - r, err
- }
- return 0, err
- }
- }
- lastWasColon = false
- }
- if c == '\n' {
- linelen = 0
- }
- }
- return len(p), nil
-}
-
-// Flush should be called after the last call to Write to ensure that any data
-// buffered in the Writer is written to output.
-func (w *Writer) Flush() error {
- return w.columnate()
-}
-
-func (w *Writer) columnate() error {
- words := bytes.Split(w.buf, []byte{'\n'})
- w.buf = nil
- if len(words[len(words)-1]) == 0 {
- words = words[:len(words)-1]
- }
- maxwidth := 0
- for _, wd := range words {
- if n := utf8.RuneCount(wd); n > maxwidth {
- maxwidth = n
- }
- }
- maxwidth++ // space char
- wordsPerLine := w.width / maxwidth
- if wordsPerLine <= 0 {
- wordsPerLine = 1
- }
- nlines := (len(words) + wordsPerLine - 1) / wordsPerLine
- for i := 0; i < nlines; i++ {
- col := 0
- endcol := 0
- for j := i; j < len(words); j += nlines {
- endcol += maxwidth
- _, err := w.w.Write(words[j])
- if err != nil {
- return err
- }
- col += utf8.RuneCount(words[j])
- if j+nlines < len(words) {
- for col < endcol {
- _, err := w.w.Write([]byte{' '})
- if err != nil {
- return err
- }
- col++
- }
- }
- }
- _, err := w.w.Write([]byte{'\n'})
- if err != nil {
- return err
- }
- }
- return nil
-}
diff --git a/Godeps/_workspace/src/github.com/kr/text/mc/Readme b/Godeps/_workspace/src/github.com/kr/text/mc/Readme
deleted file mode 100644
index 519ddc00..00000000
--- a/Godeps/_workspace/src/github.com/kr/text/mc/Readme
+++ /dev/null
@@ -1,9 +0,0 @@
-Command mc prints in multiple columns.
-
- Usage: mc [-] [-N] [file...]
-
-Mc splits the input into as many columns as will fit in N
-print positions. If the output is a tty, the default N is
-the number of characters in a terminal line; otherwise the
-default N is 80. Under option - each input line ending in
-a colon ':' is printed separately.
diff --git a/Godeps/_workspace/src/github.com/kr/text/mc/mc.go b/Godeps/_workspace/src/github.com/kr/text/mc/mc.go
deleted file mode 100644
index 00169a30..00000000
--- a/Godeps/_workspace/src/github.com/kr/text/mc/mc.go
+++ /dev/null
@@ -1,62 +0,0 @@
-// Command mc prints in multiple columns.
-//
-// Usage: mc [-] [-N] [file...]
-//
-// Mc splits the input into as many columns as will fit in N
-// print positions. If the output is a tty, the default N is
-// the number of characters in a terminal line; otherwise the
-// default N is 80. Under option - each input line ending in
-// a colon ':' is printed separately.
-package main
-
-import (
- "github.com/kr/pty"
- "github.com/kr/text/colwriter"
- "io"
- "log"
- "os"
- "strconv"
-)
-
-func main() {
- var width int
- var flag uint
- args := os.Args[1:]
- for len(args) > 0 && len(args[0]) > 0 && args[0][0] == '-' {
- if len(args[0]) > 1 {
- width, _ = strconv.Atoi(args[0][1:])
- } else {
- flag |= colwriter.BreakOnColon
- }
- args = args[1:]
- }
- if width < 1 {
- _, width, _ = pty.Getsize(os.Stdout)
- }
- if width < 1 {
- width = 80
- }
-
- w := colwriter.NewWriter(os.Stdout, width, flag)
- if len(args) > 0 {
- for _, s := range args {
- if f, err := os.Open(s); err == nil {
- copyin(w, f)
- f.Close()
- } else {
- log.Println(err)
- }
- }
- } else {
- copyin(w, os.Stdin)
- }
-}
-
-func copyin(w *colwriter.Writer, r io.Reader) {
- if _, err := io.Copy(w, r); err != nil {
- log.Println(err)
- }
- if err := w.Flush(); err != nil {
- log.Println(err)
- }
-}
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/devices/devices_unix.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/devices/devices_unix.go
deleted file mode 100644
index c02b73e3..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/devices/devices_unix.go
+++ /dev/null
@@ -1,102 +0,0 @@
-// +build linux freebsd
-
-package devices
-
-import (
- "errors"
- "fmt"
- "io/ioutil"
- "os"
- "path/filepath"
- "syscall"
-
- "github.com/opencontainers/runc/libcontainer/configs"
-)
-
-var (
- ErrNotADevice = errors.New("not a device node")
-)
-
-// Testing dependencies
-var (
- osLstat = os.Lstat
- ioutilReadDir = ioutil.ReadDir
-)
-
-// Given the path to a device and it's cgroup_permissions(which cannot be easily queried) look up the information about a linux device and return that information as a Device struct.
-func DeviceFromPath(path, permissions string) (*configs.Device, error) {
- fileInfo, err := osLstat(path)
- if err != nil {
- return nil, err
- }
- var (
- devType rune
- mode = fileInfo.Mode()
- fileModePermissionBits = os.FileMode.Perm(mode)
- )
- switch {
- case mode&os.ModeDevice == 0:
- return nil, ErrNotADevice
- case mode&os.ModeCharDevice != 0:
- fileModePermissionBits |= syscall.S_IFCHR
- devType = 'c'
- default:
- fileModePermissionBits |= syscall.S_IFBLK
- devType = 'b'
- }
- stat_t, ok := fileInfo.Sys().(*syscall.Stat_t)
- if !ok {
- return nil, fmt.Errorf("cannot determine the device number for device %s", path)
- }
- devNumber := int(stat_t.Rdev)
- return &configs.Device{
- Type: devType,
- Path: path,
- Major: Major(devNumber),
- Minor: Minor(devNumber),
- Permissions: permissions,
- FileMode: fileModePermissionBits,
- Uid: stat_t.Uid,
- Gid: stat_t.Gid,
- }, nil
-}
-
-func HostDevices() ([]*configs.Device, error) {
- return getDevices("/dev")
-}
-
-func getDevices(path string) ([]*configs.Device, error) {
- files, err := ioutilReadDir(path)
- if err != nil {
- return nil, err
- }
- out := []*configs.Device{}
- for _, f := range files {
- switch {
- case f.IsDir():
- switch f.Name() {
- case "pts", "shm", "fd", "mqueue":
- continue
- default:
- sub, err := getDevices(filepath.Join(path, f.Name()))
- if err != nil {
- return nil, err
- }
-
- out = append(out, sub...)
- continue
- }
- case f.Name() == "console":
- continue
- }
- device, err := DeviceFromPath(filepath.Join(path, f.Name()), "rwm")
- if err != nil {
- if err == ErrNotADevice {
- continue
- }
- return nil, err
- }
- out = append(out, device)
- }
- return out, nil
-}
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/devices/devices_unsupported.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/devices/devices_unsupported.go
deleted file mode 100644
index 1e84033d..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/devices/devices_unsupported.go
+++ /dev/null
@@ -1,3 +0,0 @@
-// +build windows
-
-package devices
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/devices/number.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/devices/number.go
deleted file mode 100644
index 885b6e5d..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/devices/number.go
+++ /dev/null
@@ -1,24 +0,0 @@
-// +build linux freebsd
-
-package devices
-
-/*
-
-This code provides support for manipulating linux device numbers. It should be replaced by normal syscall functions once http://code.google.com/p/go/issues/detail?id=8106 is solved.
-
-You can read what they are here:
-
- - http://www.makelinux.net/ldd3/chp-3-sect-2
- - http://www.linux-tutorial.info/modules.php?name=MContent&pageid=94
-
-Note! These are NOT the same as the MAJOR(dev_t device);, MINOR(dev_t device); and MKDEV(int major, int minor); functions as defined in as the representation of device numbers used by go is different than the one used internally to the kernel! - https://github.com/torvalds/linux/blob/master/include/linux/kdev_t.h#L9
-
-*/
-
-func Major(devNumber int) int64 {
- return int64((devNumber >> 8) & 0xfff)
-}
-
-func Minor(devNumber int) int64 {
- return int64((devNumber & 0xff) | ((devNumber >> 12) & 0xfff00))
-}
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/integration/doc.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/integration/doc.go
deleted file mode 100644
index 87545bc9..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/integration/doc.go
+++ /dev/null
@@ -1,2 +0,0 @@
-// integration is used for integration testing of libcontainer
-package integration
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/README.md b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/README.md
deleted file mode 100644
index d1a60ef9..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-## nsenter
-
-The `nsenter` package registers a special init constructor that is called before
-the Go runtime has a chance to boot. This provides us the ability to `setns` on
-existing namespaces and avoid the issues that the Go runtime has with multiple
-threads. This constructor will be called if this package is registered,
-imported, in your go application.
-
-The `nsenter` package will `import "C"` and it uses [cgo](https://golang.org/cmd/cgo/)
-package. In cgo, if the import of "C" is immediately preceded by a comment, that comment,
-called the preamble, is used as a header when compiling the C parts of the package.
-So every time we import package `nsenter`, the C code function `nsexec()` would be
-called. And package `nsenter` is now only imported in Docker execdriver, so every time
-before we call `execdriver.Exec()`, that C code would run.
-
-`nsexec()` will first check the environment variable `_LIBCONTAINER_INITPID`
-which will give the process of the container that should be joined. Namespaces fd will
-be found from `/proc/[pid]/ns` and set by `setns` syscall.
-
-And then get the pipe number from `_LIBCONTAINER_INITPIPE`, error message could
-be transfered through it. If tty is added, `_LIBCONTAINER_CONSOLE_PATH` will
-have value and start a console for output.
-
-Finally, `nsexec()` will clone a child process , exit the parent process and let
-the Go runtime take over.
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsenter.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsenter.go
deleted file mode 100644
index 07f4d63e..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsenter.go
+++ /dev/null
@@ -1,12 +0,0 @@
-// +build linux,!gccgo
-
-package nsenter
-
-/*
-#cgo CFLAGS: -Wall
-extern void nsexec();
-void __attribute__((constructor)) init(void) {
- nsexec();
-}
-*/
-import "C"
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsenter_gccgo.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsenter_gccgo.go
deleted file mode 100644
index 63c7a3ec..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsenter_gccgo.go
+++ /dev/null
@@ -1,25 +0,0 @@
-// +build linux,gccgo
-
-package nsenter
-
-/*
-#cgo CFLAGS: -Wall
-extern void nsexec();
-void __attribute__((constructor)) init(void) {
- nsexec();
-}
-*/
-import "C"
-
-// AlwaysFalse is here to stay false
-// (and be exported so the compiler doesn't optimize out its reference)
-var AlwaysFalse bool
-
-func init() {
- if AlwaysFalse {
- // by referencing this C init() in a noop test, it will ensure the compiler
- // links in the C function.
- // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65134
- C.init()
- }
-}
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsenter_unsupported.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsenter_unsupported.go
deleted file mode 100644
index ac701ca3..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsenter_unsupported.go
+++ /dev/null
@@ -1,5 +0,0 @@
-// +build !linux !cgo
-
-package nsenter
-
-import "C"
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsexec.c b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsexec.c
deleted file mode 100644
index 27e6e53d..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/nsenter/nsexec.c
+++ /dev/null
@@ -1,260 +0,0 @@
-#define _GNU_SOURCE
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-/* All arguments should be above stack, because it grows down */
-struct clone_arg {
- /*
- * Reserve some space for clone() to locate arguments
- * and retcode in this place
- */
- char stack[4096] __attribute__ ((aligned(16)));
- char stack_ptr[0];
- jmp_buf *env;
-};
-
-#define pr_perror(fmt, ...) fprintf(stderr, "nsenter: " fmt ": %m\n", ##__VA_ARGS__)
-
-static int child_func(void *_arg)
-{
- struct clone_arg *arg = (struct clone_arg *)_arg;
- longjmp(*arg->env, 1);
-}
-
-// Use raw setns syscall for versions of glibc that don't include it (namely glibc-2.12)
-#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 14
-#define _GNU_SOURCE
-#include "syscall.h"
-#if defined(__NR_setns) && !defined(SYS_setns)
-#define SYS_setns __NR_setns
-#endif
-#ifdef SYS_setns
-int setns(int fd, int nstype)
-{
- return syscall(SYS_setns, fd, nstype);
-}
-#endif
-#endif
-
-static int clone_parent(jmp_buf * env) __attribute__ ((noinline));
-static int clone_parent(jmp_buf * env)
-{
- struct clone_arg ca;
- int child;
-
- ca.env = env;
- child = clone(child_func, ca.stack_ptr, CLONE_PARENT | SIGCHLD, &ca);
-
- return child;
-}
-
-static uint32_t readint32(char *buf)
-{
- return *(uint32_t *) buf;
-}
-
-// list of known message types we want to send to bootstrap program
-// These are defined in libcontainer/message_linux.go
-#define INIT_MSG 62000
-#define PID_ATTR 27281
-#define CONSOLE_PATH_ATTR 27282
-
-void nsexec()
-{
- char *namespaces[] = { "ipc", "uts", "net", "pid", "mnt", "user" };
- const int num = sizeof(namespaces) / sizeof(char *);
- jmp_buf env;
- char buf[PATH_MAX], *val;
- int i, tfd, self_tfd, child, n, len, pipenum, consolefd = -1;
- pid_t pid = 0;
-
- // if we dont have INITTYPE or this is the init process, skip the bootstrap process
- val = getenv("_LIBCONTAINER_INITTYPE");
- if (val == NULL || strcmp(val, "standard") == 0) {
- return;
- }
- if (strcmp(val, "setns") != 0) {
- pr_perror("Invalid inittype %s", val);
- exit(1);
- }
-
- val = getenv("_LIBCONTAINER_INITPIPE");
- if (val == NULL) {
- pr_perror("Child pipe not found");
- exit(1);
- }
- pipenum = atoi(val);
- snprintf(buf, sizeof(buf), "%d", pipenum);
- if (strcmp(val, buf)) {
- pr_perror("Unable to parse _LIBCONTAINER_INITPIPE");
- exit(1);
- }
-
- char nlbuf[NLMSG_HDRLEN];
- struct nlmsghdr *nh;
- if ((n = read(pipenum, nlbuf, NLMSG_HDRLEN)) != NLMSG_HDRLEN) {
- pr_perror("Failed to read netlink header, got %d", n);
- exit(1);
- }
-
- nh = (struct nlmsghdr *)nlbuf;
- if (nh->nlmsg_type == NLMSG_ERROR) {
- pr_perror("Invalid netlink header message");
- exit(1);
- }
- if (nh->nlmsg_type != INIT_MSG) {
- pr_perror("Unexpected netlink message type %d", nh->nlmsg_type);
- exit(1);
- }
- // read the netlink payload
- len = NLMSG_PAYLOAD(nh, 0);
- char data[len];
- if ((n = read(pipenum, data, len)) != len) {
- pr_perror("Failed to read netlink payload, got %d", n);
- exit(1);
- }
-
- int start = 0;
- struct nlattr *attr;
- while (start < len) {
- int payload_len;
- attr = (struct nlattr *)((void *)data + start);
- start += NLA_HDRLEN;
- payload_len = attr->nla_len - NLA_HDRLEN;
- switch (attr->nla_type) {
- case PID_ATTR:
- pid = (pid_t) readint32(data + start);
- break;
- case CONSOLE_PATH_ATTR:
- consolefd = open((char *)data + start, O_RDWR);
- if (consolefd < 0) {
- pr_perror("Failed to open console %s", (char *)data + start);
- exit(1);
- }
- break;
- }
- start += NLA_ALIGN(payload_len);
- }
-
- // required pid to be passed
- if (pid == 0) {
- pr_perror("missing pid");
- exit(1);
- }
-
- /* Check that the specified process exists */
- snprintf(buf, PATH_MAX - 1, "/proc/%d/ns", pid);
- tfd = open(buf, O_DIRECTORY | O_RDONLY);
- if (tfd == -1) {
- pr_perror("Failed to open \"%s\"", buf);
- exit(1);
- }
-
- self_tfd = open("/proc/self/ns", O_DIRECTORY | O_RDONLY);
- if (self_tfd == -1) {
- pr_perror("Failed to open /proc/self/ns");
- exit(1);
- }
-
- for (i = 0; i < num; i++) {
- struct stat st;
- struct stat self_st;
- int fd;
-
- /* Symlinks on all namespaces exist for dead processes, but they can't be opened */
- if (fstatat(tfd, namespaces[i], &st, 0) == -1) {
- // Ignore nonexistent namespaces.
- if (errno == ENOENT)
- continue;
- }
-
- /* Skip namespaces we're already part of */
- if (fstatat(self_tfd, namespaces[i], &self_st, 0) != -1 && st.st_ino == self_st.st_ino) {
- continue;
- }
-
- fd = openat(tfd, namespaces[i], O_RDONLY);
- if (fd == -1) {
- pr_perror("Failed to open ns file %s for ns %s", buf, namespaces[i]);
- exit(1);
- }
- // Set the namespace.
- if (setns(fd, 0) == -1) {
- pr_perror("Failed to setns for %s", namespaces[i]);
- exit(1);
- }
- close(fd);
- }
-
- close(self_tfd);
- close(tfd);
-
- if (setjmp(env) == 1) {
- // Child
-
- if (setsid() == -1) {
- pr_perror("setsid failed");
- exit(1);
- }
- if (consolefd != -1) {
- if (ioctl(consolefd, TIOCSCTTY, 0) == -1) {
- pr_perror("ioctl TIOCSCTTY failed");
- exit(1);
- }
- if (dup3(consolefd, STDIN_FILENO, 0) != STDIN_FILENO) {
- pr_perror("Failed to dup 0");
- exit(1);
- }
- if (dup3(consolefd, STDOUT_FILENO, 0) != STDOUT_FILENO) {
- pr_perror("Failed to dup 1");
- exit(1);
- }
- if (dup3(consolefd, STDERR_FILENO, 0) != STDERR_FILENO) {
- pr_perror("Failed to dup 2");
- exit(1);
- }
- }
- // Finish executing, let the Go runtime take over.
- return;
- }
- // Parent
-
- // We must fork to actually enter the PID namespace, use CLONE_PARENT
- // so the child can have the right parent, and we don't need to forward
- // the child's exit code or resend its death signal.
- child = clone_parent(&env);
- if (child < 0) {
- pr_perror("Unable to fork");
- exit(1);
- }
-
- len = snprintf(buf, sizeof(buf), "{ \"pid\" : %d }\n", child);
-
- if (write(pipenum, buf, len) != len) {
- pr_perror("Unable to send a child pid");
- kill(child, SIGKILL);
- exit(1);
- }
-
- exit(0);
-}
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/xattr/errors.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/xattr/errors.go
deleted file mode 100644
index 8cd77418..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/xattr/errors.go
+++ /dev/null
@@ -1,8 +0,0 @@
-package xattr
-
-import (
- "fmt"
- "runtime"
-)
-
-var ErrNotSupportedPlatform = fmt.Errorf("platform and architecture is not supported %s %s", runtime.GOOS, runtime.GOARCH)
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/xattr/xattr_linux.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/xattr/xattr_linux.go
deleted file mode 100644
index 933a7527..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/xattr/xattr_linux.go
+++ /dev/null
@@ -1,53 +0,0 @@
-// +build linux
-
-package xattr
-
-import (
- "syscall"
-
- "github.com/opencontainers/runc/libcontainer/system"
-)
-
-func XattrEnabled(path string) bool {
- if Setxattr(path, "user.test", "") == syscall.ENOTSUP {
- return false
- }
- return true
-}
-
-func stringsfromByte(buf []byte) (result []string) {
- offset := 0
- for index, b := range buf {
- if b == 0 {
- result = append(result, string(buf[offset:index]))
- offset = index + 1
- }
- }
- return
-}
-
-func Listxattr(path string) ([]string, error) {
- size, err := system.Llistxattr(path, nil)
- if err != nil {
- return nil, err
- }
- buf := make([]byte, size)
- read, err := system.Llistxattr(path, buf)
- if err != nil {
- return nil, err
- }
- names := stringsfromByte(buf[:read])
- return names, nil
-}
-
-func Getxattr(path, attr string) (string, error) {
- value, err := system.Lgetxattr(path, attr)
- if err != nil {
- return "", err
- }
- return string(value), nil
-}
-
-func Setxattr(path, xattr, value string) error {
- return system.Lsetxattr(path, xattr, []byte(value), 0)
-}
diff --git a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/xattr/xattr_unsupported.go b/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/xattr/xattr_unsupported.go
deleted file mode 100644
index 821dea3b..00000000
--- a/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/xattr/xattr_unsupported.go
+++ /dev/null
@@ -1,15 +0,0 @@
-// +build !linux
-
-package xattr
-
-func Listxattr(path string) ([]string, error) {
- return nil, ErrNotSupportedPlatform
-}
-
-func Getxattr(path, attr string) (string, error) {
- return "", ErrNotSupportedPlatform
-}
-
-func Setxattr(path, xattr, value string) error {
- return ErrNotSupportedPlatform
-}
diff --git a/Godeps/_workspace/src/github.com/prometheus/client_model/ruby/LICENSE b/Godeps/_workspace/src/github.com/prometheus/client_model/ruby/LICENSE
deleted file mode 100644
index 11069edd..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/client_model/ruby/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
-Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_0 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_0
deleted file mode 100644
index 139597f9..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_0
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_1 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_1
deleted file mode 100644
index 2ae87067..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_1
+++ /dev/null
@@ -1,6 +0,0 @@
-
-minimal_metric 1.234
-another_metric -3e3 103948
-# Even that:
-no_labels{} 3
-# HELP line for non-existing metric will be ignored.
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_2 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_2
deleted file mode 100644
index 5c351db3..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_2
+++ /dev/null
@@ -1,12 +0,0 @@
-
-# A normal comment.
-#
-# TYPE name counter
-name{labelname="val1",basename="basevalue"} NaN
-name {labelname="val2",basename="base\"v\\al\nue"} 0.23 1234567890
-# HELP name two-line\n doc str\\ing
-
- # HELP name2 doc str"ing 2
- # TYPE name2 gauge
-name2{labelname="val2" ,basename = "basevalue2" } +Inf 54321
-name2{ labelname = "val1" , }-Inf
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_3 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_3
deleted file mode 100644
index 0b3c345a..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_3
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# TYPE my_summary summary
-my_summary{n1="val1",quantile="0.5"} 110
-decoy -1 -2
-my_summary{n1="val1",quantile="0.9"} 140 1
-my_summary_count{n1="val1"} 42
-# Latest timestamp wins in case of a summary.
-my_summary_sum{n1="val1"} 4711 2
-fake_sum{n1="val1"} 2001
-# TYPE another_summary summary
-another_summary_count{n2="val2",n1="val1"} 20
-my_summary_count{n2="val2",n1="val1"} 5 5
-another_summary{n1="val1",n2="val2",quantile=".3"} -1.2
-my_summary_sum{n1="val2"} 08 15
-my_summary{n1="val3", quantile="0.2"} 4711
- my_summary{n1="val1",n2="val2",quantile="-12.34",} NaN
-# some
-# funny comments
-# HELP
-# HELP
-# HELP my_summary
-# HELP my_summary
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_4 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_4
deleted file mode 100644
index bde0a387..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_4
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# HELP request_duration_microseconds The response latency.
-# TYPE request_duration_microseconds histogram
-request_duration_microseconds_bucket{le="100"} 123
-request_duration_microseconds_bucket{le="120"} 412
-request_duration_microseconds_bucket{le="144"} 592
-request_duration_microseconds_bucket{le="172.8"} 1524
-request_duration_microseconds_bucket{le="+Inf"} 2693
-request_duration_microseconds_sum 1.7560473e+06
-request_duration_microseconds_count 2693
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_0 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_0
deleted file mode 100644
index 4c67f9a1..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_0
+++ /dev/null
@@ -1 +0,0 @@
-bla 3.14
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_1 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_1
deleted file mode 100644
index b853478e..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_1
+++ /dev/null
@@ -1 +0,0 @@
-metric{label="\t"} 3.14
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_10 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_10
deleted file mode 100644
index b5fe5f5a..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_10
+++ /dev/null
@@ -1 +0,0 @@
-metric{label="bla"} 3.14 2 3
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_11 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_11
deleted file mode 100644
index 57c7fbc0..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_11
+++ /dev/null
@@ -1 +0,0 @@
-metric{label="bla"} blubb
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_12 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_12
deleted file mode 100644
index 0a9df79a..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_12
+++ /dev/null
@@ -1,3 +0,0 @@
-
-# HELP metric one
-# HELP metric two
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_13 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_13
deleted file mode 100644
index 5bc74278..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_13
+++ /dev/null
@@ -1,3 +0,0 @@
-
-# TYPE metric counter
-# TYPE metric untyped
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_14 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_14
deleted file mode 100644
index a9a24265..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_14
+++ /dev/null
@@ -1,3 +0,0 @@
-
-metric 4.12
-# TYPE metric counter
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_15 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_15
deleted file mode 100644
index 7e95ca8f..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_15
+++ /dev/null
@@ -1,2 +0,0 @@
-
-# TYPE metric bla
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_16 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_16
deleted file mode 100644
index 7825f888..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_16
+++ /dev/null
@@ -1,2 +0,0 @@
-
-# TYPE met-ric
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_17 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_17
deleted file mode 100644
index 8f35cae0..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_17
+++ /dev/null
@@ -1 +0,0 @@
-@invalidmetric{label="bla"} 3.14 2
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_18 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_18
deleted file mode 100644
index 7ca2cc26..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_18
+++ /dev/null
@@ -1 +0,0 @@
-{label="bla"} 3.14 2
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_19 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_19
deleted file mode 100644
index 7a6ccc0d..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_19
+++ /dev/null
@@ -1,3 +0,0 @@
-
-# TYPE metric histogram
-metric_bucket{le="bla"} 3.14
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_2 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_2
deleted file mode 100644
index 726d0017..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_2
+++ /dev/null
@@ -1,3 +0,0 @@
-
-metric{label="new
-line"} 3.14
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_3 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_3
deleted file mode 100644
index 6aa9e308..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_3
+++ /dev/null
@@ -1 +0,0 @@
-metric{@="bla"} 3.14
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_4 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_4
deleted file mode 100644
index d112cb90..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_4
+++ /dev/null
@@ -1 +0,0 @@
-metric{__name__="bla"} 3.14
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_5 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_5
deleted file mode 100644
index b34554a8..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_5
+++ /dev/null
@@ -1 +0,0 @@
-metric{label+="bla"} 3.14
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_6 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_6
deleted file mode 100644
index c4d7df3d..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_6
+++ /dev/null
@@ -1 +0,0 @@
-metric{label=bla} 3.14
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_7 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_7
deleted file mode 100644
index 97eafc4a..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_7
+++ /dev/null
@@ -1,3 +0,0 @@
-
-# TYPE metric summary
-metric{quantile="bla"} 3.14
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_8 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_8
deleted file mode 100644
index fc706496..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_8
+++ /dev/null
@@ -1 +0,0 @@
-metric{label="bla"+} 3.14
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_9 b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_9
deleted file mode 100644
index 57b4879c..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/from_test_parse_error_9
+++ /dev/null
@@ -1 +0,0 @@
-metric{label="bla"} 3.14 2.72
diff --git a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/minimal b/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/minimal
deleted file mode 100644
index be1e6a36..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/common/expfmt/fuzz/corpus/minimal
+++ /dev/null
@@ -1 +0,0 @@
-m{} 0
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/cmdline b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/cmdline
deleted file mode 100644
index d2d8ef88..00000000
Binary files a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/cmdline and /dev/null differ
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/0 b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/0
deleted file mode 100644
index e69de29b..00000000
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/1 b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/1
deleted file mode 100644
index e69de29b..00000000
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/2 b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/2
deleted file mode 100644
index e69de29b..00000000
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/3 b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/3
deleted file mode 100644
index e69de29b..00000000
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/4 b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/fd/4
deleted file mode 100644
index e69de29b..00000000
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/limits b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/limits
deleted file mode 100644
index 23c6b689..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/limits
+++ /dev/null
@@ -1,17 +0,0 @@
-Limit Soft Limit Hard Limit Units
-Max cpu time unlimited unlimited seconds
-Max file size unlimited unlimited bytes
-Max data size unlimited unlimited bytes
-Max stack size 8388608 unlimited bytes
-Max core file size 0 unlimited bytes
-Max resident set unlimited unlimited bytes
-Max processes 62898 62898 processes
-Max open files 2048 4096 files
-Max locked memory 65536 65536 bytes
-Max address space unlimited unlimited bytes
-Max file locks unlimited unlimited locks
-Max pending signals 62898 62898 signals
-Max msgqueue size 819200 819200 bytes
-Max nice priority 0 0
-Max realtime priority 0 0
-Max realtime timeout unlimited unlimited us
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/stat b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/stat
deleted file mode 100644
index 438aaa9d..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/26231/stat
+++ /dev/null
@@ -1 +0,0 @@
-26231 (vim) R 5392 7446 5392 34835 7446 4218880 32533 309516 26 82 1677 44 158 99 20 0 1 0 82375 56274944 1981 18446744073709551615 4194304 6294284 140736914091744 140736914087944 139965136429984 0 0 12288 1870679807 0 0 0 17 0 0 0 31 0 0 8391624 8481048 16420864 140736914093252 140736914093279 140736914093279 140736914096107 0
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/584/stat b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/584/stat
deleted file mode 100644
index 65b9369d..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/584/stat
+++ /dev/null
@@ -1,2 +0,0 @@
-1020 ((a b ) ( c d) ) R 28378 1020 28378 34842 1020 4218880 286 0 0 0 0 0 0 0 20 0 1 0 10839175 10395648 155 18446744073709551615 4194304 4238788 140736466511168 140736466511168 140609271124624 0 0 0 0 0 0 0 17 5 0 0 0 0 0 6336016 6337300 25579520 140736466515030 140736466515061 140736466515061 140736466518002 0
-#!/bin/cat /proc/self/stat
diff --git a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/stat b/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/stat
deleted file mode 100644
index dabb96f7..00000000
--- a/Godeps/_workspace/src/github.com/prometheus/procfs/fixtures/stat
+++ /dev/null
@@ -1,16 +0,0 @@
-cpu 301854 612 111922 8979004 3552 2 3944 0 0 0
-cpu0 44490 19 21045 1087069 220 1 3410 0 0 0
-cpu1 47869 23 16474 1110787 591 0 46 0 0 0
-cpu2 46504 36 15916 1112321 441 0 326 0 0 0
-cpu3 47054 102 15683 1113230 533 0 60 0 0 0
-cpu4 28413 25 10776 1140321 217 0 8 0 0 0
-cpu5 29271 101 11586 1136270 672 0 30 0 0 0
-cpu6 29152 36 10276 1139721 319 0 29 0 0 0
-cpu7 29098 268 10164 1139282 555 0 31 0 0 0
-intr 8885917 17 0 0 0 0 0 0 0 1 79281 0 0 0 0 0 0 0 231237 0 0 0 0 250586 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223424 190745 13 906 1283803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-ctxt 38014093
-btime 1418183276
-processes 26442
-procs_running 2
-procs_blocked 0
-softirq 5057579 250191 1481983 1647 211099 186066 0 1783454 622196 12499 508444
diff --git a/Godeps/_workspace/src/github.com/stretchr/objx/codegen/array-access.txt b/Godeps/_workspace/src/github.com/stretchr/objx/codegen/array-access.txt
deleted file mode 100644
index 30602347..00000000
--- a/Godeps/_workspace/src/github.com/stretchr/objx/codegen/array-access.txt
+++ /dev/null
@@ -1,14 +0,0 @@
- case []{1}:
- a := object.([]{1})
- if isSet {
- a[index] = value.({1})
- } else {
- if index >= len(a) {
- if panics {
- panic(fmt.Sprintf("objx: Index %d is out of range because the []{1} only contains %d items.", index, len(a)))
- }
- return nil
- } else {
- return a[index]
- }
- }
diff --git a/Godeps/_workspace/src/github.com/stretchr/objx/codegen/index.html b/Godeps/_workspace/src/github.com/stretchr/objx/codegen/index.html
deleted file mode 100644
index 379ffc3c..00000000
--- a/Godeps/_workspace/src/github.com/stretchr/objx/codegen/index.html
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
- Codegen
-
-
-
-
-
-
- Template
-
-
- Use {x} as a placeholder for each argument.
-
-
-
-
- Arguments (comma separated)
-
-
- One block per line
-
-
-
-
- Output
-
-
-
-
-
-
-
-
-
diff --git a/Godeps/_workspace/src/github.com/stretchr/objx/codegen/template.txt b/Godeps/_workspace/src/github.com/stretchr/objx/codegen/template.txt
deleted file mode 100644
index b396900b..00000000
--- a/Godeps/_workspace/src/github.com/stretchr/objx/codegen/template.txt
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- {4} ({1} and []{1})
- --------------------------------------------------
-*/
-
-// {4} gets the value as a {1}, returns the optionalDefault
-// value or a system default object if the value is the wrong type.
-func (v *Value) {4}(optionalDefault ...{1}) {1} {
- if s, ok := v.data.({1}); ok {
- return s
- }
- if len(optionalDefault) == 1 {
- return optionalDefault[0]
- }
- return {3}
-}
-
-// Must{4} gets the value as a {1}.
-//
-// Panics if the object is not a {1}.
-func (v *Value) Must{4}() {1} {
- return v.data.({1})
-}
-
-// {4}Slice gets the value as a []{1}, returns the optionalDefault
-// value or nil if the value is not a []{1}.
-func (v *Value) {4}Slice(optionalDefault ...[]{1}) []{1} {
- if s, ok := v.data.([]{1}); ok {
- return s
- }
- if len(optionalDefault) == 1 {
- return optionalDefault[0]
- }
- return nil
-}
-
-// Must{4}Slice gets the value as a []{1}.
-//
-// Panics if the object is not a []{1}.
-func (v *Value) Must{4}Slice() []{1} {
- return v.data.([]{1})
-}
-
-// Is{4} gets whether the object contained is a {1} or not.
-func (v *Value) Is{4}() bool {
- _, ok := v.data.({1})
- return ok
-}
-
-// Is{4}Slice gets whether the object contained is a []{1} or not.
-func (v *Value) Is{4}Slice() bool {
- _, ok := v.data.([]{1})
- return ok
-}
-
-// Each{4} calls the specified callback for each object
-// in the []{1}.
-//
-// Panics if the object is the wrong type.
-func (v *Value) Each{4}(callback func(int, {1}) bool) *Value {
-
- for index, val := range v.Must{4}Slice() {
- carryon := callback(index, val)
- if carryon == false {
- break
- }
- }
-
- return v
-
-}
-
-// Where{4} uses the specified decider function to select items
-// from the []{1}. The object contained in the result will contain
-// only the selected items.
-func (v *Value) Where{4}(decider func(int, {1}) bool) *Value {
-
- var selected []{1}
-
- v.Each{4}(func(index int, val {1}) bool {
- shouldSelect := decider(index, val)
- if shouldSelect == false {
- selected = append(selected, val)
- }
- return true
- })
-
- return &Value{data:selected}
-
-}
-
-// Group{4} uses the specified grouper function to group the items
-// keyed by the return of the grouper. The object contained in the
-// result will contain a map[string][]{1}.
-func (v *Value) Group{4}(grouper func(int, {1}) string) *Value {
-
- groups := make(map[string][]{1})
-
- v.Each{4}(func(index int, val {1}) bool {
- group := grouper(index, val)
- if _, ok := groups[group]; !ok {
- groups[group] = make([]{1}, 0)
- }
- groups[group] = append(groups[group], val)
- return true
- })
-
- return &Value{data:groups}
-
-}
-
-// Replace{4} uses the specified function to replace each {1}s
-// by iterating each item. The data in the returned result will be a
-// []{1} containing the replaced items.
-func (v *Value) Replace{4}(replacer func(int, {1}) {1}) *Value {
-
- arr := v.Must{4}Slice()
- replaced := make([]{1}, len(arr))
-
- v.Each{4}(func(index int, val {1}) bool {
- replaced[index] = replacer(index, val)
- return true
- })
-
- return &Value{data:replaced}
-
-}
-
-// Collect{4} uses the specified collector function to collect a value
-// for each of the {1}s in the slice. The data returned will be a
-// []interface{}.
-func (v *Value) Collect{4}(collector func(int, {1}) interface{}) *Value {
-
- arr := v.Must{4}Slice()
- collected := make([]interface{}, len(arr))
-
- v.Each{4}(func(index int, val {1}) bool {
- collected[index] = collector(index, val)
- return true
- })
-
- return &Value{data:collected}
-}
-
-// ************************************************************
-// TESTS
-// ************************************************************
-
-func Test{4}(t *testing.T) {
-
- val := {1}( {2} )
- m := map[string]interface{}{"value": val, "nothing": nil}
- assert.Equal(t, val, New(m).Get("value").{4}())
- assert.Equal(t, val, New(m).Get("value").Must{4}())
- assert.Equal(t, {1}({3}), New(m).Get("nothing").{4}())
- assert.Equal(t, val, New(m).Get("nothing").{4}({2}))
-
- assert.Panics(t, func() {
- New(m).Get("age").Must{4}()
- })
-
-}
-
-func Test{4}Slice(t *testing.T) {
-
- val := {1}( {2} )
- m := map[string]interface{}{"value": []{1}{ val }, "nothing": nil}
- assert.Equal(t, val, New(m).Get("value").{4}Slice()[0])
- assert.Equal(t, val, New(m).Get("value").Must{4}Slice()[0])
- assert.Equal(t, []{1}(nil), New(m).Get("nothing").{4}Slice())
- assert.Equal(t, val, New(m).Get("nothing").{4}Slice( []{1}{ {1}({2}) } )[0])
-
- assert.Panics(t, func() {
- New(m).Get("nothing").Must{4}Slice()
- })
-
-}
-
-func TestIs{4}(t *testing.T) {
-
- var v *Value
-
- v = &Value{data: {1}({2})}
- assert.True(t, v.Is{4}())
-
- v = &Value{data: []{1}{ {1}({2}) }}
- assert.True(t, v.Is{4}Slice())
-
-}
-
-func TestEach{4}(t *testing.T) {
-
- v := &Value{data: []{1}{ {1}({2}), {1}({2}), {1}({2}), {1}({2}), {1}({2}) }}
- count := 0
- replacedVals := make([]{1}, 0)
- assert.Equal(t, v, v.Each{4}(func(i int, val {1}) bool {
-
- count++
- replacedVals = append(replacedVals, val)
-
- // abort early
- if i == 2 {
- return false
- }
-
- return true
-
- }))
-
- assert.Equal(t, count, 3)
- assert.Equal(t, replacedVals[0], v.Must{4}Slice()[0])
- assert.Equal(t, replacedVals[1], v.Must{4}Slice()[1])
- assert.Equal(t, replacedVals[2], v.Must{4}Slice()[2])
-
-}
-
-func TestWhere{4}(t *testing.T) {
-
- v := &Value{data: []{1}{ {1}({2}), {1}({2}), {1}({2}), {1}({2}), {1}({2}), {1}({2}) }}
-
- selected := v.Where{4}(func(i int, val {1}) bool {
- return i%2==0
- }).Must{4}Slice()
-
- assert.Equal(t, 3, len(selected))
-
-}
-
-func TestGroup{4}(t *testing.T) {
-
- v := &Value{data: []{1}{ {1}({2}), {1}({2}), {1}({2}), {1}({2}), {1}({2}), {1}({2}) }}
-
- grouped := v.Group{4}(func(i int, val {1}) string {
- return fmt.Sprintf("%v", i%2==0)
- }).data.(map[string][]{1})
-
- assert.Equal(t, 2, len(grouped))
- assert.Equal(t, 3, len(grouped["true"]))
- assert.Equal(t, 3, len(grouped["false"]))
-
-}
-
-func TestReplace{4}(t *testing.T) {
-
- v := &Value{data: []{1}{ {1}({2}), {1}({2}), {1}({2}), {1}({2}), {1}({2}), {1}({2}) }}
-
- rawArr := v.Must{4}Slice()
-
- replaced := v.Replace{4}(func(index int, val {1}) {1} {
- if index < len(rawArr)-1 {
- return rawArr[index+1]
- }
- return rawArr[0]
- })
-
- replacedArr := replaced.Must{4}Slice()
- if assert.Equal(t, 6, len(replacedArr)) {
- assert.Equal(t, replacedArr[0], rawArr[1])
- assert.Equal(t, replacedArr[1], rawArr[2])
- assert.Equal(t, replacedArr[2], rawArr[3])
- assert.Equal(t, replacedArr[3], rawArr[4])
- assert.Equal(t, replacedArr[4], rawArr[5])
- assert.Equal(t, replacedArr[5], rawArr[0])
- }
-
-}
-
-func TestCollect{4}(t *testing.T) {
-
- v := &Value{data: []{1}{ {1}({2}), {1}({2}), {1}({2}), {1}({2}), {1}({2}), {1}({2}) }}
-
- collected := v.Collect{4}(func(index int, val {1}) interface{} {
- return index
- })
-
- collectedArr := collected.MustInterSlice()
- if assert.Equal(t, 6, len(collectedArr)) {
- assert.Equal(t, collectedArr[0], 0)
- assert.Equal(t, collectedArr[1], 1)
- assert.Equal(t, collectedArr[2], 2)
- assert.Equal(t, collectedArr[3], 3)
- assert.Equal(t, collectedArr[4], 4)
- assert.Equal(t, collectedArr[5], 5)
- }
-
-}
diff --git a/Godeps/_workspace/src/github.com/stretchr/objx/codegen/types_list.txt b/Godeps/_workspace/src/github.com/stretchr/objx/codegen/types_list.txt
deleted file mode 100644
index 069d43d8..00000000
--- a/Godeps/_workspace/src/github.com/stretchr/objx/codegen/types_list.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Interface,interface{},"something",nil,Inter
-Map,map[string]interface{},map[string]interface{}{"name":"Tyler"},nil,MSI
-ObjxMap,(Map),New(1),New(nil),ObjxMap
-Bool,bool,true,false,Bool
-String,string,"hello","",Str
-Int,int,1,0,Int
-Int8,int8,1,0,Int8
-Int16,int16,1,0,Int16
-Int32,int32,1,0,Int32
-Int64,int64,1,0,Int64
-Uint,uint,1,0,Uint
-Uint8,uint8,1,0,Uint8
-Uint16,uint16,1,0,Uint16
-Uint32,uint32,1,0,Uint32
-Uint64,uint64,1,0,Uint64
-Uintptr,uintptr,1,0,Uintptr
-Float32,float32,1,0,Float32
-Float64,float64,1,0,Float64
-Complex64,complex64,1,0,Complex64
-Complex128,complex128,1,0,Complex128
diff --git a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/tinylib/msgp/LICENSE b/Godeps/_workspace/src/github.com/stretchr/testify/LICENCE.txt
similarity index 89%
rename from Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/tinylib/msgp/LICENSE
rename to Godeps/_workspace/src/github.com/stretchr/testify/LICENCE.txt
index 14d60424..a009ba46 100644
--- a/Godeps/_workspace/src/github.com/docker/docker/vendor/src/github.com/tinylib/msgp/LICENSE
+++ b/Godeps/_workspace/src/github.com/stretchr/testify/LICENCE.txt
@@ -1,5 +1,6 @@
-Copyright (c) 2014 Philip Hofer
-Portions Copyright (c) 2009 The Go Authors (license at http://golang.org) where indicated
+Copyright (c) 2012 - 2013 Mat Ryer and Tyler Bunnell
+
+Please consider promoting this project if you find it useful.
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:
diff --git a/Godeps/_workspace/src/github.com/syndtr/gocapability/capability/enumgen/gen.go b/Godeps/_workspace/src/github.com/syndtr/gocapability/capability/enumgen/gen.go
deleted file mode 100644
index 4c733809..00000000
--- a/Godeps/_workspace/src/github.com/syndtr/gocapability/capability/enumgen/gen.go
+++ /dev/null
@@ -1,92 +0,0 @@
-package main
-
-import (
- "bytes"
- "fmt"
- "go/ast"
- "go/format"
- "go/parser"
- "go/token"
- "io/ioutil"
- "log"
- "os"
- "strings"
-)
-
-const fileName = "enum.go"
-const genName = "enum_gen.go"
-
-type generator struct {
- buf bytes.Buffer
- caps []string
-}
-
-func (g *generator) writeHeader() {
- g.buf.WriteString("// generated file; DO NOT EDIT - use go generate in directory with source\n")
- g.buf.WriteString("\n")
- g.buf.WriteString("package capability")
-}
-
-func (g *generator) writeStringFunc() {
- g.buf.WriteString("\n")
- g.buf.WriteString("func (c Cap) String() string {\n")
- g.buf.WriteString("switch c {\n")
- for _, cap := range g.caps {
- fmt.Fprintf(&g.buf, "case %s:\n", cap)
- fmt.Fprintf(&g.buf, "return \"%s\"\n", strings.ToLower(cap[4:]))
- }
- g.buf.WriteString("}\n")
- g.buf.WriteString("return \"unknown\"\n")
- g.buf.WriteString("}\n")
-}
-
-func (g *generator) writeListFunc() {
- g.buf.WriteString("\n")
- g.buf.WriteString("// List returns list of all supported capabilities\n")
- g.buf.WriteString("func List() []Cap {\n")
- g.buf.WriteString("return []Cap{\n")
- for _, cap := range g.caps {
- fmt.Fprintf(&g.buf, "%s,\n", cap)
- }
- g.buf.WriteString("}\n")
- g.buf.WriteString("}\n")
-}
-
-func main() {
- fs := token.NewFileSet()
- parsedFile, err := parser.ParseFile(fs, fileName, nil, 0)
- if err != nil {
- log.Fatal(err)
- }
- var caps []string
- for _, decl := range parsedFile.Decls {
- decl, ok := decl.(*ast.GenDecl)
- if !ok || decl.Tok != token.CONST {
- continue
- }
- for _, spec := range decl.Specs {
- vspec := spec.(*ast.ValueSpec)
- name := vspec.Names[0].Name
- if strings.HasPrefix(name, "CAP_") {
- caps = append(caps, name)
- }
- }
- }
- g := &generator{caps: caps}
- g.writeHeader()
- g.writeStringFunc()
- g.writeListFunc()
- src, err := format.Source(g.buf.Bytes())
- if err != nil {
- fmt.Println("generated invalid Go code")
- fmt.Println(g.buf.String())
- log.Fatal(err)
- }
- fi, err := os.Stat(fileName)
- if err != nil {
- log.Fatal(err)
- }
- if err := ioutil.WriteFile(genName, src, fi.Mode().Perm()); err != nil {
- log.Fatal(err)
- }
-}
diff --git a/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq.go b/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq.go
deleted file mode 100644
index 48610e36..00000000
--- a/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq.go
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build go1.5
-
-package ctxhttp
-
-import "net/http"
-
-func canceler(client *http.Client, req *http.Request) func() {
- ch := make(chan struct{})
- req.Cancel = ch
-
- return func() {
- close(ch)
- }
-}
diff --git a/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq_go14.go b/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq_go14.go
deleted file mode 100644
index 56bcbadb..00000000
--- a/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq_go14.go
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build !go1.5
-
-package ctxhttp
-
-import "net/http"
-
-type requestCanceler interface {
- CancelRequest(*http.Request)
-}
-
-func canceler(client *http.Client, req *http.Request) func() {
- rc, ok := client.Transport.(requestCanceler)
- if !ok {
- return func() {}
- }
- return func() {
- rc.CancelRequest(req)
- }
-}
diff --git a/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/ctxhttp.go b/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/ctxhttp.go
deleted file mode 100644
index 9f348881..00000000
--- a/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/ctxhttp.go
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package ctxhttp provides helper functions for performing context-aware HTTP requests.
-package ctxhttp
-
-import (
- "io"
- "net/http"
- "net/url"
- "strings"
-
- "golang.org/x/net/context"
-)
-
-// Do sends an HTTP request with the provided http.Client and returns an HTTP response.
-// If the client is nil, http.DefaultClient is used.
-// If the context is canceled or times out, ctx.Err() will be returned.
-func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) {
- if client == nil {
- client = http.DefaultClient
- }
-
- // Request cancelation changed in Go 1.5, see cancelreq.go and cancelreq_go14.go.
- cancel := canceler(client, req)
-
- type responseAndError struct {
- resp *http.Response
- err error
- }
- result := make(chan responseAndError, 1)
-
- go func() {
- resp, err := client.Do(req)
- result <- responseAndError{resp, err}
- }()
-
- select {
- case <-ctx.Done():
- cancel()
- return nil, ctx.Err()
- case r := <-result:
- return r.resp, r.err
- }
-}
-
-// Get issues a GET request via the Do function.
-func Get(ctx context.Context, client *http.Client, url string) (*http.Response, error) {
- req, err := http.NewRequest("GET", url, nil)
- if err != nil {
- return nil, err
- }
- return Do(ctx, client, req)
-}
-
-// Head issues a HEAD request via the Do function.
-func Head(ctx context.Context, client *http.Client, url string) (*http.Response, error) {
- req, err := http.NewRequest("HEAD", url, nil)
- if err != nil {
- return nil, err
- }
- return Do(ctx, client, req)
-}
-
-// Post issues a POST request via the Do function.
-func Post(ctx context.Context, client *http.Client, url string, bodyType string, body io.Reader) (*http.Response, error) {
- req, err := http.NewRequest("POST", url, body)
- if err != nil {
- return nil, err
- }
- req.Header.Set("Content-Type", bodyType)
- return Do(ctx, client, req)
-}
-
-// PostForm issues a POST request via the Do function.
-func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) {
- return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode()))
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/facebook/facebook.go b/Godeps/_workspace/src/golang.org/x/oauth2/facebook/facebook.go
deleted file mode 100644
index 9c816ff8..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/facebook/facebook.go
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2015 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package facebook provides constants for using OAuth2 to access Facebook.
-package facebook
-
-import (
- "golang.org/x/oauth2"
-)
-
-// Endpoint is Facebook's OAuth 2.0 endpoint.
-var Endpoint = oauth2.Endpoint{
- AuthURL: "https://www.facebook.com/dialog/oauth",
- TokenURL: "https://graph.facebook.com/oauth/access_token",
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/github/github.go b/Godeps/_workspace/src/golang.org/x/oauth2/github/github.go
deleted file mode 100644
index 82ca623d..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/github/github.go
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2014 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package github provides constants for using OAuth2 to access Github.
-package github
-
-import (
- "golang.org/x/oauth2"
-)
-
-// Endpoint is Github's OAuth 2.0 endpoint.
-var Endpoint = oauth2.Endpoint{
- AuthURL: "https://github.com/login/oauth/authorize",
- TokenURL: "https://github.com/login/oauth/access_token",
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/google/appengine.go b/Godeps/_workspace/src/golang.org/x/oauth2/google/appengine.go
deleted file mode 100644
index 65dc3473..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/google/appengine.go
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2014 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package google
-
-import (
- "sort"
- "strings"
- "sync"
- "time"
-
- "golang.org/x/net/context"
- "golang.org/x/oauth2"
-)
-
-// Set at init time by appengine_hook.go. If nil, we're not on App Engine.
-var appengineTokenFunc func(c context.Context, scopes ...string) (token string, expiry time.Time, err error)
-
-// AppEngineTokenSource returns a token source that fetches tokens
-// issued to the current App Engine application's service account.
-// If you are implementing a 3-legged OAuth 2.0 flow on App Engine
-// that involves user accounts, see oauth2.Config instead.
-//
-// The provided context must have come from appengine.NewContext.
-func AppEngineTokenSource(ctx context.Context, scope ...string) oauth2.TokenSource {
- if appengineTokenFunc == nil {
- panic("google: AppEngineTokenSource can only be used on App Engine.")
- }
- scopes := append([]string{}, scope...)
- sort.Strings(scopes)
- return &appEngineTokenSource{
- ctx: ctx,
- scopes: scopes,
- key: strings.Join(scopes, " "),
- }
-}
-
-// aeTokens helps the fetched tokens to be reused until their expiration.
-var (
- aeTokensMu sync.Mutex
- aeTokens = make(map[string]*tokenLock) // key is space-separated scopes
-)
-
-type tokenLock struct {
- mu sync.Mutex // guards t; held while fetching or updating t
- t *oauth2.Token
-}
-
-type appEngineTokenSource struct {
- ctx context.Context
- scopes []string
- key string // to aeTokens map; space-separated scopes
-}
-
-func (ts *appEngineTokenSource) Token() (*oauth2.Token, error) {
- if appengineTokenFunc == nil {
- panic("google: AppEngineTokenSource can only be used on App Engine.")
- }
-
- aeTokensMu.Lock()
- tok, ok := aeTokens[ts.key]
- if !ok {
- tok = &tokenLock{}
- aeTokens[ts.key] = tok
- }
- aeTokensMu.Unlock()
-
- tok.mu.Lock()
- defer tok.mu.Unlock()
- if tok.t.Valid() {
- return tok.t, nil
- }
- access, exp, err := appengineTokenFunc(ts.ctx, ts.scopes...)
- if err != nil {
- return nil, err
- }
- tok.t = &oauth2.Token{
- AccessToken: access,
- Expiry: exp,
- }
- return tok.t, nil
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/google/appengine_hook.go b/Godeps/_workspace/src/golang.org/x/oauth2/google/appengine_hook.go
deleted file mode 100644
index 2f9b1543..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/google/appengine_hook.go
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2015 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build appengine appenginevm
-
-package google
-
-import "google.golang.org/appengine"
-
-func init() {
- appengineTokenFunc = appengine.AccessToken
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/google/default.go b/Godeps/_workspace/src/golang.org/x/oauth2/google/default.go
deleted file mode 100644
index 817bfb72..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/google/default.go
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright 2015 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package google
-
-import (
- "encoding/json"
- "errors"
- "fmt"
- "io/ioutil"
- "net/http"
- "os"
- "path/filepath"
- "runtime"
-
- "golang.org/x/net/context"
- "golang.org/x/oauth2"
- "golang.org/x/oauth2/jwt"
- "google.golang.org/cloud/compute/metadata"
-)
-
-// DefaultClient returns an HTTP Client that uses the
-// DefaultTokenSource to obtain authentication credentials.
-//
-// This client should be used when developing services
-// that run on Google App Engine or Google Compute Engine
-// and use "Application Default Credentials."
-//
-// For more details, see:
-// https://developers.google.com/accounts/application-default-credentials
-//
-func DefaultClient(ctx context.Context, scope ...string) (*http.Client, error) {
- ts, err := DefaultTokenSource(ctx, scope...)
- if err != nil {
- return nil, err
- }
- return oauth2.NewClient(ctx, ts), nil
-}
-
-// DefaultTokenSource is a token source that uses
-// "Application Default Credentials".
-//
-// It looks for credentials in the following places,
-// preferring the first location found:
-//
-// 1. A JSON file whose path is specified by the
-// GOOGLE_APPLICATION_CREDENTIALS environment variable.
-// 2. A JSON file in a location known to the gcloud command-line tool.
-// On Windows, this is %APPDATA%/gcloud/application_default_credentials.json.
-// On other systems, $HOME/.config/gcloud/application_default_credentials.json.
-// 3. On Google App Engine it uses the appengine.AccessToken function.
-// 4. On Google Compute Engine, it fetches credentials from the metadata server.
-// (In this final case any provided scopes are ignored.)
-//
-// For more details, see:
-// https://developers.google.com/accounts/application-default-credentials
-//
-func DefaultTokenSource(ctx context.Context, scope ...string) (oauth2.TokenSource, error) {
- // First, try the environment variable.
- const envVar = "GOOGLE_APPLICATION_CREDENTIALS"
- if filename := os.Getenv(envVar); filename != "" {
- ts, err := tokenSourceFromFile(ctx, filename, scope)
- if err != nil {
- return nil, fmt.Errorf("google: error getting credentials using %v environment variable: %v", envVar, err)
- }
- return ts, nil
- }
-
- // Second, try a well-known file.
- filename := wellKnownFile()
- _, err := os.Stat(filename)
- if err == nil {
- ts, err2 := tokenSourceFromFile(ctx, filename, scope)
- if err2 == nil {
- return ts, nil
- }
- err = err2
- } else if os.IsNotExist(err) {
- err = nil // ignore this error
- }
- if err != nil {
- return nil, fmt.Errorf("google: error getting credentials using well-known file (%v): %v", filename, err)
- }
-
- // Third, if we're on Google App Engine use those credentials.
- if appengineTokenFunc != nil {
- return AppEngineTokenSource(ctx, scope...), nil
- }
-
- // Fourth, if we're on Google Compute Engine use the metadata server.
- if metadata.OnGCE() {
- return ComputeTokenSource(""), nil
- }
-
- // None are found; return helpful error.
- const url = "https://developers.google.com/accounts/application-default-credentials"
- return nil, fmt.Errorf("google: could not find default credentials. See %v for more information.", url)
-}
-
-func wellKnownFile() string {
- const f = "application_default_credentials.json"
- if runtime.GOOS == "windows" {
- return filepath.Join(os.Getenv("APPDATA"), "gcloud", f)
- }
- return filepath.Join(guessUnixHomeDir(), ".config", "gcloud", f)
-}
-
-func tokenSourceFromFile(ctx context.Context, filename string, scopes []string) (oauth2.TokenSource, error) {
- b, err := ioutil.ReadFile(filename)
- if err != nil {
- return nil, err
- }
- var d struct {
- // Common fields
- Type string
- ClientID string `json:"client_id"`
-
- // User Credential fields
- ClientSecret string `json:"client_secret"`
- RefreshToken string `json:"refresh_token"`
-
- // Service Account fields
- ClientEmail string `json:"client_email"`
- PrivateKeyID string `json:"private_key_id"`
- PrivateKey string `json:"private_key"`
- }
- if err := json.Unmarshal(b, &d); err != nil {
- return nil, err
- }
- switch d.Type {
- case "authorized_user":
- cfg := &oauth2.Config{
- ClientID: d.ClientID,
- ClientSecret: d.ClientSecret,
- Scopes: append([]string{}, scopes...), // copy
- Endpoint: Endpoint,
- }
- tok := &oauth2.Token{RefreshToken: d.RefreshToken}
- return cfg.TokenSource(ctx, tok), nil
- case "service_account":
- cfg := &jwt.Config{
- Email: d.ClientEmail,
- PrivateKey: []byte(d.PrivateKey),
- Scopes: append([]string{}, scopes...), // copy
- TokenURL: JWTTokenURL,
- }
- return cfg.TokenSource(ctx), nil
- case "":
- return nil, errors.New("missing 'type' field in credentials")
- default:
- return nil, fmt.Errorf("unknown credential type: %q", d.Type)
- }
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/google/google.go b/Godeps/_workspace/src/golang.org/x/oauth2/google/google.go
deleted file mode 100644
index a562185f..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/google/google.go
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright 2014 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package google provides support for making OAuth2 authorized and
-// authenticated HTTP requests to Google APIs.
-// It supports the Web server flow, client-side credentials, service accounts,
-// Google Compute Engine service accounts, and Google App Engine service
-// accounts.
-//
-// For more information, please read
-// https://developers.google.com/accounts/docs/OAuth2
-// and
-// https://developers.google.com/accounts/application-default-credentials.
-package google
-
-import (
- "encoding/json"
- "errors"
- "fmt"
- "strings"
- "time"
-
- "golang.org/x/oauth2"
- "golang.org/x/oauth2/jwt"
- "google.golang.org/cloud/compute/metadata"
-)
-
-// Endpoint is Google's OAuth 2.0 endpoint.
-var Endpoint = oauth2.Endpoint{
- AuthURL: "https://accounts.google.com/o/oauth2/auth",
- TokenURL: "https://accounts.google.com/o/oauth2/token",
-}
-
-// JWTTokenURL is Google's OAuth 2.0 token URL to use with the JWT flow.
-const JWTTokenURL = "https://accounts.google.com/o/oauth2/token"
-
-// ConfigFromJSON uses a Google Developers Console client_credentials.json
-// file to construct a config.
-// client_credentials.json can be downloadable from https://console.developers.google.com,
-// under "APIs & Auth" > "Credentials". Download the Web application credentials in the
-// JSON format and provide the contents of the file as jsonKey.
-func ConfigFromJSON(jsonKey []byte, scope ...string) (*oauth2.Config, error) {
- type cred struct {
- ClientID string `json:"client_id"`
- ClientSecret string `json:"client_secret"`
- RedirectURIs []string `json:"redirect_uris"`
- AuthURI string `json:"auth_uri"`
- TokenURI string `json:"token_uri"`
- }
- var j struct {
- Web *cred `json:"web"`
- Installed *cred `json:"installed"`
- }
- if err := json.Unmarshal(jsonKey, &j); err != nil {
- return nil, err
- }
- var c *cred
- switch {
- case j.Web != nil:
- c = j.Web
- case j.Installed != nil:
- c = j.Installed
- default:
- return nil, fmt.Errorf("oauth2/google: no credentials found")
- }
- if len(c.RedirectURIs) < 1 {
- return nil, errors.New("oauth2/google: missing redirect URL in the client_credentials.json")
- }
- return &oauth2.Config{
- ClientID: c.ClientID,
- ClientSecret: c.ClientSecret,
- RedirectURL: c.RedirectURIs[0],
- Scopes: scope,
- Endpoint: oauth2.Endpoint{
- AuthURL: c.AuthURI,
- TokenURL: c.TokenURI,
- },
- }, nil
-}
-
-// JWTConfigFromJSON uses a Google Developers service account JSON key file to read
-// the credentials that authorize and authenticate the requests.
-// Create a service account on "Credentials" page under "APIs & Auth" for your
-// project at https://console.developers.google.com to download a JSON key file.
-func JWTConfigFromJSON(jsonKey []byte, scope ...string) (*jwt.Config, error) {
- var key struct {
- Email string `json:"client_email"`
- PrivateKey string `json:"private_key"`
- }
- if err := json.Unmarshal(jsonKey, &key); err != nil {
- return nil, err
- }
- return &jwt.Config{
- Email: key.Email,
- PrivateKey: []byte(key.PrivateKey),
- Scopes: scope,
- TokenURL: JWTTokenURL,
- }, nil
-}
-
-// ComputeTokenSource returns a token source that fetches access tokens
-// from Google Compute Engine (GCE)'s metadata server. It's only valid to use
-// this token source if your program is running on a GCE instance.
-// If no account is specified, "default" is used.
-// Further information about retrieving access tokens from the GCE metadata
-// server can be found at https://cloud.google.com/compute/docs/authentication.
-func ComputeTokenSource(account string) oauth2.TokenSource {
- return oauth2.ReuseTokenSource(nil, computeSource{account: account})
-}
-
-type computeSource struct {
- account string
-}
-
-func (cs computeSource) Token() (*oauth2.Token, error) {
- if !metadata.OnGCE() {
- return nil, errors.New("oauth2/google: can't get a token from the metadata service; not running on GCE")
- }
- acct := cs.account
- if acct == "" {
- acct = "default"
- }
- tokenJSON, err := metadata.Get("instance/service-accounts/" + acct + "/token")
- if err != nil {
- return nil, err
- }
- var res struct {
- AccessToken string `json:"access_token"`
- ExpiresInSec int `json:"expires_in"`
- TokenType string `json:"token_type"`
- }
- err = json.NewDecoder(strings.NewReader(tokenJSON)).Decode(&res)
- if err != nil {
- return nil, fmt.Errorf("oauth2/google: invalid token JSON from metadata: %v", err)
- }
- if res.ExpiresInSec == 0 || res.AccessToken == "" {
- return nil, fmt.Errorf("oauth2/google: incomplete token received from metadata")
- }
- return &oauth2.Token{
- AccessToken: res.AccessToken,
- TokenType: res.TokenType,
- Expiry: time.Now().Add(time.Duration(res.ExpiresInSec) * time.Second),
- }, nil
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/google/sdk.go b/Godeps/_workspace/src/golang.org/x/oauth2/google/sdk.go
deleted file mode 100644
index 01ba0ecb..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/google/sdk.go
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright 2015 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package google
-
-import (
- "encoding/json"
- "errors"
- "fmt"
- "net/http"
- "os"
- "os/user"
- "path/filepath"
- "runtime"
- "strings"
- "time"
-
- "golang.org/x/net/context"
- "golang.org/x/oauth2"
- "golang.org/x/oauth2/internal"
-)
-
-type sdkCredentials struct {
- Data []struct {
- Credential struct {
- ClientID string `json:"client_id"`
- ClientSecret string `json:"client_secret"`
- AccessToken string `json:"access_token"`
- RefreshToken string `json:"refresh_token"`
- TokenExpiry *time.Time `json:"token_expiry"`
- } `json:"credential"`
- Key struct {
- Account string `json:"account"`
- Scope string `json:"scope"`
- } `json:"key"`
- }
-}
-
-// An SDKConfig provides access to tokens from an account already
-// authorized via the Google Cloud SDK.
-type SDKConfig struct {
- conf oauth2.Config
- initialToken *oauth2.Token
-}
-
-// NewSDKConfig creates an SDKConfig for the given Google Cloud SDK
-// account. If account is empty, the account currently active in
-// Google Cloud SDK properties is used.
-// Google Cloud SDK credentials must be created by running `gcloud auth`
-// before using this function.
-// The Google Cloud SDK is available at https://cloud.google.com/sdk/.
-func NewSDKConfig(account string) (*SDKConfig, error) {
- configPath, err := sdkConfigPath()
- if err != nil {
- return nil, fmt.Errorf("oauth2/google: error getting SDK config path: %v", err)
- }
- credentialsPath := filepath.Join(configPath, "credentials")
- f, err := os.Open(credentialsPath)
- if err != nil {
- return nil, fmt.Errorf("oauth2/google: failed to load SDK credentials: %v", err)
- }
- defer f.Close()
-
- var c sdkCredentials
- if err := json.NewDecoder(f).Decode(&c); err != nil {
- return nil, fmt.Errorf("oauth2/google: failed to decode SDK credentials from %q: %v", credentialsPath, err)
- }
- if len(c.Data) == 0 {
- return nil, fmt.Errorf("oauth2/google: no credentials found in %q, run `gcloud auth login` to create one", credentialsPath)
- }
- if account == "" {
- propertiesPath := filepath.Join(configPath, "properties")
- f, err := os.Open(propertiesPath)
- if err != nil {
- return nil, fmt.Errorf("oauth2/google: failed to load SDK properties: %v", err)
- }
- defer f.Close()
- ini, err := internal.ParseINI(f)
- if err != nil {
- return nil, fmt.Errorf("oauth2/google: failed to parse SDK properties %q: %v", propertiesPath, err)
- }
- core, ok := ini["core"]
- if !ok {
- return nil, fmt.Errorf("oauth2/google: failed to find [core] section in %v", ini)
- }
- active, ok := core["account"]
- if !ok {
- return nil, fmt.Errorf("oauth2/google: failed to find %q attribute in %v", "account", core)
- }
- account = active
- }
-
- for _, d := range c.Data {
- if account == "" || d.Key.Account == account {
- if d.Credential.AccessToken == "" && d.Credential.RefreshToken == "" {
- return nil, fmt.Errorf("oauth2/google: no token available for account %q", account)
- }
- var expiry time.Time
- if d.Credential.TokenExpiry != nil {
- expiry = *d.Credential.TokenExpiry
- }
- return &SDKConfig{
- conf: oauth2.Config{
- ClientID: d.Credential.ClientID,
- ClientSecret: d.Credential.ClientSecret,
- Scopes: strings.Split(d.Key.Scope, " "),
- Endpoint: Endpoint,
- RedirectURL: "oob",
- },
- initialToken: &oauth2.Token{
- AccessToken: d.Credential.AccessToken,
- RefreshToken: d.Credential.RefreshToken,
- Expiry: expiry,
- },
- }, nil
- }
- }
- return nil, fmt.Errorf("oauth2/google: no such credentials for account %q", account)
-}
-
-// Client returns an HTTP client using Google Cloud SDK credentials to
-// authorize requests. The token will auto-refresh as necessary. The
-// underlying http.RoundTripper will be obtained using the provided
-// context. The returned client and its Transport should not be
-// modified.
-func (c *SDKConfig) Client(ctx context.Context) *http.Client {
- return &http.Client{
- Transport: &oauth2.Transport{
- Source: c.TokenSource(ctx),
- },
- }
-}
-
-// TokenSource returns an oauth2.TokenSource that retrieve tokens from
-// Google Cloud SDK credentials using the provided context.
-// It will returns the current access token stored in the credentials,
-// and refresh it when it expires, but it won't update the credentials
-// with the new access token.
-func (c *SDKConfig) TokenSource(ctx context.Context) oauth2.TokenSource {
- return c.conf.TokenSource(ctx, c.initialToken)
-}
-
-// Scopes are the OAuth 2.0 scopes the current account is authorized for.
-func (c *SDKConfig) Scopes() []string {
- return c.conf.Scopes
-}
-
-// sdkConfigPath tries to guess where the gcloud config is located.
-// It can be overridden during tests.
-var sdkConfigPath = func() (string, error) {
- if runtime.GOOS == "windows" {
- return filepath.Join(os.Getenv("APPDATA"), "gcloud"), nil
- }
- homeDir := guessUnixHomeDir()
- if homeDir == "" {
- return "", errors.New("unable to get current user home directory: os/user lookup failed; $HOME is empty")
- }
- return filepath.Join(homeDir, ".config", "gcloud"), nil
-}
-
-func guessUnixHomeDir() string {
- usr, err := user.Current()
- if err == nil {
- return usr.HomeDir
- }
- return os.Getenv("HOME")
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/linkedin/linkedin.go b/Godeps/_workspace/src/golang.org/x/oauth2/linkedin/linkedin.go
deleted file mode 100644
index d93fded6..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/linkedin/linkedin.go
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2015 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package linkedin provides constants for using OAuth2 to access LinkedIn.
-package linkedin
-
-import (
- "golang.org/x/oauth2"
-)
-
-// Endpoint is LinkedIn's OAuth 2.0 endpoint.
-var Endpoint = oauth2.Endpoint{
- AuthURL: "https://www.linkedin.com/uas/oauth2/authorization",
- TokenURL: "https://www.linkedin.com/uas/oauth2/accessToken",
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go b/Godeps/_workspace/src/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go
deleted file mode 100644
index f0b66f97..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2015 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package odnoklassniki provides constants for using OAuth2 to access Odnoklassniki.
-package odnoklassniki
-
-import (
- "golang.org/x/oauth2"
-)
-
-// Endpoint is Odnoklassniki's OAuth 2.0 endpoint.
-var Endpoint = oauth2.Endpoint{
- AuthURL: "https://www.odnoklassniki.ru/oauth/authorize",
- TokenURL: "https://api.odnoklassniki.ru/oauth/token.do",
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/paypal/paypal.go b/Godeps/_workspace/src/golang.org/x/oauth2/paypal/paypal.go
deleted file mode 100644
index a99366b6..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/paypal/paypal.go
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2015 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package paypal provides constants for using OAuth2 to access PayPal.
-package paypal
-
-import (
- "golang.org/x/oauth2"
-)
-
-// Endpoint is PayPal's OAuth 2.0 endpoint in live (production) environment.
-var Endpoint = oauth2.Endpoint{
- AuthURL: "https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize",
- TokenURL: "https://api.paypal.com/v1/identity/openidconnect/tokenservice",
-}
-
-// SandboxEndpoint is PayPal's OAuth 2.0 endpoint in sandbox (testing) environment.
-var SandboxEndpoint = oauth2.Endpoint{
- AuthURL: "https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize",
- TokenURL: "https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice",
-}
diff --git a/Godeps/_workspace/src/golang.org/x/oauth2/vk/vk.go b/Godeps/_workspace/src/golang.org/x/oauth2/vk/vk.go
deleted file mode 100644
index 00e92935..00000000
--- a/Godeps/_workspace/src/golang.org/x/oauth2/vk/vk.go
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2015 The oauth2 Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package vk provides constants for using OAuth2 to access VK.com.
-package vk
-
-import (
- "golang.org/x/oauth2"
-)
-
-// Endpoint is VK's OAuth 2.0 endpoint.
-var Endpoint = oauth2.Endpoint{
- AuthURL: "https://oauth.vk.com/authorize",
- TokenURL: "https://oauth.vk.com/access_token",
-}
diff --git a/Godeps/_workspace/src/google.golang.org/api/googleapi/transport/apikey.go b/Godeps/_workspace/src/google.golang.org/api/googleapi/transport/apikey.go
deleted file mode 100644
index eca1ea25..00000000
--- a/Godeps/_workspace/src/google.golang.org/api/googleapi/transport/apikey.go
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2012 Google Inc. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package transport contains HTTP transports used to make
-// authenticated API requests.
-package transport
-
-import (
- "errors"
- "net/http"
-)
-
-// APIKey is an HTTP Transport which wraps an underlying transport and
-// appends an API Key "key" parameter to the URL of outgoing requests.
-type APIKey struct {
- // Key is the API Key to set on requests.
- Key string
-
- // Transport is the underlying HTTP transport.
- // If nil, http.DefaultTransport is used.
- Transport http.RoundTripper
-}
-
-func (t *APIKey) RoundTrip(req *http.Request) (*http.Response, error) {
- rt := t.Transport
- if rt == nil {
- rt = http.DefaultTransport
- if rt == nil {
- return nil, errors.New("googleapi/transport: no Transport specified or available")
- }
- }
- newReq := *req
- args := newReq.URL.Query()
- args.Set("key", t.Key)
- newReq.URL.RawQuery = args.Encode()
- return rt.RoundTrip(&newReq)
-}
diff --git a/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/cluster-test/Makefile b/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/cluster-test/Makefile
deleted file mode 100644
index cc6261db..00000000
--- a/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/cluster-test/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-.PHONY: build run-omega-cluster-test
-
-default: build
-
-build:
- go build cluster-test.go
-
-run-omega-cluster-test:
- go run -race cluster-test.go \
- -nodes=http://192.168.2.65:8200,http://192.168.2.64:8200 \
- -n=5 \
- -retries=5 \
- -sniff=true -sniffer=10s \
- -healthcheck=true -healthchecker=5s \
- -errorlog=errors.log
-
diff --git a/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/cluster-test/README.md b/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/cluster-test/README.md
deleted file mode 100644
index f10748cc..00000000
--- a/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/cluster-test/README.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# Cluster Test
-
-This directory contains a program you can use to test a cluster.
-
-Here's how:
-
-First, install a cluster of Elasticsearch nodes. You can install them on
-different computers, or start several nodes on a single machine.
-
-Build cluster-test by `go build cluster-test.go` (or build with `make`).
-
-Run `./cluster-test -h` to get a list of flags:
-
-```sh
-$ ./cluster-test -h
-Usage of ./cluster-test:
- -errorlog="": error log file
- -healthcheck=true: enable or disable healthchecks
- -healthchecker=1m0s: healthcheck interval
- -index="twitter": name of ES index to use
- -infolog="": info log file
- -n=5: number of goroutines that run searches
- -nodes="": comma-separated list of ES URLs (e.g. 'http://192.168.2.10:9200,http://192.168.2.11:9200')
- -retries=0: number of retries
- -sniff=true: enable or disable sniffer
- -sniffer=15m0s: sniffer interval
- -tracelog="": trace log file
-```
-
-Example:
-
-```sh
-$ ./cluster-test -nodes=http://127.0.0.1:9200,http://127.0.0.1:9201,http://127.0.0.1:9202 -n=5 -index=twitter -retries=5 -sniff=true -sniffer=10s -healthcheck=true -healthchecker=5s -errorlog=error.log
-```
-
-The above example will create an index and start some search jobs on the
-cluster defined by http://127.0.0.1:9200, http://127.0.0.1:9201,
-and http://127.0.0.1:9202.
-
-* It will create an index called `twitter` on the cluster (`-index=twitter`)
-* It will run 5 search jobs in parallel (`-n=5`).
-* It will retry failed requests 5 times (`-retries=5`).
-* It will sniff the cluster periodically (`-sniff=true`).
-* It will sniff the cluster every 10 seconds (`-sniffer=10s`).
-* It will perform health checks periodically (`-healthcheck=true`).
-* It will perform health checks on the nodes every 5 seconds (`-healthchecker=5s`).
-* It will write an error log file (`-errorlog=error.log`).
-
-If you want to test Elastic with nodes going up and down, you can use a
-chaos monkey script like this and run it on the nodes of your cluster:
-
-```sh
-#!/bin/bash
-while true
-do
- echo "Starting ES node"
- elasticsearch -d -Xmx4g -Xms1g -Des.config=elasticsearch.yml -p es.pid
- sleep `jot -r 1 10 300` # wait for 10-300s
- echo "Stopping ES node"
- kill -TERM `cat es.pid`
- sleep `jot -r 1 10 60` # wait for 10-60s
-done
-```
diff --git a/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/cluster-test/cluster-test.go b/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/cluster-test/cluster-test.go
deleted file mode 100644
index a9ce8bb9..00000000
--- a/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/cluster-test/cluster-test.go
+++ /dev/null
@@ -1,357 +0,0 @@
-// Copyright 2012-2015 Oliver Eilhard. All rights reserved.
-// Use of this source code is governed by a MIT-license.
-// See http://olivere.mit-license.org/license.txt for details.
-
-package main
-
-import (
- "encoding/json"
- "errors"
- "flag"
- "fmt"
- "log"
- "math/rand"
- "os"
- "runtime"
- "strings"
- "sync/atomic"
- "time"
-
- elastic "gopkg.in/olivere/elastic.v2"
-)
-
-type Tweet struct {
- User string `json:"user"`
- Message string `json:"message"`
- Retweets int `json:"retweets"`
- Image string `json:"image,omitempty"`
- Created time.Time `json:"created,omitempty"`
- Tags []string `json:"tags,omitempty"`
- Location string `json:"location,omitempty"`
- Suggest *elastic.SuggestField `json:"suggest_field,omitempty"`
-}
-
-var (
- nodes = flag.String("nodes", "", "comma-separated list of ES URLs (e.g. 'http://192.168.2.10:9200,http://192.168.2.11:9200')")
- n = flag.Int("n", 5, "number of goroutines that run searches")
- index = flag.String("index", "twitter", "name of ES index to use")
- errorlogfile = flag.String("errorlog", "", "error log file")
- infologfile = flag.String("infolog", "", "info log file")
- tracelogfile = flag.String("tracelog", "", "trace log file")
- retries = flag.Int("retries", elastic.DefaultMaxRetries, "number of retries")
- sniff = flag.Bool("sniff", elastic.DefaultSnifferEnabled, "enable or disable sniffer")
- sniffer = flag.Duration("sniffer", elastic.DefaultSnifferInterval, "sniffer interval")
- healthcheck = flag.Bool("healthcheck", elastic.DefaultHealthcheckEnabled, "enable or disable healthchecks")
- healthchecker = flag.Duration("healthchecker", elastic.DefaultHealthcheckInterval, "healthcheck interval")
-)
-
-func main() {
- flag.Parse()
-
- runtime.GOMAXPROCS(runtime.NumCPU())
-
- if *nodes == "" {
- log.Fatal("no nodes specified")
- }
- urls := strings.SplitN(*nodes, ",", -1)
-
- testcase, err := NewTestCase(*index, urls)
- if err != nil {
- log.Fatal(err)
- }
-
- testcase.SetErrorLogFile(*errorlogfile)
- testcase.SetInfoLogFile(*infologfile)
- testcase.SetTraceLogFile(*tracelogfile)
- testcase.SetMaxRetries(*retries)
- testcase.SetHealthcheck(*healthcheck)
- testcase.SetHealthcheckInterval(*healthchecker)
- testcase.SetSniff(*sniff)
- testcase.SetSnifferInterval(*sniffer)
-
- if err := testcase.Run(*n); err != nil {
- log.Fatal(err)
- }
-
- select {}
-}
-
-type RunInfo struct {
- Success bool
-}
-
-type TestCase struct {
- nodes []string
- client *elastic.Client
- runs int64
- failures int64
- runCh chan RunInfo
- index string
- errorlogfile string
- infologfile string
- tracelogfile string
- maxRetries int
- healthcheck bool
- healthcheckInterval time.Duration
- sniff bool
- snifferInterval time.Duration
-}
-
-func NewTestCase(index string, nodes []string) (*TestCase, error) {
- if index == "" {
- return nil, errors.New("no index name specified")
- }
-
- return &TestCase{
- index: index,
- nodes: nodes,
- runCh: make(chan RunInfo),
- }, nil
-}
-
-func (t *TestCase) SetIndex(name string) {
- t.index = name
-}
-
-func (t *TestCase) SetErrorLogFile(name string) {
- t.errorlogfile = name
-}
-
-func (t *TestCase) SetInfoLogFile(name string) {
- t.infologfile = name
-}
-
-func (t *TestCase) SetTraceLogFile(name string) {
- t.tracelogfile = name
-}
-
-func (t *TestCase) SetMaxRetries(n int) {
- t.maxRetries = n
-}
-
-func (t *TestCase) SetSniff(enabled bool) {
- t.sniff = enabled
-}
-
-func (t *TestCase) SetSnifferInterval(d time.Duration) {
- t.snifferInterval = d
-}
-
-func (t *TestCase) SetHealthcheck(enabled bool) {
- t.healthcheck = enabled
-}
-
-func (t *TestCase) SetHealthcheckInterval(d time.Duration) {
- t.healthcheckInterval = d
-}
-
-func (t *TestCase) Run(n int) error {
- if err := t.setup(); err != nil {
- return err
- }
-
- for i := 1; i < n; i++ {
- go t.search()
- }
-
- go t.monitor()
-
- return nil
-}
-
-func (t *TestCase) monitor() {
- print := func() {
- fmt.Printf("\033[32m%5d\033[0m; \033[31m%5d\033[0m: %s%s\r", t.runs, t.failures, t.client.String(), " ")
- }
-
- for {
- select {
- case run := <-t.runCh:
- atomic.AddInt64(&t.runs, 1)
- if !run.Success {
- atomic.AddInt64(&t.failures, 1)
- fmt.Println()
- }
- print()
- case <-time.After(5 * time.Second):
- // Print stats after some inactivity
- print()
- break
- }
- }
-}
-
-func (t *TestCase) setup() error {
- var errorlogger *log.Logger
- if t.errorlogfile != "" {
- f, err := os.OpenFile(t.errorlogfile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0664)
- if err != nil {
- return err
- }
- errorlogger = log.New(f, "", log.Ltime|log.Lmicroseconds|log.Lshortfile)
- }
-
- var infologger *log.Logger
- if t.infologfile != "" {
- f, err := os.OpenFile(t.infologfile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0664)
- if err != nil {
- return err
- }
- infologger = log.New(f, "", log.LstdFlags)
- }
-
- // Trace request and response details like this
- var tracelogger *log.Logger
- if t.tracelogfile != "" {
- f, err := os.OpenFile(t.tracelogfile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0664)
- if err != nil {
- return err
- }
- tracelogger = log.New(f, "", log.LstdFlags)
- }
-
- client, err := elastic.NewClient(
- elastic.SetURL(t.nodes...),
- elastic.SetErrorLog(errorlogger),
- elastic.SetInfoLog(infologger),
- elastic.SetTraceLog(tracelogger),
- elastic.SetMaxRetries(t.maxRetries),
- elastic.SetSniff(t.sniff),
- elastic.SetSnifferInterval(t.snifferInterval),
- elastic.SetHealthcheck(t.healthcheck),
- elastic.SetHealthcheckInterval(t.healthcheckInterval))
- if err != nil {
- // Handle error
- return err
- }
- t.client = client
-
- // Use the IndexExists service to check if a specified index exists.
- exists, err := t.client.IndexExists(t.index).Do()
- if err != nil {
- return err
- }
- if exists {
- deleteIndex, err := t.client.DeleteIndex(t.index).Do()
- if err != nil {
- return err
- }
- if !deleteIndex.Acknowledged {
- return errors.New("delete index not acknowledged")
- }
- }
-
- // Create a new index.
- createIndex, err := t.client.CreateIndex(t.index).Do()
- if err != nil {
- return err
- }
- if !createIndex.Acknowledged {
- return errors.New("create index not acknowledged")
- }
-
- // Index a tweet (using JSON serialization)
- tweet1 := Tweet{User: "olivere", Message: "Take Five", Retweets: 0}
- _, err = t.client.Index().
- Index(t.index).
- Type("tweet").
- Id("1").
- BodyJson(tweet1).
- Do()
- if err != nil {
- return err
- }
-
- // Index a second tweet (by string)
- tweet2 := `{"user" : "olivere", "message" : "It's a Raggy Waltz"}`
- _, err = t.client.Index().
- Index(t.index).
- Type("tweet").
- Id("2").
- BodyString(tweet2).
- Do()
- if err != nil {
- return err
- }
-
- // Flush to make sure the documents got written.
- _, err = t.client.Flush().Index(t.index).Do()
- if err != nil {
- return err
- }
-
- return nil
-}
-
-func (t *TestCase) search() {
- // Loop forever to check for connection issues
- for {
- // Get tweet with specified ID
- get1, err := t.client.Get().
- Index(t.index).
- Type("tweet").
- Id("1").
- Do()
- if err != nil {
- //failf("Get failed: %v", err)
- t.runCh <- RunInfo{Success: false}
- continue
- }
- if !get1.Found {
- //log.Printf("Document %s not found\n", "1")
- //fmt.Printf("Got document %s in version %d from index %s, type %s\n", get1.Id, get1.Version, get1.Index, get1.Type)
- t.runCh <- RunInfo{Success: false}
- continue
- }
-
- // Search with a term query
- termQuery := elastic.NewTermQuery("user", "olivere")
- searchResult, err := t.client.Search().
- Index(t.index). // search in index t.index
- Query(&termQuery). // specify the query
- Sort("user", true). // sort by "user" field, ascending
- From(0).Size(10). // take documents 0-9
- Pretty(true). // pretty print request and response JSON
- Do() // execute
- if err != nil {
- //failf("Search failed: %v\n", err)
- t.runCh <- RunInfo{Success: false}
- continue
- }
-
- // searchResult is of type SearchResult and returns hits, suggestions,
- // and all kinds of other information from Elasticsearch.
- //fmt.Printf("Query took %d milliseconds\n", searchResult.TookInMillis)
-
- // Number of hits
- if searchResult.Hits != nil {
- //fmt.Printf("Found a total of %d tweets\n", searchResult.Hits.TotalHits)
-
- // Iterate through results
- for _, hit := range searchResult.Hits.Hits {
- // hit.Index contains the name of the index
-
- // Deserialize hit.Source into a Tweet (could also be just a map[string]interface{}).
- var tweet Tweet
- err := json.Unmarshal(*hit.Source, &tweet)
- if err != nil {
- // Deserialization failed
- //failf("Deserialize failed: %v\n", err)
- t.runCh <- RunInfo{Success: false}
- continue
- }
-
- // Work with tweet
- //fmt.Printf("Tweet by %s: %s\n", t.User, t.Message)
- }
- } else {
- // No hits
- //fmt.Print("Found no tweets\n")
- }
-
- t.runCh <- RunInfo{Success: true}
-
- // Sleep some time
- time.Sleep(time.Duration(rand.Intn(500)) * time.Millisecond)
- }
-}