diff --git a/.travis.yml b/.travis.yml
index 181b7b8..a94b9ec 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,11 @@
language: go
go:
- - 1.5
+ - 1.11
+
+install:
+ - sudo apt-get install upx
script:
- - ./build.sh
\ No newline at end of file
+ - ./gomake
+
diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json
index 853fbc9..ca4d323 100644
--- a/Godeps/Godeps.json
+++ b/Godeps/Godeps.json
@@ -1,48 +1,65 @@
{
"ImportPath": "github.com/blablacar/ggn",
- "GoVersion": "go1.5.1",
+ "GoVersion": "go1.6",
+ "GodepVersion": "v65",
"Packages": [
- "./..."
+ "././..."
],
"Deps": [
{
- "ImportPath": "github.com/Sirupsen/logrus",
- "Comment": "v0.8.7",
- "Rev": "418b41d23a1bf978c06faea5313ba194650ac088"
+ "ImportPath": "github.com/appc/spec/aci",
+ "Comment": "v0.8.1",
+ "Rev": "b889d03467ae08bb6c13241762a64305b69bcf82"
},
{
"ImportPath": "github.com/appc/spec/discovery",
- "Comment": "v0.7.1-30-g1e5ab3d",
- "Rev": "1e5ab3d857c146e0834c5a14857728d6c04c6f85"
+ "Comment": "v0.8.1",
+ "Rev": "b889d03467ae08bb6c13241762a64305b69bcf82"
+ },
+ {
+ "ImportPath": "github.com/appc/spec/pkg/device",
+ "Comment": "v0.8.1",
+ "Rev": "b889d03467ae08bb6c13241762a64305b69bcf82"
+ },
+ {
+ "ImportPath": "github.com/appc/spec/pkg/tarheader",
+ "Comment": "v0.8.1",
+ "Rev": "b889d03467ae08bb6c13241762a64305b69bcf82"
},
{
"ImportPath": "github.com/appc/spec/schema",
- "Comment": "v0.7.1-30-g1e5ab3d",
- "Rev": "1e5ab3d857c146e0834c5a14857728d6c04c6f85"
+ "Comment": "v0.8.1",
+ "Rev": "b889d03467ae08bb6c13241762a64305b69bcf82"
},
{
- "ImportPath": "github.com/blablacar/attributes-merger/attributes",
- "Comment": "0.1-6-g431a372",
- "Rev": "431a37282b0ef85175c8c30eb79f3918c378c7d1"
+ "ImportPath": "github.com/appc/spec/schema/common",
+ "Comment": "v0.8.1",
+ "Rev": "b889d03467ae08bb6c13241762a64305b69bcf82"
},
{
- "ImportPath": "github.com/blablacar/cnt/log",
- "Comment": "45-5-g226d271",
- "Rev": "226d271434d899ba1ff5502a36783f7ffcf48dc9"
+ "ImportPath": "github.com/appc/spec/schema/types",
+ "Comment": "v0.8.1",
+ "Rev": "b889d03467ae08bb6c13241762a64305b69bcf82"
},
{
- "ImportPath": "github.com/blablacar/cnt/spec",
- "Comment": "45-5-g226d271",
- "Rev": "226d271434d899ba1ff5502a36783f7ffcf48dc9"
+ "ImportPath": "github.com/blablacar/dgr/bin-dgr/common",
+ "Comment": "71",
+ "Rev": "6108cd7767e0068eabe2ff38384dfa5e03cd6dac"
},
{
- "ImportPath": "github.com/blablacar/cnt/utils",
- "Comment": "45-5-g226d271",
- "Rev": "226d271434d899ba1ff5502a36783f7ffcf48dc9"
+ "ImportPath": "github.com/blablacar/dgr/bin-templater/template",
+ "Comment": "71",
+ "Rev": "6108cd7767e0068eabe2ff38384dfa5e03cd6dac"
+ },
+ {
+ "ImportPath": "github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec",
+ "Comment": "v2.3.0-alpha.0-7-gdcf0b45",
+ "Rev": "dcf0b454838a1b554bd276d4a341ae08f6e2f660"
},
{
- "ImportPath": "github.com/camlistore/camlistore/pkg/errorutil",
- "Rev": "58958f44ee2eaa5139097dec3e02f47df0aba180"
+ "ImportPath": "github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context",
+ "Comment": "v2.3.0-alpha.0-7-gdcf0b45",
+ "Rev": "dcf0b454838a1b554bd276d4a341ae08f6e2f660"
},
{
"ImportPath": "github.com/coreos/etcd/client",
@@ -59,6 +76,16 @@
"Comment": "v2.3.0-alpha.0-7-gdcf0b45",
"Rev": "dcf0b454838a1b554bd276d4a341ae08f6e2f660"
},
+ {
+ "ImportPath": "github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit",
+ "Comment": "v0.10.1-116-g2d02451",
+ "Rev": "2d024517a2c9f1e7492ef00f9ac26500b27556b2"
+ },
+ {
+ "ImportPath": "github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork",
+ "Comment": "v0.10.1-116-g2d02451",
+ "Rev": "2d024517a2c9f1e7492ef00f9ac26500b27556b2"
+ },
{
"ImportPath": "github.com/coreos/fleet/log",
"Comment": "v0.10.1-116-g2d02451",
@@ -79,9 +106,8 @@
"Rev": "d043ae190b3202550d026daf009359bb5d761672"
},
{
- "ImportPath": "github.com/coreos/go-systemd/unit",
- "Comment": "v4",
- "Rev": "b4a58d95188dd092ae20072bac14cece0e67c388"
+ "ImportPath": "github.com/ghodss/yaml",
+ "Rev": "c3eb24aeea63668ebdac08d2e252f20df8b6b1ae"
},
{
"ImportPath": "github.com/google/cadvisor/utils",
@@ -92,17 +118,13 @@
"ImportPath": "github.com/inconshreveable/mousetrap",
"Rev": "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75"
},
- {
- "ImportPath": "github.com/jonboulle/clockwork",
- "Rev": "fad208dd89dbc316a149043e332a192477f0e2a2"
- },
{
"ImportPath": "github.com/juju/errors",
"Rev": "1b5e39b83d1835fa480e0c2ddefb040ee82d58b3"
},
{
- "ImportPath": "github.com/kelseyhightower/memkv",
- "Rev": "32a4556de2a1aab8ea4c8600f5ea24db3fbd8908"
+ "ImportPath": "github.com/leekchan/gtf",
+ "Rev": "882e96b937c8506c67b5adf98ff1f84cd7b7b93a"
},
{
"ImportPath": "github.com/mgutz/ansi",
@@ -112,6 +134,26 @@
"ImportPath": "github.com/mitchellh/go-homedir",
"Rev": "1f6da4a72e57d4e7edd4a7295a585e0a3999a2d4"
},
+ {
+ "ImportPath": "github.com/n0rad/go-erlog",
+ "Rev": "5d115df10702be00f951040b7d67a02f002f36b2"
+ },
+ {
+ "ImportPath": "github.com/n0rad/go-erlog/data",
+ "Rev": "5d115df10702be00f951040b7d67a02f002f36b2"
+ },
+ {
+ "ImportPath": "github.com/n0rad/go-erlog/errs",
+ "Rev": "5d115df10702be00f951040b7d67a02f002f36b2"
+ },
+ {
+ "ImportPath": "github.com/n0rad/go-erlog/logs",
+ "Rev": "5d115df10702be00f951040b7d67a02f002f36b2"
+ },
+ {
+ "ImportPath": "github.com/n0rad/go-erlog/register",
+ "Rev": "5d115df10702be00f951040b7d67a02f002f36b2"
+ },
{
"ImportPath": "github.com/peterbourgon/mergemap",
"Rev": "e21c03b7a721e413718d2703181ead350d3c9d6f"
@@ -125,16 +167,20 @@
"Rev": "67cbc198fd11dab704b214c1e629a97af392c085"
},
{
- "ImportPath": "github.com/ugorji/go/codec",
- "Rev": "8bb56663530600b54f72c79871451ea5725b6763"
+ "ImportPath": "go4.org/errorutil",
+ "Rev": "03efcb870d84809319ea509714dd6d19a1498483"
},
{
"ImportPath": "golang.org/x/net/context",
- "Rev": "ea47fc708ee3e20177f3ca3716217c4ab75942cb"
+ "Rev": "0c607074acd38c5f23d1344dfe74c977464d1257"
},
{
"ImportPath": "golang.org/x/net/html",
- "Rev": "ea47fc708ee3e20177f3ca3716217c4ab75942cb"
+ "Rev": "0c607074acd38c5f23d1344dfe74c977464d1257"
+ },
+ {
+ "ImportPath": "golang.org/x/net/html/atom",
+ "Rev": "0c607074acd38c5f23d1344dfe74c977464d1257"
},
{
"ImportPath": "gopkg.in/yaml.v2",
diff --git a/Godeps/_workspace/.gitignore b/Godeps/_workspace/.gitignore
deleted file mode 100644
index f037d68..0000000
--- a/Godeps/_workspace/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/pkg
-/bin
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/.gitignore b/Godeps/_workspace/src/github.com/Sirupsen/logrus/.gitignore
deleted file mode 100644
index 66be63a..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-logrus
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/.travis.yml b/Godeps/_workspace/src/github.com/Sirupsen/logrus/.travis.yml
deleted file mode 100644
index 2d8c086..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: go
-go:
- - 1.2
- - 1.3
- - 1.4
- - tip
-install:
- - go get -t ./...
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/CHANGELOG.md b/Godeps/_workspace/src/github.com/Sirupsen/logrus/CHANGELOG.md
deleted file mode 100644
index 78f9895..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/CHANGELOG.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# 0.8.7
-
-* logrus/core: fix possible race (#216)
-* logrus/doc: small typo fixes and doc improvements
-
-
-# 0.8.6
-
-* hooks/raven: allow passing an initialized client
-
-# 0.8.5
-
-* logrus/core: revert #208
-
-# 0.8.4
-
-* formatter/text: fix data race (#218)
-
-# 0.8.3
-
-* logrus/core: fix entry log level (#208)
-* logrus/core: improve performance of text formatter by 40%
-* logrus/core: expose `LevelHooks` type
-* logrus/core: add support for DragonflyBSD and NetBSD
-* formatter/text: print structs more verbosely
-
-# 0.8.2
-
-* logrus: fix more Fatal family functions
-
-# 0.8.1
-
-* logrus: fix not exiting on `Fatalf` and `Fatalln`
-
-# 0.8.0
-
-* logrus: defaults to stderr instead of stdout
-* hooks/sentry: add special field for `*http.Request`
-* formatter/text: ignore Windows for colors
-
-# 0.7.3
-
-* formatter/\*: allow configuration of timestamp layout
-
-# 0.7.2
-
-* formatter/text: Add configuration option for time format (#158)
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/LICENSE b/Godeps/_workspace/src/github.com/Sirupsen/logrus/LICENSE
deleted file mode 100644
index f090cb4..0000000
--- a/Godeps/_workspace/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/Sirupsen/logrus/README.md b/Godeps/_workspace/src/github.com/Sirupsen/logrus/README.md
deleted file mode 100644
index 6fa6e20..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/README.md
+++ /dev/null
@@ -1,357 +0,0 @@
-# Logrus
[](https://travis-ci.org/Sirupsen/logrus) [][godoc]
-
-Logrus is a structured logger for Go (golang), completely API compatible with
-the standard library logger. [Godoc][godoc]. **Please note the Logrus API is not
-yet stable (pre 1.0). Logrus itself is completely stable and has been used in
-many large deployments. The core API is unlikely to change much but please
-version control your Logrus to make sure you aren't fetching latest `master` on
-every build.**
-
-Nicely color-coded in development (when a TTY is attached, otherwise just
-plain text):
-
-
-
-With `log.Formatter = new(logrus.JSONFormatter)`, for easy parsing by logstash
-or Splunk:
-
-```json
-{"animal":"walrus","level":"info","msg":"A group of walrus emerges from the
-ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"}
-
-{"level":"warning","msg":"The group's number increased tremendously!",
-"number":122,"omg":true,"time":"2014-03-10 19:57:38.562471297 -0400 EDT"}
-
-{"animal":"walrus","level":"info","msg":"A giant walrus appears!",
-"size":10,"time":"2014-03-10 19:57:38.562500591 -0400 EDT"}
-
-{"animal":"walrus","level":"info","msg":"Tremendously sized cow enters the ocean.",
-"size":9,"time":"2014-03-10 19:57:38.562527896 -0400 EDT"}
-
-{"level":"fatal","msg":"The ice breaks!","number":100,"omg":true,
-"time":"2014-03-10 19:57:38.562543128 -0400 EDT"}
-```
-
-With the default `log.Formatter = new(&log.TextFormatter{})` when a TTY is not
-attached, the output is compatible with the
-[logfmt](http://godoc.org/github.com/kr/logfmt) format:
-
-```text
-time="2015-03-26T01:27:38-04:00" level=debug msg="Started observing beach" animal=walrus number=8
-time="2015-03-26T01:27:38-04:00" level=info msg="A group of walrus emerges from the ocean" animal=walrus size=10
-time="2015-03-26T01:27:38-04:00" level=warning msg="The group's number increased tremendously!" number=122 omg=true
-time="2015-03-26T01:27:38-04:00" level=debug msg="Temperature changes" temperature=-4
-time="2015-03-26T01:27:38-04:00" level=panic msg="It's over 9000!" animal=orca size=9009
-time="2015-03-26T01:27:38-04:00" level=fatal msg="The ice breaks!" err=&{0x2082280c0 map[animal:orca size:9009] 2015-03-26 01:27:38.441574009 -0400 EDT panic It's over 9000!} number=100 omg=true
-exit status 1
-```
-
-#### Example
-
-The simplest way to use Logrus is simply the package-level exported logger:
-
-```go
-package main
-
-import (
- log "github.com/Sirupsen/logrus"
-)
-
-func main() {
- log.WithFields(log.Fields{
- "animal": "walrus",
- }).Info("A walrus appears")
-}
-```
-
-Note that it's completely api-compatible with the stdlib logger, so you can
-replace your `log` imports everywhere with `log "github.com/Sirupsen/logrus"`
-and you'll now have the flexibility of Logrus. You can customize it all you
-want:
-
-```go
-package main
-
-import (
- "os"
- log "github.com/Sirupsen/logrus"
- "github.com/Sirupsen/logrus/hooks/airbrake"
-)
-
-func init() {
- // Log as JSON instead of the default ASCII formatter.
- log.SetFormatter(&log.JSONFormatter{})
-
- // Use the Airbrake hook to report errors that have Error severity or above to
- // an exception tracker. You can create custom hooks, see the Hooks section.
- log.AddHook(airbrake.NewHook("https://example.com", "xyz", "development"))
-
- // Output to stderr instead of stdout, could also be a file.
- log.SetOutput(os.Stderr)
-
- // Only log the warning severity or above.
- log.SetLevel(log.WarnLevel)
-}
-
-func main() {
- log.WithFields(log.Fields{
- "animal": "walrus",
- "size": 10,
- }).Info("A group of walrus emerges from the ocean")
-
- log.WithFields(log.Fields{
- "omg": true,
- "number": 122,
- }).Warn("The group's number increased tremendously!")
-
- log.WithFields(log.Fields{
- "omg": true,
- "number": 100,
- }).Fatal("The ice breaks!")
-
- // A common pattern is to re-use fields between logging statements by re-using
- // the logrus.Entry returned from WithFields()
- contextLogger := log.WithFields(log.Fields{
- "common": "this is a common field",
- "other": "I also should be logged always",
- })
-
- contextLogger.Info("I'll be logged with common and other field")
- contextLogger.Info("Me too")
-}
-```
-
-For more advanced usage such as logging to multiple locations from the same
-application, you can also create an instance of the `logrus` Logger:
-
-```go
-package main
-
-import (
- "github.com/Sirupsen/logrus"
-)
-
-// Create a new instance of the logger. You can have any number of instances.
-var log = logrus.New()
-
-func main() {
- // The API for setting attributes is a little different than the package level
- // exported logger. See Godoc.
- log.Out = os.Stderr
-
- log.WithFields(logrus.Fields{
- "animal": "walrus",
- "size": 10,
- }).Info("A group of walrus emerges from the ocean")
-}
-```
-
-#### Fields
-
-Logrus encourages careful, structured logging though logging fields instead of
-long, unparseable error messages. For example, instead of: `log.Fatalf("Failed
-to send event %s to topic %s with key %d")`, you should log the much more
-discoverable:
-
-```go
-log.WithFields(log.Fields{
- "event": event,
- "topic": topic,
- "key": key,
-}).Fatal("Failed to send event")
-```
-
-We've found this API forces you to think about logging in a way that produces
-much more useful logging messages. We've been in countless situations where just
-a single added field to a log statement that was already there would've saved us
-hours. The `WithFields` call is optional.
-
-In general, with Logrus using any of the `printf`-family functions should be
-seen as a hint you should add a field, however, you can still use the
-`printf`-family functions with Logrus.
-
-#### Hooks
-
-You can add hooks for logging levels. For example to send errors to an exception
-tracking service on `Error`, `Fatal` and `Panic`, info to StatsD or log to
-multiple places simultaneously, e.g. syslog.
-
-Logrus comes with [built-in hooks](hooks/). Add those, or your custom hook, in
-`init`:
-
-```go
-import (
- log "github.com/Sirupsen/logrus"
- "github.com/Sirupsen/logrus/hooks/airbrake"
- logrus_syslog "github.com/Sirupsen/logrus/hooks/syslog"
- "log/syslog"
-)
-
-func init() {
- log.AddHook(airbrake.NewHook("https://example.com", "xyz", "development"))
-
- hook, err := logrus_syslog.NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "")
- if err != nil {
- log.Error("Unable to connect to local syslog daemon")
- } else {
- log.AddHook(hook)
- }
-}
-```
-
-
-| Hook | Description |
-| ----- | ----------- |
-| [Airbrake](https://github.com/Sirupsen/logrus/blob/master/hooks/airbrake/airbrake.go) | Send errors to an exception tracking service compatible with the Airbrake API. Uses [`airbrake-go`](https://github.com/tobi/airbrake-go) behind the scenes. |
-| [Papertrail](https://github.com/Sirupsen/logrus/blob/master/hooks/papertrail/papertrail.go) | Send errors to the Papertrail hosted logging service via UDP. |
-| [Syslog](https://github.com/Sirupsen/logrus/blob/master/hooks/syslog/syslog.go) | Send errors to remote syslog server. Uses standard library `log/syslog` behind the scenes. |
-| [BugSnag](https://github.com/Sirupsen/logrus/blob/master/hooks/bugsnag/bugsnag.go) | Send errors to the Bugsnag exception tracking service. |
-| [Sentry](https://github.com/Sirupsen/logrus/blob/master/hooks/sentry/sentry.go) | Send errors to the Sentry error logging and aggregation service. |
-| [Hiprus](https://github.com/nubo/hiprus) | Send errors to a channel in hipchat. |
-| [Logrusly](https://github.com/sebest/logrusly) | Send logs to [Loggly](https://www.loggly.com/) |
-| [Slackrus](https://github.com/johntdyer/slackrus) | Hook for Slack chat. |
-| [Journalhook](https://github.com/wercker/journalhook) | Hook for logging to `systemd-journald` |
-| [Graylog](https://github.com/gemnasium/logrus-hooks/tree/master/graylog) | Hook for logging to [Graylog](http://graylog2.org/) |
-| [Raygun](https://github.com/squirkle/logrus-raygun-hook) | Hook for logging to [Raygun.io](http://raygun.io/) |
-| [LFShook](https://github.com/rifflock/lfshook) | Hook for logging to the local filesystem |
-| [Honeybadger](https://github.com/agonzalezro/logrus_honeybadger) | Hook for sending exceptions to Honeybadger |
-| [Mail](https://github.com/zbindenren/logrus_mail) | Hook for sending exceptions via mail |
-| [Rollrus](https://github.com/heroku/rollrus) | Hook for sending errors to rollbar |
-| [Fluentd](https://github.com/evalphobia/logrus_fluent) | Hook for logging to fluentd |
-| [Mongodb](https://github.com/weekface/mgorus) | Hook for logging to mongodb |
-
-#### Level logging
-
-Logrus has six logging levels: Debug, Info, Warning, Error, Fatal and Panic.
-
-```go
-log.Debug("Useful debugging information.")
-log.Info("Something noteworthy happened!")
-log.Warn("You should probably take a look at this.")
-log.Error("Something failed but I'm not quitting.")
-// Calls os.Exit(1) after logging
-log.Fatal("Bye.")
-// Calls panic() after logging
-log.Panic("I'm bailing.")
-```
-
-You can set the logging level on a `Logger`, then it will only log entries with
-that severity or anything above it:
-
-```go
-// Will log anything that is info or above (warn, error, fatal, panic). Default.
-log.SetLevel(log.InfoLevel)
-```
-
-It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose
-environment if your application has that.
-
-#### Entries
-
-Besides the fields added with `WithField` or `WithFields` some fields are
-automatically added to all logging events:
-
-1. `time`. The timestamp when the entry was created.
-2. `msg`. The logging message passed to `{Info,Warn,Error,Fatal,Panic}` after
- the `AddFields` call. E.g. `Failed to send event.`
-3. `level`. The logging level. E.g. `info`.
-
-#### Environments
-
-Logrus has no notion of environment.
-
-If you wish for hooks and formatters to only be used in specific environments,
-you should handle that yourself. For example, if your application has a global
-variable `Environment`, which is a string representation of the environment you
-could do:
-
-```go
-import (
- log "github.com/Sirupsen/logrus"
-)
-
-init() {
- // do something here to set environment depending on an environment variable
- // or command-line flag
- if Environment == "production" {
- log.SetFormatter(&log.JSONFormatter{})
- } else {
- // The TextFormatter is default, you don't actually have to do this.
- log.SetFormatter(&log.TextFormatter{})
- }
-}
-```
-
-This configuration is how `logrus` was intended to be used, but JSON in
-production is mostly only useful if you do log aggregation with tools like
-Splunk or Logstash.
-
-#### Formatters
-
-The built-in logging formatters are:
-
-* `logrus.TextFormatter`. Logs the event in colors if stdout is a tty, otherwise
- without colors.
- * *Note:* to force colored output when there is no TTY, set the `ForceColors`
- field to `true`. To force no colored output even if there is a TTY set the
- `DisableColors` field to `true`
-* `logrus.JSONFormatter`. Logs fields as JSON.
-* `logrus_logstash.LogstashFormatter`. Logs fields as Logstash Events (http://logstash.net).
-
- ```go
- logrus.SetFormatter(&logrus_logstash.LogstashFormatter{Type: “application_name"})
- ```
-
-Third party logging formatters:
-
-* [`zalgo`](https://github.com/aybabtme/logzalgo): invoking the P͉̫o̳̼̊w̖͈̰͎e̬͔̭͂r͚̼̹̲ ̫͓͉̳͈ō̠͕͖̚f̝͍̠ ͕̲̞͖͑Z̖̫̤̫ͪa͉̬͈̗l͖͎g̳̥o̰̥̅!̣͔̲̻͊̄ ̙̘̦̹̦.
-
-You can define your formatter by implementing the `Formatter` interface,
-requiring a `Format` method. `Format` takes an `*Entry`. `entry.Data` is a
-`Fields` type (`map[string]interface{}`) with all your fields as well as the
-default ones (see Entries section above):
-
-```go
-type MyJSONFormatter struct {
-}
-
-log.SetFormatter(new(MyJSONFormatter))
-
-func (f *MyJSONFormatter) Format(entry *Entry) ([]byte, error) {
- // Note this doesn't include Time, Level and Message which are available on
- // the Entry. Consult `godoc` on information about those fields or read the
- // source of the official loggers.
- serialized, err := json.Marshal(entry.Data)
- if err != nil {
- return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
- }
- return append(serialized, '\n'), nil
-}
-```
-
-#### Logger as an `io.Writer`
-
-Logrus can be transformed into an `io.Writer`. That writer is the end of an `io.Pipe` and it is your responsibility to close it.
-
-```go
-w := logger.Writer()
-defer w.Close()
-
-srv := http.Server{
- // create a stdlib log.Logger that writes to
- // logrus.Logger.
- ErrorLog: log.New(w, "", 0),
-}
-```
-
-Each line written to that writer will be printed the usual way, using formatters
-and hooks. The level for those entries is `info`.
-
-#### Rotation
-
-Log rotation is not provided with Logrus. Log rotation should be done by an
-external program (like `logrotate(8)`) that can compress and delete old log
-entries. It should not be a feature of the application-level logger.
-
-
-[godoc]: https://godoc.org/github.com/Sirupsen/logrus
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/doc.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/doc.go
deleted file mode 100644
index dddd5f8..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/doc.go
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
-
-
-The simplest way to use Logrus is simply the package-level exported logger:
-
- package main
-
- import (
- log "github.com/Sirupsen/logrus"
- )
-
- func main() {
- log.WithFields(log.Fields{
- "animal": "walrus",
- "number": 1,
- "size": 10,
- }).Info("A walrus appears")
- }
-
-Output:
- time="2015-09-07T08:48:33Z" level=info msg="A walrus appears" animal=walrus number=1 size=10
-
-For a full guide visit https://github.com/Sirupsen/logrus
-*/
-package logrus
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/entry.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/entry.go
deleted file mode 100644
index 9ae900b..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/entry.go
+++ /dev/null
@@ -1,264 +0,0 @@
-package logrus
-
-import (
- "bytes"
- "fmt"
- "io"
- "os"
- "time"
-)
-
-// Defines the key when adding errors using WithError.
-var ErrorKey = "error"
-
-// An entry is the final or intermediate Logrus logging entry. It contains all
-// the fields passed with WithField{,s}. It's finally logged when Debug, Info,
-// Warn, Error, Fatal or Panic is called on it. These objects can be reused and
-// passed around as much as you wish to avoid field duplication.
-type Entry struct {
- Logger *Logger
-
- // Contains all the fields set by the user.
- Data Fields
-
- // Time at which the log entry was created
- Time time.Time
-
- // Level the log entry was logged at: Debug, Info, Warn, Error, Fatal or Panic
- Level Level
-
- // Message passed to Debug, Info, Warn, Error, Fatal or Panic
- Message string
-}
-
-func NewEntry(logger *Logger) *Entry {
- return &Entry{
- Logger: logger,
- // Default is three fields, give a little extra room
- Data: make(Fields, 5),
- }
-}
-
-// Returns a reader for the entry, which is a proxy to the formatter.
-func (entry *Entry) Reader() (*bytes.Buffer, error) {
- serialized, err := entry.Logger.Formatter.Format(entry)
- return bytes.NewBuffer(serialized), err
-}
-
-// Returns the string representation from the reader and ultimately the
-// formatter.
-func (entry *Entry) String() (string, error) {
- reader, err := entry.Reader()
- if err != nil {
- return "", err
- }
-
- return reader.String(), err
-}
-
-// Add an error as single field (using the key defined in ErrorKey) to the Entry.
-func (entry *Entry) WithError(err error) *Entry {
- return entry.WithField(ErrorKey, err)
-}
-
-// Add a single field to the Entry.
-func (entry *Entry) WithField(key string, value interface{}) *Entry {
- return entry.WithFields(Fields{key: value})
-}
-
-// Add a map of fields to the Entry.
-func (entry *Entry) WithFields(fields Fields) *Entry {
- data := Fields{}
- for k, v := range entry.Data {
- data[k] = v
- }
- for k, v := range fields {
- data[k] = v
- }
- return &Entry{Logger: entry.Logger, Data: data}
-}
-
-// This function is not declared with a pointer value because otherwise
-// race conditions will occur when using multiple goroutines
-func (entry Entry) log(level Level, msg string) {
- entry.Time = time.Now()
- entry.Level = level
- entry.Message = msg
-
- if err := entry.Logger.Hooks.Fire(level, &entry); err != nil {
- entry.Logger.mu.Lock()
- fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", err)
- entry.Logger.mu.Unlock()
- }
-
- reader, err := entry.Reader()
- if err != nil {
- entry.Logger.mu.Lock()
- fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", err)
- entry.Logger.mu.Unlock()
- }
-
- entry.Logger.mu.Lock()
- defer entry.Logger.mu.Unlock()
-
- _, err = io.Copy(entry.Logger.Out, reader)
- if err != nil {
- fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", err)
- }
-
- // To avoid Entry#log() returning a value that only would make sense for
- // panic() to use in Entry#Panic(), we avoid the allocation by checking
- // directly here.
- if level <= PanicLevel {
- panic(&entry)
- }
-}
-
-func (entry *Entry) Debug(args ...interface{}) {
- if entry.Logger.Level >= DebugLevel {
- entry.log(DebugLevel, fmt.Sprint(args...))
- }
-}
-
-func (entry *Entry) Print(args ...interface{}) {
- entry.Info(args...)
-}
-
-func (entry *Entry) Info(args ...interface{}) {
- if entry.Logger.Level >= InfoLevel {
- entry.log(InfoLevel, fmt.Sprint(args...))
- }
-}
-
-func (entry *Entry) Warn(args ...interface{}) {
- if entry.Logger.Level >= WarnLevel {
- entry.log(WarnLevel, fmt.Sprint(args...))
- }
-}
-
-func (entry *Entry) Warning(args ...interface{}) {
- entry.Warn(args...)
-}
-
-func (entry *Entry) Error(args ...interface{}) {
- if entry.Logger.Level >= ErrorLevel {
- entry.log(ErrorLevel, fmt.Sprint(args...))
- }
-}
-
-func (entry *Entry) Fatal(args ...interface{}) {
- if entry.Logger.Level >= FatalLevel {
- entry.log(FatalLevel, fmt.Sprint(args...))
- }
- os.Exit(1)
-}
-
-func (entry *Entry) Panic(args ...interface{}) {
- if entry.Logger.Level >= PanicLevel {
- entry.log(PanicLevel, fmt.Sprint(args...))
- }
- panic(fmt.Sprint(args...))
-}
-
-// Entry Printf family functions
-
-func (entry *Entry) Debugf(format string, args ...interface{}) {
- if entry.Logger.Level >= DebugLevel {
- entry.Debug(fmt.Sprintf(format, args...))
- }
-}
-
-func (entry *Entry) Infof(format string, args ...interface{}) {
- if entry.Logger.Level >= InfoLevel {
- entry.Info(fmt.Sprintf(format, args...))
- }
-}
-
-func (entry *Entry) Printf(format string, args ...interface{}) {
- entry.Infof(format, args...)
-}
-
-func (entry *Entry) Warnf(format string, args ...interface{}) {
- if entry.Logger.Level >= WarnLevel {
- entry.Warn(fmt.Sprintf(format, args...))
- }
-}
-
-func (entry *Entry) Warningf(format string, args ...interface{}) {
- entry.Warnf(format, args...)
-}
-
-func (entry *Entry) Errorf(format string, args ...interface{}) {
- if entry.Logger.Level >= ErrorLevel {
- entry.Error(fmt.Sprintf(format, args...))
- }
-}
-
-func (entry *Entry) Fatalf(format string, args ...interface{}) {
- if entry.Logger.Level >= FatalLevel {
- entry.Fatal(fmt.Sprintf(format, args...))
- }
- os.Exit(1)
-}
-
-func (entry *Entry) Panicf(format string, args ...interface{}) {
- if entry.Logger.Level >= PanicLevel {
- entry.Panic(fmt.Sprintf(format, args...))
- }
-}
-
-// Entry Println family functions
-
-func (entry *Entry) Debugln(args ...interface{}) {
- if entry.Logger.Level >= DebugLevel {
- entry.Debug(entry.sprintlnn(args...))
- }
-}
-
-func (entry *Entry) Infoln(args ...interface{}) {
- if entry.Logger.Level >= InfoLevel {
- entry.Info(entry.sprintlnn(args...))
- }
-}
-
-func (entry *Entry) Println(args ...interface{}) {
- entry.Infoln(args...)
-}
-
-func (entry *Entry) Warnln(args ...interface{}) {
- if entry.Logger.Level >= WarnLevel {
- entry.Warn(entry.sprintlnn(args...))
- }
-}
-
-func (entry *Entry) Warningln(args ...interface{}) {
- entry.Warnln(args...)
-}
-
-func (entry *Entry) Errorln(args ...interface{}) {
- if entry.Logger.Level >= ErrorLevel {
- entry.Error(entry.sprintlnn(args...))
- }
-}
-
-func (entry *Entry) Fatalln(args ...interface{}) {
- if entry.Logger.Level >= FatalLevel {
- entry.Fatal(entry.sprintlnn(args...))
- }
- os.Exit(1)
-}
-
-func (entry *Entry) Panicln(args ...interface{}) {
- if entry.Logger.Level >= PanicLevel {
- entry.Panic(entry.sprintlnn(args...))
- }
-}
-
-// Sprintlnn => Sprint no newline. This is to get the behavior of how
-// fmt.Sprintln where spaces are always added between operands, regardless of
-// their type. Instead of vendoring the Sprintln implementation to spare a
-// string allocation, we do the simplest thing.
-func (entry *Entry) sprintlnn(args ...interface{}) string {
- msg := fmt.Sprintln(args...)
- return msg[:len(msg)-1]
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/examples/basic/basic.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/examples/basic/basic.go
deleted file mode 100644
index a1623ec..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/examples/basic/basic.go
+++ /dev/null
@@ -1,50 +0,0 @@
-package main
-
-import (
- "github.com/Sirupsen/logrus"
-)
-
-var log = logrus.New()
-
-func init() {
- log.Formatter = new(logrus.JSONFormatter)
- log.Formatter = new(logrus.TextFormatter) // default
- log.Level = logrus.DebugLevel
-}
-
-func main() {
- defer func() {
- err := recover()
- if err != nil {
- log.WithFields(logrus.Fields{
- "omg": true,
- "err": err,
- "number": 100,
- }).Fatal("The ice breaks!")
- }
- }()
-
- log.WithFields(logrus.Fields{
- "animal": "walrus",
- "number": 8,
- }).Debug("Started observing beach")
-
- log.WithFields(logrus.Fields{
- "animal": "walrus",
- "size": 10,
- }).Info("A group of walrus emerges from the ocean")
-
- log.WithFields(logrus.Fields{
- "omg": true,
- "number": 122,
- }).Warn("The group's number increased tremendously!")
-
- log.WithFields(logrus.Fields{
- "temperature": -4,
- }).Debug("Temperature changes")
-
- log.WithFields(logrus.Fields{
- "animal": "orca",
- "size": 9009,
- }).Panic("It's over 9000!")
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/examples/hook/hook.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/examples/hook/hook.go
deleted file mode 100644
index cb5759a..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/examples/hook/hook.go
+++ /dev/null
@@ -1,30 +0,0 @@
-package main
-
-import (
- "github.com/Sirupsen/logrus"
- "github.com/Sirupsen/logrus/hooks/airbrake"
-)
-
-var log = logrus.New()
-
-func init() {
- log.Formatter = new(logrus.TextFormatter) // default
- log.Hooks.Add(airbrake.NewHook("https://example.com", "xyz", "development"))
-}
-
-func main() {
- log.WithFields(logrus.Fields{
- "animal": "walrus",
- "size": 10,
- }).Info("A group of walrus emerges from the ocean")
-
- log.WithFields(logrus.Fields{
- "omg": true,
- "number": 122,
- }).Warn("The group's number increased tremendously!")
-
- log.WithFields(logrus.Fields{
- "omg": true,
- "number": 100,
- }).Fatal("The ice breaks!")
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/exported.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/exported.go
deleted file mode 100644
index 9a0120a..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/exported.go
+++ /dev/null
@@ -1,193 +0,0 @@
-package logrus
-
-import (
- "io"
-)
-
-var (
- // std is the name of the standard logger in stdlib `log`
- std = New()
-)
-
-func StandardLogger() *Logger {
- return std
-}
-
-// SetOutput sets the standard logger output.
-func SetOutput(out io.Writer) {
- std.mu.Lock()
- defer std.mu.Unlock()
- std.Out = out
-}
-
-// SetFormatter sets the standard logger formatter.
-func SetFormatter(formatter Formatter) {
- std.mu.Lock()
- defer std.mu.Unlock()
- std.Formatter = formatter
-}
-
-// SetLevel sets the standard logger level.
-func SetLevel(level Level) {
- std.mu.Lock()
- defer std.mu.Unlock()
- std.Level = level
-}
-
-// GetLevel returns the standard logger level.
-func GetLevel() Level {
- std.mu.Lock()
- defer std.mu.Unlock()
- return std.Level
-}
-
-// AddHook adds a hook to the standard logger hooks.
-func AddHook(hook Hook) {
- std.mu.Lock()
- defer std.mu.Unlock()
- std.Hooks.Add(hook)
-}
-
-// WithError creates an entry from the standard logger and adds an error to it, using the value defined in ErrorKey as key.
-func WithError(err error) *Entry {
- return std.WithField(ErrorKey, err)
-}
-
-// WithField creates an entry from the standard logger and adds a field to
-// it. If you want multiple fields, use `WithFields`.
-//
-// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal
-// or Panic on the Entry it returns.
-func WithField(key string, value interface{}) *Entry {
- return std.WithField(key, value)
-}
-
-// WithFields creates an entry from the standard logger and adds multiple
-// fields to it. This is simply a helper for `WithField`, invoking it
-// once for each field.
-//
-// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal
-// or Panic on the Entry it returns.
-func WithFields(fields Fields) *Entry {
- return std.WithFields(fields)
-}
-
-// Debug logs a message at level Debug on the standard logger.
-func Debug(args ...interface{}) {
- std.Debug(args...)
-}
-
-// Print logs a message at level Info on the standard logger.
-func Print(args ...interface{}) {
- std.Print(args...)
-}
-
-// Info logs a message at level Info on the standard logger.
-func Info(args ...interface{}) {
- std.Info(args...)
-}
-
-// Warn logs a message at level Warn on the standard logger.
-func Warn(args ...interface{}) {
- std.Warn(args...)
-}
-
-// Warning logs a message at level Warn on the standard logger.
-func Warning(args ...interface{}) {
- std.Warning(args...)
-}
-
-// Error logs a message at level Error on the standard logger.
-func Error(args ...interface{}) {
- std.Error(args...)
-}
-
-// Panic logs a message at level Panic on the standard logger.
-func Panic(args ...interface{}) {
- std.Panic(args...)
-}
-
-// Fatal logs a message at level Fatal on the standard logger.
-func Fatal(args ...interface{}) {
- std.Fatal(args...)
-}
-
-// Debugf logs a message at level Debug on the standard logger.
-func Debugf(format string, args ...interface{}) {
- std.Debugf(format, args...)
-}
-
-// Printf logs a message at level Info on the standard logger.
-func Printf(format string, args ...interface{}) {
- std.Printf(format, args...)
-}
-
-// Infof logs a message at level Info on the standard logger.
-func Infof(format string, args ...interface{}) {
- std.Infof(format, args...)
-}
-
-// Warnf logs a message at level Warn on the standard logger.
-func Warnf(format string, args ...interface{}) {
- std.Warnf(format, args...)
-}
-
-// Warningf logs a message at level Warn on the standard logger.
-func Warningf(format string, args ...interface{}) {
- std.Warningf(format, args...)
-}
-
-// Errorf logs a message at level Error on the standard logger.
-func Errorf(format string, args ...interface{}) {
- std.Errorf(format, args...)
-}
-
-// Panicf logs a message at level Panic on the standard logger.
-func Panicf(format string, args ...interface{}) {
- std.Panicf(format, args...)
-}
-
-// Fatalf logs a message at level Fatal on the standard logger.
-func Fatalf(format string, args ...interface{}) {
- std.Fatalf(format, args...)
-}
-
-// Debugln logs a message at level Debug on the standard logger.
-func Debugln(args ...interface{}) {
- std.Debugln(args...)
-}
-
-// Println logs a message at level Info on the standard logger.
-func Println(args ...interface{}) {
- std.Println(args...)
-}
-
-// Infoln logs a message at level Info on the standard logger.
-func Infoln(args ...interface{}) {
- std.Infoln(args...)
-}
-
-// Warnln logs a message at level Warn on the standard logger.
-func Warnln(args ...interface{}) {
- std.Warnln(args...)
-}
-
-// Warningln logs a message at level Warn on the standard logger.
-func Warningln(args ...interface{}) {
- std.Warningln(args...)
-}
-
-// Errorln logs a message at level Error on the standard logger.
-func Errorln(args ...interface{}) {
- std.Errorln(args...)
-}
-
-// Panicln logs a message at level Panic on the standard logger.
-func Panicln(args ...interface{}) {
- std.Panicln(args...)
-}
-
-// Fatalln logs a message at level Fatal on the standard logger.
-func Fatalln(args ...interface{}) {
- std.Fatalln(args...)
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/formatter.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/formatter.go
deleted file mode 100644
index 104d689..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/formatter.go
+++ /dev/null
@@ -1,48 +0,0 @@
-package logrus
-
-import "time"
-
-const DefaultTimestampFormat = time.RFC3339
-
-// The Formatter interface is used to implement a custom Formatter. It takes an
-// `Entry`. It exposes all the fields, including the default ones:
-//
-// * `entry.Data["msg"]`. The message passed from Info, Warn, Error ..
-// * `entry.Data["time"]`. The timestamp.
-// * `entry.Data["level"]. The level the entry was logged at.
-//
-// Any additional fields added with `WithField` or `WithFields` are also in
-// `entry.Data`. Format is expected to return an array of bytes which are then
-// logged to `logger.Out`.
-type Formatter interface {
- Format(*Entry) ([]byte, error)
-}
-
-// This is to not silently overwrite `time`, `msg` and `level` fields when
-// dumping it. If this code wasn't there doing:
-//
-// logrus.WithField("level", 1).Info("hello")
-//
-// Would just silently drop the user provided level. Instead with this code
-// it'll logged as:
-//
-// {"level": "info", "fields.level": 1, "msg": "hello", "time": "..."}
-//
-// It's not exported because it's still using Data in an opinionated way. It's to
-// avoid code duplication between the two default formatters.
-func prefixFieldClashes(data Fields) {
- _, ok := data["time"]
- if ok {
- data["fields.time"] = data["time"]
- }
-
- _, ok = data["msg"]
- if ok {
- data["fields.msg"] = data["msg"]
- }
-
- _, ok = data["level"]
- if ok {
- data["fields.level"] = data["level"]
- }
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/formatters/logstash/logstash.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/formatters/logstash/logstash.go
deleted file mode 100644
index 8ea93dd..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/formatters/logstash/logstash.go
+++ /dev/null
@@ -1,56 +0,0 @@
-package logstash
-
-import (
- "encoding/json"
- "fmt"
-
- "github.com/Sirupsen/logrus"
-)
-
-// Formatter generates json in logstash format.
-// Logstash site: http://logstash.net/
-type LogstashFormatter struct {
- Type string // if not empty use for logstash type field.
-
- // TimestampFormat sets the format used for timestamps.
- TimestampFormat string
-}
-
-func (f *LogstashFormatter) Format(entry *logrus.Entry) ([]byte, error) {
- entry.Data["@version"] = 1
-
- if f.TimestampFormat == "" {
- f.TimestampFormat = logrus.DefaultTimestampFormat
- }
-
- entry.Data["@timestamp"] = entry.Time.Format(f.TimestampFormat)
-
- // set message field
- v, ok := entry.Data["message"]
- if ok {
- entry.Data["fields.message"] = v
- }
- entry.Data["message"] = entry.Message
-
- // set level field
- v, ok = entry.Data["level"]
- if ok {
- entry.Data["fields.level"] = v
- }
- entry.Data["level"] = entry.Level.String()
-
- // set type field
- if f.Type != "" {
- v, ok = entry.Data["type"]
- if ok {
- entry.Data["fields.type"] = v
- }
- entry.Data["type"] = f.Type
- }
-
- serialized, err := json.Marshal(entry.Data)
- if err != nil {
- return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
- }
- return append(serialized, '\n'), nil
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks.go
deleted file mode 100644
index 3f151cd..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks.go
+++ /dev/null
@@ -1,34 +0,0 @@
-package logrus
-
-// A hook to be fired when logging on the logging levels returned from
-// `Levels()` on your implementation of the interface. Note that this is not
-// fired in a goroutine or a channel with workers, you should handle such
-// functionality yourself if your call is non-blocking and you don't wish for
-// the logging calls for levels returned from `Levels()` to block.
-type Hook interface {
- Levels() []Level
- Fire(*Entry) error
-}
-
-// Internal type for storing the hooks on a logger instance.
-type LevelHooks map[Level][]Hook
-
-// Add a hook to an instance of logger. This is called with
-// `log.Hooks.Add(new(MyHook))` where `MyHook` implements the `Hook` interface.
-func (hooks LevelHooks) Add(hook Hook) {
- for _, level := range hook.Levels() {
- hooks[level] = append(hooks[level], hook)
- }
-}
-
-// Fire all the hooks for the passed level. Used by `entry.log` to fire
-// appropriate hooks for a log entry.
-func (hooks LevelHooks) Fire(level Level, entry *Entry) error {
- for _, hook := range hooks[level] {
- if err := hook.Fire(entry); err != nil {
- return err
- }
- }
-
- return nil
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/airbrake/airbrake.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/airbrake/airbrake.go
deleted file mode 100644
index b0502c3..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/airbrake/airbrake.go
+++ /dev/null
@@ -1,54 +0,0 @@
-package airbrake
-
-import (
- "errors"
- "fmt"
-
- "github.com/Sirupsen/logrus"
- "github.com/tobi/airbrake-go"
-)
-
-// AirbrakeHook to send exceptions to an exception-tracking service compatible
-// with the Airbrake API.
-type airbrakeHook struct {
- APIKey string
- Endpoint string
- Environment string
-}
-
-func NewHook(endpoint, apiKey, env string) *airbrakeHook {
- return &airbrakeHook{
- APIKey: apiKey,
- Endpoint: endpoint,
- Environment: env,
- }
-}
-
-func (hook *airbrakeHook) Fire(entry *logrus.Entry) error {
- airbrake.ApiKey = hook.APIKey
- airbrake.Endpoint = hook.Endpoint
- airbrake.Environment = hook.Environment
-
- var notifyErr error
- err, ok := entry.Data["error"].(error)
- if ok {
- notifyErr = err
- } else {
- notifyErr = errors.New(entry.Message)
- }
-
- airErr := airbrake.Notify(notifyErr)
- if airErr != nil {
- return fmt.Errorf("Failed to send error to Airbrake: %s", airErr)
- }
-
- return nil
-}
-
-func (hook *airbrakeHook) Levels() []logrus.Level {
- return []logrus.Level{
- logrus.ErrorLevel,
- logrus.FatalLevel,
- logrus.PanicLevel,
- }
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/bugsnag/bugsnag.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/bugsnag/bugsnag.go
deleted file mode 100644
index d20a0f5..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/bugsnag/bugsnag.go
+++ /dev/null
@@ -1,68 +0,0 @@
-package logrus_bugsnag
-
-import (
- "errors"
-
- "github.com/Sirupsen/logrus"
- "github.com/bugsnag/bugsnag-go"
-)
-
-type bugsnagHook struct{}
-
-// ErrBugsnagUnconfigured is returned if NewBugsnagHook is called before
-// bugsnag.Configure. Bugsnag must be configured before the hook.
-var ErrBugsnagUnconfigured = errors.New("bugsnag must be configured before installing this logrus hook")
-
-// ErrBugsnagSendFailed indicates that the hook failed to submit an error to
-// bugsnag. The error was successfully generated, but `bugsnag.Notify()`
-// failed.
-type ErrBugsnagSendFailed struct {
- err error
-}
-
-func (e ErrBugsnagSendFailed) Error() string {
- return "failed to send error to Bugsnag: " + e.err.Error()
-}
-
-// NewBugsnagHook initializes a logrus hook which sends exceptions to an
-// exception-tracking service compatible with the Bugsnag API. Before using
-// this hook, you must call bugsnag.Configure(). The returned object should be
-// registered with a log via `AddHook()`
-//
-// Entries that trigger an Error, Fatal or Panic should now include an "error"
-// field to send to Bugsnag.
-func NewBugsnagHook() (*bugsnagHook, error) {
- if bugsnag.Config.APIKey == "" {
- return nil, ErrBugsnagUnconfigured
- }
- return &bugsnagHook{}, nil
-}
-
-// Fire forwards an error to Bugsnag. Given a logrus.Entry, it extracts the
-// "error" field (or the Message if the error isn't present) and sends it off.
-func (hook *bugsnagHook) Fire(entry *logrus.Entry) error {
- var notifyErr error
- err, ok := entry.Data["error"].(error)
- if ok {
- notifyErr = err
- } else {
- notifyErr = errors.New(entry.Message)
- }
-
- bugsnagErr := bugsnag.Notify(notifyErr)
- if bugsnagErr != nil {
- return ErrBugsnagSendFailed{bugsnagErr}
- }
-
- return nil
-}
-
-// Levels enumerates the log levels on which the error should be forwarded to
-// bugsnag: everything at or above the "Error" level.
-func (hook *bugsnagHook) Levels() []logrus.Level {
- return []logrus.Level{
- logrus.ErrorLevel,
- logrus.FatalLevel,
- logrus.PanicLevel,
- }
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/papertrail/README.md b/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/papertrail/README.md
deleted file mode 100644
index ae61e92..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/papertrail/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Papertrail Hook for Logrus
-
-[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 c0f10c1..0000000
--- 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 31de654..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/sentry/README.md
+++ /dev/null
@@ -1,111 +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)
- }
-}
-```
-
-If you wish to initialize a SentryHook with tags, you can use the `NewWithTagsSentryHook` constructor to provide default tags:
-
-```go
-tags := map[string]string{
- "site": "example.com",
-}
-levels := []logrus.Level{
- logrus.PanicLevel,
- logrus.FatalLevel,
- logrus.ErrorLevel,
-}
-hook, err := logrus_sentry.NewWithTagsSentryHook(YOUR_DSN, tags, levels)
-
-```
-
-If you wish to initialize a SentryHook with an already initialized raven client, you can use
-the `NewWithClientSentryHook` constructor:
-
-```go
-import (
- "github.com/Sirupsen/logrus"
- "github.com/Sirupsen/logrus/hooks/sentry"
- "github.com/getsentry/raven-go"
-)
-
-func main() {
- log := logrus.New()
-
- client, err := raven.New(YOUR_DSN)
- if err != nil {
- log.Fatal(err)
- }
-
- hook, err := logrus_sentry.NewWithClientSentryHook(client, []logrus.Level{
- logrus.PanicLevel,
- logrus.FatalLevel,
- logrus.ErrorLevel,
- })
-
- if err == nil {
- log.Hooks.Add(hook)
- }
-}
-
-hook, err := NewWithClientSentryHook(client, []logrus.Level{
- logrus.ErrorLevel,
-})
-```
-
-## Special fields
-
-Some logrus fields have a special meaning in this hook,
-these are `server_name`, `logger` and `http_request`.
-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.
-- `http_request` is the in-coming request(*http.Request). The detailed request data are sent to Sentry.
-
-## 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 cf88098..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/sentry/sentry.go
+++ /dev/null
@@ -1,137 +0,0 @@
-package logrus_sentry
-
-import (
- "fmt"
- "net/http"
- "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
-}
-
-func getAndDelRequest(d logrus.Fields, key string) (*http.Request, bool) {
- var (
- ok bool
- v interface{}
- req *http.Request
- )
- if v, ok = d[key]; !ok {
- return nil, false
- }
- if req, ok = v.(*http.Request); !ok || req == nil {
- return nil, false
- }
- delete(d, key)
- return req, 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.New(DSN)
- if err != nil {
- return nil, err
- }
- return &SentryHook{100 * time.Millisecond, client, levels}, nil
-}
-
-// NewWithTagsSentryHook creates a hook with tags to be added to an instance
-// of logger and initializes the raven client. This method sets the timeout to
-// 100 milliseconds.
-func NewWithTagsSentryHook(DSN string, tags map[string]string, levels []logrus.Level) (*SentryHook, error) {
- client, err := raven.NewWithTags(DSN, tags)
- if err != nil {
- return nil, err
- }
- return &SentryHook{100 * time.Millisecond, client, levels}, nil
-}
-
-// NewWithClientSentryHook creates a hook using an initialized raven client.
-// This method sets the timeout to 100 milliseconds.
-func NewWithClientSentryHook(client *raven.Client, levels []logrus.Level) (*SentryHook, error) {
- 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, server_name and http_request
-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
- }
- if req, ok := getAndDelRequest(d, "http_request"); ok {
- packet.Interfaces = append(packet.Interfaces, raven.NewHttp(req))
- }
- 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 4dbb8e7..0000000
--- 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 b6fa374..0000000
--- 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/Sirupsen/logrus/json_formatter.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/json_formatter.go
deleted file mode 100644
index 2ad6dc5..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/json_formatter.go
+++ /dev/null
@@ -1,41 +0,0 @@
-package logrus
-
-import (
- "encoding/json"
- "fmt"
-)
-
-type JSONFormatter struct {
- // TimestampFormat sets the format used for marshaling timestamps.
- TimestampFormat string
-}
-
-func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) {
- data := make(Fields, len(entry.Data)+3)
- for k, v := range entry.Data {
- switch v := v.(type) {
- case error:
- // Otherwise errors are ignored by `encoding/json`
- // https://github.com/Sirupsen/logrus/issues/137
- data[k] = v.Error()
- default:
- data[k] = v
- }
- }
- prefixFieldClashes(data)
-
- timestampFormat := f.TimestampFormat
- if timestampFormat == "" {
- timestampFormat = DefaultTimestampFormat
- }
-
- data["time"] = entry.Time.Format(timestampFormat)
- data["msg"] = entry.Message
- data["level"] = entry.Level.String()
-
- serialized, err := json.Marshal(data)
- if err != nil {
- return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
- }
- return append(serialized, '\n'), nil
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/logger.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/logger.go
deleted file mode 100644
index fd9804c..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/logger.go
+++ /dev/null
@@ -1,206 +0,0 @@
-package logrus
-
-import (
- "io"
- "os"
- "sync"
-)
-
-type Logger struct {
- // The logs are `io.Copy`'d to this in a mutex. It's common to set this to a
- // file, or leave it default which is `os.Stderr`. You can also set this to
- // something more adventorous, such as logging to Kafka.
- Out io.Writer
- // Hooks for the logger instance. These allow firing events based on logging
- // levels and log entries. For example, to send errors to an error tracking
- // service, log to StatsD or dump the core on fatal errors.
- Hooks LevelHooks
- // All log entries pass through the formatter before logged to Out. The
- // included formatters are `TextFormatter` and `JSONFormatter` for which
- // TextFormatter is the default. In development (when a TTY is attached) it
- // logs with colors, but to a file it wouldn't. You can easily implement your
- // own that implements the `Formatter` interface, see the `README` or included
- // formatters for examples.
- Formatter Formatter
- // The logging level the logger should log at. This is typically (and defaults
- // to) `logrus.Info`, which allows Info(), Warn(), Error() and Fatal() to be
- // logged. `logrus.Debug` is useful in
- Level Level
- // Used to sync writing to the log.
- mu sync.Mutex
-}
-
-// Creates a new logger. Configuration should be set by changing `Formatter`,
-// `Out` and `Hooks` directly on the default logger instance. You can also just
-// instantiate your own:
-//
-// var log = &Logger{
-// Out: os.Stderr,
-// Formatter: new(JSONFormatter),
-// Hooks: make(LevelHooks),
-// Level: logrus.DebugLevel,
-// }
-//
-// It's recommended to make this a global instance called `log`.
-func New() *Logger {
- return &Logger{
- Out: os.Stderr,
- Formatter: new(TextFormatter),
- Hooks: make(LevelHooks),
- Level: InfoLevel,
- }
-}
-
-// Adds a field to the log entry, note that you it doesn't log until you call
-// Debug, Print, Info, Warn, Fatal or Panic. It only creates a log entry.
-// If you want multiple fields, use `WithFields`.
-func (logger *Logger) WithField(key string, value interface{}) *Entry {
- return NewEntry(logger).WithField(key, value)
-}
-
-// Adds a struct of fields to the log entry. All it does is call `WithField` for
-// each `Field`.
-func (logger *Logger) WithFields(fields Fields) *Entry {
- return NewEntry(logger).WithFields(fields)
-}
-
-func (logger *Logger) Debugf(format string, args ...interface{}) {
- if logger.Level >= DebugLevel {
- NewEntry(logger).Debugf(format, args...)
- }
-}
-
-func (logger *Logger) Infof(format string, args ...interface{}) {
- if logger.Level >= InfoLevel {
- NewEntry(logger).Infof(format, args...)
- }
-}
-
-func (logger *Logger) Printf(format string, args ...interface{}) {
- NewEntry(logger).Printf(format, args...)
-}
-
-func (logger *Logger) Warnf(format string, args ...interface{}) {
- if logger.Level >= WarnLevel {
- NewEntry(logger).Warnf(format, args...)
- }
-}
-
-func (logger *Logger) Warningf(format string, args ...interface{}) {
- if logger.Level >= WarnLevel {
- NewEntry(logger).Warnf(format, args...)
- }
-}
-
-func (logger *Logger) Errorf(format string, args ...interface{}) {
- if logger.Level >= ErrorLevel {
- NewEntry(logger).Errorf(format, args...)
- }
-}
-
-func (logger *Logger) Fatalf(format string, args ...interface{}) {
- if logger.Level >= FatalLevel {
- NewEntry(logger).Fatalf(format, args...)
- }
- os.Exit(1)
-}
-
-func (logger *Logger) Panicf(format string, args ...interface{}) {
- if logger.Level >= PanicLevel {
- NewEntry(logger).Panicf(format, args...)
- }
-}
-
-func (logger *Logger) Debug(args ...interface{}) {
- if logger.Level >= DebugLevel {
- NewEntry(logger).Debug(args...)
- }
-}
-
-func (logger *Logger) Info(args ...interface{}) {
- if logger.Level >= InfoLevel {
- NewEntry(logger).Info(args...)
- }
-}
-
-func (logger *Logger) Print(args ...interface{}) {
- NewEntry(logger).Info(args...)
-}
-
-func (logger *Logger) Warn(args ...interface{}) {
- if logger.Level >= WarnLevel {
- NewEntry(logger).Warn(args...)
- }
-}
-
-func (logger *Logger) Warning(args ...interface{}) {
- if logger.Level >= WarnLevel {
- NewEntry(logger).Warn(args...)
- }
-}
-
-func (logger *Logger) Error(args ...interface{}) {
- if logger.Level >= ErrorLevel {
- NewEntry(logger).Error(args...)
- }
-}
-
-func (logger *Logger) Fatal(args ...interface{}) {
- if logger.Level >= FatalLevel {
- NewEntry(logger).Fatal(args...)
- }
- os.Exit(1)
-}
-
-func (logger *Logger) Panic(args ...interface{}) {
- if logger.Level >= PanicLevel {
- NewEntry(logger).Panic(args...)
- }
-}
-
-func (logger *Logger) Debugln(args ...interface{}) {
- if logger.Level >= DebugLevel {
- NewEntry(logger).Debugln(args...)
- }
-}
-
-func (logger *Logger) Infoln(args ...interface{}) {
- if logger.Level >= InfoLevel {
- NewEntry(logger).Infoln(args...)
- }
-}
-
-func (logger *Logger) Println(args ...interface{}) {
- NewEntry(logger).Println(args...)
-}
-
-func (logger *Logger) Warnln(args ...interface{}) {
- if logger.Level >= WarnLevel {
- NewEntry(logger).Warnln(args...)
- }
-}
-
-func (logger *Logger) Warningln(args ...interface{}) {
- if logger.Level >= WarnLevel {
- NewEntry(logger).Warnln(args...)
- }
-}
-
-func (logger *Logger) Errorln(args ...interface{}) {
- if logger.Level >= ErrorLevel {
- NewEntry(logger).Errorln(args...)
- }
-}
-
-func (logger *Logger) Fatalln(args ...interface{}) {
- if logger.Level >= FatalLevel {
- NewEntry(logger).Fatalln(args...)
- }
- os.Exit(1)
-}
-
-func (logger *Logger) Panicln(args ...interface{}) {
- if logger.Level >= PanicLevel {
- NewEntry(logger).Panicln(args...)
- }
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/logrus.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/logrus.go
deleted file mode 100644
index 0c09fbc..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/logrus.go
+++ /dev/null
@@ -1,98 +0,0 @@
-package logrus
-
-import (
- "fmt"
- "log"
-)
-
-// Fields type, used to pass to `WithFields`.
-type Fields map[string]interface{}
-
-// Level type
-type Level uint8
-
-// Convert the Level to a string. E.g. PanicLevel becomes "panic".
-func (level Level) String() string {
- switch level {
- case DebugLevel:
- return "debug"
- case InfoLevel:
- return "info"
- case WarnLevel:
- return "warning"
- case ErrorLevel:
- return "error"
- case FatalLevel:
- return "fatal"
- case PanicLevel:
- return "panic"
- }
-
- return "unknown"
-}
-
-// ParseLevel takes a string level and returns the Logrus log level constant.
-func ParseLevel(lvl string) (Level, error) {
- switch lvl {
- case "panic":
- return PanicLevel, nil
- case "fatal":
- return FatalLevel, nil
- case "error":
- return ErrorLevel, nil
- case "warn", "warning":
- return WarnLevel, nil
- case "info":
- return InfoLevel, nil
- case "debug":
- return DebugLevel, nil
- }
-
- var l Level
- return l, fmt.Errorf("not a valid logrus Level: %q", lvl)
-}
-
-// These are the different logging levels. You can set the logging level to log
-// on your instance of logger, obtained with `logrus.New()`.
-const (
- // PanicLevel level, highest level of severity. Logs and then calls panic with the
- // message passed to Debug, Info, ...
- PanicLevel Level = iota
- // FatalLevel level. Logs and then calls `os.Exit(1)`. It will exit even if the
- // logging level is set to Panic.
- FatalLevel
- // ErrorLevel level. Logs. Used for errors that should definitely be noted.
- // Commonly used for hooks to send errors to an error tracking service.
- ErrorLevel
- // WarnLevel level. Non-critical entries that deserve eyes.
- WarnLevel
- // InfoLevel level. General operational entries about what's going on inside the
- // application.
- InfoLevel
- // DebugLevel level. Usually only enabled when debugging. Very verbose logging.
- DebugLevel
-)
-
-// Won't compile if StdLogger can't be realized by a log.Logger
-var (
- _ StdLogger = &log.Logger{}
- _ StdLogger = &Entry{}
- _ StdLogger = &Logger{}
-)
-
-// StdLogger is what your logrus-enabled library should take, that way
-// it'll accept a stdlib logger and a logrus logger. There's no standard
-// interface, this is the closest we get, unfortunately.
-type StdLogger interface {
- Print(...interface{})
- Printf(string, ...interface{})
- Println(...interface{})
-
- Fatal(...interface{})
- Fatalf(string, ...interface{})
- Fatalln(...interface{})
-
- Panic(...interface{})
- Panicf(string, ...interface{})
- Panicln(...interface{})
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_bsd.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_bsd.go
deleted file mode 100644
index 71f8d67..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_bsd.go
+++ /dev/null
@@ -1,9 +0,0 @@
-// +build darwin freebsd openbsd netbsd dragonfly
-
-package logrus
-
-import "syscall"
-
-const ioctlReadTermios = syscall.TIOCGETA
-
-type Termios syscall.Termios
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_linux.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_linux.go
deleted file mode 100644
index a2c0b40..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_linux.go
+++ /dev/null
@@ -1,12 +0,0 @@
-// Based on ssh/terminal:
-// Copyright 2013 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 logrus
-
-import "syscall"
-
-const ioctlReadTermios = syscall.TCGETS
-
-type Termios syscall.Termios
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_notwindows.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_notwindows.go
deleted file mode 100644
index 4bb5376..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_notwindows.go
+++ /dev/null
@@ -1,21 +0,0 @@
-// Based on ssh/terminal:
-// Copyright 2011 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 linux darwin freebsd openbsd netbsd dragonfly
-
-package logrus
-
-import (
- "syscall"
- "unsafe"
-)
-
-// IsTerminal returns true if the given file descriptor is a terminal.
-func IsTerminal() bool {
- fd := syscall.Stdout
- var termios Termios
- _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
- return err == 0
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_windows.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_windows.go
deleted file mode 100644
index 2e09f6f..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_windows.go
+++ /dev/null
@@ -1,27 +0,0 @@
-// Based on ssh/terminal:
-// Copyright 2011 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 windows
-
-package logrus
-
-import (
- "syscall"
- "unsafe"
-)
-
-var kernel32 = syscall.NewLazyDLL("kernel32.dll")
-
-var (
- procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
-)
-
-// IsTerminal returns true if the given file descriptor is a terminal.
-func IsTerminal() bool {
- fd := syscall.Stdout
- var st uint32
- r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0)
- return r != 0 && e == 0
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/text_formatter.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/text_formatter.go
deleted file mode 100644
index 17cc298..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/text_formatter.go
+++ /dev/null
@@ -1,159 +0,0 @@
-package logrus
-
-import (
- "bytes"
- "fmt"
- "runtime"
- "sort"
- "strings"
- "time"
-)
-
-const (
- nocolor = 0
- red = 31
- green = 32
- yellow = 33
- blue = 34
- gray = 37
-)
-
-var (
- baseTimestamp time.Time
- isTerminal bool
-)
-
-func init() {
- baseTimestamp = time.Now()
- isTerminal = IsTerminal()
-}
-
-func miniTS() int {
- return int(time.Since(baseTimestamp) / time.Second)
-}
-
-type TextFormatter struct {
- // Set to true to bypass checking for a TTY before outputting colors.
- ForceColors bool
-
- // Force disabling colors.
- DisableColors bool
-
- // Disable timestamp logging. useful when output is redirected to logging
- // system that already adds timestamps.
- DisableTimestamp bool
-
- // Enable logging the full timestamp when a TTY is attached instead of just
- // the time passed since beginning of execution.
- FullTimestamp bool
-
- // TimestampFormat to use for display when a full timestamp is printed
- TimestampFormat string
-
- // The fields are sorted by default for a consistent output. For applications
- // that log extremely frequently and don't use the JSON formatter this may not
- // be desired.
- DisableSorting bool
-}
-
-func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
- var keys []string = make([]string, 0, len(entry.Data))
- for k := range entry.Data {
- keys = append(keys, k)
- }
-
- if !f.DisableSorting {
- sort.Strings(keys)
- }
-
- b := &bytes.Buffer{}
-
- prefixFieldClashes(entry.Data)
-
- isColorTerminal := isTerminal && (runtime.GOOS != "windows")
- isColored := (f.ForceColors || isColorTerminal) && !f.DisableColors
-
- timestampFormat := f.TimestampFormat
- if timestampFormat == "" {
- timestampFormat = DefaultTimestampFormat
- }
- if isColored {
- f.printColored(b, entry, keys, timestampFormat)
- } else {
- if !f.DisableTimestamp {
- f.appendKeyValue(b, "time", entry.Time.Format(timestampFormat))
- }
- f.appendKeyValue(b, "level", entry.Level.String())
- f.appendKeyValue(b, "msg", entry.Message)
- for _, key := range keys {
- f.appendKeyValue(b, key, entry.Data[key])
- }
- }
-
- b.WriteByte('\n')
- return b.Bytes(), nil
-}
-
-func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, timestampFormat string) {
- var levelColor int
- switch entry.Level {
- case DebugLevel:
- levelColor = gray
- case WarnLevel:
- levelColor = yellow
- case ErrorLevel, FatalLevel, PanicLevel:
- levelColor = red
- default:
- levelColor = blue
- }
-
- levelText := strings.ToUpper(entry.Level.String())[0:4]
-
- if !f.FullTimestamp {
- fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%04d] %-44s ", levelColor, levelText, miniTS(), entry.Message)
- } else {
- fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%s] %-44s ", levelColor, levelText, entry.Time.Format(timestampFormat), entry.Message)
- }
- for _, k := range keys {
- v := entry.Data[k]
- fmt.Fprintf(b, " \x1b[%dm%s\x1b[0m=%+v", levelColor, k, v)
- }
-}
-
-func needsQuoting(text string) bool {
- for _, ch := range text {
- if !((ch >= 'a' && ch <= 'z') ||
- (ch >= 'A' && ch <= 'Z') ||
- (ch >= '0' && ch <= '9') ||
- ch == '-' || ch == '.') {
- return false
- }
- }
- return true
-}
-
-func (f *TextFormatter) appendKeyValue(b *bytes.Buffer, key string, value interface{}) {
-
- b.WriteString(key)
- b.WriteByte('=')
-
- switch value := value.(type) {
- case string:
- if needsQuoting(value) {
- b.WriteString(value)
- } else {
- fmt.Fprintf(b, "%q", value)
- }
- case error:
- errmsg := value.Error()
- if needsQuoting(errmsg) {
- b.WriteString(errmsg)
- } else {
- fmt.Fprintf(b, "%q", value)
- }
- default:
- fmt.Fprint(b, value)
- }
-
- b.WriteByte(' ')
-}
diff --git a/Godeps/_workspace/src/github.com/Sirupsen/logrus/writer.go b/Godeps/_workspace/src/github.com/Sirupsen/logrus/writer.go
deleted file mode 100644
index 1e30b1c..0000000
--- a/Godeps/_workspace/src/github.com/Sirupsen/logrus/writer.go
+++ /dev/null
@@ -1,31 +0,0 @@
-package logrus
-
-import (
- "bufio"
- "io"
- "runtime"
-)
-
-func (logger *Logger) Writer() *io.PipeWriter {
- reader, writer := io.Pipe()
-
- go logger.writerScanner(reader)
- runtime.SetFinalizer(writer, writerFinalizer)
-
- return writer
-}
-
-func (logger *Logger) writerScanner(reader *io.PipeReader) {
- scanner := bufio.NewScanner(reader)
- for scanner.Scan() {
- logger.Print(scanner.Text())
- }
- if err := scanner.Err(); err != nil {
- logger.Errorf("Error while reading from Writer: %s", err)
- }
- reader.Close()
-}
-
-func writerFinalizer(writer *io.PipeWriter) {
- writer.Close()
-}
diff --git a/Godeps/_workspace/src/github.com/afex/hystrix-go/LICENSE b/Godeps/_workspace/src/github.com/afex/hystrix-go/LICENSE
deleted file mode 100644
index 998eea7..0000000
--- a/Godeps/_workspace/src/github.com/afex/hystrix-go/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 keith
-
-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/appc/spec/discovery/myapp.html b/Godeps/_workspace/src/github.com/appc/spec/discovery/myapp.html
deleted file mode 100644
index 10c80eb..0000000
--- a/Godeps/_workspace/src/github.com/appc/spec/discovery/myapp.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- My app
-
-
-
-
-
-
-
- My App
-
-
diff --git a/Godeps/_workspace/src/github.com/appc/spec/discovery/myapp2.html b/Godeps/_workspace/src/github.com/appc/spec/discovery/myapp2.html
deleted file mode 100644
index 270b4c6..0000000
--- a/Godeps/_workspace/src/github.com/appc/spec/discovery/myapp2.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- My app
-
-
-
-
-
-
-
- My App
-
-
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/doc.go b/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/doc.go
deleted file mode 100644
index 9cc5734..0000000
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/doc.go
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2015 The appc Authors
-//
-// 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 lastditch provides fallback redefinitions of parts of
-// schemas provided by schema package.
-//
-// Almost no validation of schemas is done (besides checking if data
-// really is `JSON`-encoded and kind is either `ImageManifest` or
-// `PodManifest`. This is to get as much data as possible from an
-// invalid manifest. The main aim of the package is to be used for the
-// better error reporting. The another aim might be to force some
-// operation (like removing a pod), which would otherwise fail because
-// of an invalid manifest.
-//
-// To avoid validation during deserialization, types provided by this
-// package use plain strings.
-package lastditch
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/image.go b/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/image.go
deleted file mode 100644
index dc5055a..0000000
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/image.go
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2015 The appc Authors
-//
-// 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 lastditch
-
-import (
- "encoding/json"
-
- "github.com/appc/spec/schema"
- "github.com/appc/spec/schema/types"
-)
-
-type ImageManifest struct {
- ACVersion string `json:"acVersion"`
- ACKind string `json:"acKind"`
- Name string `json:"name"`
- Labels Labels `json:"labels,omitempty"`
-}
-
-// a type just to avoid a recursion during unmarshalling
-type imageManifest ImageManifest
-
-func (im *ImageManifest) UnmarshalJSON(data []byte) error {
- i := imageManifest(*im)
- err := json.Unmarshal(data, &i)
- if err != nil {
- return err
- }
- if i.ACKind != string(schema.ImageManifestKind) {
- return types.InvalidACKindError(schema.ImageManifestKind)
- }
- *im = ImageManifest(i)
- return nil
-}
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/pod.go b/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/pod.go
deleted file mode 100644
index 2e9d845..0000000
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/pod.go
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2015 The appc Authors
-//
-// 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 lastditch
-
-import (
- "encoding/json"
-
- "github.com/appc/spec/schema"
- "github.com/appc/spec/schema/types"
-)
-
-type PodManifest struct {
- ACVersion string `json:"acVersion"`
- ACKind string `json:"acKind"`
- Apps AppList `json:"apps"`
-}
-
-type AppList []RuntimeApp
-
-type RuntimeApp struct {
- Name string `json:"name"`
- Image RuntimeImage `json:"image"`
-}
-
-type RuntimeImage struct {
- Name string `json:"name"`
- ID string `json:"id"`
- Labels Labels `json:"labels,omitempty"`
-}
-
-// a type just to avoid a recursion during unmarshalling
-type podManifest PodManifest
-
-func (pm *PodManifest) UnmarshalJSON(data []byte) error {
- p := podManifest(*pm)
- err := json.Unmarshal(data, &p)
- if err != nil {
- return err
- }
- if p.ACKind != string(schema.PodManifestKind) {
- return types.InvalidACKindError(schema.PodManifestKind)
- }
- *pm = PodManifest(p)
- return nil
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/Sirupsen/logrus/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/Sirupsen/logrus/LICENSE
deleted file mode 100644
index f090cb4..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/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/blablacar/cnt/Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE
deleted file mode 100644
index 63ed1cf..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2012 Alex Ogier. All rights reserved.
-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/blablacar/cnt/Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE
deleted file mode 100644
index efa1aa1..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE
+++ /dev/null
@@ -1,57 +0,0 @@
-Copyright (c) 2012 Péter Surányi. 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
-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.
-
-----------------------------------------------------------------------
-Portions of inf.Dec's source code have been derived from Go and are
-covered by the following license:
-----------------------------------------------------------------------
-
-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/COPYING b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/COPYING
deleted file mode 100644
index d645695..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/COPYING
+++ /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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/clients/chrome/clip-it-good/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/clients/chrome/clip-it-good/LICENSE
deleted file mode 100644
index 055361b..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/clients/chrome/clip-it-good/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright 2010 Brett Slatkin
-
-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/misc/copyrightifity b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/misc/copyrightifity
deleted file mode 100644
index 14db513..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/misc/copyrightifity
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright 2010 Google 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.
-#
-#
-# This script adds copyright headers to files.
-
-use strict;
-my $header = do { local $/; };
-$header =~ s!\s+$!\n!;
-my $yyyy = (localtime())[5] + 1900;
-$header =~ s/YYYY/$yyyy/ or die;
-
-unless (@ARGV == 1) {
- die "Usage: copyrightify \n";
-}
-
-my $file = shift;
-open(my $fh, $file) or die "Open $file error: $!\n";
-my $source = do { local $/; <$fh> };
-close($fh);
-if ($source =~ /Copyright \d\d\d\d/) {
- print STDERR "# $file - OK\n";
- exit;
-}
-
-my $newsource = $source;
-if ($file =~ /\.(go|java|aidl)$/) {
- $header = "/*\n$header*/\n\n";
- $newsource = $header . $source;
-} elsif ($file =~ /\.py$/) {
- $header = join("", map { "# $_\n" } split(/\n/, $header));
- $newsource = $header . $source;
-} else {
- die "File type not supported.";
-}
-
-
-open(my $fh, ">$file") or die "Open $file error: $!\n";
-print $fh $newsource;
-close($fh) or die;
-
-__END__
-Copyright YYYY The Camlistore Authors
-
-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legal.go b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legal.go
deleted file mode 100644
index a75283f..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legal.go
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-Copyright 2014 The Camlistore Authors
-
-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 legal provides project-wide storage for compiled-in licenses.
-package legal
-
-var licenses []string
-
-func init() {
- RegisterLicense(`
-Copyright 2014 The Camlistore Authors
-
-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.
-`)
-}
-
-// RegisterLicense stores the license text.
-// It doesn't check whether the text was already present.
-func RegisterLicense(text string) {
- licenses = append(licenses, text)
- return
-}
-
-// Licenses returns a slice of the licenses.
-func Licenses() []string {
- return licenses
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legalprint/legalprint.go b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legalprint/legalprint.go
deleted file mode 100644
index e4a3205..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legalprint/legalprint.go
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-Copyright 2014 The Camlistore Authors
-
-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 legalprint provides a printing helper for the legal package.
-package legalprint
-
-import (
- "flag"
- "fmt"
- "io"
-
- "camlistore.org/pkg/legal"
-)
-
-var (
- flagLegal = flag.Bool("legal", false, "show licenses")
-)
-
-// MaybePrint will print the licenses if flagLegal has been set.
-// It will return the value of the flagLegal.
-func MaybePrint(out io.Writer) bool {
- if !*flagLegal {
- return false
- }
- for _, text := range legal.Licenses() {
- fmt.Fprintln(out, text)
- }
- return true
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/bazil.org/fuse/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/bazil.org/fuse/LICENSE
deleted file mode 100644
index d369cb8..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/bazil.org/fuse/LICENSE
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright (c) 2013, 2014 Tommi Virtanen.
-Copyright (c) 2009, 2011, 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.
-
-
-
-The following included software components have additional copyright
-notices and license terms that may differ from the above.
-
-
-File fuse.go:
-
-// Adapted from Plan 9 from User Space's src/cmd/9pfuse/fuse.c,
-// which carries this notice:
-//
-// The files in this directory are subject to the following license.
-//
-// The author of this software is Russ Cox.
-//
-// Copyright (c) 2006 Russ Cox
-//
-// Permission to use, copy, modify, and distribute this software for any
-// purpose without fee is hereby granted, provided that this entire notice
-// is included in all copies of any software which is or includes a copy
-// or modification of this software and in all copies of the supporting
-// documentation for such software.
-//
-// THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
-// WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION OR WARRANTY
-// OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS
-// FITNESS FOR ANY PARTICULAR PURPOSE.
-
-
-File fuse_kernel.go:
-
-// Derived from FUSE's fuse_kernel.h
-/*
- This file defines the kernel interface of FUSE
- Copyright (C) 2001-2007 Miklos Szeredi
-
-
- This -- and only this -- header file may also be distributed under
- the terms of the BSD Licence as follows:
-
- Copyright (C) 2001-2007 Miklos Szeredi. 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 AUTHOR 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 AUTHOR 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/closure/lib/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/closure/lib/LICENSE
deleted file mode 100644
index d9a10c0..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/closure/lib/LICENSE
+++ /dev/null
@@ -1,176 +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
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/LICENSE
deleted file mode 100644
index 6765f09..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009 The goauth2 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/PATENTS b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/PATENTS
deleted file mode 100644
index 9e87163..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/PATENTS
+++ /dev/null
@@ -1,22 +0,0 @@
-Additional IP Rights Grant (Patents)
-
-"This implementation" means the copyrightable works distributed by
-Google as part of the goauth2 project.
-
-Google 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,
-transfer and otherwise run, modify and propagate the contents of this
-implementation of Go, where such license applies only to those patent
-claims, both currently owned or controlled by Google and acquired in
-the future, licensable by Google that are necessarily infringed by this
-implementation of Go. This grant does not include claims that would be
-infringed only as a consequence of further modification of this
-implementation. If you or your agent or exclusive licensee institute or
-order or agree to the institution of patent litigation against any
-entity (including a cross-claim or counterclaim in a lawsuit) alleging
-that this implementation of Go or any code incorporated within this
-implementation of Go constitutes direct or contributory patent
-infringement, or inducement of patent infringement, then any patent
-rights granted to you under this License for this implementation of Go
-shall terminate as of the date such litigation is filed.
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/leveldb-go/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/leveldb-go/LICENSE
deleted file mode 100644
index fec05ce..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/leveldb-go/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 The LevelDB-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/snappy-go/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/snappy-go/LICENSE
deleted file mode 100644
index 6050c10..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/snappy-go/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 The Snappy-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/xsrftoken/COPYING b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/xsrftoken/COPYING
deleted file mode 100644
index d645695..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/xsrftoken/COPYING
+++ /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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/fontawesome/LICENSE.txt b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/fontawesome/LICENSE.txt
deleted file mode 100644
index 1066d2f..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/fontawesome/LICENSE.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-fonts/*: SIL OFL 1.1 (http://scripts.sil.org/OFL)
-css/*: MIT (http://opensource.org/licenses/mit-license.html)
-
-Details at http://fortawesome.github.io/Font-Awesome/license/
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/camlistore/lock/COPYING b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/camlistore/lock/COPYING
deleted file mode 100644
index d645695..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/camlistore/lock/COPYING
+++ /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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/dbm/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/dbm/LICENSE
deleted file mode 100644
index 65d761b..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/dbm/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2013 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/lldb/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/lldb/LICENSE
deleted file mode 100644
index 65d761b..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/lldb/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2013 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/LICENSE
deleted file mode 100644
index 50bbdd2..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2014 The fileutil 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 names of the authors nor the names of the
-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/falloc/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/falloc/LICENSE
deleted file mode 100644
index 1e92e33..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/falloc/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 CZ.NIC z.s.p.o. 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 CZ.NIC 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/hdb/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/hdb/LICENSE
deleted file mode 100644
index 1e92e33..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/hdb/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 CZ.NIC z.s.p.o. 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 CZ.NIC 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/storage/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/storage/LICENSE
deleted file mode 100644
index 1e92e33..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/storage/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 CZ.NIC z.s.p.o. 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 CZ.NIC 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/kv/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/kv/LICENSE
deleted file mode 100644
index 65d761b..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/kv/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2013 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/LICENSE
deleted file mode 100644
index 1e92e33..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 CZ.NIC z.s.p.o. 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 CZ.NIC 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/mersenne/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/mersenne/LICENSE
deleted file mode 100644
index 7150ce3..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/mersenne/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 jnml. 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 jnml nor the names of his
-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/zappy/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/zappy/LICENSE
deleted file mode 100644
index 65d761b..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/zappy/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2013 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/davecgh/go-spew/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/davecgh/go-spew/LICENSE
deleted file mode 100644
index 2a7cfd2..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/davecgh/go-spew/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright (c) 2012-2013 Dave Collins
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/go-sql-driver/mysql/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/go-sql-driver/mysql/LICENSE
deleted file mode 100644
index 14e2f77..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/go-sql-driver/mysql/LICENSE
+++ /dev/null
@@ -1,373 +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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/golang/glog/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/golang/glog/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/golang/glog/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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/gorilla/websocket/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/gorilla/websocket/LICENSE
deleted file mode 100644
index 09e5be6..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/gorilla/websocket/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright (c) 2013, Gorilla web toolkit
-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.
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/lib/pq/LICENSE.md b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/lib/pq/LICENSE.md
deleted file mode 100644
index 5773904..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/lib/pq/LICENSE.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Copyright (c) 2011-2013, 'pq' Contributors
-Portions Copyright (C) 2011 Blake Mizerany
-
-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/russross/blackfriday/LICENSE.txt b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/russross/blackfriday/LICENSE.txt
deleted file mode 100644
index 2885af3..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/russross/blackfriday/LICENSE.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Blackfriday is distributed under the Simplified BSD License:
-
-> Copyright © 2011 Russ Ross
-> 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/rwcarlsen/goexif/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/rwcarlsen/goexif/LICENSE
deleted file mode 100644
index aa62504..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/rwcarlsen/goexif/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-
-Copyright (c) 2012, Robert Carlsen & Contributors
-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/glitch/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/glitch/LICENSE
deleted file mode 100644
index 7efba3b..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/glitch/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-The files in here come from www.glitchthegame.com.
-
-License here: http://www.glitchthegame.com/public-domain-game-art/#licensing
-
-All files are provided by Tiny Speck under the Creative Commons CC0 1.0
-Universal License. This is a broadly permissive "No Rights Reserved" license —
-you may do what you please with what we've provided. Our intention is to
-dedicate these works to the public domain and make them freely available to all,
-without restriction. All files are provided AS-IS. Tiny Speck cannot provide any
-support to help you bring these assets into your own projects.
-
-Note: the Glitch logo and trademark are not among the things we are making
-available under this license. Only items in the files explicitly included herein
-are covered.
-
-There is no obligation to link or credit the works, but if you do, please link
-to glitchthegame.com, our permanent "retirement" site for the game and these
-assets. Of course, links/shoutouts to Tiny Speck (tinyspeck.com) and/or Slack
-(slack.com) are appreciated.
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/LICENSE
deleted file mode 100644
index 6a66aea..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/LICENSE
deleted file mode 100644
index 770c767..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-mgo - MongoDB driver 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/bson/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/bson/LICENSE
deleted file mode 100644
index 8903260..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/bson/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-BSON library for Go
-
-Copyright (c) 2010-2012 - 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/react/LICENSE.txt b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/react/LICENSE.txt
deleted file mode 100644
index 261eeb9..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/react/LICENSE.txt
+++ /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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/github.com/hjfreyer/taglib-go/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/github.com/hjfreyer/taglib-go/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/github.com/hjfreyer/taglib-go/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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/golang.org/x/oauth2/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/golang.org/x/oauth2/LICENSE
deleted file mode 100644
index d02f24f..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/golang.org/x/oauth2/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009 The oauth2 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/api/googleapi/internal/uritemplates/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
deleted file mode 100644
index de9c88c..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Copyright (c) 2013 Joshua Tacoma
-
-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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/cloud/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/cloud/LICENSE
deleted file mode 100644
index a4c5efd..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/cloud/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 2014 Google 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/LICENSE
deleted file mode 100644
index f4988b4..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright 2014, Google 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 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/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/PATENTS b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/PATENTS
deleted file mode 100644
index 619f9db..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/PATENTS
+++ /dev/null
@@ -1,22 +0,0 @@
-Additional IP Rights Grant (Patents)
-
-"This implementation" means the copyrightable works distributed by
-Google as part of the GRPC project.
-
-Google 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,
-transfer and otherwise run, modify and propagate the contents of this
-implementation of GRPC, where such license applies only to those patent
-claims, both currently owned or controlled by Google and acquired in
-the future, licensable by Google that are necessarily infringed by this
-implementation of GRPC. This grant does not include claims that would be
-infringed only as a consequence of further modification of this
-implementation. If you or your agent or exclusive licensee institute or
-order or agree to the institution of patent litigation against any
-entity (including a cross-claim or counterclaim in a lawsuit) alleging
-that this implementation of GRPC or any code incorporated within this
-implementation of GRPC constitutes direct or contributory patent
-infringement, or inducement of patent infringement, then any patent
-rights granted to you under this License for this implementation of GRPC
-shall terminate as of the date such litigation is filed.
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/onsi/gomega/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/onsi/gomega/LICENSE
deleted file mode 100644
index 9415ee7..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/onsi/gomega/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2013-2014 Onsi Fakhouri
-
-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/blablacar/cnt/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE
deleted file mode 100644
index 63ed1cf..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2012 Alex Ogier. All rights reserved.
-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/blablacar/cnt/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE b/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE
deleted file mode 100644
index efa1aa1..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE
+++ /dev/null
@@ -1,57 +0,0 @@
-Copyright (c) 2012 Péter Surányi. 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
-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.
-
-----------------------------------------------------------------------
-Portions of inf.Dec's source code have been derived from Go and are
-covered by the following license:
-----------------------------------------------------------------------
-
-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/blablacar/cnt/log/formatter.go b/Godeps/_workspace/src/github.com/blablacar/cnt/log/formatter.go
deleted file mode 100644
index ae99572..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/log/formatter.go
+++ /dev/null
@@ -1,229 +0,0 @@
-package log
-
-import (
- "bytes"
- "fmt"
- log "github.com/Sirupsen/logrus"
- "github.com/mgutz/ansi"
- "runtime"
- "sort"
- "strings"
- "time"
-)
-
-var pathSkip int = 0
-
-var reset = ansi.ColorCode("reset")
-
-var fileColorNormal = ansi.ColorCode("cyan+b")
-var fileColorFail = ansi.ColorCode("cyan")
-
-var timeColorNormal = ansi.ColorFunc("blue+b")
-var timeColorFail = ansi.ColorFunc("blue")
-
-var lvlColorError = ansi.ColorCode("red+b")
-var lvlColorWarn = ansi.ColorCode("yellow+b")
-var lvlColorInfo = ansi.ColorCode("green")
-var lvlColorDebug = ansi.ColorCode("magenta")
-var lvlColorPanic = ansi.ColorCode(":red+h")
-
-type BlaFormatter struct {
-}
-
-func init() {
- _, file, _, _ := runtime.Caller(0)
- paths := strings.Split(file, "/")
- for i := 0; i < len(paths); i++ {
- if paths[i] == "github.com" {
- pathSkip = i + 2
- break
- }
- }
-}
-
-func (f *BlaFormatter) Format(entry *log.Entry) ([]byte, error) {
- file, line := f.findFileAndLine()
- f.prefixFieldClashes(entry.Data)
- keys := f.prepareKeys(entry)
- time := time.Now().Format("15:04:05")
- level := f.level(entry.Level)
-
- // isColored := isTerminal && (runtime.GOOS != "windows")
-
- paths := strings.SplitN(file, "/", pathSkip+1)
-
- b := &bytes.Buffer{}
- fmt.Fprintf(b, "%s %s%-5s%s %s%30s:%-3d%s %s%-44s%s",
- f.timeColor(entry.Level)(time),
- f.levelColor(entry.Level),
- level,
- reset,
- f.fileColor(entry.Level),
- f.reduceFilePath(paths[pathSkip], 30),
- line,
- reset,
- f.textColor(entry.Level),
- entry.Message,
- reset)
- for _, k := range keys {
- v := entry.Data[k]
- fmt.Fprintf(b, " %s%s%s=%+v", lvlColorInfo, k, reset, v)
- }
- b.WriteByte('\n')
- return b.Bytes(), nil
-}
-
-func (f *BlaFormatter) reduceFilePath(path string, max int) string {
- if len(path) <= max {
- return path
- }
-
- split := strings.Split(path, "/")
- splitlen := len(split)
- reducedSize := len(path)
- var buffer bytes.Buffer
- for i, e := range split {
- if reducedSize > max && i+1 < splitlen {
- buffer.WriteByte(e[0])
- reducedSize -= len(e) - 1
- } else {
- buffer.WriteString(e)
- }
- if i+1 < splitlen {
- buffer.WriteByte('/')
- }
- }
- return buffer.String()
-}
-
-func (f *BlaFormatter) findFileAndLine() (string, int) {
- var file string
- var line int
- for i := 5; ; i++ {
- _, file, line, _ = runtime.Caller(i)
- if !strings.Contains(file, "Sirupsen/logrus") {
- break
- }
- }
- return file, line
-}
-
-func (f *BlaFormatter) prepareKeys(entry *log.Entry) []string {
- var keys []string = make([]string, 0, len(entry.Data))
- for k := range entry.Data {
- keys = append(keys, k)
- }
- sort.Strings(keys)
- return keys
-}
-
-func (f *BlaFormatter) level(level log.Level) string {
- levelText := strings.ToUpper(level.String())
- switch level {
- case log.InfoLevel:
- case log.WarnLevel:
- levelText = levelText[0:4]
- default:
- levelText = levelText[0:5]
- }
- return levelText
-}
-
-func (f *BlaFormatter) fileColor(level log.Level) string {
- switch level {
- case log.DebugLevel, log.InfoLevel:
- return fileColorFail
- default:
- return fileColorNormal
- }
-}
-
-func (f *BlaFormatter) textColor(level log.Level) string {
- switch level {
- case log.WarnLevel:
- return lvlColorWarn
- case log.ErrorLevel, log.FatalLevel, log.PanicLevel:
- return lvlColorError
- default:
- return ""
- }
-}
-
-func (f *BlaFormatter) timeColor(level log.Level) func(string) string {
- switch level {
- case log.DebugLevel, log.InfoLevel:
- return timeColorFail
- default:
- return timeColorNormal
- }
-}
-
-func (f *BlaFormatter) levelColor(level log.Level) string {
- switch level {
- case log.DebugLevel:
- return lvlColorDebug
- case log.WarnLevel:
- return lvlColorWarn
- case log.ErrorLevel:
- return lvlColorError
- case log.FatalLevel, log.PanicLevel:
- return lvlColorPanic
- default:
- return lvlColorInfo
- }
-}
-
-func needsQuoting(text string) bool {
- for _, ch := range text {
- if !((ch >= 'a' && ch <= 'z') ||
- (ch >= 'A' && ch <= 'Z') ||
- (ch >= '0' && ch <= '9') ||
- ch == '-' || ch == '.') {
- return false
- }
- }
- return true
-}
-
-func (f *BlaFormatter) appendKeyValue(b *bytes.Buffer, key string, value interface{}) {
-
- b.WriteString(key)
- b.WriteByte('=')
-
- switch value := value.(type) {
- case string:
- if needsQuoting(value) {
- b.WriteString(value)
- } else {
- fmt.Fprintf(b, "%q", value)
- }
- case error:
- errmsg := value.Error()
- if needsQuoting(errmsg) {
- b.WriteString(errmsg)
- } else {
- fmt.Fprintf(b, "%q", value)
- }
- default:
- fmt.Fprint(b, value)
- }
-
- b.WriteByte(' ')
-}
-
-func (f *BlaFormatter) prefixFieldClashes(data log.Fields) {
- _, ok := data["time"]
- if ok {
- data["fields.time"] = data["time"]
- }
-
- _, ok = data["msg"]
- if ok {
- data["fields.msg"] = data["msg"]
- }
-
- _, ok = data["level"]
- if ok {
- data["fields.level"] = data["level"]
- }
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/spec/image-manifest.go b/Godeps/_workspace/src/github.com/blablacar/cnt/spec/image-manifest.go
deleted file mode 100644
index 3ae19b2..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/spec/image-manifest.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package spec
-
-import (
- "github.com/appc/spec/schema/types"
-)
-
-type CntBuild struct {
- Image types.ACIdentifier `json:"image"`
-}
-
-func (b *CntBuild) NoBuildImage() bool {
- return b.Image == ""
-}
-
-type AciManifest struct {
- NameAndVersion ACFullname `json:"name"`
- From ACFullname `json:"from"`
- Build CntBuild `json:"build"`
- Aci AciDefinition `json:"aci"`
-}
-
-type AciDefinition struct {
- App *CntApp `json:"app,omitempty"`
- Annotations types.Annotations `json:"annotations,omitempty"`
- Dependencies []ACFullname `json:"dependencies,omitempty"`
- PathWhitelist []string `json:"pathWhitelist,omitempty"`
-}
-
-type CntApp struct {
- Exec types.Exec `json:"exec"`
- // EventHandlers []types.EventHandler `json:"eventHandlers,omitempty"`
- User string `json:"user"`
- Group string `json:"group"`
- WorkingDirectory string `json:"workingDirectory,omitempty"`
- Environment types.Environment `json:"environment,omitempty"`
- MountPoints []types.MountPoint `json:"mountPoints,omitempty"`
- Ports []types.Port `json:"ports,omitempty"`
- Isolators types.Isolators `json:"isolators,omitempty"`
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/spec/pod-manifest.go b/Godeps/_workspace/src/github.com/blablacar/cnt/spec/pod-manifest.go
deleted file mode 100644
index ece7895..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/spec/pod-manifest.go
+++ /dev/null
@@ -1,32 +0,0 @@
-package spec
-
-import (
- "github.com/appc/spec/schema"
- "github.com/appc/spec/schema/types"
-)
-
-type PodManifest struct {
- Name ACFullname `json:"name"`
- Pod *PodDefinition `json:"pod"`
-}
-
-type PodDefinition struct {
- Apps []RuntimeApp `json:"apps"`
- Volumes []types.Volume `json:"volumes"`
- Isolators []types.Isolator `json:"isolators"`
- Annotations types.Annotations `json:"annotations"`
- Ports []types.ExposedPort `json:"ports"`
-}
-
-type RuntimeApp struct {
- Dependencies []ACFullname `json:"dependencies"`
- Name string `json:"name"`
- App *CntApp `json:"app"`
- Mounts []schema.Mount `json:"mounts"`
- Annotations types.Annotations `json:"annotations"`
-}
-
-type Env struct {
- Name string `json:"name"`
- Value string `json:"value"`
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/checksum.go b/Godeps/_workspace/src/github.com/blablacar/cnt/utils/checksum.go
deleted file mode 100644
index fdef7db..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/checksum.go
+++ /dev/null
@@ -1,36 +0,0 @@
-package utils
-
-import (
- "crypto/md5"
- "io"
- "math"
- "os"
-)
-
-const filechunk = 8192
-
-func ChecksumFile(path string) ([]byte, error) {
- file, err := os.Open(path)
- if err != nil {
- return nil, err
- }
- defer file.Close()
-
- // calculate the file size
- info, _ := file.Stat()
-
- filesize := info.Size()
-
- blocks := uint64(math.Ceil(float64(filesize) / float64(filechunk)))
-
- hash := md5.New()
-
- for i := uint64(0); i < blocks; i++ {
- blocksize := int(math.Min(filechunk, float64(filesize-int64(i*filechunk))))
- buf := make([]byte, blocksize)
-
- file.Read(buf)
- io.WriteString(hash, string(buf)) // append into the hash
- }
- return hash.Sum(nil), nil
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/files.go b/Godeps/_workspace/src/github.com/blablacar/cnt/utils/files.go
deleted file mode 100644
index 7e58f9c..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/files.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package utils
-
-import (
- "io"
- "os"
-)
-
-func IsDirEmpty(name string) (bool, error) {
- f, err := os.Open(name)
- if err != nil {
- return false, err
- }
- defer f.Close()
-
- _, err = f.Readdir(1)
- if err == io.EOF {
- return true, nil
- }
- return false, err // Either not empty or error, suits both cases
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/image-manifest.go b/Godeps/_workspace/src/github.com/blablacar/cnt/utils/image-manifest.go
deleted file mode 100644
index db5bd85..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/image-manifest.go
+++ /dev/null
@@ -1,89 +0,0 @@
-package utils
-
-import (
- "github.com/appc/spec/schema"
- "github.com/appc/spec/schema/types"
- "github.com/blablacar/cnt/spec"
- "io/ioutil"
-)
-
-//
-//func ReadManifest(path string) *schema.ImageManifest {
-// im := new(schema.ImageManifest)
-// content, err := ioutil.ReadFile(path)
-// if err != nil {
-// panic(err)
-//// config.GetConfig().Log.Panic("Cannot read manifest file", err)
-// }
-// im.UnmarshalJSON(content)
-// return im
-//}
-
-func WriteImageManifest(m *spec.AciManifest, targetFile string, projectName string) {
- name, err := types.NewACIdentifier(m.NameAndVersion.Name())
- if err != nil {
- panic(err)
- }
-
- version := m.NameAndVersion.Version()
- if version == "" {
- version = GenerateVersion()
- }
-
- labels := types.Labels{}
- labels = append(labels, types.Label{Name: "version", Value: version})
- labels = append(labels, types.Label{Name: "os", Value: "linux"})
- labels = append(labels, types.Label{Name: "arch", Value: "amd64"})
-
- if m.Aci.App.User == "" {
- m.Aci.App.User = "0"
- }
- if m.Aci.App.Group == "" {
- m.Aci.App.Group = "0"
- }
-
- im := schema.BlankImageManifest()
- im.Annotations = m.Aci.Annotations
- im.Dependencies = toAppcDependencies(m.Aci.Dependencies)
- im.Name = *name
- im.Labels = labels
-
- im.App = &types.App{
- Exec: m.Aci.App.Exec,
- EventHandlers: []types.EventHandler{{Name: "pre-start", Exec: []string{"/cnt/bin/prestart"}}},
- User: m.Aci.App.User,
- Group: m.Aci.App.Group,
- WorkingDirectory: m.Aci.App.WorkingDirectory,
- Environment: m.Aci.App.Environment,
- MountPoints: m.Aci.App.MountPoints,
- Ports: m.Aci.App.Ports,
- Isolators: m.Aci.App.Isolators,
- }
-
- buff, err := im.MarshalJSON()
- if err != nil {
- panic(err)
- }
- err = ioutil.WriteFile(targetFile, buff, 0644)
- if err != nil {
- panic(err)
- }
-}
-
-func toAppcDependencies(dependencies []spec.ACFullname) types.Dependencies {
- appcDependencies := types.Dependencies{}
- for _, dep := range dependencies {
- id, err := types.NewACIdentifier(dep.Name())
- if err != nil {
- panic(err)
- }
- t := types.Dependency{ImageName: *id}
- if dep.Version() != "" {
- t.Labels = types.Labels{}
- t.Labels = append(t.Labels, types.Label{Name: "version", Value: dep.Version()})
- }
-
- appcDependencies = append(appcDependencies, t)
- }
- return appcDependencies
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/pod-manifest.go b/Godeps/_workspace/src/github.com/blablacar/cnt/utils/pod-manifest.go
deleted file mode 100644
index fdcee72..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/pod-manifest.go
+++ /dev/null
@@ -1,28 +0,0 @@
-package utils
-
-import (
- "github.com/appc/spec/schema"
- "io/ioutil"
-)
-
-const POD_MANIFEST = `{
- "acVersion": "0.6.1",
- "acKind": "PodManifest"
-}`
-
-func BasicPodManifest() *schema.PodManifest {
- im := new(schema.PodManifest)
- im.UnmarshalJSON([]byte(POD_MANIFEST))
- return im
-}
-
-func WritePodManifest(im *schema.PodManifest, targetFile string) {
- buff, err := im.MarshalJSON()
- if err != nil {
- panic(err)
- }
- err = ioutil.WriteFile(targetFile, []byte(buff), 0644)
- if err != nil {
- panic(err)
- }
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/sha512sum.go b/Godeps/_workspace/src/github.com/blablacar/cnt/utils/sha512sum.go
deleted file mode 100644
index 1076dea..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/sha512sum.go
+++ /dev/null
@@ -1,32 +0,0 @@
-package utils
-
-import (
- "crypto/sha512"
- "fmt"
- "io"
- "os"
-)
-
-const StdinFileName = "-"
-
-func Sha512sum(filePath string) (res string, err error) {
- // Open file.
- var fr *os.File
- if filePath == StdinFileName {
- fr = os.Stdin
- } else {
- fr, err = os.Open(filePath)
- if err != nil {
- return "", err
- }
- defer fr.Close()
- }
-
- h := sha512.New()
- _, err = io.Copy(h, fr)
- if err != nil {
- return "", err
- }
-
- return fmt.Sprintf("%x", h.Sum(nil)), nil
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/tar.go b/Godeps/_workspace/src/github.com/blablacar/cnt/utils/tar.go
deleted file mode 100644
index 6c61a9a..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/tar.go
+++ /dev/null
@@ -1,16 +0,0 @@
-package utils
-
-func Tar(zip bool, destination string, source ...string) error {
- zipFlag := ""
- if zip {
- zipFlag = "z"
- }
-
- source = append(source, "")
- source = append(source, "")
- copy(source[2:], source[0:])
- source[0] = "cpf" + zipFlag
- source[1] = destination
-
- return ExecCmd("tar", source...)
-}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/version_generator.go b/Godeps/_workspace/src/github.com/blablacar/cnt/utils/version_generator.go
deleted file mode 100644
index 964c25b..0000000
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/version_generator.go
+++ /dev/null
@@ -1,19 +0,0 @@
-package utils
-
-import (
- "fmt"
- "time"
-)
-
-func GenerateVersion() string {
- return generateDate() + "-v" + GitHash()
-}
-
-func generateDate() string {
- return fmt.Sprintf("%s", time.Now().Format("20060102.150405"))
-}
-
-func GitHash() string {
- out, _ := ExecCmdGetOutput("git", "rev-parse", "--short", "HEAD")
- return out
-}
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/COPYING b/Godeps/_workspace/src/github.com/camlistore/camlistore/COPYING
deleted file mode 100644
index d645695..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/COPYING
+++ /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/camlistore/camlistore/clients/chrome/clip-it-good/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/clients/chrome/clip-it-good/LICENSE
deleted file mode 100644
index 055361b..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/clients/chrome/clip-it-good/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright 2010 Brett Slatkin
-
-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/camlistore/camlistore/misc/copyrightifity b/Godeps/_workspace/src/github.com/camlistore/camlistore/misc/copyrightifity
deleted file mode 100644
index 14db513..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/misc/copyrightifity
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright 2010 Google 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.
-#
-#
-# This script adds copyright headers to files.
-
-use strict;
-my $header = do { local $/; };
-$header =~ s!\s+$!\n!;
-my $yyyy = (localtime())[5] + 1900;
-$header =~ s/YYYY/$yyyy/ or die;
-
-unless (@ARGV == 1) {
- die "Usage: copyrightify \n";
-}
-
-my $file = shift;
-open(my $fh, $file) or die "Open $file error: $!\n";
-my $source = do { local $/; <$fh> };
-close($fh);
-if ($source =~ /Copyright \d\d\d\d/) {
- print STDERR "# $file - OK\n";
- exit;
-}
-
-my $newsource = $source;
-if ($file =~ /\.(go|java|aidl)$/) {
- $header = "/*\n$header*/\n\n";
- $newsource = $header . $source;
-} elsif ($file =~ /\.py$/) {
- $header = join("", map { "# $_\n" } split(/\n/, $header));
- $newsource = $header . $source;
-} else {
- die "File type not supported.";
-}
-
-
-open(my $fh, ">$file") or die "Open $file error: $!\n";
-print $fh $newsource;
-close($fh) or die;
-
-__END__
-Copyright YYYY The Camlistore Authors
-
-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/camlistore/camlistore/pkg/legal/legal.go b/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legal.go
deleted file mode 100644
index a75283f..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legal.go
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-Copyright 2014 The Camlistore Authors
-
-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 legal provides project-wide storage for compiled-in licenses.
-package legal
-
-var licenses []string
-
-func init() {
- RegisterLicense(`
-Copyright 2014 The Camlistore Authors
-
-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.
-`)
-}
-
-// RegisterLicense stores the license text.
-// It doesn't check whether the text was already present.
-func RegisterLicense(text string) {
- licenses = append(licenses, text)
- return
-}
-
-// Licenses returns a slice of the licenses.
-func Licenses() []string {
- return licenses
-}
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legalprint/legalprint.go b/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legalprint/legalprint.go
deleted file mode 100644
index e4a3205..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/legal/legalprint/legalprint.go
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-Copyright 2014 The Camlistore Authors
-
-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 legalprint provides a printing helper for the legal package.
-package legalprint
-
-import (
- "flag"
- "fmt"
- "io"
-
- "camlistore.org/pkg/legal"
-)
-
-var (
- flagLegal = flag.Bool("legal", false, "show licenses")
-)
-
-// MaybePrint will print the licenses if flagLegal has been set.
-// It will return the value of the flagLegal.
-func MaybePrint(out io.Writer) bool {
- if !*flagLegal {
- return false
- }
- for _, text := range legal.Licenses() {
- fmt.Fprintln(out, text)
- }
- return true
-}
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/bazil.org/fuse/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/bazil.org/fuse/LICENSE
deleted file mode 100644
index d369cb8..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/bazil.org/fuse/LICENSE
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright (c) 2013, 2014 Tommi Virtanen.
-Copyright (c) 2009, 2011, 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.
-
-
-
-The following included software components have additional copyright
-notices and license terms that may differ from the above.
-
-
-File fuse.go:
-
-// Adapted from Plan 9 from User Space's src/cmd/9pfuse/fuse.c,
-// which carries this notice:
-//
-// The files in this directory are subject to the following license.
-//
-// The author of this software is Russ Cox.
-//
-// Copyright (c) 2006 Russ Cox
-//
-// Permission to use, copy, modify, and distribute this software for any
-// purpose without fee is hereby granted, provided that this entire notice
-// is included in all copies of any software which is or includes a copy
-// or modification of this software and in all copies of the supporting
-// documentation for such software.
-//
-// THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
-// WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION OR WARRANTY
-// OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS
-// FITNESS FOR ANY PARTICULAR PURPOSE.
-
-
-File fuse_kernel.go:
-
-// Derived from FUSE's fuse_kernel.h
-/*
- This file defines the kernel interface of FUSE
- Copyright (C) 2001-2007 Miklos Szeredi
-
-
- This -- and only this -- header file may also be distributed under
- the terms of the BSD Licence as follows:
-
- Copyright (C) 2001-2007 Miklos Szeredi. 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 AUTHOR 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 AUTHOR 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/camlistore/camlistore/third_party/closure/lib/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/closure/lib/LICENSE
deleted file mode 100644
index d9a10c0..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/closure/lib/LICENSE
+++ /dev/null
@@ -1,176 +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
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/LICENSE
deleted file mode 100644
index 6765f09..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009 The goauth2 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/camlistore/camlistore/third_party/code.google.com/p/goauth2/PATENTS b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/PATENTS
deleted file mode 100644
index 9e87163..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/goauth2/PATENTS
+++ /dev/null
@@ -1,22 +0,0 @@
-Additional IP Rights Grant (Patents)
-
-"This implementation" means the copyrightable works distributed by
-Google as part of the goauth2 project.
-
-Google 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,
-transfer and otherwise run, modify and propagate the contents of this
-implementation of Go, where such license applies only to those patent
-claims, both currently owned or controlled by Google and acquired in
-the future, licensable by Google that are necessarily infringed by this
-implementation of Go. This grant does not include claims that would be
-infringed only as a consequence of further modification of this
-implementation. If you or your agent or exclusive licensee institute or
-order or agree to the institution of patent litigation against any
-entity (including a cross-claim or counterclaim in a lawsuit) alleging
-that this implementation of Go or any code incorporated within this
-implementation of Go constitutes direct or contributory patent
-infringement, or inducement of patent infringement, then any patent
-rights granted to you under this License for this implementation of Go
-shall terminate as of the date such litigation is filed.
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/leveldb-go/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/leveldb-go/LICENSE
deleted file mode 100644
index fec05ce..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/leveldb-go/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 The LevelDB-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/camlistore/camlistore/third_party/code.google.com/p/snappy-go/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/snappy-go/LICENSE
deleted file mode 100644
index 6050c10..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/snappy-go/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 The Snappy-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/camlistore/camlistore/third_party/code.google.com/p/xsrftoken/COPYING b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/xsrftoken/COPYING
deleted file mode 100644
index d645695..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/code.google.com/p/xsrftoken/COPYING
+++ /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/camlistore/camlistore/third_party/fontawesome/LICENSE.txt b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/fontawesome/LICENSE.txt
deleted file mode 100644
index 1066d2f..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/fontawesome/LICENSE.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-fonts/*: SIL OFL 1.1 (http://scripts.sil.org/OFL)
-css/*: MIT (http://opensource.org/licenses/mit-license.html)
-
-Details at http://fortawesome.github.io/Font-Awesome/license/
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/camlistore/lock/COPYING b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/camlistore/lock/COPYING
deleted file mode 100644
index d645695..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/camlistore/lock/COPYING
+++ /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/camlistore/camlistore/third_party/github.com/cznic/exp/dbm/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/dbm/LICENSE
deleted file mode 100644
index 65d761b..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/dbm/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2013 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/camlistore/camlistore/third_party/github.com/cznic/exp/lldb/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/lldb/LICENSE
deleted file mode 100644
index 65d761b..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/exp/lldb/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2013 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/camlistore/camlistore/third_party/github.com/cznic/fileutil/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/LICENSE
deleted file mode 100644
index 50bbdd2..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2014 The fileutil 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 names of the authors nor the names of the
-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/camlistore/camlistore/third_party/github.com/cznic/fileutil/falloc/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/falloc/LICENSE
deleted file mode 100644
index 1e92e33..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/falloc/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 CZ.NIC z.s.p.o. 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 CZ.NIC 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/camlistore/camlistore/third_party/github.com/cznic/fileutil/hdb/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/hdb/LICENSE
deleted file mode 100644
index 1e92e33..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/hdb/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 CZ.NIC z.s.p.o. 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 CZ.NIC 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/camlistore/camlistore/third_party/github.com/cznic/fileutil/storage/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/storage/LICENSE
deleted file mode 100644
index 1e92e33..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/fileutil/storage/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 CZ.NIC z.s.p.o. 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 CZ.NIC 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/camlistore/camlistore/third_party/github.com/cznic/kv/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/kv/LICENSE
deleted file mode 100644
index 65d761b..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/kv/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2013 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/camlistore/camlistore/third_party/github.com/cznic/mathutil/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/LICENSE
deleted file mode 100644
index 1e92e33..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 CZ.NIC z.s.p.o. 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 CZ.NIC 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/camlistore/camlistore/third_party/github.com/cznic/mathutil/mersenne/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/mersenne/LICENSE
deleted file mode 100644
index 7150ce3..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/mathutil/mersenne/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2011 jnml. 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 jnml nor the names of his
-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/camlistore/camlistore/third_party/github.com/cznic/sortutil/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/sortutil/LICENSE
deleted file mode 100644
index 6a66aea..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/sortutil/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/camlistore/camlistore/third_party/github.com/cznic/zappy/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/zappy/LICENSE
deleted file mode 100644
index 65d761b..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/zappy/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2013 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/camlistore/camlistore/third_party/github.com/davecgh/go-spew/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/davecgh/go-spew/LICENSE
deleted file mode 100644
index 2a7cfd2..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/davecgh/go-spew/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright (c) 2012-2013 Dave Collins
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/go-sql-driver/mysql/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/go-sql-driver/mysql/LICENSE
deleted file mode 100644
index 14e2f77..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/go-sql-driver/mysql/LICENSE
+++ /dev/null
@@ -1,373 +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/camlistore/camlistore/third_party/github.com/golang/glog/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/golang/glog/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/golang/glog/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/camlistore/camlistore/third_party/github.com/gorilla/websocket/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/gorilla/websocket/LICENSE
deleted file mode 100644
index 09e5be6..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/gorilla/websocket/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright (c) 2013, Gorilla web toolkit
-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.
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/lib/pq/LICENSE.md b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/lib/pq/LICENSE.md
deleted file mode 100644
index 5773904..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/lib/pq/LICENSE.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Copyright (c) 2011-2013, 'pq' Contributors
-Portions Copyright (C) 2011 Blake Mizerany
-
-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/camlistore/camlistore/third_party/github.com/russross/blackfriday/LICENSE.txt b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/russross/blackfriday/LICENSE.txt
deleted file mode 100644
index 2885af3..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/russross/blackfriday/LICENSE.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Blackfriday is distributed under the Simplified BSD License:
-
-> Copyright © 2011 Russ Ross
-> 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/camlistore/camlistore/third_party/github.com/rwcarlsen/goexif/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/rwcarlsen/goexif/LICENSE
deleted file mode 100644
index aa62504..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/rwcarlsen/goexif/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-
-Copyright (c) 2012, Robert Carlsen & Contributors
-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/camlistore/camlistore/third_party/glitch/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/glitch/LICENSE
deleted file mode 100644
index 7efba3b..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/glitch/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-The files in here come from www.glitchthegame.com.
-
-License here: http://www.glitchthegame.com/public-domain-game-art/#licensing
-
-All files are provided by Tiny Speck under the Creative Commons CC0 1.0
-Universal License. This is a broadly permissive "No Rights Reserved" license —
-you may do what you please with what we've provided. Our intention is to
-dedicate these works to the public domain and make them freely available to all,
-without restriction. All files are provided AS-IS. Tiny Speck cannot provide any
-support to help you bring these assets into your own projects.
-
-Note: the Glitch logo and trademark are not among the things we are making
-available under this license. Only items in the files explicitly included herein
-are covered.
-
-There is no obligation to link or credit the works, but if you do, please link
-to glitchthegame.com, our permanent "retirement" site for the game and these
-assets. Of course, links/shoutouts to Tiny Speck (tinyspeck.com) and/or Slack
-(slack.com) are appreciated.
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/LICENSE
deleted file mode 100644
index 6a66aea..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/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/camlistore/camlistore/third_party/golang.org/x/image/PATENTS b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/PATENTS
deleted file mode 100644
index 7330990..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/PATENTS
+++ /dev/null
@@ -1,22 +0,0 @@
-Additional IP Rights Grant (Patents)
-
-"This implementation" means the copyrightable works distributed by
-Google as part of the Go project.
-
-Google 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,
-transfer and otherwise run, modify and propagate the contents of this
-implementation of Go, where such license applies only to those patent
-claims, both currently owned or controlled by Google and acquired in
-the future, licensable by Google that are necessarily infringed by this
-implementation of Go. This grant does not include claims that would be
-infringed only as a consequence of further modification of this
-implementation. If you or your agent or exclusive licensee institute or
-order or agree to the institution of patent litigation against any
-entity (including a cross-claim or counterclaim in a lawsuit) alleging
-that this implementation of Go or any code incorporated within this
-implementation of Go constitutes direct or contributory patent
-infringement, or inducement of patent infringement, then any patent
-rights granted to you under this License for this implementation of Go
-shall terminate as of the date such litigation is filed.
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/LICENSE
deleted file mode 100644
index 770c767..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-mgo - MongoDB driver 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/camlistore/camlistore/third_party/labix.org/v2/mgo/bson/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/bson/LICENSE
deleted file mode 100644
index 8903260..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/labix.org/v2/mgo/bson/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-BSON library for Go
-
-Copyright (c) 2010-2012 - 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/camlistore/camlistore/third_party/react/LICENSE.txt b/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/react/LICENSE.txt
deleted file mode 100644
index 261eeb9..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/react/LICENSE.txt
+++ /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/camlistore/camlistore/vendor/github.com/hjfreyer/taglib-go/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/github.com/hjfreyer/taglib-go/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/github.com/hjfreyer/taglib-go/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/camlistore/camlistore/vendor/golang.org/x/oauth2/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/golang.org/x/oauth2/LICENSE
deleted file mode 100644
index d02f24f..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/golang.org/x/oauth2/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009 The oauth2 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/camlistore/camlistore/vendor/google.golang.org/api/googleapi/internal/uritemplates/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
deleted file mode 100644
index de9c88c..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Copyright (c) 2013 Joshua Tacoma
-
-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/camlistore/camlistore/vendor/google.golang.org/cloud/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/cloud/LICENSE
deleted file mode 100644
index a4c5efd..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/cloud/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 2014 Google 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/camlistore/camlistore/vendor/google.golang.org/grpc/LICENSE b/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/LICENSE
deleted file mode 100644
index f4988b4..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright 2014, Google 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 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/camlistore/camlistore/vendor/google.golang.org/grpc/PATENTS b/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/PATENTS
deleted file mode 100644
index 619f9db..0000000
--- a/Godeps/_workspace/src/github.com/camlistore/camlistore/vendor/google.golang.org/grpc/PATENTS
+++ /dev/null
@@ -1,22 +0,0 @@
-Additional IP Rights Grant (Patents)
-
-"This implementation" means the copyrightable works distributed by
-Google as part of the GRPC project.
-
-Google 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,
-transfer and otherwise run, modify and propagate the contents of this
-implementation of GRPC, where such license applies only to those patent
-claims, both currently owned or controlled by Google and acquired in
-the future, licensable by Google that are necessarily infringed by this
-implementation of GRPC. This grant does not include claims that would be
-infringed only as a consequence of further modification of this
-implementation. If you or your agent or exclusive licensee institute or
-order or agree to the institution of patent litigation against any
-entity (including a cross-claim or counterclaim in a lawsuit) alleging
-that this implementation of GRPC or any code incorporated within this
-implementation of GRPC constitutes direct or contributory patent
-infringement, or inducement of patent infringement, then any patent
-rights granted to you under this License for this implementation of GRPC
-shall terminate as of the date such litigation is filed.
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/akrennmair/gopcap/LICENSE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/akrennmair/gopcap/LICENSE
deleted file mode 100644
index 385fac9..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/akrennmair/gopcap/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009-2011 Andreas Krennmair. 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 Andreas Krennmair 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/coreos/etcd/Godeps/_workspace/src/github.com/bgentry/speakeasy/LICENSE_WINDOWS b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/bgentry/speakeasy/LICENSE_WINDOWS
deleted file mode 100644
index ff177f6..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/bgentry/speakeasy/LICENSE_WINDOWS
+++ /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 [2013] [the CloudFoundry Authors]
-
-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/coreos/etcd/Godeps/_workspace/src/github.com/boltdb/bolt/LICENSE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/boltdb/bolt/LICENSE
deleted file mode 100644
index 004e77f..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/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/coreos/etcd/Godeps/_workspace/src/github.com/bradfitz/http2/LICENSE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/bradfitz/http2/LICENSE
deleted file mode 100644
index 2dc6853..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/bradfitz/http2/LICENSE
+++ /dev/null
@@ -1,7 +0,0 @@
-Copyright 2014 Google & the Go AUTHORS
-
-Go AUTHORS are:
-See https://code.google.com/p/go/source/browse/AUTHORS
-
-Licensed under the terms of Go itself:
-https://code.google.com/p/go/source/browse/LICENSE
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/cheggaaa/pb/LICENSE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/cheggaaa/pb/LICENSE
deleted file mode 100644
index 13ef3fe..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/cheggaaa/pb/LICENSE
+++ /dev/null
@@ -1,12 +0,0 @@
-Copyright (c) 2012, Sergey Cherepanov
-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.
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/codegangsta/cli/LICENSE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/codegangsta/cli/LICENSE
deleted file mode 100644
index 5515ccf..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/codegangsta/cli/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (C) 2013 Jeremy Saenz
-All Rights Reserved.
-
-MIT LICENSE
-
-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/coreos/etcd/Godeps/_workspace/src/github.com/golang/glog/LICENSE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/golang/glog/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/golang/glog/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/coreos/etcd/Godeps/_workspace/src/github.com/prometheus/procfs/LICENSE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/prometheus/procfs/LICENSE
deleted file mode 100644
index 261eeb9..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/prometheus/procfs/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/coreos/etcd/Godeps/_workspace/src/github.com/prometheus/procfs/NOTICE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/prometheus/procfs/NOTICE
deleted file mode 100644
index 53c5e9a..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/prometheus/procfs/NOTICE
+++ /dev/null
@@ -1,7 +0,0 @@
-procfs provides functions to retrieve system, kernel and process
-metrics from the pseudo-filesystem proc.
-
-Copyright 2014-2015 The Prometheus Authors
-
-This product includes software developed at
-SoundCloud Ltd. (http://soundcloud.com/).
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/oauth2/LICENSE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/oauth2/LICENSE
deleted file mode 100644
index d02f24f..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/oauth2/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009 The oauth2 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/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc/LICENSE b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc/LICENSE
deleted file mode 100644
index f4988b4..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright 2014, Google 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 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/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc/PATENTS b/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc/PATENTS
deleted file mode 100644
index 619f9db..0000000
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc/PATENTS
+++ /dev/null
@@ -1,22 +0,0 @@
-Additional IP Rights Grant (Patents)
-
-"This implementation" means the copyrightable works distributed by
-Google as part of the GRPC project.
-
-Google 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,
-transfer and otherwise run, modify and propagate the contents of this
-implementation of GRPC, where such license applies only to those patent
-claims, both currently owned or controlled by Google and acquired in
-the future, licensable by Google that are necessarily infringed by this
-implementation of GRPC. This grant does not include claims that would be
-infringed only as a consequence of further modification of this
-implementation. If you or your agent or exclusive licensee institute or
-order or agree to the institution of patent litigation against any
-entity (including a cross-claim or counterclaim in a lawsuit) alleging
-that this implementation of GRPC or any code incorporated within this
-implementation of GRPC constitutes direct or contributory patent
-infringement, or inducement of patent infringement, then any patent
-rights granted to you under this License for this implementation of GRPC
-shall terminate as of the date such litigation is filed.
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/LICENSE b/Godeps/_workspace/src/github.com/coreos/fleet/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/LICENSE
deleted file mode 100644
index 5dc6826..0000000
--- a/Godeps/_workspace/src/github.com/coreos/fleet/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009,2014 Google 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 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/coreos/fleet/Godeps/_workspace/src/github.com/godbus/dbus/LICENSE b/Godeps/_workspace/src/github.com/coreos/fleet/Godeps/_workspace/src/github.com/godbus/dbus/LICENSE
deleted file mode 100644
index 670d88f..0000000
--- a/Godeps/_workspace/src/github.com/coreos/fleet/Godeps/_workspace/src/github.com/godbus/dbus/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2013, Georg Reinke (), Google
-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/coreos/fleet/Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/LICENSE b/Godeps/_workspace/src/github.com/coreos/fleet/Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
deleted file mode 100644
index de9c88c..0000000
--- a/Godeps/_workspace/src/github.com/coreos/fleet/Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Copyright (c) 2013 Joshua Tacoma
-
-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/coreos/fleet/pkg/lease/etcd.go b/Godeps/_workspace/src/github.com/coreos/fleet/pkg/lease/etcd.go
deleted file mode 100644
index 15671d4..0000000
--- a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/lease/etcd.go
+++ /dev/null
@@ -1,205 +0,0 @@
-// Copyright 2014 CoreOS, 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.
-
-package lease
-
-import (
- "encoding/json"
- "path"
- "time"
-
- etcd "github.com/coreos/etcd/client"
- "golang.org/x/net/context"
-)
-
-const (
- leasePrefix = "lease"
-)
-
-type etcdLeaseMetadata struct {
- MachineID string
- Version int
-}
-
-// etcdLease implements the Lease interface
-type etcdLease struct {
- mgr *etcdLeaseManager
- key string
- meta etcdLeaseMetadata
- idx uint64
- ttl time.Duration
-}
-
-func (l *etcdLease) Release() error {
- opts := &etcd.DeleteOptions{
- PrevIndex: l.idx,
- }
- _, err := l.mgr.kAPI.Delete(l.mgr.ctx(), l.key, opts)
- return err
-}
-
-func (l *etcdLease) Renew(period time.Duration) error {
- val, err := serializeLeaseMetadata(l.meta.MachineID, l.meta.Version)
- opts := &etcd.SetOptions{
- PrevIndex: l.idx,
- TTL: period,
- }
- resp, err := l.mgr.kAPI.Set(l.mgr.ctx(), l.key, val, opts)
- if err != nil {
- return err
- }
-
- renewed := l.mgr.leaseFromResponse(resp)
- *l = *renewed
-
- return nil
-}
-
-func (l *etcdLease) MachineID() string {
- return l.meta.MachineID
-}
-
-func (l *etcdLease) Version() int {
- return l.meta.Version
-}
-
-func (l *etcdLease) Index() uint64 {
- return l.idx
-}
-
-func (l *etcdLease) TimeRemaining() time.Duration {
- return l.ttl
-}
-
-func serializeLeaseMetadata(machID string, ver int) (string, error) {
- meta := etcdLeaseMetadata{
- MachineID: machID,
- Version: ver,
- }
-
- b, err := json.Marshal(meta)
- if err != nil {
- return "", err
- }
-
- return string(b), nil
-}
-
-type etcdLeaseManager struct {
- kAPI etcd.KeysAPI
- keyPrefix string
- reqTimeout time.Duration
-}
-
-func NewEtcdLeaseManager(kAPI etcd.KeysAPI, keyPrefix string, reqTimeout time.Duration) *etcdLeaseManager {
- return &etcdLeaseManager{kAPI: kAPI, keyPrefix: keyPrefix, reqTimeout: reqTimeout}
-}
-
-func (r *etcdLeaseManager) ctx() context.Context {
- ctx, _ := context.WithTimeout(context.Background(), r.reqTimeout)
- return ctx
-}
-
-func (r *etcdLeaseManager) leasePath(name string) string {
- return path.Join(r.keyPrefix, leasePrefix, name)
-}
-
-func (r *etcdLeaseManager) GetLease(name string) (Lease, error) {
- key := r.leasePath(name)
- resp, err := r.kAPI.Get(r.ctx(), key, nil)
- if err != nil {
- if isEtcdError(err, etcd.ErrorCodeKeyNotFound) {
- err = nil
- }
- return nil, err
- }
-
- l := r.leaseFromResponse(resp)
- return l, nil
-}
-
-func (r *etcdLeaseManager) StealLease(name, machID string, ver int, period time.Duration, idx uint64) (Lease, error) {
- val, err := serializeLeaseMetadata(machID, ver)
- if err != nil {
- return nil, err
- }
-
- key := r.leasePath(name)
- opts := &etcd.SetOptions{
- PrevIndex: idx,
- TTL: period,
- }
- resp, err := r.kAPI.Set(r.ctx(), key, val, opts)
- if err != nil {
- if isEtcdError(err, etcd.ErrorCodeNodeExist) {
- err = nil
- }
- return nil, err
- }
-
- l := r.leaseFromResponse(resp)
- return l, nil
-}
-
-func (r *etcdLeaseManager) AcquireLease(name string, machID string, ver int, period time.Duration) (Lease, error) {
- val, err := serializeLeaseMetadata(machID, ver)
- if err != nil {
- return nil, err
- }
-
- key := r.leasePath(name)
- opts := &etcd.SetOptions{
- TTL: period,
- PrevExist: etcd.PrevNoExist,
- }
-
- resp, err := r.kAPI.Set(r.ctx(), key, val, opts)
- if err != nil {
- if isEtcdError(err, etcd.ErrorCodeNodeExist) {
- err = nil
- }
- return nil, err
- }
-
- l := r.leaseFromResponse(resp)
- return l, nil
-}
-
-func (r *etcdLeaseManager) leaseFromResponse(res *etcd.Response) *etcdLease {
- l := &etcdLease{
- mgr: r,
- key: res.Node.Key,
- idx: res.Node.ModifiedIndex,
- ttl: res.Node.TTLDuration(),
- }
-
- err := json.Unmarshal([]byte(res.Node.Value), &l.meta)
-
- // fall back to using the entire value as the MachineID for
- // backwards-compatibility with engines that are not aware
- // of this versioning mechanism
- if err != nil {
- l.meta = etcdLeaseMetadata{
- MachineID: res.Node.Value,
- Version: 0,
- }
- }
-
- return l
-}
-
-func isEtcdError(err error, code int) bool {
- eerr, ok := err.(etcd.Error)
- return ok && eerr.Code == code
-}
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/lease/interface.go b/Godeps/_workspace/src/github.com/coreos/fleet/pkg/lease/interface.go
deleted file mode 100644
index 3b87ca0..0000000
--- a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/lease/interface.go
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright 2014 CoreOS, 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.
-
-package lease
-
-import "time"
-
-// Lease proxies to an auto-expiring lease stored in a LeaseRegistry.
-// The creator of a Lease must repeatedly call Renew to keep their lease
-// from expiring.
-type Lease interface {
- // Renew attempts to extend the Lease TTL to the provided duration.
- // The operation will succeed only if the Lease has not changed in
- // the LeaseRegistry since it was last renewed or first acquired.
- // An error is returned if the Lease has already expired, or if the
- // operation fails for any other reason.
- Renew(time.Duration) error
-
- // Release relinquishes the ownership of a Lease back to the Registry.
- // After calling Release, the Lease object should be discarded. An
- // error is returned if the Lease has already expired, or if the
- // operation fails for any other reason.
- Release() error
-
- // MachineID returns the ID of the Machine that holds this Lease. This
- // value must be considered a cached value as it is not guaranteed to
- // be correct.
- MachineID() string
-
- // Version returns the current version at which the lessee is operating.
- // This value has the same correctness guarantees as MachineID.
- // It is up to the caller to determine what this Version means.
- Version() int
-
- // Index exposes the relative time at which the Lease was created or
- // renewed. For example, this could be implemented as the ModifiedIndex
- // field of a node in etcd.
- Index() uint64
-
- // TimeRemaining represents the amount of time left on the Lease when
- // it was fetched from the LeaseRegistry.
- TimeRemaining() time.Duration
-}
-
-type Manager interface {
- // GetLease fetches a Lease only if it exists. If it does not
- // exist, a nil Lease will be returned. Any other failures
- // result in non-nil error and nil Lease objects.
- GetLease(name string) (Lease, error)
-
- // AcquireLease acquires a named lease only if the lease is not
- // currently held. If a Lease cannot be acquired, a nil Lease
- // object is returned. An error is returned only if there is a
- // failure communicating with the Registry.
- AcquireLease(name, machID string, ver int, period time.Duration) (Lease, error)
-
- // StealLease attempts to replace the lessee of the Lease identified
- // by the provided name and index with a new lessee. This function
- // will fail if the named Lease has progressed past the given index.
- StealLease(name, machID string, ver int, period time.Duration, idx uint64) (Lease, error)
-}
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/ssh/LICENSE b/Godeps/_workspace/src/github.com/coreos/fleet/ssh/LICENSE
deleted file mode 100644
index e321c9b..0000000
--- a/Godeps/_workspace/src/github.com/coreos/fleet/ssh/LICENSE
+++ /dev/null
@@ -1,42 +0,0 @@
-Portions of fleet's ssh package (particularly related to known_hosts handling)
-are derived from the OpenSSH source, the copyright notices and licenses for
-which follow below.
-
-/*
- * Author: Tatu Ylonen
- * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland
- * All rights reserved
- * Simple pattern matching, with '*' and '?' as wildcards.
- * Functions for manipulating the known hosts files.
- *
- * As far as I am concerned, the code I have written for this software
- * can be used freely for any purpose. Any derived versions of this
- * software must be clearly marked as such, and if the derived work is
- * incompatible with the protocol description in the RFC file, it must be
- * called by a name other than "ssh" or "Secure Shell".
- */
-
-/*
- * Copyright (c) 2000 Markus Friedl. All rights reserved.
- * Copyright (c) 1999 Niels Provos. 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 AUTHOR ``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 AUTHOR 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/coreos/go-systemd/LICENSE b/Godeps/_workspace/src/github.com/coreos/go-systemd/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/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/coreos/go-systemd/unit/escape.go b/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/escape.go
deleted file mode 100644
index 63b1172..0000000
--- a/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/escape.go
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright 2015 CoreOS, 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.
-
-// Implements systemd-escape [--unescape] [--path]
-
-package unit
-
-import (
- "fmt"
- "strconv"
- "strings"
-)
-
-const (
- allowed = `:_.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`
-)
-
-// If isPath is true:
-// We remove redundant '/'s, the leading '/', and trailing '/'.
-// If the result is empty, a '/' is inserted.
-//
-// We always:
-// Replace the following characters with `\x%x`:
-// Leading `.`
-// `-`, `\`, and anything not in this set: `:-_.\[0-9a-zA-Z]`
-// Replace '/' with '-'.
-func escape(unescaped string, isPath bool) string {
- e := []byte{}
- inSlashes := false
- start := true
- for i := 0; i < len(unescaped); i++ {
- c := unescaped[i]
- if isPath {
- if c == '/' {
- inSlashes = true
- continue
- } else if inSlashes {
- inSlashes = false
- if !start {
- e = append(e, '-')
- }
- }
- }
-
- if c == '/' {
- e = append(e, '-')
- } else if start && c == '.' || strings.IndexByte(allowed, c) == -1 {
- e = append(e, []byte(fmt.Sprintf(`\x%x`, c))...)
- } else {
- e = append(e, c)
- }
- start = false
- }
- if isPath && len(e) == 0 {
- e = append(e, '-')
- }
- return string(e)
-}
-
-// If isPath is true:
-// We always return a string beginning with '/'.
-//
-// We always:
-// Replace '-' with '/'.
-// Replace `\x%x` with the value represented in hex.
-func unescape(escaped string, isPath bool) string {
- u := []byte{}
- for i := 0; i < len(escaped); i++ {
- c := escaped[i]
- if c == '-' {
- c = '/'
- } else if c == '\\' && len(escaped)-i >= 4 && escaped[i+1] == 'x' {
- n, err := strconv.ParseInt(escaped[i+2:i+4], 16, 8)
- if err == nil {
- c = byte(n)
- i += 3
- }
- }
- u = append(u, c)
- }
- if isPath && (len(u) == 0 || u[0] != '/') {
- u = append([]byte("/"), u...)
- }
- return string(u)
-}
-
-// UnitNameEscape escapes a string as `systemd-escape` would
-func UnitNameEscape(unescaped string) string {
- return escape(unescaped, false)
-}
-
-// UnitNameUnescape unescapes a string as `systemd-escape --unescape` would
-func UnitNameUnescape(escaped string) string {
- return unescape(escaped, false)
-}
-
-// UnitNamePathEscape escapes a string as `systemd-escape --path` would
-func UnitNamePathEscape(unescaped string) string {
- return escape(unescaped, true)
-}
-
-// UnitNamePathUnescape unescapes a string as `systemd-escape --path --unescape` would
-func UnitNamePathUnescape(escaped string) string {
- return unescape(escaped, true)
-}
diff --git a/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/option.go b/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/option.go
deleted file mode 100644
index e5d21e1..0000000
--- a/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/option.go
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2015 CoreOS, 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.
-
-package unit
-
-import (
- "fmt"
-)
-
-type UnitOption struct {
- Section string
- Name string
- Value string
-}
-
-func NewUnitOption(section, name, value string) *UnitOption {
- return &UnitOption{Section: section, Name: name, Value: value}
-}
-
-func (uo *UnitOption) String() string {
- return fmt.Sprintf("{Section: %q, Name: %q, Value: %q}", uo.Section, uo.Name, uo.Value)
-}
-
-func (uo *UnitOption) Match(other *UnitOption) bool {
- return uo.Section == other.Section &&
- uo.Name == other.Name &&
- uo.Value == other.Value
-}
-
-func AllMatch(u1 []*UnitOption, u2 []*UnitOption) bool {
- length := len(u1)
- if length != len(u2) {
- return false
- }
-
- for i := 0; i < length; i++ {
- if !u1[i].Match(u2[i]) {
- return false
- }
- }
-
- return true
-}
diff --git a/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/serialize.go b/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/serialize.go
deleted file mode 100644
index e07799c..0000000
--- a/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/serialize.go
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright 2015 CoreOS, 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.
-
-package unit
-
-import (
- "bytes"
- "io"
-)
-
-// Serialize encodes all of the given UnitOption objects into a
-// unit file. When serialized the options are sorted in their
-// supplied order but grouped by section.
-func Serialize(opts []*UnitOption) io.Reader {
- var buf bytes.Buffer
-
- if len(opts) == 0 {
- return &buf
- }
-
- // Index of sections -> ordered options
- idx := map[string][]*UnitOption{}
- // Separately preserve order in which sections were seen
- sections := []string{}
- for _, opt := range opts {
- sec := opt.Section
- if _, ok := idx[sec]; !ok {
- sections = append(sections, sec)
- }
- idx[sec] = append(idx[sec], opt)
- }
-
- for i, sect := range sections {
- writeSectionHeader(&buf, sect)
- writeNewline(&buf)
-
- opts := idx[sect]
- for _, opt := range opts {
- writeOption(&buf, opt)
- writeNewline(&buf)
- }
- if i < len(sections)-1 {
- writeNewline(&buf)
- }
- }
-
- return &buf
-}
-
-func writeNewline(buf *bytes.Buffer) {
- buf.WriteRune('\n')
-}
-
-func writeSectionHeader(buf *bytes.Buffer, section string) {
- buf.WriteRune('[')
- buf.WriteString(section)
- buf.WriteRune(']')
-}
-
-func writeOption(buf *bytes.Buffer, opt *UnitOption) {
- buf.WriteString(opt.Name)
- buf.WriteRune('=')
- buf.WriteString(opt.Value)
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/SeanDolphin/bqschema/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/SeanDolphin/bqschema/LICENSE
deleted file mode 100644
index 902306b..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/SeanDolphin/bqschema/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 Sean Dolphin
-
- 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/google/cadvisor/Godeps/_workspace/src/github.com/Sirupsen/logrus/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/Sirupsen/logrus/LICENSE
deleted file mode 100644
index f090cb4..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/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/google/cadvisor/Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE
deleted file mode 100644
index e454a52..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE
+++ /dev/null
@@ -1,178 +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
-
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/docker/pkg/symlink/LICENSE.APACHE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/docker/pkg/symlink/LICENSE.APACHE
deleted file mode 100644
index 9e4bd4d..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/docker/pkg/symlink/LICENSE.APACHE
+++ /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/google/cadvisor/Godeps/_workspace/src/github.com/docker/docker/pkg/symlink/LICENSE.BSD b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/docker/pkg/symlink/LICENSE.BSD
deleted file mode 100644
index ac74d8f..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/docker/pkg/symlink/LICENSE.BSD
+++ /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/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/LICENSE
deleted file mode 100644
index 2744858..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/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/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/NOTICE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/NOTICE
deleted file mode 100644
index dc91298..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/NOTICE
+++ /dev/null
@@ -1,16 +0,0 @@
-libcontainer
-Copyright 2012-2015 Docker, Inc.
-
-This product includes software developed at Docker, Inc. (http://www.docker.com).
-
-The following is courtesy of our legal counsel:
-
-
-Use and transfer of Docker may be subject to certain restrictions by the
-United States and other governments.
-It is your responsibility to ensure that your use and/or transfer does not
-violate applicable laws.
-
-For more information, please see http://www.bis.doc.gov
-
-See also http://www.apache.org/dev/crypto.html and/or seek legal counsel.
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/Sirupsen/logrus/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/Sirupsen/logrus/LICENSE
deleted file mode 100644
index f090cb4..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/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/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/codegangsta/cli/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/codegangsta/cli/LICENSE
deleted file mode 100644
index 5515ccf..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/codegangsta/cli/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (C) 2013 Jeremy Saenz
-All Rights Reserved.
-
-MIT LICENSE
-
-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/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/coreos/go-systemd/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/coreos/go-systemd/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/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/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/godbus/dbus/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/godbus/dbus/LICENSE
deleted file mode 100644
index 06b252b..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/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/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/golang/protobuf/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/golang/protobuf/LICENSE
deleted file mode 100644
index 1b1b192..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/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/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/syndtr/gocapability/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/syndtr/gocapability/LICENSE
deleted file mode 100644
index 80dd96d..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/docker/libcontainer/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/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/LICENSE
deleted file mode 100644
index 4e11de1..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2015, go-dockerclient 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.
-
-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/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/Sirupsen/logrus/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/Sirupsen/logrus/LICENSE
deleted file mode 100644
index f090cb4..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/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/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/mflag/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/mflag/LICENSE
deleted file mode 100644
index ac74d8f..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/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/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/context/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/context/LICENSE
deleted file mode 100644
index 0e5fb87..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/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/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/mux/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/mux/LICENSE
deleted file mode 100644
index 0e5fb87..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/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/google/cadvisor/Godeps/_workspace/src/github.com/godbus/dbus/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/godbus/dbus/LICENSE
deleted file mode 100644
index 06b252b..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/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/google/cadvisor/Godeps/_workspace/src/github.com/golang/glog/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/golang/glog/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/golang/glog/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/google/cadvisor/Godeps/_workspace/src/github.com/kr/pretty/License b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/kr/pretty/License
deleted file mode 100644
index 05c783c..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/kr/pretty/License
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright 2012 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/google/cadvisor/Godeps/_workspace/src/github.com/kr/text/License b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/kr/text/License
deleted file mode 100644
index 480a328..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/kr/text/License
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2012 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/google/cadvisor/Godeps/_workspace/src/github.com/prometheus/procfs/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/prometheus/procfs/LICENSE
deleted file mode 100644
index 261eeb9..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/prometheus/procfs/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/google/cadvisor/Godeps/_workspace/src/github.com/prometheus/procfs/NOTICE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/prometheus/procfs/NOTICE
deleted file mode 100644
index 53c5e9a..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/prometheus/procfs/NOTICE
+++ /dev/null
@@ -1,7 +0,0 @@
-procfs provides functions to retrieve system, kernel and process
-metrics from the pseudo-filesystem proc.
-
-Copyright 2014-2015 The Prometheus Authors
-
-This product includes software developed at
-SoundCloud Ltd. (http://soundcloud.com/).
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/stretchr/objx/LICENSE.md b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/stretchr/objx/LICENSE.md
deleted file mode 100644
index 2199945..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/github.com/stretchr/objx/LICENSE.md
+++ /dev/null
@@ -1,23 +0,0 @@
-objx - by Mat Ryer and Tyler Bunnell
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Stretchr, Inc.
-
-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/google/cadvisor/Godeps/_workspace/src/golang.org/x/oauth2/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/golang.org/x/oauth2/LICENSE
deleted file mode 100644
index d02f24f..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/golang.org/x/oauth2/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009 The oauth2 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/google/cadvisor/Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
deleted file mode 100644
index de9c88c..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Copyright (c) 2013 Joshua Tacoma
-
-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/google/cadvisor/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/LICENSE
deleted file mode 100644
index 8b22cdb..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-Copyright © 2012-2015 Oliver Eilhard
-
-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/google/cadvisor/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/uritemplates/LICENSE b/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/uritemplates/LICENSE
deleted file mode 100644
index de9c88c..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/Godeps/_workspace/src/gopkg.in/olivere/elastic.v2/uritemplates/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Copyright (c) 2013 Joshua Tacoma
-
-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/google/cadvisor/utils/cloudinfo/cloudinfo.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/cloudinfo/cloudinfo.go
deleted file mode 100644
index e073fae..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cloudinfo/cloudinfo.go
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
-//
-// 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.
-
-// Get information about the cloud provider (if any) cAdvisor is running on.
-
-package cloudinfo
-
-import (
- info "github.com/google/cadvisor/info/v1"
-)
-
-type CloudInfo interface {
- GetCloudProvider() info.CloudProvider
- GetInstanceType() info.InstanceType
-}
-
-type realCloudInfo struct {
- cloudProvider info.CloudProvider
- instanceType info.InstanceType
-}
-
-func NewRealCloudInfo() CloudInfo {
- cloudProvider := detectCloudProvider()
- instanceType := detectInstanceType(cloudProvider)
- return &realCloudInfo{
- cloudProvider: cloudProvider,
- instanceType: instanceType,
- }
-}
-
-func (self *realCloudInfo) GetCloudProvider() info.CloudProvider {
- return self.cloudProvider
-}
-
-func (self *realCloudInfo) GetInstanceType() info.InstanceType {
- return self.instanceType
-}
-
-func detectCloudProvider() info.CloudProvider {
- switch {
- case onGCE():
- return info.GCE
- case onAWS():
- return info.AWS
- case onBaremetal():
- return info.Baremetal
- }
- return info.UnkownProvider
-}
-
-func detectInstanceType(cloudProvider info.CloudProvider) info.InstanceType {
- switch cloudProvider {
- case info.GCE:
- return getGceInstanceType()
- case info.AWS:
- return getAwsInstanceType()
- case info.Baremetal:
- return info.NoInstance
- }
- return info.UnknownInstance
-}
-
-//TODO: Implement method.
-func onAWS() bool {
- return false
-}
-
-//TODO: Implement method.
-func getAwsInstanceType() info.InstanceType {
- return info.UnknownInstance
-}
-
-//TODO: Implement method.
-func onBaremetal() bool {
- return false
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cloudinfo/gce.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/cloudinfo/gce.go
deleted file mode 100644
index 496bbab..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cloudinfo/gce.go
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
-//
-// 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 cloudinfo
-
-import (
- "strings"
-
- info "github.com/google/cadvisor/info/v1"
- "google.golang.org/cloud/compute/metadata"
-)
-
-func onGCE() bool {
- return metadata.OnGCE()
-}
-
-func getGceInstanceType() info.InstanceType {
- machineType, err := metadata.Get("instance/machine-type")
- if err != nil {
- return info.UnknownInstance
- }
-
- responseParts := strings.Split(machineType, "/") // Extract the instance name from the machine type.
- return info.InstanceType(responseParts[len(responseParts)-1])
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/cpuload.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/cpuload.go
deleted file mode 100644
index 2d0d37d..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/cpuload.go
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
-//
-// 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 cpuload
-
-import (
- "fmt"
-
- "github.com/golang/glog"
- info "github.com/google/cadvisor/info/v1"
- "github.com/google/cadvisor/utils/cpuload/netlink"
-)
-
-type CpuLoadReader interface {
- // Start the reader.
- Start() error
-
- // Stop the reader and clean up internal state.
- Stop()
-
- // Retrieve Cpu load for a given group.
- // name is the full hierarchical name of the container.
- // Path is an absolute filesystem path for a container under CPU cgroup hierarchy.
- GetCpuLoad(name string, path string) (info.LoadStats, error)
-}
-
-func New() (CpuLoadReader, error) {
- reader, err := netlink.New()
- if err != nil {
- return nil, fmt.Errorf("failed to create a netlink based cpuload reader: %v", err)
- }
- glog.Info("Using a netlink-based load reader")
- return reader, nil
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/conn.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/conn.go
deleted file mode 100644
index 7eb2204..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/conn.go
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
-//
-// 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 netlink
-
-import (
- "bufio"
- "bytes"
- "encoding/binary"
- "os"
- "syscall"
-)
-
-type Connection struct {
- // netlink socket
- fd int
- // cache pid to use in every netlink request.
- pid uint32
- // sequence number for netlink messages.
- seq uint32
- addr syscall.SockaddrNetlink
- rbuf *bufio.Reader
-}
-
-// Create and bind a new netlink socket.
-func newConnection() (*Connection, error) {
-
- fd, err := syscall.Socket(syscall.AF_NETLINK, syscall.SOCK_DGRAM, syscall.NETLINK_GENERIC)
- if err != nil {
- return nil, err
- }
-
- conn := new(Connection)
- conn.fd = fd
- conn.seq = 0
- conn.pid = uint32(os.Getpid())
- conn.addr.Family = syscall.AF_NETLINK
- conn.rbuf = bufio.NewReader(conn)
- err = syscall.Bind(fd, &conn.addr)
- if err != nil {
- syscall.Close(fd)
- return nil, err
- }
- return conn, err
-}
-
-func (self *Connection) Read(b []byte) (n int, err error) {
- n, _, err = syscall.Recvfrom(self.fd, b, 0)
- return n, err
-}
-
-func (self *Connection) Write(b []byte) (n int, err error) {
- err = syscall.Sendto(self.fd, b, 0, &self.addr)
- return len(b), err
-}
-
-func (self *Connection) Close() error {
- return syscall.Close(self.fd)
-}
-
-func (self *Connection) WriteMessage(msg syscall.NetlinkMessage) error {
- w := bytes.NewBuffer(nil)
- msg.Header.Len = uint32(syscall.NLMSG_HDRLEN + len(msg.Data))
- msg.Header.Seq = self.seq
- self.seq++
- msg.Header.Pid = self.pid
- binary.Write(w, binary.LittleEndian, msg.Header)
- _, err := w.Write(msg.Data)
- if err != nil {
- return err
- }
- _, err = self.Write(w.Bytes())
- return err
-}
-
-func (self *Connection) ReadMessage() (msg syscall.NetlinkMessage, err error) {
- err = binary.Read(self.rbuf, binary.LittleEndian, &msg.Header)
- if err != nil {
- return msg, err
- }
- msg.Data = make([]byte, msg.Header.Len-syscall.NLMSG_HDRLEN)
- _, err = self.rbuf.Read(msg.Data)
- return msg, err
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/example/example.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/example/example.go
deleted file mode 100644
index 42e6086..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/example/example.go
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
-//
-// 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 main
-
-import (
- "log"
-
- "github.com/google/cadvisor/utils/cpuload/netlink"
-)
-
-func main() {
- n, err := netlink.New()
- if err != nil {
- log.Printf("Failed to create cpu load util: %s", err)
- return
- }
- defer n.Stop()
-
- paths := []string{"/sys/fs/cgroup/cpu", "/sys/fs/cgroup/cpu/docker"}
- names := []string{"/", "/docker"}
- for i, path := range paths {
- stats, err := n.GetCpuLoad(names[i], path)
- if err != nil {
- log.Printf("Error getting cpu load for %q: %s", path, err)
- }
- log.Printf("Task load for %s: %+v", path, stats)
- }
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/netlink.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/netlink.go
deleted file mode 100644
index 7ca05f3..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/netlink.go
+++ /dev/null
@@ -1,241 +0,0 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
-//
-// 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 netlink
-
-import (
- "bytes"
- "encoding/binary"
- "fmt"
- "syscall"
-
- info "github.com/google/cadvisor/info/v1"
-)
-
-const (
- // Kernel constants for tasks stats.
- genlIdCtrl = syscall.NLMSG_MIN_TYPE // GENL_ID_CTRL
- taskstatsGenlName = "TASKSTATS" // TASKSTATS_GENL_NAME
- cgroupStatsCmdAttrFd = 0x1 // CGROUPSTATS_CMD_ATTR_FD
- ctrlAttrFamilyId = 0x1 // CTRL_ATTR_FAMILY_ID
- ctrlAttrFamilyName = 0x2 // CTRL_ATTR_FAMILY_NAME
- ctrlCmdGetFamily = 0x3 // CTRL_CMD_GETFAMILY
-)
-
-var (
- // TODO(rjnagal): Verify and fix for other architectures.
- Endian = binary.LittleEndian
-)
-
-type genMsghdr struct {
- Command uint8
- Version uint8
- Reserved uint16
-}
-
-type netlinkMessage struct {
- Header syscall.NlMsghdr
- GenHeader genMsghdr
- Data []byte
-}
-
-func (self netlinkMessage) toRawMsg() (rawmsg syscall.NetlinkMessage) {
- rawmsg.Header = self.Header
- w := bytes.NewBuffer([]byte{})
- binary.Write(w, Endian, self.GenHeader)
- w.Write(self.Data)
- rawmsg.Data = w.Bytes()
- return rawmsg
-}
-
-type loadStatsResp struct {
- Header syscall.NlMsghdr
- GenHeader genMsghdr
- Stats info.LoadStats
-}
-
-// Return required padding to align 'size' to 'alignment'.
-func padding(size int, alignment int) int {
- unalignedPart := size % alignment
- return (alignment - unalignedPart) % alignment
-}
-
-// Get family id for taskstats subsystem.
-func getFamilyId(conn *Connection) (uint16, error) {
- msg := prepareFamilyMessage()
- conn.WriteMessage(msg.toRawMsg())
-
- resp, err := conn.ReadMessage()
- if err != nil {
- return 0, err
- }
- id, err := parseFamilyResp(resp)
- if err != nil {
- return 0, err
- }
- return id, nil
-}
-
-// Append an attribute to the message.
-// Adds attribute info (length and type), followed by the data and necessary padding.
-// Can be called multiple times to add attributes. Only fixed size and string type
-// attributes are handled. We don't need nested attributes for task stats.
-func addAttribute(buf *bytes.Buffer, attrType uint16, data interface{}, dataSize int) {
- attr := syscall.RtAttr{
- Len: syscall.SizeofRtAttr,
- Type: attrType,
- }
- attr.Len += uint16(dataSize)
- binary.Write(buf, Endian, attr)
- switch data := data.(type) {
- case string:
- binary.Write(buf, Endian, []byte(data))
- buf.WriteByte(0) // terminate
- default:
- binary.Write(buf, Endian, data)
- }
- for i := 0; i < padding(int(attr.Len), syscall.NLMSG_ALIGNTO); i++ {
- buf.WriteByte(0)
- }
-}
-
-// Prepares the message and generic headers and appends attributes as data.
-func prepareMessage(headerType uint16, cmd uint8, attributes []byte) (msg netlinkMessage) {
- msg.Header.Type = headerType
- msg.Header.Flags = syscall.NLM_F_REQUEST
- msg.GenHeader.Command = cmd
- msg.GenHeader.Version = 0x1
- msg.Data = attributes
- return msg
-}
-
-// Prepares message to query family id for task stats.
-func prepareFamilyMessage() (msg netlinkMessage) {
- buf := bytes.NewBuffer([]byte{})
- addAttribute(buf, ctrlAttrFamilyName, taskstatsGenlName, len(taskstatsGenlName)+1)
- return prepareMessage(genlIdCtrl, ctrlCmdGetFamily, buf.Bytes())
-}
-
-// Prepares message to query task stats for a task group.
-func prepareCmdMessage(id uint16, cfd uintptr) (msg netlinkMessage) {
- buf := bytes.NewBuffer([]byte{})
- addAttribute(buf, cgroupStatsCmdAttrFd, uint32(cfd), 4)
- return prepareMessage(id, __TASKSTATS_CMD_MAX+1, buf.Bytes())
-}
-
-// Extracts returned family id from the response.
-func parseFamilyResp(msg syscall.NetlinkMessage) (uint16, error) {
- m := new(netlinkMessage)
- m.Header = msg.Header
- err := verifyHeader(msg)
- if err != nil {
- return 0, err
- }
- buf := bytes.NewBuffer(msg.Data)
- // extract generic header from data.
- err = binary.Read(buf, Endian, &m.GenHeader)
- if err != nil {
- return 0, err
- }
- id := uint16(0)
- // Extract attributes. kernel reports family name, id, version, etc.
- // Scan till we find id.
- for buf.Len() > syscall.SizeofRtAttr {
- var attr syscall.RtAttr
- err = binary.Read(buf, Endian, &attr)
- if err != nil {
- return 0, err
- }
- if attr.Type == ctrlAttrFamilyId {
- err = binary.Read(buf, Endian, &id)
- if err != nil {
- return 0, err
- }
- return id, nil
- }
- payload := int(attr.Len) - syscall.SizeofRtAttr
- skipLen := payload + padding(payload, syscall.SizeofRtAttr)
- name := make([]byte, skipLen)
- err = binary.Read(buf, Endian, name)
- if err != nil {
- return 0, err
- }
- }
- return 0, fmt.Errorf("family id not found in the response.")
-}
-
-// Extract task stats from response returned by kernel.
-func parseLoadStatsResp(msg syscall.NetlinkMessage) (*loadStatsResp, error) {
- m := new(loadStatsResp)
- m.Header = msg.Header
- err := verifyHeader(msg)
- if err != nil {
- return m, err
- }
- buf := bytes.NewBuffer(msg.Data)
- // Scan the general header.
- err = binary.Read(buf, Endian, &m.GenHeader)
- if err != nil {
- return m, err
- }
- // cgroup stats response should have just one attribute.
- // Read it directly into the stats structure.
- var attr syscall.RtAttr
- err = binary.Read(buf, Endian, &attr)
- if err != nil {
- return m, err
- }
- err = binary.Read(buf, Endian, &m.Stats)
- if err != nil {
- return m, err
- }
- return m, err
-}
-
-// Verify and return any error reported by kernel.
-func verifyHeader(msg syscall.NetlinkMessage) error {
- switch msg.Header.Type {
- case syscall.NLMSG_DONE:
- return fmt.Errorf("expected a response, got nil")
- case syscall.NLMSG_ERROR:
- buf := bytes.NewBuffer(msg.Data)
- var errno int32
- binary.Read(buf, Endian, errno)
- return fmt.Errorf("netlink request failed with error %s", syscall.Errno(-errno))
- }
- return nil
-}
-
-// Get load stats for a task group.
-// id: family id for taskstats.
-// fd: fd to path to the cgroup directory under cpu hierarchy.
-// conn: open netlink connection used to communicate with kernel.
-func getLoadStats(id uint16, fd uintptr, conn *Connection) (info.LoadStats, error) {
- msg := prepareCmdMessage(id, fd)
- err := conn.WriteMessage(msg.toRawMsg())
- if err != nil {
- return info.LoadStats{}, err
- }
-
- resp, err := conn.ReadMessage()
- if err != nil {
- return info.LoadStats{}, err
- }
-
- parsedmsg, err := parseLoadStatsResp(resp)
- if err != nil {
- return info.LoadStats{}, err
- }
- return parsedmsg.Stats, nil
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/reader.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/reader.go
deleted file mode 100644
index 6833765..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/reader.go
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
-//
-// 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 netlink
-
-import (
- "fmt"
- "os"
-
- "github.com/golang/glog"
- info "github.com/google/cadvisor/info/v1"
-)
-
-type NetlinkReader struct {
- familyId uint16
- conn *Connection
-}
-
-func New() (*NetlinkReader, error) {
- conn, err := newConnection()
- if err != nil {
- return nil, fmt.Errorf("failed to create a new connection: %s", err)
- }
-
- id, err := getFamilyId(conn)
- if err != nil {
- return nil, fmt.Errorf("failed to get netlink family id for task stats: %s", err)
- }
- glog.V(4).Infof("Family id for taskstats: %d", id)
- return &NetlinkReader{
- familyId: id,
- conn: conn,
- }, nil
-}
-
-func (self *NetlinkReader) Stop() {
- if self.conn != nil {
- self.conn.Close()
- }
-}
-
-func (self *NetlinkReader) Start() error {
- // We do the start setup for netlink in New(). Nothing to do here.
- return nil
-}
-
-// Returns instantaneous number of running tasks in a group.
-// Caller can use historical data to calculate cpu load.
-// path is an absolute filesystem path for a container under the CPU cgroup hierarchy.
-// NOTE: non-hierarchical load is returned. It does not include load for subcontainers.
-func (self *NetlinkReader) GetCpuLoad(name string, path string) (info.LoadStats, error) {
- if len(path) == 0 {
- return info.LoadStats{}, fmt.Errorf("cgroup path can not be empty!")
- }
-
- cfd, err := os.Open(path)
- if err != nil {
- return info.LoadStats{}, fmt.Errorf("failed to open cgroup path %s: %q", path, err)
- }
-
- stats, err := getLoadStats(self.familyId, cfd.Fd(), self.conn)
- if err != nil {
- return info.LoadStats{}, err
- }
- glog.V(4).Infof("Task stats for %q: %+v", path, stats)
- return stats, nil
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/fs/fs.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/fs/fs.go
deleted file mode 100644
index d5999a9..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/fs/fs.go
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
-//
-// 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 fs
-
-import (
- "io"
- "os"
-)
-
-type osFS struct{}
-
-func (osFS) Open(name string) (File, error) { return os.Open(name) }
-func (osFS) Stat(name string) (os.FileInfo, error) { return os.Stat(name) }
-
-var fs FileSystem = osFS{}
-
-type FileSystem interface {
- Open(name string) (File, error)
-}
-
-type File interface {
- io.ReadWriteCloser
-}
-
-// Useful for tests. Not thread safe.
-func ChangeFileSystem(filesystem FileSystem) {
- fs = filesystem
-}
-
-func Open(name string) (File, error) {
- return fs.Open(name)
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/fs/mockfs/mockfs.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/fs/mockfs/mockfs.go
deleted file mode 100644
index cc3d615..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/fs/mockfs/mockfs.go
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
-//
-// 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.
-
-// Automatically generated by MockGen. DO NOT EDIT!
-// Source: github.com/google/cadvisor/utils/fs (interfaces: FileSystem)
-
-package mockfs
-
-import (
- gomock "github.com/golang/mock/gomock"
- fs "github.com/google/cadvisor/utils/fs"
-)
-
-// Mock of FileSystem interface
-type MockFileSystem struct {
- ctrl *gomock.Controller
- recorder *_MockFileSystemRecorder
-}
-
-// Recorder for MockFileSystem (not exported)
-type _MockFileSystemRecorder struct {
- mock *MockFileSystem
-}
-
-func NewMockFileSystem(ctrl *gomock.Controller) *MockFileSystem {
- mock := &MockFileSystem{ctrl: ctrl}
- mock.recorder = &_MockFileSystemRecorder{mock}
- return mock
-}
-
-func (_m *MockFileSystem) EXPECT() *_MockFileSystemRecorder {
- return _m.recorder
-}
-
-func (_m *MockFileSystem) Open(_param0 string) (fs.File, error) {
- ret := _m.ctrl.Call(_m, "Open", _param0)
- ret0, _ := ret[0].(fs.File)
- ret1, _ := ret[1].(error)
- return ret0, ret1
-}
-
-func (_mr *_MockFileSystemRecorder) Open(arg0 interface{}) *gomock.Call {
- return _mr.mock.ctrl.RecordCall(_mr.mock, "Open", arg0)
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/machine/machine.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/machine/machine.go
deleted file mode 100644
index c483b05..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/machine/machine.go
+++ /dev/null
@@ -1,297 +0,0 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
-//
-// 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 machine
-
-import (
- "fmt"
- "io/ioutil"
- "regexp"
- "strconv"
- "strings"
-
- // s390/s390x changes
- "runtime"
- "syscall"
-
- "github.com/golang/glog"
- info "github.com/google/cadvisor/info/v1"
- "github.com/google/cadvisor/utils"
- "github.com/google/cadvisor/utils/sysfs"
- "github.com/google/cadvisor/utils/sysinfo"
-)
-
-// The utils/machine package contains functions that extract machine-level specs.
-
-var cpuRegExp = regexp.MustCompile("processor\\t*: +([0-9]+)")
-var coreRegExp = regexp.MustCompile("core id\\t*: +([0-9]+)")
-var nodeRegExp = regexp.MustCompile("physical id\\t*: +([0-9]+)")
-var CpuClockSpeedMHz = regexp.MustCompile("cpu MHz\\t*: +([0-9]+.[0-9]+)")
-var memoryCapacityRegexp = regexp.MustCompile("MemTotal: *([0-9]+) kB")
-var swapCapacityRegexp = regexp.MustCompile("SwapTotal: *([0-9]+) kB")
-
-// GetClockSpeed returns the CPU clock speed, given a []byte formatted as the /proc/cpuinfo file.
-func GetClockSpeed(procInfo []byte) (uint64, error) {
- // s390/s390x changes
- if true == isSystemZ() {
- return 0, nil
- }
-
- // First look through sys to find a max supported cpu frequency.
- const maxFreqFile = "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"
- if utils.FileExists(maxFreqFile) {
- val, err := ioutil.ReadFile(maxFreqFile)
- if err != nil {
- return 0, err
- }
- var maxFreq uint64
- n, err := fmt.Sscanf(string(val), "%d", &maxFreq)
- if err != nil || n != 1 {
- return 0, fmt.Errorf("could not parse frequency %q", val)
- }
- return maxFreq, nil
- }
- // Fall back to /proc/cpuinfo
- matches := CpuClockSpeedMHz.FindSubmatch(procInfo)
- if len(matches) != 2 {
- //Check if we are running on Power systems which have a different format
- CpuClockSpeedMHz, _ = regexp.Compile("clock\\t*: +([0-9]+.[0-9]+)MHz")
- matches = CpuClockSpeedMHz.FindSubmatch(procInfo)
- if len(matches) != 2 {
- return 0, fmt.Errorf("could not detect clock speed from output: %q", string(procInfo))
- }
- }
- speed, err := strconv.ParseFloat(string(matches[1]), 64)
- if err != nil {
- return 0, err
- }
- // Convert to kHz
- return uint64(speed * 1000), nil
-}
-
-// GetMachineMemoryCapacity returns the machine's total memory from /proc/meminfo.
-// Returns the total memory capacity as an int64 (number of bytes).
-func GetMachineMemoryCapacity() (int64, error) {
- out, err := ioutil.ReadFile("/proc/meminfo")
- if err != nil {
- return 0, err
- }
-
- memoryCapacity, err := parseCapacity(out, memoryCapacityRegexp)
- if err != nil {
- return 0, err
- }
- return memoryCapacity, err
-}
-
-// GetMachineSwapCapacity returns the machine's total swap from /proc/meminfo.
-// Returns the total swap capacity as an int64 (number of bytes).
-func GetMachineSwapCapacity() (int64, error) {
- out, err := ioutil.ReadFile("/proc/meminfo")
- if err != nil {
- return 0, err
- }
-
- swapCapacity, err := parseCapacity(out, swapCapacityRegexp)
- if err != nil {
- return 0, err
- }
- return swapCapacity, err
-}
-
-// parseCapacity matches a Regexp in a []byte, returning the resulting value in bytes.
-// Assumes that the value matched by the Regexp is in KB.
-func parseCapacity(b []byte, r *regexp.Regexp) (int64, error) {
- matches := r.FindSubmatch(b)
- if len(matches) != 2 {
- return -1, fmt.Errorf("failed to match regexp in output: %q", string(b))
- }
- m, err := strconv.ParseInt(string(matches[1]), 10, 64)
- if err != nil {
- return -1, err
- }
-
- // Convert to bytes.
- return m * 1024, err
-}
-
-func GetTopology(sysFs sysfs.SysFs, cpuinfo string) ([]info.Node, int, error) {
- nodes := []info.Node{}
-
- // s390/s390x changes
- if true == isSystemZ() {
- return nodes, getNumCores(), nil
- }
-
- numCores := 0
- lastThread := -1
- lastCore := -1
- lastNode := -1
- for _, line := range strings.Split(cpuinfo, "\n") {
- ok, val, err := extractValue(line, cpuRegExp)
- if err != nil {
- return nil, -1, fmt.Errorf("could not parse cpu info from %q: %v", line, err)
- }
- if ok {
- thread := val
- numCores++
- if lastThread != -1 {
- // New cpu section. Save last one.
- nodeIdx, err := addNode(&nodes, lastNode)
- if err != nil {
- return nil, -1, fmt.Errorf("failed to add node %d: %v", lastNode, err)
- }
- nodes[nodeIdx].AddThread(lastThread, lastCore)
- lastCore = -1
- lastNode = -1
- }
- lastThread = thread
- }
- ok, val, err = extractValue(line, coreRegExp)
- if err != nil {
- return nil, -1, fmt.Errorf("could not parse core info from %q: %v", line, err)
- }
- if ok {
- lastCore = val
- }
- ok, val, err = extractValue(line, nodeRegExp)
- if err != nil {
- return nil, -1, fmt.Errorf("could not parse node info from %q: %v", line, err)
- }
- if ok {
- lastNode = val
- }
- }
- nodeIdx, err := addNode(&nodes, lastNode)
- if err != nil {
- return nil, -1, fmt.Errorf("failed to add node %d: %v", lastNode, err)
- }
- nodes[nodeIdx].AddThread(lastThread, lastCore)
- if numCores < 1 {
- return nil, numCores, fmt.Errorf("could not detect any cores")
- }
- for idx, node := range nodes {
- caches, err := sysinfo.GetCacheInfo(sysFs, node.Cores[0].Threads[0])
- if err != nil {
- glog.Errorf("failed to get cache information for node %d: %v", node.Id, err)
- continue
- }
- numThreadsPerCore := len(node.Cores[0].Threads)
- numThreadsPerNode := len(node.Cores) * numThreadsPerCore
- for _, cache := range caches {
- c := info.Cache{
- Size: cache.Size,
- Level: cache.Level,
- Type: cache.Type,
- }
- if cache.Cpus == numThreadsPerNode && cache.Level > 2 {
- // Add a node-level cache.
- nodes[idx].AddNodeCache(c)
- } else if cache.Cpus == numThreadsPerCore {
- // Add to each core.
- nodes[idx].AddPerCoreCache(c)
- }
- // Ignore unknown caches.
- }
- }
- return nodes, numCores, nil
-}
-
-func extractValue(s string, r *regexp.Regexp) (bool, int, error) {
- matches := r.FindSubmatch([]byte(s))
- if len(matches) == 2 {
- val, err := strconv.ParseInt(string(matches[1]), 10, 32)
- if err != nil {
- return true, -1, err
- }
- return true, int(val), nil
- }
- return false, -1, nil
-}
-
-func findNode(nodes []info.Node, id int) (bool, int) {
- for i, n := range nodes {
- if n.Id == id {
- return true, i
- }
- }
- return false, -1
-}
-
-func addNode(nodes *[]info.Node, id int) (int, error) {
- var idx int
- if id == -1 {
- // Some VMs don't fill topology data. Export single package.
- id = 0
- }
-
- ok, idx := findNode(*nodes, id)
- if !ok {
- // New node
- node := info.Node{Id: id}
- // Add per-node memory information.
- meminfo := fmt.Sprintf("/sys/devices/system/node/node%d/meminfo", id)
- out, err := ioutil.ReadFile(meminfo)
- // Ignore if per-node info is not available.
- if err == nil {
- m, err := parseCapacity(out, memoryCapacityRegexp)
- if err != nil {
- return -1, err
- }
- node.Memory = uint64(m)
- }
- *nodes = append(*nodes, node)
- idx = len(*nodes) - 1
- }
- return idx, nil
-}
-
-// s390/s390x changes
-func getMachineArch() (string, error) {
- uname := syscall.Utsname{}
- err := syscall.Uname(&uname)
- if err != nil {
- return "", err
- }
-
- var arch string
- for _, val := range uname.Machine {
- arch += string(int(val))
- }
-
- return arch, nil
-}
-
-// s390/s390x changes
-func isSystemZ() bool {
- arch, err := getMachineArch()
- if err == nil {
- if true == strings.Contains(arch, "390") {
- return true
- }
- }
- return false
-}
-
-// s390/s390x changes
-func getNumCores() int {
- maxProcs := runtime.GOMAXPROCS(0)
- numCPU := runtime.NumCPU()
-
- if maxProcs < numCPU {
- return maxProcs
- }
-
- return numCPU
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/containerOomExampleLog.txt b/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/containerOomExampleLog.txt
deleted file mode 100644
index be6632e..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/containerOomExampleLog.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-Jan 5 15:19:01 CRON[14500]: (root) CMD (touch /var/run/crond.sittercheck)
-Jan 5 15:19:04 cookie_monster[1249]: uid 0, pid 14504, "/var/lib/certs/machine_cert.crt" accessed by exe "/usr/bin/nsscacheclient", cwd "/root", comm "/usr/bin/nsscacheclient"
-Jan 5 15:19:04 cookie_monster[1249]: uid 0, pid 14504, "/var/lib/certs/machine_cert.key" accessed by exe "/usr/bin/nsscacheclient", cwd "/root", comm "/usr/bin/nsscacheclient"
-Jan 5 15:19:05 nsscacheclient[14504]: SUCCESS: Completed run (v29/c20 rtime:0.334299 utime:0.136923 stime:0.011736 maxrss:5260k dials:1 sent:1793 rcvd:5143).
-Jan 5 15:19:27 kernel: [ 5864.708440] memorymonster invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0
-Jan 5 15:19:27 kernel: [ 5864.708443] memorymonster cpuset=/ mems_allowed=0
-Jan 5 15:19:27 kernel: [ 5864.708446] CPU: 5 PID: 13536 Comm: memorymonster Tainted: P OX 3.13.0-43-generic #72-Ubuntu
-Jan 5 15:19:27 kernel: [ 5864.708447] Hardware name: Hewlett-Packard HP Z420 Workstation/1589, BIOS J61 v03.65 12/19/2013
-Jan 5 15:19:27 kernel: [ 5864.708448] ffff88072ae10800 ffff8807a4835c48 ffffffff81720bf6 ffff8807a8e86000
-Jan 5 15:19:27 kernel: [ 5864.708451] ffff8807a4835cd0 ffffffff8171b4b1 0000000000000246 ffff88072ae10800
-Jan 5 15:19:27 kernel: [ 5864.708453] ffff8807a4835c90 ffff8807a4835ca0 ffffffff811522a7 0000000000000001
-Jan 5 15:19:27 kernel: [ 5864.708455] Call Trace:
-Jan 5 15:19:27 kernel: [ 5864.708460] [] dump_stack+0x45/0x56
-Jan 5 15:19:27 kernel: [ 5864.708463] [] dump_header+0x7f/0x1f1
-Jan 5 15:19:27 kernel: [ 5864.708465] [] ? find_lock_task_mm+0x27/0x70
-Jan 5 15:19:27 kernel: [ 5864.708467] [] oom_kill_process+0x1ce/0x330
-Jan 5 15:19:27 kernel: [ 5864.708470] [] ? security_capable_noaudit+0x15/0x20
-Jan 5 15:19:27 kernel: [ 5864.708474] [] mem_cgroup_oom_synchronize+0x51c/0x560
-Jan 5 15:19:27 kernel: [ 5864.708476] [] ? mem_cgroup_charge_common+0xa0/0xa0
-Jan 5 15:19:27 kernel: [ 5864.708478] [] pagefault_out_of_memory+0x14/0x80
-Jan 5 15:19:27 kernel: [ 5864.708480] [] mm_fault_error+0x8e/0x180
-Jan 5 15:19:27 kernel: [ 5864.708482] [] __do_page_fault+0x4a1/0x560
-Jan 5 15:19:27 kernel: [ 5864.708485] [] ? set_next_entity+0x95/0xb0
-Jan 5 15:19:27 kernel: [ 5864.708489] [] ? __switch_to+0x169/0x4c0
-Jan 5 15:19:27 kernel: [ 5864.708490] [] do_page_fault+0x1a/0x70
-Jan 5 15:19:27 kernel: [ 5864.708492] [] page_fault+0x28/0x30
-Jan 5 15:19:27 kernel: [ 5864.708493] Task in /mem2 killed as a result of limit of /mem2
-Jan 5 15:19:27 kernel: [ 5864.708495] memory: usage 980kB, limit 980kB, failcnt 4152239
-Jan 5 15:19:27 kernel: [ 5864.708495] memory+swap: usage 0kB, limit 18014398509481983kB, failcnt 0
-Jan 5 15:19:27 kernel: [ 5864.708496] kmem: usage 0kB, limit 18014398509481983kB, failcnt 0
-Jan 5 15:19:27 kernel: [ 5864.708497] Memory cgroup stats for /mem2: cache:0KB rss:980KB rss_huge:0KB mapped_file:0KB writeback:20KB inactive_anon:560KB active_anon:420KB inactive_file:0KB active_file:0KB unevictable:0KB
-Jan 5 15:19:27 kernel: [ 5864.708505] [ pid ] uid tgid total_vm rss nr_ptes swapents oom_score_adj name
-Jan 5 15:19:27 kernel: [ 5864.708600] [13536] 275858 13536 8389663 343 16267 8324326 0 memorymonster
-Jan 5 15:19:27 kernel: [ 5864.708607] Memory cgroup out of memory: Kill process 13536 (memorymonster) score 996 or sacrifice child
-Jan 5 15:19:27 kernel: [ 5864.708608] Killed process 13536 (memorymonster) total-vm:33558652kB, anon-rss:920kB, file-rss:452kB
-Jan 5 15:20:01 CRON[14608]: (root) CMD (touch /var/run/crond.sittercheck)
-Jan 5 15:20:01 CRON[14609]: (root) CMD (/usr/bin/alarm 6000 /usr/share/update-notifier/reevaluate.py)
-Jan 5 15:20:01 CRON[14610]: (root) CMD (/usr/bin/corp_cronwrap -j 80 -t 600 -A -K -L -l 'nsscache-client' /usr/bin/nsscacheclient all)
-Jan 5 15:20:01 /usr/bin/lock: called by /bin/bash for . uid 0, euid 0.
-Jan 5 15:21:01 CRON[14639]: (root) CMD (touch /var/run/crond.sittercheck)
-Jan 5 15:21:05 cookie_monster[1249]: uid 0, pid 14643, "/var/lib/certs/machine_cert.crt" accessed by exe "/usr/bin/nsscacheclient", cwd "/root", comm "/usr/bin/nsscacheclient"
-Jan 5 15:21:05 cookie_monster[1249]: uid 0, pid 14643, "/var/lib/certs/machine_cert.key" accessed by exe "/usr/bin/nsscacheclient", cwd "/root", comm "/usr/bin/nsscacheclient"
-Jan 5 15:21:05 nsscacheclient[14643]: auto.auto(no change) time:0.042264697000000004 retries:0
-Jan 5 15:21:05 nsscacheclient[14643]: auto.home(63c07d09->8686499b write:3631382) time:0.318774602 retries:0
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/oomexample/main.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/oomexample/main.go
deleted file mode 100644
index 8667d32..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/oomexample/main.go
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
-//
-// 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 main
-
-import (
- "flag"
-
- "github.com/golang/glog"
- "github.com/google/cadvisor/utils/oomparser"
-)
-
-// demonstrates how to run oomparser.OomParser to get OomInstance information
-func main() {
- flag.Parse()
- // out is a user-provided channel from which the user can read incoming
- // OomInstance objects
- outStream := make(chan *oomparser.OomInstance)
- oomLog, err := oomparser.New()
- if err != nil {
- glog.Infof("Couldn't make a new oomparser. %v", err)
- } else {
- go oomLog.StreamOoms(outStream)
- // demonstration of how to get oomLog's list of oomInstances or access
- // the user-declared oomInstance channel, here called outStream
- for oomInstance := range outStream {
- glog.Infof("Reading the buffer. Output is %v", oomInstance)
- }
- }
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/oomparser.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/oomparser.go
deleted file mode 100644
index a1c9bd1..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/oomparser.go
+++ /dev/null
@@ -1,220 +0,0 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
-//
-// 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 oomparser
-
-import (
- "bufio"
- "fmt"
- "io"
- "os"
- "os/exec"
- "path"
- "regexp"
- "strconv"
- "time"
-
- "github.com/golang/glog"
- "github.com/google/cadvisor/utils"
-)
-
-var containerRegexp *regexp.Regexp = regexp.MustCompile(
- `Task in (.*) killed as a result of limit of (.*)`)
-var lastLineRegexp *regexp.Regexp = regexp.MustCompile(
- `(^[A-Z]{1}[a-z]{2} .*[0-9]{1,2} [0-9]{1,2}:[0-9]{2}:[0-9]{2}) .* Killed process ([0-9]+) \(([0-9A-Za-z_]+)\)`)
-var firstLineRegexp *regexp.Regexp = regexp.MustCompile(
- `invoked oom-killer:`)
-
-// struct to hold file from which we obtain OomInstances
-type OomParser struct {
- ioreader *bufio.Reader
-}
-
-// struct that contains information related to an OOM kill instance
-type OomInstance struct {
- // process id of the killed process
- Pid int
- // the name of the killed process
- ProcessName string
- // the time that the process was reported to be killed,
- // accurate to the minute
- TimeOfDeath time.Time
- // the absolute name of the container that OOMed
- ContainerName string
- // the absolute name of the container that was killed
- // due to the OOM.
- VictimContainerName string
-}
-
-// gets the container name from a line and adds it to the oomInstance.
-func getContainerName(line string, currentOomInstance *OomInstance) error {
- parsedLine := containerRegexp.FindStringSubmatch(line)
- if parsedLine == nil {
- return nil
- }
- currentOomInstance.ContainerName = path.Join("/", parsedLine[1])
- currentOomInstance.VictimContainerName = path.Join("/", parsedLine[2])
- return nil
-}
-
-// gets the pid, name, and date from a line and adds it to oomInstance
-func getProcessNamePid(line string, currentOomInstance *OomInstance) (bool, error) {
- reList := lastLineRegexp.FindStringSubmatch(line)
-
- if reList == nil {
- return false, nil
- }
- const longForm = "Jan _2 15:04:05 2006"
- stringYear := strconv.Itoa(time.Now().Year())
- linetime, err := time.ParseInLocation(longForm, reList[1]+" "+stringYear, time.Local)
- if err != nil {
- return false, err
- }
-
- currentOomInstance.TimeOfDeath = linetime
- pid, err := strconv.Atoi(reList[2])
- if err != nil {
- return false, err
- }
- currentOomInstance.Pid = pid
- currentOomInstance.ProcessName = reList[3]
- return true, nil
-}
-
-// uses regex to see if line is the start of a kernel oom log
-func checkIfStartOfOomMessages(line string) bool {
- potential_oom_start := firstLineRegexp.MatchString(line)
- if potential_oom_start {
- return true
- }
- return false
-}
-
-// reads the file and sends only complete lines over a channel to analyzeLines.
-// Should prevent EOF errors that occur when lines are read before being fully
-// written to the log. It reads line by line splitting on
-// the "\n" character.
-func readLinesFromFile(lineChannel chan string, ioreader *bufio.Reader) {
- linefragment := ""
- var line string
- var err error
- for true {
- line, err = ioreader.ReadString('\n')
- if err == io.EOF {
- if line != "" {
- linefragment += line
- }
- time.Sleep(100 * time.Millisecond)
- } else if err == nil {
- if linefragment != "" {
- line = linefragment + line
- linefragment = ""
- }
- lineChannel <- line
- } else if err != nil && err != io.EOF {
- glog.Errorf("exiting analyzeLinesHelper with error %v", err)
- }
- }
-}
-
-// Calls goroutine for readLinesFromFile, which feeds it complete lines.
-// Lines are checked against a regexp to check for the pid, process name, etc.
-// At the end of an oom message group, StreamOoms adds the new oomInstance to
-// oomLog
-func (self *OomParser) StreamOoms(outStream chan *OomInstance) {
- lineChannel := make(chan string, 10)
- go func() {
- readLinesFromFile(lineChannel, self.ioreader)
- }()
-
- for line := range lineChannel {
- in_oom_kernel_log := checkIfStartOfOomMessages(line)
- if in_oom_kernel_log {
- oomCurrentInstance := &OomInstance{
- ContainerName: "/",
- }
- finished := false
- for !finished {
- err := getContainerName(line, oomCurrentInstance)
- if err != nil {
- glog.Errorf("%v", err)
- }
- finished, err = getProcessNamePid(line, oomCurrentInstance)
- if err != nil {
- glog.Errorf("%v", err)
- }
- line = <-lineChannel
- }
- in_oom_kernel_log = false
- outStream <- oomCurrentInstance
- }
- }
- glog.Infof("exiting analyzeLines")
-}
-
-func callJournalctl() (io.ReadCloser, error) {
- cmd := exec.Command("journalctl", "-k", "-f")
- readcloser, err := cmd.StdoutPipe()
- if err != nil {
- return nil, err
- }
- if err := cmd.Start(); err != nil {
- return nil, err
- }
- return readcloser, err
-}
-
-func trySystemd() (*OomParser, error) {
- readcloser, err := callJournalctl()
- if err != nil {
- return nil, err
- }
- glog.Infof("oomparser using systemd")
- return &OomParser{
- ioreader: bufio.NewReader(readcloser),
- }, nil
-
-}
-
-// List of possible kernel log files. These are prioritized in order so that
-// we will use the first one that is available.
-var kernelLogFiles = []string{"/var/log/kern.log", "/var/log/messages", "/var/log/syslog"}
-
-// looks for system files that contain kernel messages and if one is found, sets
-// the systemFile attribute of the OomParser object
-func getSystemFile() (string, error) {
- for _, logFile := range kernelLogFiles {
- if utils.FileExists(logFile) {
- glog.Infof("OOM parser using kernel log file: %q", logFile)
- return logFile, nil
- }
- }
- return "", fmt.Errorf("unable to find any kernel log file available from our set: %v", kernelLogFiles)
-}
-
-// initializes an OomParser object and calls getSystemFile to set the systemFile
-// attribute. Returns and OomParser object and an error
-func New() (*OomParser, error) {
- systemFile, err := getSystemFile()
- if err != nil {
- return trySystemd()
- }
- file, err := os.Open(systemFile)
- if err != nil {
- return trySystemd()
- }
- return &OomParser{
- ioreader: bufio.NewReader(file),
- }, nil
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/systemOomExampleLog.txt b/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/systemOomExampleLog.txt
deleted file mode 100644
index 9d38bbd..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/oomparser/systemOomExampleLog.txt
+++ /dev/null
@@ -1,362 +0,0 @@
-[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
-[ 0.000000] Hierarchical RCU implementation.
-[ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
-[ 0.000000] RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=1.
-[ 0.000000] Offload RCU callbacks from all CPUs
-[ 0.000000] Offload RCU callbacks from CPUs: 0.
-[ 0.000000] NR_IRQS:16640 nr_irqs:256 16
-[ 0.000000] Console: colour dummy device 80x25
-[ 0.000000] console [ttyS0] enabled
-[ 0.000000] allocated 7340032 bytes of page_cgroup
-[ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
-[ 0.000000] tsc: Detected 2500.000 MHz processor
-[ 0.008000] Calibrating delay loop (skipped) preset value.. 5000.00 BogoMIPS (lpj=10000000)
-[ 0.008000] pid_max: default: 32768 minimum: 301
-[ 0.008000] Security Framework initialized
-[ 0.008000] AppArmor: AppArmor initialized
-[ 0.008000] Yama: becoming mindful.
-[ 0.008200] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
-[ 0.011365] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
-[ 0.013066] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
-[ 0.014030] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
-[ 0.016266] Initializing cgroup subsys memory
-[ 0.016898] Initializing cgroup subsys devices
-[ 0.017546] Initializing cgroup subsys freezer
-[ 0.018193] Initializing cgroup subsys blkio
-[ 0.018793] Initializing cgroup subsys perf_event
-[ 0.019416] Initializing cgroup subsys hugetlb
-[ 0.020067] Disabled fast string operations
-[ 0.020681] CPU: Physical Processor ID: 0
-[ 0.021238] CPU: Processor Core ID: 0
-[ 0.022587] mce: CPU supports 32 MCE banks
-[ 0.023260] Last level iTLB entries: 4KB 512, 2MB 0, 4MB 0
-[ 0.023260] Last level dTLB entries: 4KB 512, 2MB 0, 4MB 0
-[ 0.023260] tlb_flushall_shift: 6
-[ 0.043758] Freeing SMP alternatives memory: 32K (ffffffff81e6c000 - ffffffff81e74000)
-[ 0.048361] ACPI: Core revision 20131115
-[ 0.049516] ACPI: All ACPI Tables successfully acquired
-[ 0.050342] ftrace: allocating 28458 entries in 112 pages
-[ 0.060327] Enabling x2apic
-[ 0.060740] Enabled x2apic
-[ 0.064005] Switched APIC routing to physical x2apic.
-[ 0.065489] ..TIMER: vector=0x30 apic1=0 pin1=0 apic2=-1 pin2=-1
-[ 0.066331] smpboot: CPU0: Intel(R) Xeon(R) CPU @ 2.50GHz (fam: 06, model: 3e, stepping: 04)
-[ 0.072000] APIC calibration not consistent with PM-Timer: 227ms instead of 100ms
-[ 0.072000] APIC delta adjusted to PM-Timer: 6250028 (14249259)
-[ 0.074382] Performance Events: unsupported p6 CPU model 62 no PMU driver, software events only.
-[ 0.077174] x86: Booted up 1 node, 1 CPUs
-[ 0.077738] smpboot: Total of 1 processors activated (5000.00 BogoMIPS)
-[ 0.078932] NMI watchdog: disabled (cpu0): hardware events not enabled
-[ 0.079945] devtmpfs: initialized
-[ 0.081784] EVM: security.selinux
-[ 0.082251] EVM: security.SMACK64
-[ 0.082720] EVM: security.ima
-[ 0.083135] EVM: security.capability
-[ 0.084729] pinctrl core: initialized pinctrl subsystem
-[ 0.085517] regulator-dummy: no parameters
-[ 0.086187] RTC time: 19:51:09, date: 01/28/15
-[ 0.086869] NET: Registered protocol family 16
-[ 0.087613] cpuidle: using governor ladder
-[ 0.088009] cpuidle: using governor menu
-[ 0.088580] ACPI: bus type PCI registered
-[ 0.089191] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
-[ 0.090220] PCI: Using configuration type 1 for base access
-[ 0.091749] bio: create slab at 0
-[ 0.092215] ACPI: Added _OSI(Module Device)
-[ 0.092799] ACPI: Added _OSI(Processor Device)
-[ 0.093410] ACPI: Added _OSI(3.0 _SCP Extensions)
-[ 0.094173] ACPI: Added _OSI(Processor Aggregator Device)
-[ 0.096962] ACPI: Interpreter enabled
-[ 0.097483] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20131115/hwxface-580)
-[ 0.098762] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20131115/hwxface-580)
-[ 0.100011] ACPI: (supports S0 S3 S4 S5)
-[ 0.100555] ACPI: Using IOAPIC for interrupt routing
-[ 0.101252] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
-[ 0.102545] ACPI: No dock devices found.
-[ 0.105210] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
-[ 0.106060] acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI]
-[ 0.108025] acpi PNP0A03:00: _OSC failed (AE_NOT_FOUND); disabling ASPM
-[ 0.109116] acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge.
-[ 0.112685] PCI host bridge to bus 0000:00
-[ 0.113294] pci_bus 0000:00: root bus resource [bus 00-ff]
-[ 0.114054] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7]
-[ 0.115065] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff]
-[ 0.116004] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
-[ 0.116955] pci_bus 0000:00: root bus resource [mem 0x6cc00000-0xfebfffff]
-[ 0.117916] pci 0000:00:01.0: [8086:7110] type 00 class 0x060100
-[ 0.122089] pci 0000:00:01.3: [8086:7113] type 00 class 0x068000
-[ 0.125713] pci 0000:00:01.3: quirk: [io 0xb000-0xb03f] claimed by PIIX4 ACPI
-[ 0.127117] pci 0000:00:03.0: [1af4:1004] type 00 class 0x000000
-[ 0.128752] pci 0000:00:03.0: reg 0x10: [io 0xc000-0xc03f]
-[ 0.130322] pci 0000:00:03.0: reg 0x14: [mem 0xfebfe000-0xfebfe07f]
-[ 0.133571] pci 0000:00:04.0: [1af4:1000] type 00 class 0x020000
-[ 0.135267] pci 0000:00:04.0: reg 0x10: [io 0xc040-0xc07f]
-[ 0.136777] pci 0000:00:04.0: reg 0x14: [mem 0xfebff000-0xfebff03f]
-[ 0.140811] ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11)
-[ 0.141879] ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11)
-[ 0.142886] ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11)
-[ 0.144086] ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11)
-[ 0.145067] ACPI: PCI Interrupt Link [LNKS] (IRQs *9)
-[ 0.146245] ACPI: Enabled 16 GPEs in block 00 to 0F
-[ 0.147038] ACPI: \_SB_.PCI0: notify handler is installed
-[ 0.147840] Found 1 acpi root devices
-[ 0.148136] vgaarb: loaded
-[ 0.148780] SCSI subsystem initialized
-[ 0.149472] libata version 3.00 loaded.
-[ 0.150070] ACPI: bus type USB registered
-[ 0.150659] usbcore: registered new interface driver usbfs
-[ 0.151536] usbcore: registered new interface driver hub
-[ 0.152055] usbcore: registered new device driver usb
-[ 0.153144] PCI: Using ACPI for IRQ routing
-[ 0.153756] PCI: pci_cache_line_size set to 64 bytes
-[ 0.154617] e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff]
-[ 0.156004] e820: reserve RAM buffer [mem 0x6cbfe000-0x6fffffff]
-[ 0.156993] NetLabel: Initializing
-[ 0.157498] NetLabel: domain hash size = 128
-[ 0.158082] NetLabel: protocols = UNLABELED CIPSOv4
-[ 0.158815] NetLabel: unlabeled traffic allowed by default
-[ 0.160005] Switched to clocksource kvm-clock
-[ 0.168695] AppArmor: AppArmor Filesystem Enabled
-[ 0.169361] pnp: PnP ACPI init
-[ 0.169853] ACPI: bus type PNP registered
-[ 0.170499] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active)
-[ 0.171591] pnp 00:01: Plug and Play ACPI device, IDs PNP0501 (active)
-[ 0.172574] pnp 00:02: Plug and Play ACPI device, IDs PNP0501 (active)
-[ 0.173782] pnp: PnP ACPI: found 3 devices
-[ 0.174430] ACPI: bus type PNP unregistered
-[ 0.181364] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7]
-[ 0.182172] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff]
-[ 0.183049] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
-[ 0.184120] pci_bus 0000:00: resource 7 [mem 0x6cc00000-0xfebfffff]
-[ 0.185051] NET: Registered protocol family 2
-[ 0.185859] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
-[ 0.187117] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
-[ 0.188393] TCP: Hash tables configured (established 16384 bind 16384)
-[ 0.189429] TCP: reno registered
-[ 0.189929] UDP hash table entries: 1024 (order: 3, 32768 bytes)
-[ 0.190824] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
-[ 0.191830] NET: Registered protocol family 1
-[ 0.192585] PCI: CLS 0 bytes, default 64
-[ 0.193412] Trying to unpack rootfs image as initramfs...
-[ 0.897565] Freeing initrd memory: 18780K (ffff880035b42000 - ffff880036d99000)
-[ 0.898982] microcode: CPU0 sig=0x306e4, pf=0x1, revision=0x1
-[ 0.899884] microcode: Microcode Update Driver: v2.00 , Peter Oruba
-[ 0.901196] Scanning for low memory corruption every 60 seconds
-[ 0.902497] Initialise system trusted keyring
-[ 0.903169] audit: initializing netlink socket (disabled)
-[ 0.904016] type=2000 audit(1422474669.702:1): initialized
-[ 0.926617] HugeTLB registered 2 MB page size, pre-allocated 0 pages
-[ 0.928567] zbud: loaded
-[ 0.929030] VFS: Disk quotas dquot_6.5.2
-[ 0.929685] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
-[ 0.931113] fuse init (API version 7.22)
-[ 0.931781] msgmni has been set to 3390
-[ 0.932595] Key type big_key registered
-[ 0.933680] Key type asymmetric registered
-[ 0.934332] Asymmetric key parser 'x509' registered
-[ 0.935078] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
-[ 0.936224] io scheduler noop registered
-[ 0.936858] io scheduler deadline registered (default)
-[ 0.937675] io scheduler cfq registered
-[ 0.938307] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
-[ 0.939158] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
-[ 0.940239] efifb: probing for efifb
-[ 0.940788] efifb: framebuffer at 0xa0000, mapped to 0xffff8800000a0000, using 64k, total 64k
-[ 0.942044] efifb: mode is 640x480x1, linelength=80, pages=1
-[ 0.942964] efifb: scrolling: redraw
-[ 0.943525] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
-[ 0.945209] Console: switching to colour frame buffer device 80x30
-[ 0.946826] fb0: EFI VGA frame buffer device
-[ 0.947485] intel_idle: does not run on family 6 model 62
-[ 0.948380] ipmi message handler version 39.2
-[ 0.949036] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
-[ 0.950135] ACPI: Power Button [PWRF]
-[ 0.950722] input: Sleep Button as /devices/LNXSYSTM:00/LNXSLPBN:00/input/input1
-[ 0.951773] ACPI: Sleep Button [SLPF]
-[ 0.952529] GHES: HEST is not enabled!
-[ 0.953921] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
-[ 0.955783] ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 10
-[ 0.957395] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
-[ 1.112167] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
-[ 1.134843] 00:02: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
-[ 1.137110] Linux agpgart interface v0.103
-[ 1.138975] brd: module loaded
-[ 1.140117] loop: module loaded
-[ 1.140923] libphy: Fixed MDIO Bus: probed
-[ 1.141640] tun: Universal TUN/TAP device driver, 1.6
-[ 1.142342] tun: (C) 1999-2004 Max Krasnyansky
-[ 1.144063] virtio-pci 0000:00:04.0: irq 40 for MSI/MSI-X
-[ 1.144871] virtio-pci 0000:00:04.0: irq 41 for MSI/MSI-X
-[ 1.145670] virtio-pci 0000:00:04.0: irq 42 for MSI/MSI-X
-[ 1.151673] PPP generic driver version 2.4.2
-[ 1.152344] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
-[ 1.153399] ehci-pci: EHCI PCI platform driver
-[ 1.154021] ehci-platform: EHCI generic platform driver
-[ 1.154939] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
-[ 1.155973] ohci-pci: OHCI PCI platform driver
-[ 1.156675] ohci-platform: OHCI generic platform driver
-[ 1.157423] uhci_hcd: USB Universal Host Controller Interface driver
-[ 1.158352] i8042: PNP: No PS/2 controller found. Probing ports directly.
-[ 3.646820] i8042: No controller found
-[ 3.647493] tsc: Refined TSC clocksource calibration: 2500.002 MHz
-[ 3.648490] mousedev: PS/2 mouse device common for all mice
-[ 3.649499] rtc_cmos 00:00: RTC can wake from S4
-[ 3.650595] rtc_cmos 00:00: rtc core: registered rtc_cmos as rtc0
-[ 3.651521] rtc_cmos 00:00: alarms up to one day, 114 bytes nvram
-[ 3.652422] device-mapper: uevent: version 1.0.3
-[ 3.653131] device-mapper: ioctl: 4.27.0-ioctl (2013-10-30) initialised: dm-devel@redhat.com
-[ 3.654281] ledtrig-cpu: registered to indicate activity on CPUs
-[ 3.655182] TCP: cubic registered
-[ 3.655704] NET: Registered protocol family 10
-[ 3.656551] NET: Registered protocol family 17
-[ 3.657183] Key type dns_resolver registered
-[ 3.657931] Loading compiled-in X.509 certificates
-[ 3.659264] Loaded X.509 cert 'Magrathea: Glacier signing key: 23984ac203784325ccf7b95b51f6c119380eb933'
-[ 3.660726] registered taskstats version 1
-[ 3.663211] Key type trusted registered
-[ 3.665462] Key type encrypted registered
-[ 3.667679] AppArmor: AppArmor sha1 policy hashing enabled
-[ 3.668454] IMA: No TPM chip found, activating TPM-bypass!
-[ 3.669388] regulator-dummy: disabling
-[ 3.669971] Magic number: 15:428:901
-[ 3.670625] clocksource clocksource0: hash matches
-[ 3.671311] acpi PNP0501:01: hash matches
-[ 3.671953] rtc_cmos 00:00: setting system clock to 2015-01-28 19:51:13 UTC (1422474673)
-[ 3.673268] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
-[ 3.674088] EDD information not available.
-[ 3.674668] PM: Hibernation image not present or could not be loaded.
-[ 3.676577] Freeing unused kernel memory: 1332K (ffffffff81d1f000 - ffffffff81e6c000)
-[ 3.678370] Write protecting the kernel read-only data: 12288k
-[ 3.681251] Freeing unused kernel memory: 828K (ffff880001731000 - ffff880001800000)
-[ 3.684444] Freeing unused kernel memory: 700K (ffff880001b51000 - ffff880001c00000)
-[ 3.700162] systemd-udevd[90]: starting version 204
-[ 3.866262] virtio-pci 0000:00:03.0: irq 43 for MSI/MSI-X
-[ 3.867187] virtio-pci 0000:00:03.0: irq 44 for MSI/MSI-X
-[ 3.867997] virtio-pci 0000:00:03.0: irq 45 for MSI/MSI-X
-[ 3.876214] virtio-pci 0000:00:03.0: irq 46 for MSI/MSI-X
-[ 3.880005] scsi0 : Virtio SCSI HBA
-[ 3.912410] scsi 0:0:1:0: Direct-Access Google PersistentDisk 1 PQ: 0 ANSI: 6
-[ 3.938957] sd 0:0:1:0: Attached scsi generic sg0 type 0
-[ 3.939845] sd 0:0:1:0: [sda] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB)
-[ 3.941149] sd 0:0:1:0: [sda] 4096-byte physical blocks
-[ 3.942233] sd 0:0:1:0: [sda] Write Protect is off
-[ 3.942988] sd 0:0:1:0: [sda] Mode Sense: 1f 00 00 08
-[ 3.944398] sd 0:0:1:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
-[ 3.961885] sda: sda1
-[ 3.963152] sd 0:0:1:0: [sda] Attached SCSI disk
-[ 4.414649] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
-[ 5.293574] random: init urandom read with 73 bits of entropy available
-[ 6.418187] random: nonblocking pool is initialized
-[ 6.692508] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
-[ 7.121847] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
-[ 7.681714] systemd-udevd[293]: starting version 204
-[ 8.437234] lp: driver loaded but no devices found
-[ 9.164195] piix4_smbus 0000:00:01.3: SMBus base address uninitialized - upgrade BIOS or use force_addr=0xaddr
-[ 9.648096] device-mapper: multipath: version 1.6.0 loaded
-[ 10.434575] type=1400 audit(1422474680.256:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/sbin/dhclient" pid=368 comm="apparmor_parser"
-[ 10.437242] type=1400 audit(1422474680.260:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=368 comm="apparmor_parser"
-[ 10.439901] type=1400 audit(1422474680.260:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=368 comm="apparmor_parser"
-[ 11.126295] type=1400 audit(1422474680.948:5): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/sbin/dhclient" pid=412 comm="apparmor_parser"
-[ 11.129123] type=1400 audit(1422474680.952:6): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=412 comm="apparmor_parser"
-[ 11.132139] type=1400 audit(1422474680.956:7): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=412 comm="apparmor_parser"
-[ 11.196173] type=1400 audit(1422474681.020:8): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/sbin/dhclient" pid=458 comm="apparmor_parser"
-[ 11.198887] type=1400 audit(1422474681.020:9): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=458 comm="apparmor_parser"
-[ 11.201484] type=1400 audit(1422474681.028:10): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=458 comm="apparmor_parser"
-[ 11.361371] init: udev-fallback-graphics main process (454) terminated with status 1
-[ 11.378437] type=1400 audit(1422474681.200:11): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=458 comm="apparmor_parser"
-[ 14.366411] init: failsafe main process (491) killed by TERM signal
-kateknister@kateknister-test3:~$ tail -f /var/log/syslog
-Jan 28 19:51:47 localhost ntpdate[1240]: adjust time server 169.254.169.254 offset -0.383723 sec
-Jan 28 19:51:47 localhost ntpd[1312]: ntpd 4.2.6p5@1.2349-o Wed Oct 9 19:08:06 UTC 2013 (1)
-Jan 28 19:51:47 localhost ntpd[1313]: proto: precision = 0.449 usec
-Jan 28 19:51:47 localhost ntpd[1313]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
-Jan 28 19:51:47 localhost ntpd[1313]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
-Jan 28 19:51:47 localhost ntpd[1313]: Listen and drop on 1 v6wildcard :: UDP 123
-Jan 28 19:51:47 localhost ntpd[1313]: Listen normally on 2 lo 127.0.0.1 UDP 123
-Jan 28 19:51:47 localhost ntpd[1313]: Listen normally on 3 eth0 10.240.192.196 UDP 123
-Jan 28 19:51:47 localhost ntpd[1313]: peers refreshed
-Jan 28 19:51:47 localhost ntpd[1313]: Listening on routing socket on fd #20 for interface updates
-Jan 28 19:58:45 localhost kernel: [ 455.498827] badsysprogram invoked oom-killer: gfp_mask=0x280da, order=0, oom_score_adj=0
-Jan 28 19:58:45 localhost kernel: [ 455.500173] badsysprogram cpuset=/ mems_allowed=0
-Jan 28 19:58:45 localhost kernel: [ 455.501007] CPU: 0 PID: 1532 Comm: badsysprogram Not tainted 3.13.0-27-generic #50-Ubuntu
-Jan 28 19:58:45 localhost kernel: [ 455.502301] Hardware name: Google Google, BIOS Google 01/01/2011
-Jan 28 19:58:45 localhost kernel: [ 455.503298] 0000000000000000 ffff880069715a90 ffffffff817199c4 ffff8800680d8000
-Jan 28 19:58:45 localhost kernel: [ 455.504563] ffff880069715b18 ffffffff817142ff 0000000000000000 0000000000000000
-Jan 28 19:58:45 localhost kernel: [ 455.505779] 0000000000000000 0000000000000000 0000000000000000 0000000000000000
-Jan 28 19:58:45 localhost kernel: [ 455.506971] Call Trace:
-Jan 28 19:58:45 localhost kernel: [ 455.507353] [] dump_stack+0x45/0x56
-Jan 28 19:58:45 localhost kernel: [ 455.508289] [] dump_header+0x7f/0x1f1
-Jan 28 19:58:45 localhost kernel: [ 455.509112] [] oom_kill_process+0x1ce/0x330
-Jan 28 19:58:45 localhost kernel: [ 455.510023] [] ? security_capable_noaudit+0x15/0x20
-Jan 28 19:58:45 localhost kernel: [ 455.510994] [] out_of_memory+0x414/0x450
-Jan 28 19:58:45 localhost kernel: [ 455.511820] [] __alloc_pages_nodemask+0xa87/0xb20
-Jan 28 19:58:45 localhost kernel: [ 455.512815] [] alloc_pages_vma+0x9a/0x140
-Jan 28 19:58:45 localhost kernel: [ 455.513647] [] handle_mm_fault+0xb2b/0xf10
-Jan 28 19:58:45 localhost kernel: [ 455.514498] [] __do_page_fault+0x184/0x560
-Jan 28 19:58:45 localhost kernel: [ 455.515415] [] ? sched_clock+0x9/0x10
-Jan 28 19:58:45 localhost kernel: [ 455.516318] [] ? sched_clock_local+0x1d/0x80
-Jan 28 19:58:45 localhost kernel: [ 455.517242] [] ? acct_account_cputime+0x1c/0x20
-Jan 28 19:58:45 localhost kernel: [ 455.518141] [] ? account_user_time+0x8b/0xa0
-Jan 28 19:58:45 localhost kernel: [ 455.519014] [] ? vtime_account_user+0x54/0x60
-Jan 28 19:58:45 localhost kernel: [ 455.519910] [] do_page_fault+0x1a/0x70
-Jan 28 19:58:45 localhost kernel: [ 455.520712] [] page_fault+0x28/0x30
-Jan 28 19:58:45 localhost kernel: [ 455.521498] Mem-Info:
-Jan 28 19:58:45 localhost kernel: [ 455.521873] Node 0 DMA per-cpu:
-Jan 28 19:58:45 localhost kernel: [ 455.522388] CPU 0: hi: 0, btch: 1 usd: 0
-Jan 28 19:58:45 localhost kernel: [ 455.598342] Node 0 DMA32 per-cpu:
-Jan 28 19:58:45 localhost kernel: [ 455.598890] CPU 0: hi: 186, btch: 31 usd: 86
-Jan 28 19:58:45 localhost kernel: [ 455.599687] active_anon:405991 inactive_anon:57 isolated_anon:0
-Jan 28 19:58:45 localhost kernel: [ 455.599687] active_file:35 inactive_file:69 isolated_file:0
-Jan 28 19:58:45 localhost kernel: [ 455.599687] unevictable:0 dirty:0 writeback:0 unstable:0
-Jan 28 19:58:45 localhost kernel: [ 455.599687] free:12929 slab_reclaimable:1635 slab_unreclaimable:1919
-Jan 28 19:58:45 localhost kernel: [ 455.599687] mapped:34 shmem:70 pagetables:1423 bounce:0
-Jan 28 19:58:45 localhost kernel: [ 455.599687] free_cma:0
-Jan 28 19:58:45 localhost kernel: [ 455.604585] Node 0 DMA free:7124kB min:412kB low:512kB high:616kB active_anon:8508kB inactive_anon:4kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15992kB managed:15908kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:4kB slab_reclaimable:16kB slab_unreclaimable:16kB kernel_stack:0kB pagetables:12kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes
-Jan 28 19:58:45 localhost kernel: [ 455.610811] lowmem_reserve[]: 0 1679 1679 1679
-Jan 28 19:58:45 localhost kernel: [ 455.611600] Node 0 DMA32 free:44592kB min:44640kB low:55800kB high:66960kB active_anon:1615456kB inactive_anon:224kB active_file:140kB inactive_file:276kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:1765368kB managed:1722912kB mlocked:0kB dirty:0kB writeback:0kB mapped:136kB shmem:276kB slab_reclaimable:6524kB slab_unreclaimable:7660kB kernel_stack:592kB pagetables:5680kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:819 all_unreclaimable? yes
-Jan 28 19:58:45 localhost kernel: [ 455.618372] lowmem_reserve[]: 0 0 0 0
-Jan 28 19:58:45 localhost kernel: [ 455.619041] Node 0 DMA: 5*4kB (UM) 6*8kB (UEM) 7*16kB (UEM) 1*32kB (M) 2*64kB (UE) 3*128kB (UEM) 1*256kB (E) 2*512kB (EM) 3*1024kB (UEM) 1*2048kB (R) 0*4096kB = 7124kB
-Jan 28 19:58:45 localhost kernel: [ 455.621861] Node 0 DMA32: 74*4kB (UEM) 125*8kB (UEM) 78*16kB (UEM) 26*32kB (UE) 12*64kB (UEM) 4*128kB (UE) 4*256kB (UE) 2*512kB (E) 11*1024kB (UE) 7*2048kB (UE) 3*4096kB (UR) = 44592kB
-Jan 28 19:58:45 localhost kernel: [ 455.625174] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
-Jan 28 19:58:45 localhost kernel: [ 455.626394] 204 total pagecache pages
-Jan 28 19:58:45 localhost kernel: [ 455.626954] 0 pages in swap cache
-Jan 28 19:58:45 localhost kernel: [ 455.627455] Swap cache stats: add 0, delete 0, find 0/0
-Jan 28 19:58:45 localhost kernel: [ 455.628242] Free swap = 0kB
-Jan 28 19:58:45 localhost kernel: [ 455.628686] Total swap = 0kB
-Jan 28 19:58:45 localhost kernel: [ 455.629147] 445340 pages RAM
-Jan 28 19:58:45 localhost kernel: [ 455.629577] 0 pages HighMem/MovableOnly
-Jan 28 19:58:45 localhost kernel: [ 455.630301] 10614 pages reserved
-Jan 28 19:58:45 localhost kernel: [ 455.630787] [ pid ] uid tgid total_vm rss nr_ptes swapents oom_score_adj name
-Jan 28 19:58:45 localhost kernel: [ 455.631937] [ 273] 0 273 4869 50 13 0 0 upstart-udev-br
-Jan 28 19:58:45 localhost kernel: [ 455.633290] [ 293] 0 293 12802 154 28 0 -1000 systemd-udevd
-Jan 28 19:58:45 localhost kernel: [ 455.634671] [ 321] 0 321 3819 54 12 0 0 upstart-file-br
-Jan 28 19:58:45 localhost kernel: [ 455.636070] [ 326] 102 326 9805 109 24 0 0 dbus-daemon
-Jan 28 19:58:45 localhost kernel: [ 455.637373] [ 334] 101 334 63960 94 26 0 0 rsyslogd
-Jan 28 19:58:45 localhost kernel: [ 455.638761] [ 343] 0 343 10863 102 26 0 0 systemd-logind
-Jan 28 19:58:45 localhost kernel: [ 455.640158] [ 546] 0 546 3815 60 13 0 0 upstart-socket-
-Jan 28 19:58:45 localhost kernel: [ 455.641534] [ 710] 0 710 2556 587 8 0 0 dhclient
-Jan 28 19:58:45 localhost kernel: [ 455.642834] [ 863] 0 863 3955 48 13 0 0 getty
-Jan 28 19:58:45 localhost kernel: [ 455.644139] [ 865] 0 865 3955 50 13 0 0 getty
-Jan 28 19:58:45 localhost kernel: [ 455.645325] [ 867] 0 867 3955 51 13 0 0 getty
-Jan 28 19:58:45 localhost kernel: [ 455.646621] [ 868] 0 868 3955 51 12 0 0 getty
-Jan 28 19:58:45 localhost kernel: [ 455.647963] [ 870] 0 870 3955 49 13 0 0 getty
-Jan 28 19:58:45 localhost kernel: [ 455.649234] [ 915] 0 915 5914 61 16 0 0 cron
-Jan 28 19:58:45 localhost kernel: [ 455.650439] [ 1015] 0 1015 10885 1524 25 0 0 manage_addresse
-Jan 28 19:58:45 localhost kernel: [ 455.651817] [ 1028] 0 1028 3955 49 13 0 0 getty
-Jan 28 19:58:45 localhost kernel: [ 455.653091] [ 1033] 0 1033 3197 48 12 0 0 getty
-Jan 28 19:58:45 localhost kernel: [ 455.654783] [ 1264] 0 1264 11031 1635 26 0 0 manage_accounts
-Jan 28 19:58:45 localhost kernel: [ 455.656657] [ 1268] 0 1268 15341 180 33 0 -1000 sshd
-Jan 28 19:58:45 localhost kernel: [ 455.657865] [ 1313] 104 1313 6804 154 17 0 0 ntpd
-Jan 28 19:58:45 localhost kernel: [ 455.659085] [ 1389] 0 1389 25889 255 55 0 0 sshd
-Jan 28 19:58:45 localhost kernel: [ 455.660440] [ 1407] 1020 1407 25889 255 52 0 0 sshd
-Jan 28 19:58:45 localhost kernel: [ 455.661595] [ 1408] 1020 1408 5711 581 17 0 0 bash
-Jan 28 19:58:45 localhost kernel: [ 455.662887] [ 1425] 0 1425 25889 256 53 0 0 sshd
-Jan 28 19:58:45 localhost kernel: [ 455.664075] [ 1443] 1020 1443 25889 257 52 0 0 sshd
-Jan 28 19:58:45 localhost kernel: [ 455.665330] [ 1444] 1020 1444 5711 581 16 0 0 bash
-Jan 28 19:58:45 localhost kernel: [ 455.666450] [ 1476] 1020 1476 1809 25 9 0 0 tail
-Jan 28 19:58:45 localhost kernel: [ 455.667682] [ 1532] 1020 1532 410347 398810 788 0 0 badsysprogram
-Jan 28 19:58:45 localhost kernel: [ 455.669006] Out of memory: Kill process 1532 (badsysprogram) score 919 or sacrifice child
-Jan 28 19:58:45 localhost kernel: [ 455.670291] Killed process 1532 (badsysprogram) total-vm:1641388kB, anon-rss:1595164kB, file-rss:76kB
-[ 0.170499] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active)
-[ 0.171591] pnp 00:01: Plug and Play ACPI device, IDs PNP0501 (active)
-[ 0.172574] pnp 00:02: Plug and Play ACPI device, IDs PNP0501 (active)
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/sysfs/fakesysfs/fake.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/sysfs/fakesysfs/fake.go
deleted file mode 100644
index 963fc61..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/sysfs/fakesysfs/fake.go
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
-//
-// 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 fakesysfs
-
-import (
- "os"
- "time"
-
- "github.com/google/cadvisor/utils/sysfs"
-)
-
-// If we extend sysfs to support more interfaces, it might be worth making this a mock instead of a fake.
-type FileInfo struct {
- EntryName string
-}
-
-func (self *FileInfo) Name() string {
- return self.EntryName
-}
-
-func (self *FileInfo) Size() int64 {
- return 1234567
-}
-
-func (self *FileInfo) Mode() os.FileMode {
- return 0
-}
-
-func (self *FileInfo) ModTime() time.Time {
- return time.Time{}
-}
-
-func (self *FileInfo) IsDir() bool {
- return true
-}
-
-func (self *FileInfo) Sys() interface{} {
- return nil
-}
-
-type FakeSysFs struct {
- info FileInfo
- cache sysfs.CacheInfo
-}
-
-func (self *FakeSysFs) GetBlockDevices() ([]os.FileInfo, error) {
- self.info.EntryName = "sda"
- return []os.FileInfo{&self.info}, nil
-}
-
-func (self *FakeSysFs) GetBlockDeviceSize(name string) (string, error) {
- return "1234567", nil
-}
-
-func (self *FakeSysFs) GetBlockDeviceScheduler(name string) (string, error) {
- return "noop deadline [cfq]", nil
-}
-
-func (self *FakeSysFs) GetBlockDeviceNumbers(name string) (string, error) {
- return "8:0\n", nil
-}
-
-func (self *FakeSysFs) GetNetworkDevices() ([]os.FileInfo, error) {
- return []os.FileInfo{&self.info}, nil
-}
-
-func (self *FakeSysFs) GetNetworkAddress(name string) (string, error) {
- return "42:01:02:03:04:f4\n", nil
-}
-
-func (self *FakeSysFs) GetNetworkMtu(name string) (string, error) {
- return "1024\n", nil
-}
-
-func (self *FakeSysFs) GetNetworkSpeed(name string) (string, error) {
- return "1000\n", nil
-}
-
-func (self *FakeSysFs) GetNetworkStatValue(name string, stat string) (uint64, error) {
- return 1024, nil
-}
-
-func (self *FakeSysFs) GetCaches(id int) ([]os.FileInfo, error) {
- self.info.EntryName = "index0"
- return []os.FileInfo{&self.info}, nil
-}
-
-func (self *FakeSysFs) GetCacheInfo(cpu int, cache string) (sysfs.CacheInfo, error) {
- return self.cache, nil
-}
-
-func (self *FakeSysFs) SetCacheInfo(cache sysfs.CacheInfo) {
- self.cache = cache
-}
-
-func (self *FakeSysFs) SetEntryName(name string) {
- self.info.EntryName = name
-}
-
-func (self *FakeSysFs) GetSystemUUID() (string, error) {
- return "1F862619-BA9F-4526-8F85-ECEAF0C97430", nil
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/sysfs/sysfs.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/sysfs/sysfs.go
deleted file mode 100644
index 5667e01..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/sysfs/sysfs.go
+++ /dev/null
@@ -1,249 +0,0 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
-//
-// 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 sysfs
-
-import (
- "fmt"
- "io/ioutil"
- "os"
- "path"
- "strconv"
- "strings"
-)
-
-const (
- blockDir = "/sys/block"
- cacheDir = "/sys/devices/system/cpu/cpu"
- netDir = "/sys/class/net"
- dmiDir = "/sys/class/dmi"
- ppcDevTree = "/proc/device-tree"
- s390xDevTree = "/etc" // s390/s390x changes
-)
-
-type CacheInfo struct {
- // size in bytes
- Size uint64
- // cache type - instruction, data, unified
- Type string
- // distance from cpus in a multi-level hierarchy
- Level int
- // number of cpus that can access this cache.
- Cpus int
-}
-
-// Abstracts the lowest level calls to sysfs.
-type SysFs interface {
- // Get directory information for available block devices.
- GetBlockDevices() ([]os.FileInfo, error)
- // Get Size of a given block device.
- GetBlockDeviceSize(string) (string, error)
- // Get scheduler type for the block device.
- GetBlockDeviceScheduler(string) (string, error)
- // Get device major:minor number string.
- GetBlockDeviceNumbers(string) (string, error)
-
- GetNetworkDevices() ([]os.FileInfo, error)
- GetNetworkAddress(string) (string, error)
- GetNetworkMtu(string) (string, error)
- GetNetworkSpeed(string) (string, error)
- GetNetworkStatValue(dev string, stat string) (uint64, error)
-
- // Get directory information for available caches accessible to given cpu.
- GetCaches(id int) ([]os.FileInfo, error)
- // Get information for a cache accessible from the given cpu.
- GetCacheInfo(cpu int, cache string) (CacheInfo, error)
-
- GetSystemUUID() (string, error)
-}
-
-type realSysFs struct{}
-
-func NewRealSysFs() (SysFs, error) {
- return &realSysFs{}, nil
-}
-
-func (self *realSysFs) GetBlockDevices() ([]os.FileInfo, error) {
- return ioutil.ReadDir(blockDir)
-}
-
-func (self *realSysFs) GetBlockDeviceNumbers(name string) (string, error) {
- dev, err := ioutil.ReadFile(path.Join(blockDir, name, "/dev"))
- if err != nil {
- return "", err
- }
- return string(dev), nil
-}
-
-func (self *realSysFs) GetBlockDeviceScheduler(name string) (string, error) {
- sched, err := ioutil.ReadFile(path.Join(blockDir, name, "/queue/scheduler"))
- if err != nil {
- return "", err
- }
- return string(sched), nil
-}
-
-func (self *realSysFs) GetBlockDeviceSize(name string) (string, error) {
- size, err := ioutil.ReadFile(path.Join(blockDir, name, "/size"))
- if err != nil {
- return "", err
- }
- return string(size), nil
-}
-
-func (self *realSysFs) GetNetworkDevices() ([]os.FileInfo, error) {
- files, err := ioutil.ReadDir(netDir)
- if err != nil {
- return nil, err
- }
-
- // Filter out non-directory & non-symlink files
- var dirs []os.FileInfo
- for _, f := range files {
- if f.Mode()|os.ModeSymlink != 0 {
- f, err = os.Stat(path.Join(netDir, f.Name()))
- if err != nil {
- continue
- }
- }
- if f.IsDir() {
- dirs = append(dirs, f)
- }
- }
- return dirs, nil
-}
-
-func (self *realSysFs) GetNetworkAddress(name string) (string, error) {
- address, err := ioutil.ReadFile(path.Join(netDir, name, "/address"))
- if err != nil {
- return "", err
- }
- return string(address), nil
-}
-
-func (self *realSysFs) GetNetworkMtu(name string) (string, error) {
- mtu, err := ioutil.ReadFile(path.Join(netDir, name, "/mtu"))
- if err != nil {
- return "", err
- }
- return string(mtu), nil
-}
-
-func (self *realSysFs) GetNetworkSpeed(name string) (string, error) {
- speed, err := ioutil.ReadFile(path.Join(netDir, name, "/speed"))
- if err != nil {
- return "", err
- }
- return string(speed), nil
-}
-
-func (self *realSysFs) GetNetworkStatValue(dev string, stat string) (uint64, error) {
- statPath := path.Join(netDir, dev, "/statistics", stat)
- out, err := ioutil.ReadFile(statPath)
- if err != nil {
- return 0, fmt.Errorf("failed to read stat from %q for device %q", statPath, dev)
- }
- var s uint64
- n, err := fmt.Sscanf(string(out), "%d", &s)
- if err != nil || n != 1 {
- return 0, fmt.Errorf("could not parse value from %q for file %s", string(out), statPath)
- }
- return s, nil
-}
-
-func (self *realSysFs) GetCaches(id int) ([]os.FileInfo, error) {
- cpuPath := fmt.Sprintf("%s%d/cache", cacheDir, id)
- return ioutil.ReadDir(cpuPath)
-}
-
-func bitCount(i uint64) (count int) {
- for i != 0 {
- if i&1 == 1 {
- count++
- }
- i >>= 1
- }
- return
-}
-
-func getCpuCount(cache string) (count int, err error) {
- out, err := ioutil.ReadFile(path.Join(cache, "/shared_cpu_map"))
- if err != nil {
- return 0, err
- }
- masks := strings.Split(string(out), ",")
- for _, mask := range masks {
- // convert hex string to uint64
- m, err := strconv.ParseUint(strings.TrimSpace(mask), 16, 64)
- if err != nil {
- return 0, fmt.Errorf("failed to parse cpu map %q: %v", string(out), err)
- }
- count += bitCount(m)
- }
- return
-}
-
-func (self *realSysFs) GetCacheInfo(id int, name string) (CacheInfo, error) {
- cachePath := fmt.Sprintf("%s%d/cache/%s", cacheDir, id, name)
- out, err := ioutil.ReadFile(path.Join(cachePath, "/size"))
- if err != nil {
- return CacheInfo{}, err
- }
- var size uint64
- n, err := fmt.Sscanf(string(out), "%dK", &size)
- if err != nil || n != 1 {
- return CacheInfo{}, err
- }
- // convert to bytes
- size = size * 1024
- out, err = ioutil.ReadFile(path.Join(cachePath, "/level"))
- if err != nil {
- return CacheInfo{}, err
- }
- var level int
- n, err = fmt.Sscanf(string(out), "%d", &level)
- if err != nil || n != 1 {
- return CacheInfo{}, err
- }
-
- out, err = ioutil.ReadFile(path.Join(cachePath, "/type"))
- if err != nil {
- return CacheInfo{}, err
- }
- cacheType := strings.TrimSpace(string(out))
- cpuCount, err := getCpuCount(cachePath)
- if err != nil {
- return CacheInfo{}, err
- }
- return CacheInfo{
- Size: size,
- Level: level,
- Type: cacheType,
- Cpus: cpuCount,
- }, nil
-}
-
-func (self *realSysFs) GetSystemUUID() (string, error) {
- if id, err := ioutil.ReadFile(path.Join(dmiDir, "id", "product_uuid")); err == nil {
- return strings.TrimSpace(string(id)), nil
- } else if id, err = ioutil.ReadFile(path.Join(ppcDevTree, "system-id")); err == nil {
- return strings.TrimSpace(string(id)), nil
- } else if id, err = ioutil.ReadFile(path.Join(ppcDevTree, "vm,uuid")); err == nil {
- return strings.TrimSpace(string(id)), nil
- } else if id, err = ioutil.ReadFile(path.Join(s390xDevTree, "machine-id")); err == nil {
- return strings.TrimSpace(string(id)), nil
- } else {
- return "", err
- }
-}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/sysinfo/sysinfo.go b/Godeps/_workspace/src/github.com/google/cadvisor/utils/sysinfo/sysinfo.go
deleted file mode 100644
index 2701738..0000000
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/sysinfo/sysinfo.go
+++ /dev/null
@@ -1,210 +0,0 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
-//
-// 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 sysinfo
-
-import (
- "fmt"
- "regexp"
- "strconv"
- "strings"
-
- info "github.com/google/cadvisor/info/v1"
- "github.com/google/cadvisor/utils/sysfs"
-)
-
-var schedulerRegExp = regexp.MustCompile(".*\\[(.*)\\].*")
-
-// Get information about block devices present on the system.
-// Uses the passed in system interface to retrieve the low level OS information.
-func GetBlockDeviceInfo(sysfs sysfs.SysFs) (map[string]info.DiskInfo, error) {
- disks, err := sysfs.GetBlockDevices()
- if err != nil {
- return nil, err
- }
-
- diskMap := make(map[string]info.DiskInfo)
- for _, disk := range disks {
- name := disk.Name()
- // Ignore non-disk devices.
- // TODO(rjnagal): Maybe just match hd, sd, and dm prefixes.
- if strings.HasPrefix(name, "loop") || strings.HasPrefix(name, "ram") || strings.HasPrefix(name, "sr") {
- continue
- }
- disk_info := info.DiskInfo{
- Name: name,
- }
- dev, err := sysfs.GetBlockDeviceNumbers(name)
- if err != nil {
- return nil, err
- }
- n, err := fmt.Sscanf(dev, "%d:%d", &disk_info.Major, &disk_info.Minor)
- if err != nil || n != 2 {
- return nil, fmt.Errorf("could not parse device numbers from %s for device %s", dev, name)
- }
- out, err := sysfs.GetBlockDeviceSize(name)
- if err != nil {
- return nil, err
- }
- // Remove trailing newline before conversion.
- size, err := strconv.ParseUint(strings.TrimSpace(out), 10, 64)
- if err != nil {
- return nil, err
- }
- // size is in 512 bytes blocks.
- disk_info.Size = size * 512
-
- sched, err := sysfs.GetBlockDeviceScheduler(name)
- if err != nil {
- sched = "none"
- } else {
- matches := schedulerRegExp.FindSubmatch([]byte(sched))
- if len(matches) < 2 {
- sched = "none"
- } else {
- sched = string(matches[1])
- }
- }
- disk_info.Scheduler = sched
- device := fmt.Sprintf("%d:%d", disk_info.Major, disk_info.Minor)
- diskMap[device] = disk_info
- }
- return diskMap, nil
-}
-
-// Get information about network devices present on the system.
-func GetNetworkDevices(sysfs sysfs.SysFs) ([]info.NetInfo, error) {
- devs, err := sysfs.GetNetworkDevices()
- if err != nil {
- return nil, err
- }
- netDevices := []info.NetInfo{}
- for _, dev := range devs {
- name := dev.Name()
- // Ignore docker, loopback, and veth devices.
- ignoredDevices := []string{"lo", "veth", "docker"}
- ignored := false
- for _, prefix := range ignoredDevices {
- if strings.HasPrefix(name, prefix) {
- ignored = true
- break
- }
- }
- if ignored {
- continue
- }
- address, err := sysfs.GetNetworkAddress(name)
- if err != nil {
- return nil, err
- }
- mtuStr, err := sysfs.GetNetworkMtu(name)
- if err != nil {
- return nil, err
- }
- var mtu int64
- n, err := fmt.Sscanf(mtuStr, "%d", &mtu)
- if err != nil || n != 1 {
- return nil, fmt.Errorf("could not parse mtu from %s for device %s", mtuStr, name)
- }
- netInfo := info.NetInfo{
- Name: name,
- MacAddress: strings.TrimSpace(address),
- Mtu: mtu,
- }
- speed, err := sysfs.GetNetworkSpeed(name)
- // Some devices don't set speed.
- if err == nil {
- var s int64
- n, err := fmt.Sscanf(speed, "%d", &s)
- if err != nil || n != 1 {
- return nil, fmt.Errorf("could not parse speed from %s for device %s", speed, name)
- }
- netInfo.Speed = s
- }
- netDevices = append(netDevices, netInfo)
- }
- return netDevices, nil
-}
-
-func GetCacheInfo(sysFs sysfs.SysFs, id int) ([]sysfs.CacheInfo, error) {
- caches, err := sysFs.GetCaches(id)
- if err != nil {
- return nil, err
- }
-
- info := []sysfs.CacheInfo{}
- for _, cache := range caches {
- if !strings.HasPrefix(cache.Name(), "index") {
- continue
- }
- cacheInfo, err := sysFs.GetCacheInfo(id, cache.Name())
- if err != nil {
- return nil, err
- }
- info = append(info, cacheInfo)
- }
- return info, nil
-}
-
-func GetNetworkStats(name string) (info.InterfaceStats, error) {
- // TODO(rjnagal): Take syfs as an argument.
- sysFs, err := sysfs.NewRealSysFs()
- if err != nil {
- return info.InterfaceStats{}, err
- }
- return getNetworkStats(name, sysFs)
-}
-
-func getNetworkStats(name string, sysFs sysfs.SysFs) (info.InterfaceStats, error) {
- var stats info.InterfaceStats
- var err error
- stats.Name = name
- stats.RxBytes, err = sysFs.GetNetworkStatValue(name, "rx_bytes")
- if err != nil {
- return stats, err
- }
- stats.RxPackets, err = sysFs.GetNetworkStatValue(name, "rx_packets")
- if err != nil {
- return stats, err
- }
- stats.RxErrors, err = sysFs.GetNetworkStatValue(name, "rx_errors")
- if err != nil {
- return stats, err
- }
- stats.RxDropped, err = sysFs.GetNetworkStatValue(name, "rx_dropped")
- if err != nil {
- return stats, err
- }
- stats.TxBytes, err = sysFs.GetNetworkStatValue(name, "tx_bytes")
- if err != nil {
- return stats, err
- }
- stats.TxPackets, err = sysFs.GetNetworkStatValue(name, "tx_packets")
- if err != nil {
- return stats, err
- }
- stats.TxErrors, err = sysFs.GetNetworkStatValue(name, "tx_errors")
- if err != nil {
- return stats, err
- }
- stats.TxDropped, err = sysFs.GetNetworkStatValue(name, "tx_dropped")
- if err != nil {
- return stats, err
- }
- return stats, nil
-}
-
-func GetSystemUUID(sysFs sysfs.SysFs) (string, error) {
- return sysFs.GetSystemUUID()
-}
diff --git a/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/LICENSE b/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/LICENSE
deleted file mode 100644
index 5f0d1fb..0000000
--- a/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright 2014 Alan Shreve
-
-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/jonboulle/clockwork/.travis.yml b/Godeps/_workspace/src/github.com/jonboulle/clockwork/.travis.yml
deleted file mode 100644
index aefda90..0000000
--- a/Godeps/_workspace/src/github.com/jonboulle/clockwork/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: go
-go:
- - 1.3
-
-sudo: false
diff --git a/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE b/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE
deleted file mode 100644
index 5c304d1..0000000
--- a/Godeps/_workspace/src/github.com/jonboulle/clockwork/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/juju/errors/LICENSE b/Godeps/_workspace/src/github.com/juju/errors/LICENSE
deleted file mode 100644
index ade9307..0000000
--- a/Godeps/_workspace/src/github.com/juju/errors/LICENSE
+++ /dev/null
@@ -1,191 +0,0 @@
-All files in this repository are licensed as follows. If you contribute
-to this repository, it is assumed that you license your contribution
-under the same license unless you state otherwise.
-
-All files Copyright (C) 2015 Canonical Ltd. unless otherwise specified in the file.
-
-This software is licensed under the LGPLv3, included below.
-
-As a special exception to the GNU Lesser General Public License version 3
-("LGPL3"), the copyright holders of this Library give you permission to
-convey to a third party a Combined Work that links statically or dynamically
-to this Library without providing any Minimal Corresponding Source or
-Minimal Application Code as set out in 4d or providing the installation
-information set out in section 4e, provided that you comply with the other
-provisions of LGPL3 and provided that you meet, for the Application the
-terms and conditions of the license(s) which apply to the Application.
-
-Except as stated in this special exception, the provisions of LGPL3 will
-continue to comply in full to this Library. If you modify this Library, you
-may apply this exception to your version of this Library, but you are not
-obliged to do so. If you do not wish to do so, delete this exception
-statement from your version. This exception does not (and cannot) modify any
-license terms which apply to the Application, with which you must still
-comply.
-
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- 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 that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU 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 as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
diff --git a/Godeps/_workspace/src/github.com/kelseyhightower/memkv/LICENSE b/Godeps/_workspace/src/github.com/kelseyhightower/memkv/LICENSE
deleted file mode 100644
index 5516702..0000000
--- a/Godeps/_workspace/src/github.com/kelseyhightower/memkv/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Kelsey Hightower
-
-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/kelseyhightower/memkv/README.md b/Godeps/_workspace/src/github.com/kelseyhightower/memkv/README.md
deleted file mode 100644
index 9cba2b8..0000000
--- a/Godeps/_workspace/src/github.com/kelseyhightower/memkv/README.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# memkv
-
-Simple in memory k/v store.
-
-[](https://travis-ci.org/kelseyhightower/memkv) [](https://godoc.org/github.com/kelseyhightower/memkv)
-
-## Usage
-
-```Go
-package main
-
-import (
- "fmt"
- "log"
-
- "github.com/kelseyhightower/memkv"
-)
-
-func main() {
- s := memkv.New()
- s.Set("/myapp/database/username", "admin")
- s.Set("/myapp/database/password", "123456789")
- s.Set("/myapp/port", "80")
- kv, err := s.Get("/myapp/database/username")
- if err != nil {
- log.Fatal(err)
- }
- fmt.Printf("Key: %s, Value: %s\n", kv.Key, kv.Value)
- ks, err := s.GetAll("/myapp/*/*")
- if err == nil {
- for _, kv := range ks {
- fmt.Printf("Key: %s, Value: %s\n", kv.Key, kv.Value)
- }
- }
-}
-```
-
----
-
-```
-Key: /myapp/database/username, Value: admin
-Key: /myapp/database/password, Value: 123456789
-Key: /myapp/database/username, Value: admin
-```
diff --git a/Godeps/_workspace/src/github.com/kelseyhightower/memkv/kvpair.go b/Godeps/_workspace/src/github.com/kelseyhightower/memkv/kvpair.go
deleted file mode 100644
index b717a2e..0000000
--- a/Godeps/_workspace/src/github.com/kelseyhightower/memkv/kvpair.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package memkv
-
-type KVPair struct {
- Key string
- Value string
-}
-
-type KVPairs []KVPair
-
-func (ks KVPairs) Len() int {
- return len(ks)
-}
-
-func (ks KVPairs) Less(i, j int) bool {
- return ks[i].Key < ks[j].Key
-}
-
-func (ks KVPairs) Swap(i, j int) {
- ks[i], ks[j] = ks[j], ks[i]
-}
diff --git a/Godeps/_workspace/src/github.com/kelseyhightower/memkv/store.go b/Godeps/_workspace/src/github.com/kelseyhightower/memkv/store.go
deleted file mode 100644
index ea49be3..0000000
--- a/Godeps/_workspace/src/github.com/kelseyhightower/memkv/store.go
+++ /dev/null
@@ -1,178 +0,0 @@
-// Copyright 2014 Kelsey Hightower. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license found in the LICENSE file.
-
-// Package memkv implements an in-memory key/value store.
-package memkv
-
-import (
- "errors"
- "path"
- "path/filepath"
- "sort"
- "strings"
- "sync"
-)
-
-var ErrNotExist = errors.New("key does not exist")
-var ErrNoMatch = errors.New("no keys match")
-
-// A Store represents an in-memory key-value store safe for
-// concurrent access.
-type Store struct {
- FuncMap map[string]interface{}
- sync.RWMutex
- m map[string]KVPair
-}
-
-// New creates and initializes a new Store.
-func New() Store {
- s := Store{m: make(map[string]KVPair)}
- s.FuncMap = map[string]interface{}{
- "exists": s.Exists,
- "ls": s.List,
- "lsdir": s.ListDir,
- "get": s.Get,
- "gets": s.GetAll,
- "getv": s.GetValue,
- "getvs": s.GetAllValues,
- }
- return s
-}
-
-// Delete deletes the KVPair associated with key.
-func (s Store) Del(key string) {
- s.Lock()
- delete(s.m, key)
- s.Unlock()
-}
-
-// Exists checks for the existence of key in the store.
-func (s Store) Exists(key string) bool {
- _, err := s.Get(key)
- if err != nil {
- return false
- }
- return true
-}
-
-// Get gets the KVPair associated with key. If there is no KVPair
-// associated with key, Get returns KVPair{}, ErrNotExist.
-func (s Store) Get(key string) (KVPair, error) {
- s.RLock()
- kv, ok := s.m[key]
- s.RUnlock()
- if !ok {
- return kv, ErrNotExist
- }
- return kv, nil
-}
-
-// GetValue gets the value associated with key. If there are no values
-// associated with key, GetValue returns "", ErrNotExist.
-func (s Store) GetValue(key string) (string, error) {
- kv, err := s.Get(key)
- if err != nil {
- return "", err
- }
- return kv.Value, nil
-}
-
-// GetAll returns a KVPair for all nodes with keys matching pattern.
-// The syntax of patterns is the same as in filepath.Match.
-func (s Store) GetAll(pattern string) (KVPairs, error) {
- ks := make(KVPairs, 0)
- s.RLock()
- defer s.RUnlock()
- for _, kv := range s.m {
- m, err := filepath.Match(pattern, kv.Key)
- if err != nil {
- return nil, err
- }
- if m {
- ks = append(ks, kv)
- }
- }
- if len(ks) == 0 {
- return ks, nil
- }
- sort.Sort(ks)
- return ks, nil
-}
-
-func (s Store) GetAllValues(pattern string) ([]string, error) {
- vs := make([]string, 0)
- ks, err := s.GetAll(pattern)
- if err != nil {
- return vs, err
- }
- if len(ks) == 0 {
- return vs, nil
- }
- for _, kv := range ks {
- vs = append(vs, kv.Value)
- }
- sort.Strings(vs)
- return vs, nil
-}
-
-func (s Store) List(filePath string) []string {
- vs := make([]string, 0)
- m := make(map[string]bool)
- s.RLock()
- defer s.RUnlock()
- for _, kv := range s.m {
- if kv.Key == filePath {
- m[path.Base(kv.Key)] = true
- continue
- }
- if strings.HasPrefix(kv.Key, filePath) {
- m[strings.Split(stripKey(kv.Key, filePath), "/")[0]] = true
- }
- }
- for k := range m {
- vs = append(vs, k)
- }
- sort.Strings(vs)
- return vs
-}
-
-func (s Store) ListDir(filePath string) []string {
- vs := make([]string, 0)
- m := make(map[string]bool)
- s.RLock()
- defer s.RUnlock()
- for _, kv := range s.m {
- if strings.HasPrefix(kv.Key, filePath) {
- items := strings.Split(stripKey(kv.Key, filePath), "/")
- if len(items) < 2 {
- continue
- }
- m[items[0]] = true
- }
- }
- for k := range m {
- vs = append(vs, k)
- }
- sort.Strings(vs)
- return vs
-}
-
-// Set sets the KVPair entry associated with key to value.
-func (s Store) Set(key string, value string) {
- s.Lock()
- s.m[key] = KVPair{key, value}
- s.Unlock()
-}
-
-func (s Store) Purge() {
- s.Lock()
- for k := range s.m {
- delete(s.m, k)
- }
- s.Unlock()
-}
-
-func stripKey(key, prefix string) string {
- return strings.TrimPrefix(strings.TrimPrefix(key, prefix), "/")
-}
diff --git a/Godeps/_workspace/src/github.com/mgutz/ansi/LICENSE b/Godeps/_workspace/src/github.com/mgutz/ansi/LICENSE
deleted file mode 100644
index 06ce0c3..0000000
--- a/Godeps/_workspace/src/github.com/mgutz/ansi/LICENSE
+++ /dev/null
@@ -1,9 +0,0 @@
-The MIT License (MIT)
-Copyright (c) 2013 Mario L. Gutierrez
-
-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/mgutz/ansi/cmd/ansi-mgutz/main.go b/Godeps/_workspace/src/github.com/mgutz/ansi/cmd/ansi-mgutz/main.go
deleted file mode 100644
index 66ab779..0000000
--- a/Godeps/_workspace/src/github.com/mgutz/ansi/cmd/ansi-mgutz/main.go
+++ /dev/null
@@ -1,135 +0,0 @@
-package main
-
-import (
- "fmt"
- "sort"
- "strconv"
-
- "github.com/mattn/go-colorable"
- "github.com/mgutz/ansi"
-)
-
-func main() {
- printColors()
- print256Colors()
- printConstants()
-}
-
-func pad(s string, length int) string {
- for len(s) < length {
- s += " "
- }
- return s
-}
-
-func padColor(s string, styles []string) string {
- buffer := ""
- for _, style := range styles {
- buffer += ansi.Color(pad(s+style, 20), s+style)
- }
- return buffer
-}
-
-func printPlain() {
- ansi.DisableColors(true)
- bgColors := []string{
- "",
- ":black",
- ":red",
- ":green",
- ":yellow",
- ":blue",
- ":magenta",
- ":cyan",
- ":white",
- }
- for fg := range ansi.Colors {
- for _, bg := range bgColors {
- println(padColor(fg, []string{"" + bg, "+b" + bg, "+bh" + bg, "+u" + bg}))
- println(padColor(fg, []string{"+uh" + bg, "+B" + bg, "+Bb" + bg /* backgrounds */, "" + bg + "+h"}))
- println(padColor(fg, []string{"+b" + bg + "+h", "+bh" + bg + "+h", "+u" + bg + "+h", "+uh" + bg + "+h"}))
- }
- }
-}
-
-func printColors() {
- ansi.DisableColors(false)
- stdout := colorable.NewColorableStdout()
-
- bgColors := []string{
- "",
- ":black",
- ":red",
- ":green",
- ":yellow",
- ":blue",
- ":magenta",
- ":cyan",
- ":white",
- }
-
- keys := []string{}
- for fg := range ansi.Colors {
- _, err := strconv.Atoi(fg)
- if err != nil {
- keys = append(keys, fg)
- }
- }
- sort.Strings(keys)
-
- for _, fg := range keys {
- for _, bg := range bgColors {
- fmt.Fprintln(stdout, padColor(fg, []string{"" + bg, "+b" + bg, "+bh" + bg, "+u" + bg}))
- fmt.Fprintln(stdout, padColor(fg, []string{"+uh" + bg, "+B" + bg, "+Bb" + bg /* backgrounds */, "" + bg + "+h"}))
- fmt.Fprintln(stdout, padColor(fg, []string{"+b" + bg + "+h", "+bh" + bg + "+h", "+u" + bg + "+h", "+uh" + bg + "+h"}))
- }
- }
-}
-
-func print256Colors() {
- ansi.DisableColors(false)
- stdout := colorable.NewColorableStdout()
-
- bgColors := []string{""}
- for i := 0; i < 256; i++ {
- key := fmt.Sprintf(":%d", i)
- bgColors = append(bgColors, key)
- }
-
- keys := []string{}
- for fg := range ansi.Colors {
- n, err := strconv.Atoi(fg)
- if err == nil {
- keys = append(keys, fmt.Sprintf("%3d", n))
- }
- }
- sort.Strings(keys)
-
- for _, fg := range keys {
- for _, bg := range bgColors {
- fmt.Fprintln(stdout, padColor(fg, []string{"" + bg, "+b" + bg, "+u" + bg}))
- fmt.Fprintln(stdout, padColor(fg, []string{"+B" + bg, "+Bb" + bg}))
- }
- }
-}
-
-func printConstants() {
- stdout := colorable.NewColorableStdout()
- fmt.Fprintln(stdout, ansi.DefaultFG, "ansi.DefaultFG", ansi.Reset)
- fmt.Fprintln(stdout, ansi.Black, "ansi.Black", ansi.Reset)
- fmt.Fprintln(stdout, ansi.Red, "ansi.Red", ansi.Reset)
- fmt.Fprintln(stdout, ansi.Green, "ansi.Green", ansi.Reset)
- fmt.Fprintln(stdout, ansi.Yellow, "ansi.Yellow", ansi.Reset)
- fmt.Fprintln(stdout, ansi.Blue, "ansi.Blue", ansi.Reset)
- fmt.Fprintln(stdout, ansi.Magenta, "ansi.Magenta", ansi.Reset)
- fmt.Fprintln(stdout, ansi.Cyan, "ansi.Cyan", ansi.Reset)
- fmt.Fprintln(stdout, ansi.White, "ansi.White", ansi.Reset)
- fmt.Fprintln(stdout, ansi.LightBlack, "ansi.LightBlack", ansi.Reset)
- fmt.Fprintln(stdout, ansi.LightRed, "ansi.LightRed", ansi.Reset)
- fmt.Fprintln(stdout, ansi.LightGreen, "ansi.LightGreen", ansi.Reset)
- fmt.Fprintln(stdout, ansi.LightYellow, "ansi.LightYellow", ansi.Reset)
- fmt.Fprintln(stdout, ansi.LightBlue, "ansi.LightBlue", ansi.Reset)
- fmt.Fprintln(stdout, ansi.LightMagenta, "ansi.LightMagenta", ansi.Reset)
- fmt.Fprintln(stdout, ansi.LightCyan, "ansi.LightCyan", ansi.Reset)
- fmt.Fprintln(stdout, ansi.LightWhite, "ansi.LightWhite", ansi.Reset)
-}
diff --git a/Godeps/_workspace/src/github.com/mitchellh/go-homedir/LICENSE b/Godeps/_workspace/src/github.com/mitchellh/go-homedir/LICENSE
deleted file mode 100644
index f9c841a..0000000
--- a/Godeps/_workspace/src/github.com/mitchellh/go-homedir/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 Mitchell Hashimoto
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/LICENSE.txt b/Godeps/_workspace/src/github.com/spf13/cobra/LICENSE.txt
deleted file mode 100644
index 298f0e2..0000000
--- a/Godeps/_workspace/src/github.com/spf13/cobra/LICENSE.txt
+++ /dev/null
@@ -1,174 +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.
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE b/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE
deleted file mode 100644
index 63ed1cf..0000000
--- a/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2012 Alex Ogier. All rights reserved.
-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/ugorji/go/LICENSE b/Godeps/_workspace/src/github.com/ugorji/go/LICENSE
deleted file mode 100644
index 95a0f05..0000000
--- a/Godeps/_workspace/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/ugorji/go/codec/codecgen/README.md b/Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen/README.md
deleted file mode 100644
index 3ae8a05..0000000
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# codecgen tool
-
-Generate is given a list of *.go files to parse, and an output file (fout),
-codecgen will create an output file __file.go__ which
-contains `codec.Selfer` implementations for the named types found
-in the files parsed.
-
-Using codecgen is very straightforward.
-
-**Download and install the tool**
-
-`go get -u github.com/ugorji/go/codec/codecgen`
-
-**Run the tool on your files**
-
-The command line format is:
-
-`codecgen [options] (-o outfile) (infile ...)`
-
-```sh
-% codecgen -?
-Usage of codecgen:
- -c="github.com/ugorji/go/codec": codec path
- -o="": out file
- -r=".*": regex for type name to match
- -rt="": tags for go run
- -t="": build tag to put in file
- -u=false: Use unsafe, e.g. to avoid unnecessary allocation on []byte->string
- -x=false: keep temp file
-
-% codecgen -o values_codecgen.go values.go values2.go moretypedefs.go
-```
-
-Please see the [blog article](http://ugorji.net/blog/go-codecgen)
-for more information on how to use the tool.
-
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen/gen.go b/Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen/gen.go
deleted file mode 100644
index f370b4c..0000000
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen/gen.go
+++ /dev/null
@@ -1,273 +0,0 @@
-// Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved.
-// Use of this source code is governed by a MIT license found in the LICENSE file.
-
-// codecgen generates codec.Selfer implementations for a set of types.
-package main
-
-import (
- "bufio"
- "bytes"
- "errors"
- "flag"
- "fmt"
- "go/ast"
- "go/build"
- "go/parser"
- "go/token"
- "math/rand"
- "os"
- "os/exec"
- "path/filepath"
- "regexp"
- "strconv"
- "text/template"
- "time"
-)
-
-const genCodecPkg = "codec1978" // keep this in sync with codec.genCodecPkg
-
-const genFrunMainTmpl = `//+build ignore
-
-package main
-{{ if .Types }}import "{{ .ImportPath }}"{{ end }}
-func main() {
- {{ $.PackageName }}.CodecGenTempWrite{{ .RandString }}()
-}
-`
-
-// const genFrunPkgTmpl = `//+build codecgen
-const genFrunPkgTmpl = `
-package {{ $.PackageName }}
-
-import (
- {{ if not .CodecPkgFiles }}{{ .CodecPkgName }} "{{ .CodecImportPath }}"{{ end }}
- "os"
- "reflect"
- "bytes"
- "strings"
- "go/format"
-)
-
-func CodecGenTempWrite{{ .RandString }}() {
- fout, err := os.Create("{{ .OutFile }}")
- if err != nil {
- panic(err)
- }
- defer fout.Close()
- var out bytes.Buffer
-
- var typs []reflect.Type
-{{ range $index, $element := .Types }}
- var t{{ $index }} {{ . }}
- typs = append(typs, reflect.TypeOf(t{{ $index }}))
-{{ end }}
- {{ if not .CodecPkgFiles }}{{ .CodecPkgName }}.{{ end }}Gen(&out, "{{ .BuildTag }}", "{{ .PackageName }}", "{{ .RandString }}", {{ .UseUnsafe }}, {{ if not .CodecPkgFiles }}{{ .CodecPkgName }}.{{ end }}NewTypeInfos(strings.Split("{{ .StructTags }}", ",")), typs...)
- bout, err := format.Source(out.Bytes())
- if err != nil {
- fout.Write(out.Bytes())
- panic(err)
- }
- fout.Write(bout)
-}
-
-`
-
-// Generate is given a list of *.go files to parse, and an output file (fout).
-//
-// It finds all types T in the files, and it creates 2 tmp files (frun).
-// - main package file passed to 'go run'
-// - package level file which calls *genRunner.Selfer to write Selfer impls for each T.
-// We use a package level file so that it can reference unexported types in the package being worked on.
-// Tool then executes: "go run __frun__" which creates fout.
-// fout contains Codec(En|De)codeSelf implementations for every type T.
-//
-func Generate(outfile, buildTag, codecPkgPath string, uid int64, useUnsafe bool, goRunTag string,
- st string, regexName *regexp.Regexp, deleteTempFile bool, infiles ...string) (err error) {
- // For each file, grab AST, find each type, and write a call to it.
- if len(infiles) == 0 {
- return
- }
- if outfile == "" || codecPkgPath == "" {
- err = errors.New("outfile and codec package path cannot be blank")
- return
- }
- if uid < 0 {
- uid = -uid
- }
- if uid == 0 {
- rr := rand.New(rand.NewSource(time.Now().UnixNano()))
- uid = 101 + rr.Int63n(9777)
- }
- // We have to parse dir for package, before opening the temp file for writing (else ImportDir fails).
- // Also, ImportDir(...) must take an absolute path.
- lastdir := filepath.Dir(outfile)
- absdir, err := filepath.Abs(lastdir)
- if err != nil {
- return
- }
- pkg, err := build.Default.ImportDir(absdir, build.AllowBinary)
- if err != nil {
- return
- }
- type tmplT struct {
- CodecPkgName string
- CodecImportPath string
- ImportPath string
- OutFile string
- PackageName string
- RandString string
- BuildTag string
- StructTags string
- Types []string
- CodecPkgFiles bool
- UseUnsafe bool
- }
- tv := tmplT{
- CodecPkgName: genCodecPkg,
- OutFile: outfile,
- CodecImportPath: codecPkgPath,
- BuildTag: buildTag,
- UseUnsafe: useUnsafe,
- RandString: strconv.FormatInt(uid, 10),
- StructTags: st,
- }
- tv.ImportPath = pkg.ImportPath
- if tv.ImportPath == tv.CodecImportPath {
- tv.CodecPkgFiles = true
- tv.CodecPkgName = "codec"
- }
- astfiles := make([]*ast.File, len(infiles))
- for i, infile := range infiles {
- if filepath.Dir(infile) != lastdir {
- err = errors.New("in files must all be in same directory as outfile")
- return
- }
- fset := token.NewFileSet()
- astfiles[i], err = parser.ParseFile(fset, infile, nil, 0)
- if err != nil {
- return
- }
- if i == 0 {
- tv.PackageName = astfiles[i].Name.Name
- if tv.PackageName == "main" {
- // codecgen cannot be run on types in the 'main' package.
- // A temporary 'main' package must be created, and should reference the fully built
- // package containing the types.
- // Also, the temporary main package will conflict with the main package which already has a main method.
- err = errors.New("codecgen cannot be run on types in the 'main' package")
- return
- }
- }
- }
-
- for _, f := range astfiles {
- for _, d := range f.Decls {
- if gd, ok := d.(*ast.GenDecl); ok {
- for _, dd := range gd.Specs {
- if td, ok := dd.(*ast.TypeSpec); ok {
- // if len(td.Name.Name) == 0 || td.Name.Name[0] > 'Z' || td.Name.Name[0] < 'A' {
- if len(td.Name.Name) == 0 {
- continue
- }
-
- // only generate for:
- // struct: StructType
- // primitives (numbers, bool, string): Ident
- // map: MapType
- // slice, array: ArrayType
- // chan: ChanType
- // do not generate:
- // FuncType, InterfaceType, StarExpr (ptr), etc
- switch td.Type.(type) {
- case *ast.StructType, *ast.Ident, *ast.MapType, *ast.ArrayType, *ast.ChanType:
- if regexName.FindStringIndex(td.Name.Name) != nil {
- tv.Types = append(tv.Types, td.Name.Name)
- }
- }
- }
- }
- }
- }
- }
-
- if len(tv.Types) == 0 {
- return
- }
-
- // we cannot use ioutil.TempFile, because we cannot guarantee the file suffix (.go).
- // Also, we cannot create file in temp directory,
- // because go run will not work (as it needs to see the types here).
- // Consequently, create the temp file in the current directory, and remove when done.
-
- // frun, err = ioutil.TempFile("", "codecgen-")
- // frunName := filepath.Join(os.TempDir(), "codecgen-"+strconv.FormatInt(time.Now().UnixNano(), 10)+".go")
-
- frunMainName := "codecgen-main-" + tv.RandString + ".generated.go"
- frunPkgName := "codecgen-pkg-" + tv.RandString + ".generated.go"
- if deleteTempFile {
- defer os.Remove(frunMainName)
- defer os.Remove(frunPkgName)
- }
- // var frunMain, frunPkg *os.File
- if _, err = gen1(frunMainName, genFrunMainTmpl, &tv); err != nil {
- return
- }
- if _, err = gen1(frunPkgName, genFrunPkgTmpl, &tv); err != nil {
- return
- }
-
- // remove outfile, so "go run ..." will not think that types in outfile already exist.
- os.Remove(outfile)
-
- // execute go run frun
- cmd := exec.Command("go", "run", "-tags="+goRunTag, frunMainName) //, frunPkg.Name())
- var buf bytes.Buffer
- cmd.Stdout = &buf
- cmd.Stderr = &buf
- if err = cmd.Run(); err != nil {
- err = fmt.Errorf("error running 'go run %s': %v, console: %s",
- frunMainName, err, buf.Bytes())
- return
- }
- os.Stdout.Write(buf.Bytes())
- return
-}
-
-func gen1(frunName, tmplStr string, tv interface{}) (frun *os.File, err error) {
- os.Remove(frunName)
- if frun, err = os.Create(frunName); err != nil {
- return
- }
- defer frun.Close()
-
- t := template.New("")
- if t, err = t.Parse(tmplStr); err != nil {
- return
- }
- bw := bufio.NewWriter(frun)
- if err = t.Execute(bw, tv); err != nil {
- return
- }
- if err = bw.Flush(); err != nil {
- return
- }
- return
-}
-
-func main() {
- o := flag.String("o", "", "out file")
- c := flag.String("c", genCodecPath, "codec path")
- t := flag.String("t", "", "build tag to put in file")
- r := flag.String("r", ".*", "regex for type name to match")
- rt := flag.String("rt", "", "tags for go run")
- st := flag.String("st", "codec,json", "struct tag keys to introspect")
- x := flag.Bool("x", false, "keep temp file")
- u := flag.Bool("u", false, "Use unsafe, e.g. to avoid unnecessary allocation on []byte->string")
- d := flag.Int64("d", 0, "random identifier for use in generated code")
- flag.Parse()
- if err := Generate(*o, *t, *c, *d, *u, *rt, *st,
- regexp.MustCompile(*r), !*x, flag.Args()...); err != nil {
- fmt.Fprintf(os.Stderr, "codecgen error: %v\n", err)
- os.Exit(1)
- }
-}
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen/z.go b/Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen/z.go
deleted file mode 100644
index e120a4e..0000000
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen/z.go
+++ /dev/null
@@ -1,3 +0,0 @@
-package main
-
-const genCodecPath = "github.com/ugorji/go/codec"
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.not.go b/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.not.go
deleted file mode 100644
index d6f5f0c..0000000
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.not.go
+++ /dev/null
@@ -1,32 +0,0 @@
-// +build notfastpath
-
-package codec
-
-import "reflect"
-
-// The generated fast-path code is very large, and adds a few seconds to the build time.
-// This causes test execution, execution of small tools which use codec, etc
-// to take a long time.
-//
-// To mitigate, we now support the notfastpath tag.
-// This tag disables fastpath during build, allowing for faster build, test execution,
-// short-program runs, etc.
-
-func fastpathDecodeTypeSwitch(iv interface{}, d *Decoder) bool { return false }
-func fastpathEncodeTypeSwitch(iv interface{}, e *Encoder) bool { return false }
-func fastpathEncodeTypeSwitchSlice(iv interface{}, e *Encoder) bool { return false }
-func fastpathEncodeTypeSwitchMap(iv interface{}, e *Encoder) bool { return false }
-
-type fastpathT struct{}
-type fastpathE struct {
- rtid uintptr
- rt reflect.Type
- encfn func(*encFnInfo, reflect.Value)
- decfn func(*decFnInfo, reflect.Value)
-}
-type fastpathA [0]fastpathE
-
-func (x fastpathA) index(rtid uintptr) int { return -1 }
-
-var fastpathAV fastpathA
-var fastpathTV fastpathT
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/tests.sh b/Godeps/_workspace/src/github.com/ugorji/go/codec/tests.sh
deleted file mode 100644
index 00857b6..0000000
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/tests.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-
-# Run all the different permutations of all the tests.
-# This helps ensure that nothing gets broken.
-
-_run() {
- # 1. VARIATIONS: regular (t), canonical (c), IO R/W (i),
- # binc-nosymbols (n), struct2array (s), intern string (e),
- # json-indent (d), circular (l)
- # 2. MODE: reflection (r), external (x), codecgen (g), unsafe (u), notfastpath (f)
- # 3. OPTIONS: verbose (v), reset (z), must (m),
- #
- # Use combinations of mode to get exactly what you want,
- # and then pass the variations you need.
-
- ztags=""
- zargs=""
- local OPTIND
- OPTIND=1
- while getopts "_xurtcinsvgzmefdl" flag
- do
- case "x$flag" in
- 'xr') ;;
- 'xf') ztags="$ztags notfastpath" ;;
- 'xg') ztags="$ztags codecgen" ;;
- 'xx') ztags="$ztags x" ;;
- 'xu') ztags="$ztags unsafe" ;;
- 'xv') zargs="$zargs -tv" ;;
- 'xz') zargs="$zargs -tr" ;;
- 'xm') zargs="$zargs -tm" ;;
- 'xl') zargs="$zargs -tl" ;;
- *) ;;
- esac
- done
- # shift $((OPTIND-1))
- printf '............. TAGS: %s .............\n' "$ztags"
- # echo ">>>>>>> TAGS: $ztags"
-
- OPTIND=1
- while getopts "_xurtcinsvgzmefdl" flag
- do
- case "x$flag" in
- 'xt') printf ">>>>>>> REGULAR : "; go test "-tags=$ztags" $zargs ; sleep 2 ;;
- 'xc') printf ">>>>>>> CANONICAL : "; go test "-tags=$ztags" $zargs -tc; sleep 2 ;;
- 'xi') printf ">>>>>>> I/O : "; go test "-tags=$ztags" $zargs -ti; sleep 2 ;;
- 'xn') printf ">>>>>>> NO_SYMBOLS : "; go test "-tags=$ztags" -run=Binc $zargs -tn; sleep 2 ;;
- 'xs') printf ">>>>>>> TO_ARRAY : "; go test "-tags=$ztags" $zargs -ts; sleep 2 ;;
- 'xe') printf ">>>>>>> INTERN : "; go test "-tags=$ztags" $zargs -te; sleep 2 ;;
- 'xd') printf ">>>>>>> INDENT : ";
- go test "-tags=$ztags" -run=JsonCodecsTable -td=-1 $zargs;
- go test "-tags=$ztags" -run=JsonCodecsTable -td=8 $zargs;
- sleep 2 ;;
- *) ;;
- esac
- done
- shift $((OPTIND-1))
-
- OPTIND=1
-}
-
-# echo ">>>>>>> RUNNING VARIATIONS OF TESTS"
-if [[ "x$@" = "x" ]]; then
- # All: r, x, g, gu
- _run "-_tcinsed_ml" # regular
- _run "-_tcinsed_ml_z" # regular with reset
- _run "-_tcinsed_ml_f" # regular with no fastpath (notfastpath)
- _run "-x_tcinsed_ml" # external
- _run "-gx_tcinsed_ml" # codecgen: requires external
- _run "-gxu_tcinsed_ml" # codecgen + unsafe
-elif [[ "x$@" = "x-Z" ]]; then
- # Regular
- _run "-_tcinsed_ml" # regular
- _run "-_tcinsed_ml_z" # regular with reset
-elif [[ "x$@" = "x-F" ]]; then
- # regular with notfastpath
- _run "-_tcinsed_ml_f" # regular
- _run "-_tcinsed_ml_zf" # regular with reset
-else
- _run "$@"
-fi
diff --git a/Godeps/_workspace/src/golang.org/x/net/LICENSE b/Godeps/_workspace/src/golang.org/x/net/LICENSE
deleted file mode 100644
index 6a66aea..0000000
--- a/Godeps/_workspace/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/golang.org/x/net/PATENTS b/Godeps/_workspace/src/golang.org/x/net/PATENTS
deleted file mode 100644
index 7330990..0000000
--- a/Godeps/_workspace/src/golang.org/x/net/PATENTS
+++ /dev/null
@@ -1,22 +0,0 @@
-Additional IP Rights Grant (Patents)
-
-"This implementation" means the copyrightable works distributed by
-Google as part of the Go project.
-
-Google 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,
-transfer and otherwise run, modify and propagate the contents of this
-implementation of Go, where such license applies only to those patent
-claims, both currently owned or controlled by Google and acquired in
-the future, licensable by Google that are necessarily infringed by this
-implementation of Go. This grant does not include claims that would be
-infringed only as a consequence of further modification of this
-implementation. If you or your agent or exclusive licensee institute or
-order or agree to the institution of patent litigation against any
-entity (including a cross-claim or counterclaim in a lawsuit) alleging
-that this implementation of Go or any code incorporated within this
-implementation of Go constitutes direct or contributory patent
-infringement, or inducement of patent infringement, then any patent
-rights granted to you under this License for this implementation of Go
-shall terminate as of the date such litigation is filed.
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 48610e3..0000000
--- 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 56bcbad..0000000
--- 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 9f34888..0000000
--- 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/net/html/charset/charset.go b/Godeps/_workspace/src/golang.org/x/net/html/charset/charset.go
deleted file mode 100644
index fd7eb58..0000000
--- a/Godeps/_workspace/src/golang.org/x/net/html/charset/charset.go
+++ /dev/null
@@ -1,244 +0,0 @@
-// Copyright 2013 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 charset provides common text encodings for HTML documents.
-//
-// The mapping from encoding labels to encodings is defined at
-// https://encoding.spec.whatwg.org/.
-package charset
-
-import (
- "bytes"
- "fmt"
- "io"
- "mime"
- "strings"
- "unicode/utf8"
-
- "golang.org/x/net/html"
- "golang.org/x/text/encoding"
- "golang.org/x/text/encoding/charmap"
- "golang.org/x/text/transform"
-)
-
-// Lookup returns the encoding with the specified label, and its canonical
-// name. It returns nil and the empty string if label is not one of the
-// standard encodings for HTML. Matching is case-insensitive and ignores
-// leading and trailing whitespace.
-func Lookup(label string) (e encoding.Encoding, name string) {
- label = strings.ToLower(strings.Trim(label, "\t\n\r\f "))
- enc := encodings[label]
- return enc.e, enc.name
-}
-
-// DetermineEncoding determines the encoding of an HTML document by examining
-// up to the first 1024 bytes of content and the declared Content-Type.
-//
-// See http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#determining-the-character-encoding
-func DetermineEncoding(content []byte, contentType string) (e encoding.Encoding, name string, certain bool) {
- if len(content) > 1024 {
- content = content[:1024]
- }
-
- for _, b := range boms {
- if bytes.HasPrefix(content, b.bom) {
- e, name = Lookup(b.enc)
- return e, name, true
- }
- }
-
- if _, params, err := mime.ParseMediaType(contentType); err == nil {
- if cs, ok := params["charset"]; ok {
- if e, name = Lookup(cs); e != nil {
- return e, name, true
- }
- }
- }
-
- if len(content) > 0 {
- e, name = prescan(content)
- if e != nil {
- return e, name, false
- }
- }
-
- // Try to detect UTF-8.
- // First eliminate any partial rune at the end.
- for i := len(content) - 1; i >= 0 && i > len(content)-4; i-- {
- b := content[i]
- if b < 0x80 {
- break
- }
- if utf8.RuneStart(b) {
- content = content[:i]
- break
- }
- }
- hasHighBit := false
- for _, c := range content {
- if c >= 0x80 {
- hasHighBit = true
- break
- }
- }
- if hasHighBit && utf8.Valid(content) {
- return encoding.Nop, "utf-8", false
- }
-
- // TODO: change default depending on user's locale?
- return charmap.Windows1252, "windows-1252", false
-}
-
-// NewReader returns an io.Reader that converts the content of r to UTF-8.
-// It calls DetermineEncoding to find out what r's encoding is.
-func NewReader(r io.Reader, contentType string) (io.Reader, error) {
- preview := make([]byte, 1024)
- n, err := io.ReadFull(r, preview)
- switch {
- case err == io.ErrUnexpectedEOF:
- preview = preview[:n]
- r = bytes.NewReader(preview)
- case err != nil:
- return nil, err
- default:
- r = io.MultiReader(bytes.NewReader(preview), r)
- }
-
- if e, _, _ := DetermineEncoding(preview, contentType); e != encoding.Nop {
- r = transform.NewReader(r, e.NewDecoder())
- }
- return r, nil
-}
-
-// NewReaderLabel returns a reader that converts from the specified charset to
-// UTF-8. It uses Lookup to find the encoding that corresponds to label, and
-// returns an error if Lookup returns nil. It is suitable for use as
-// encoding/xml.Decoder's CharsetReader function.
-func NewReaderLabel(label string, input io.Reader) (io.Reader, error) {
- e, _ := Lookup(label)
- if e == nil {
- return nil, fmt.Errorf("unsupported charset: %q", label)
- }
- return transform.NewReader(input, e.NewDecoder()), nil
-}
-
-func prescan(content []byte) (e encoding.Encoding, name string) {
- z := html.NewTokenizer(bytes.NewReader(content))
- for {
- switch z.Next() {
- case html.ErrorToken:
- return nil, ""
-
- case html.StartTagToken, html.SelfClosingTagToken:
- tagName, hasAttr := z.TagName()
- if !bytes.Equal(tagName, []byte("meta")) {
- continue
- }
- attrList := make(map[string]bool)
- gotPragma := false
-
- const (
- dontKnow = iota
- doNeedPragma
- doNotNeedPragma
- )
- needPragma := dontKnow
-
- name = ""
- e = nil
- for hasAttr {
- var key, val []byte
- key, val, hasAttr = z.TagAttr()
- ks := string(key)
- if attrList[ks] {
- continue
- }
- attrList[ks] = true
- for i, c := range val {
- if 'A' <= c && c <= 'Z' {
- val[i] = c + 0x20
- }
- }
-
- switch ks {
- case "http-equiv":
- if bytes.Equal(val, []byte("content-type")) {
- gotPragma = true
- }
-
- case "content":
- if e == nil {
- name = fromMetaElement(string(val))
- if name != "" {
- e, name = Lookup(name)
- if e != nil {
- needPragma = doNeedPragma
- }
- }
- }
-
- case "charset":
- e, name = Lookup(string(val))
- needPragma = doNotNeedPragma
- }
- }
-
- if needPragma == dontKnow || needPragma == doNeedPragma && !gotPragma {
- continue
- }
-
- if strings.HasPrefix(name, "utf-16") {
- name = "utf-8"
- e = encoding.Nop
- }
-
- if e != nil {
- return e, name
- }
- }
- }
-}
-
-func fromMetaElement(s string) string {
- for s != "" {
- csLoc := strings.Index(s, "charset")
- if csLoc == -1 {
- return ""
- }
- s = s[csLoc+len("charset"):]
- s = strings.TrimLeft(s, " \t\n\f\r")
- if !strings.HasPrefix(s, "=") {
- continue
- }
- s = s[1:]
- s = strings.TrimLeft(s, " \t\n\f\r")
- if s == "" {
- return ""
- }
- if q := s[0]; q == '"' || q == '\'' {
- s = s[1:]
- closeQuote := strings.IndexRune(s, rune(q))
- if closeQuote == -1 {
- return ""
- }
- return s[:closeQuote]
- }
-
- end := strings.IndexAny(s, "; \t\n\f\r")
- if end == -1 {
- end = len(s)
- }
- return s[:end]
- }
- return ""
-}
-
-var boms = []struct {
- bom []byte
- enc string
-}{
- {[]byte{0xfe, 0xff}, "utf-16be"},
- {[]byte{0xff, 0xfe}, "utf-16le"},
- {[]byte{0xef, 0xbb, 0xbf}, "utf-8"},
-}
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/gen.go b/Godeps/_workspace/src/golang.org/x/net/html/charset/gen.go
deleted file mode 100644
index 828347f..0000000
--- a/Godeps/_workspace/src/golang.org/x/net/html/charset/gen.go
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright 2013 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 ignore
-
-package main
-
-// Download https://encoding.spec.whatwg.org/encodings.json and use it to
-// generate table.go.
-
-import (
- "encoding/json"
- "fmt"
- "log"
- "net/http"
- "strings"
-)
-
-type enc struct {
- Name string
- Labels []string
-}
-
-type group struct {
- Encodings []enc
- Heading string
-}
-
-const specURL = "https://encoding.spec.whatwg.org/encodings.json"
-
-func main() {
- resp, err := http.Get(specURL)
- if err != nil {
- log.Fatalf("error fetching %s: %s", specURL, err)
- }
- if resp.StatusCode != 200 {
- log.Fatalf("error fetching %s: HTTP status %s", specURL, resp.Status)
- }
- defer resp.Body.Close()
-
- var groups []group
- d := json.NewDecoder(resp.Body)
- err = d.Decode(&groups)
- if err != nil {
- log.Fatalf("error reading encodings.json: %s", err)
- }
-
- fmt.Println("// generated by go run gen.go; DO NOT EDIT")
- fmt.Println()
- fmt.Println("package charset")
- fmt.Println()
-
- fmt.Println("import (")
- fmt.Println(`"golang.org/x/text/encoding"`)
- for _, pkg := range []string{"charmap", "japanese", "korean", "simplifiedchinese", "traditionalchinese", "unicode"} {
- fmt.Printf("\"golang.org/x/text/encoding/%s\"\n", pkg)
- }
- fmt.Println(")")
- fmt.Println()
-
- fmt.Println("var encodings = map[string]struct{e encoding.Encoding; name string} {")
- for _, g := range groups {
- for _, e := range g.Encodings {
- goName, ok := miscNames[e.Name]
- if !ok {
- for k, v := range prefixes {
- if strings.HasPrefix(e.Name, k) {
- goName = v + e.Name[len(k):]
- break
- }
- }
- if goName == "" {
- log.Fatalf("unrecognized encoding name: %s", e.Name)
- }
- }
-
- for _, label := range e.Labels {
- fmt.Printf("%q: {%s, %q},\n", label, goName, e.Name)
- }
- }
- }
- fmt.Println("}")
-}
-
-var prefixes = map[string]string{
- "iso-8859-": "charmap.ISO8859_",
- "windows-": "charmap.Windows",
-}
-
-var miscNames = map[string]string{
- "utf-8": "encoding.Nop",
- "ibm866": "charmap.CodePage866",
- "iso-8859-8-i": "charmap.ISO8859_8",
- "koi8-r": "charmap.KOI8R",
- "koi8-u": "charmap.KOI8U",
- "macintosh": "charmap.Macintosh",
- "x-mac-cyrillic": "charmap.MacintoshCyrillic",
- "gbk": "simplifiedchinese.GBK",
- "gb18030": "simplifiedchinese.GB18030",
- "hz-gb-2312": "simplifiedchinese.HZGB2312",
- "big5": "traditionalchinese.Big5",
- "euc-jp": "japanese.EUCJP",
- "iso-2022-jp": "japanese.ISO2022JP",
- "shift_jis": "japanese.ShiftJIS",
- "euc-kr": "korean.EUCKR",
- "replacement": "encoding.Replacement",
- "utf-16be": "unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM)",
- "utf-16le": "unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM)",
- "x-user-defined": "charmap.XUserDefined",
-}
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/table.go b/Godeps/_workspace/src/golang.org/x/net/html/charset/table.go
deleted file mode 100644
index aa0d948..0000000
--- a/Godeps/_workspace/src/golang.org/x/net/html/charset/table.go
+++ /dev/null
@@ -1,235 +0,0 @@
-// generated by go run gen.go; DO NOT EDIT
-
-package charset
-
-import (
- "golang.org/x/text/encoding"
- "golang.org/x/text/encoding/charmap"
- "golang.org/x/text/encoding/japanese"
- "golang.org/x/text/encoding/korean"
- "golang.org/x/text/encoding/simplifiedchinese"
- "golang.org/x/text/encoding/traditionalchinese"
- "golang.org/x/text/encoding/unicode"
-)
-
-var encodings = map[string]struct {
- e encoding.Encoding
- name string
-}{
- "unicode-1-1-utf-8": {encoding.Nop, "utf-8"},
- "utf-8": {encoding.Nop, "utf-8"},
- "utf8": {encoding.Nop, "utf-8"},
- "866": {charmap.CodePage866, "ibm866"},
- "cp866": {charmap.CodePage866, "ibm866"},
- "csibm866": {charmap.CodePage866, "ibm866"},
- "ibm866": {charmap.CodePage866, "ibm866"},
- "csisolatin2": {charmap.ISO8859_2, "iso-8859-2"},
- "iso-8859-2": {charmap.ISO8859_2, "iso-8859-2"},
- "iso-ir-101": {charmap.ISO8859_2, "iso-8859-2"},
- "iso8859-2": {charmap.ISO8859_2, "iso-8859-2"},
- "iso88592": {charmap.ISO8859_2, "iso-8859-2"},
- "iso_8859-2": {charmap.ISO8859_2, "iso-8859-2"},
- "iso_8859-2:1987": {charmap.ISO8859_2, "iso-8859-2"},
- "l2": {charmap.ISO8859_2, "iso-8859-2"},
- "latin2": {charmap.ISO8859_2, "iso-8859-2"},
- "csisolatin3": {charmap.ISO8859_3, "iso-8859-3"},
- "iso-8859-3": {charmap.ISO8859_3, "iso-8859-3"},
- "iso-ir-109": {charmap.ISO8859_3, "iso-8859-3"},
- "iso8859-3": {charmap.ISO8859_3, "iso-8859-3"},
- "iso88593": {charmap.ISO8859_3, "iso-8859-3"},
- "iso_8859-3": {charmap.ISO8859_3, "iso-8859-3"},
- "iso_8859-3:1988": {charmap.ISO8859_3, "iso-8859-3"},
- "l3": {charmap.ISO8859_3, "iso-8859-3"},
- "latin3": {charmap.ISO8859_3, "iso-8859-3"},
- "csisolatin4": {charmap.ISO8859_4, "iso-8859-4"},
- "iso-8859-4": {charmap.ISO8859_4, "iso-8859-4"},
- "iso-ir-110": {charmap.ISO8859_4, "iso-8859-4"},
- "iso8859-4": {charmap.ISO8859_4, "iso-8859-4"},
- "iso88594": {charmap.ISO8859_4, "iso-8859-4"},
- "iso_8859-4": {charmap.ISO8859_4, "iso-8859-4"},
- "iso_8859-4:1988": {charmap.ISO8859_4, "iso-8859-4"},
- "l4": {charmap.ISO8859_4, "iso-8859-4"},
- "latin4": {charmap.ISO8859_4, "iso-8859-4"},
- "csisolatincyrillic": {charmap.ISO8859_5, "iso-8859-5"},
- "cyrillic": {charmap.ISO8859_5, "iso-8859-5"},
- "iso-8859-5": {charmap.ISO8859_5, "iso-8859-5"},
- "iso-ir-144": {charmap.ISO8859_5, "iso-8859-5"},
- "iso8859-5": {charmap.ISO8859_5, "iso-8859-5"},
- "iso88595": {charmap.ISO8859_5, "iso-8859-5"},
- "iso_8859-5": {charmap.ISO8859_5, "iso-8859-5"},
- "iso_8859-5:1988": {charmap.ISO8859_5, "iso-8859-5"},
- "arabic": {charmap.ISO8859_6, "iso-8859-6"},
- "asmo-708": {charmap.ISO8859_6, "iso-8859-6"},
- "csiso88596e": {charmap.ISO8859_6, "iso-8859-6"},
- "csiso88596i": {charmap.ISO8859_6, "iso-8859-6"},
- "csisolatinarabic": {charmap.ISO8859_6, "iso-8859-6"},
- "ecma-114": {charmap.ISO8859_6, "iso-8859-6"},
- "iso-8859-6": {charmap.ISO8859_6, "iso-8859-6"},
- "iso-8859-6-e": {charmap.ISO8859_6, "iso-8859-6"},
- "iso-8859-6-i": {charmap.ISO8859_6, "iso-8859-6"},
- "iso-ir-127": {charmap.ISO8859_6, "iso-8859-6"},
- "iso8859-6": {charmap.ISO8859_6, "iso-8859-6"},
- "iso88596": {charmap.ISO8859_6, "iso-8859-6"},
- "iso_8859-6": {charmap.ISO8859_6, "iso-8859-6"},
- "iso_8859-6:1987": {charmap.ISO8859_6, "iso-8859-6"},
- "csisolatingreek": {charmap.ISO8859_7, "iso-8859-7"},
- "ecma-118": {charmap.ISO8859_7, "iso-8859-7"},
- "elot_928": {charmap.ISO8859_7, "iso-8859-7"},
- "greek": {charmap.ISO8859_7, "iso-8859-7"},
- "greek8": {charmap.ISO8859_7, "iso-8859-7"},
- "iso-8859-7": {charmap.ISO8859_7, "iso-8859-7"},
- "iso-ir-126": {charmap.ISO8859_7, "iso-8859-7"},
- "iso8859-7": {charmap.ISO8859_7, "iso-8859-7"},
- "iso88597": {charmap.ISO8859_7, "iso-8859-7"},
- "iso_8859-7": {charmap.ISO8859_7, "iso-8859-7"},
- "iso_8859-7:1987": {charmap.ISO8859_7, "iso-8859-7"},
- "sun_eu_greek": {charmap.ISO8859_7, "iso-8859-7"},
- "csiso88598e": {charmap.ISO8859_8, "iso-8859-8"},
- "csisolatinhebrew": {charmap.ISO8859_8, "iso-8859-8"},
- "hebrew": {charmap.ISO8859_8, "iso-8859-8"},
- "iso-8859-8": {charmap.ISO8859_8, "iso-8859-8"},
- "iso-8859-8-e": {charmap.ISO8859_8, "iso-8859-8"},
- "iso-ir-138": {charmap.ISO8859_8, "iso-8859-8"},
- "iso8859-8": {charmap.ISO8859_8, "iso-8859-8"},
- "iso88598": {charmap.ISO8859_8, "iso-8859-8"},
- "iso_8859-8": {charmap.ISO8859_8, "iso-8859-8"},
- "iso_8859-8:1988": {charmap.ISO8859_8, "iso-8859-8"},
- "visual": {charmap.ISO8859_8, "iso-8859-8"},
- "csiso88598i": {charmap.ISO8859_8, "iso-8859-8-i"},
- "iso-8859-8-i": {charmap.ISO8859_8, "iso-8859-8-i"},
- "logical": {charmap.ISO8859_8, "iso-8859-8-i"},
- "csisolatin6": {charmap.ISO8859_10, "iso-8859-10"},
- "iso-8859-10": {charmap.ISO8859_10, "iso-8859-10"},
- "iso-ir-157": {charmap.ISO8859_10, "iso-8859-10"},
- "iso8859-10": {charmap.ISO8859_10, "iso-8859-10"},
- "iso885910": {charmap.ISO8859_10, "iso-8859-10"},
- "l6": {charmap.ISO8859_10, "iso-8859-10"},
- "latin6": {charmap.ISO8859_10, "iso-8859-10"},
- "iso-8859-13": {charmap.ISO8859_13, "iso-8859-13"},
- "iso8859-13": {charmap.ISO8859_13, "iso-8859-13"},
- "iso885913": {charmap.ISO8859_13, "iso-8859-13"},
- "iso-8859-14": {charmap.ISO8859_14, "iso-8859-14"},
- "iso8859-14": {charmap.ISO8859_14, "iso-8859-14"},
- "iso885914": {charmap.ISO8859_14, "iso-8859-14"},
- "csisolatin9": {charmap.ISO8859_15, "iso-8859-15"},
- "iso-8859-15": {charmap.ISO8859_15, "iso-8859-15"},
- "iso8859-15": {charmap.ISO8859_15, "iso-8859-15"},
- "iso885915": {charmap.ISO8859_15, "iso-8859-15"},
- "iso_8859-15": {charmap.ISO8859_15, "iso-8859-15"},
- "l9": {charmap.ISO8859_15, "iso-8859-15"},
- "iso-8859-16": {charmap.ISO8859_16, "iso-8859-16"},
- "cskoi8r": {charmap.KOI8R, "koi8-r"},
- "koi": {charmap.KOI8R, "koi8-r"},
- "koi8": {charmap.KOI8R, "koi8-r"},
- "koi8-r": {charmap.KOI8R, "koi8-r"},
- "koi8_r": {charmap.KOI8R, "koi8-r"},
- "koi8-u": {charmap.KOI8U, "koi8-u"},
- "csmacintosh": {charmap.Macintosh, "macintosh"},
- "mac": {charmap.Macintosh, "macintosh"},
- "macintosh": {charmap.Macintosh, "macintosh"},
- "x-mac-roman": {charmap.Macintosh, "macintosh"},
- "dos-874": {charmap.Windows874, "windows-874"},
- "iso-8859-11": {charmap.Windows874, "windows-874"},
- "iso8859-11": {charmap.Windows874, "windows-874"},
- "iso885911": {charmap.Windows874, "windows-874"},
- "tis-620": {charmap.Windows874, "windows-874"},
- "windows-874": {charmap.Windows874, "windows-874"},
- "cp1250": {charmap.Windows1250, "windows-1250"},
- "windows-1250": {charmap.Windows1250, "windows-1250"},
- "x-cp1250": {charmap.Windows1250, "windows-1250"},
- "cp1251": {charmap.Windows1251, "windows-1251"},
- "windows-1251": {charmap.Windows1251, "windows-1251"},
- "x-cp1251": {charmap.Windows1251, "windows-1251"},
- "ansi_x3.4-1968": {charmap.Windows1252, "windows-1252"},
- "ascii": {charmap.Windows1252, "windows-1252"},
- "cp1252": {charmap.Windows1252, "windows-1252"},
- "cp819": {charmap.Windows1252, "windows-1252"},
- "csisolatin1": {charmap.Windows1252, "windows-1252"},
- "ibm819": {charmap.Windows1252, "windows-1252"},
- "iso-8859-1": {charmap.Windows1252, "windows-1252"},
- "iso-ir-100": {charmap.Windows1252, "windows-1252"},
- "iso8859-1": {charmap.Windows1252, "windows-1252"},
- "iso88591": {charmap.Windows1252, "windows-1252"},
- "iso_8859-1": {charmap.Windows1252, "windows-1252"},
- "iso_8859-1:1987": {charmap.Windows1252, "windows-1252"},
- "l1": {charmap.Windows1252, "windows-1252"},
- "latin1": {charmap.Windows1252, "windows-1252"},
- "us-ascii": {charmap.Windows1252, "windows-1252"},
- "windows-1252": {charmap.Windows1252, "windows-1252"},
- "x-cp1252": {charmap.Windows1252, "windows-1252"},
- "cp1253": {charmap.Windows1253, "windows-1253"},
- "windows-1253": {charmap.Windows1253, "windows-1253"},
- "x-cp1253": {charmap.Windows1253, "windows-1253"},
- "cp1254": {charmap.Windows1254, "windows-1254"},
- "csisolatin5": {charmap.Windows1254, "windows-1254"},
- "iso-8859-9": {charmap.Windows1254, "windows-1254"},
- "iso-ir-148": {charmap.Windows1254, "windows-1254"},
- "iso8859-9": {charmap.Windows1254, "windows-1254"},
- "iso88599": {charmap.Windows1254, "windows-1254"},
- "iso_8859-9": {charmap.Windows1254, "windows-1254"},
- "iso_8859-9:1989": {charmap.Windows1254, "windows-1254"},
- "l5": {charmap.Windows1254, "windows-1254"},
- "latin5": {charmap.Windows1254, "windows-1254"},
- "windows-1254": {charmap.Windows1254, "windows-1254"},
- "x-cp1254": {charmap.Windows1254, "windows-1254"},
- "cp1255": {charmap.Windows1255, "windows-1255"},
- "windows-1255": {charmap.Windows1255, "windows-1255"},
- "x-cp1255": {charmap.Windows1255, "windows-1255"},
- "cp1256": {charmap.Windows1256, "windows-1256"},
- "windows-1256": {charmap.Windows1256, "windows-1256"},
- "x-cp1256": {charmap.Windows1256, "windows-1256"},
- "cp1257": {charmap.Windows1257, "windows-1257"},
- "windows-1257": {charmap.Windows1257, "windows-1257"},
- "x-cp1257": {charmap.Windows1257, "windows-1257"},
- "cp1258": {charmap.Windows1258, "windows-1258"},
- "windows-1258": {charmap.Windows1258, "windows-1258"},
- "x-cp1258": {charmap.Windows1258, "windows-1258"},
- "x-mac-cyrillic": {charmap.MacintoshCyrillic, "x-mac-cyrillic"},
- "x-mac-ukrainian": {charmap.MacintoshCyrillic, "x-mac-cyrillic"},
- "chinese": {simplifiedchinese.GBK, "gbk"},
- "csgb2312": {simplifiedchinese.GBK, "gbk"},
- "csiso58gb231280": {simplifiedchinese.GBK, "gbk"},
- "gb2312": {simplifiedchinese.GBK, "gbk"},
- "gb_2312": {simplifiedchinese.GBK, "gbk"},
- "gb_2312-80": {simplifiedchinese.GBK, "gbk"},
- "gbk": {simplifiedchinese.GBK, "gbk"},
- "iso-ir-58": {simplifiedchinese.GBK, "gbk"},
- "x-gbk": {simplifiedchinese.GBK, "gbk"},
- "gb18030": {simplifiedchinese.GB18030, "gb18030"},
- "hz-gb-2312": {simplifiedchinese.HZGB2312, "hz-gb-2312"},
- "big5": {traditionalchinese.Big5, "big5"},
- "big5-hkscs": {traditionalchinese.Big5, "big5"},
- "cn-big5": {traditionalchinese.Big5, "big5"},
- "csbig5": {traditionalchinese.Big5, "big5"},
- "x-x-big5": {traditionalchinese.Big5, "big5"},
- "cseucpkdfmtjapanese": {japanese.EUCJP, "euc-jp"},
- "euc-jp": {japanese.EUCJP, "euc-jp"},
- "x-euc-jp": {japanese.EUCJP, "euc-jp"},
- "csiso2022jp": {japanese.ISO2022JP, "iso-2022-jp"},
- "iso-2022-jp": {japanese.ISO2022JP, "iso-2022-jp"},
- "csshiftjis": {japanese.ShiftJIS, "shift_jis"},
- "ms_kanji": {japanese.ShiftJIS, "shift_jis"},
- "shift-jis": {japanese.ShiftJIS, "shift_jis"},
- "shift_jis": {japanese.ShiftJIS, "shift_jis"},
- "sjis": {japanese.ShiftJIS, "shift_jis"},
- "windows-31j": {japanese.ShiftJIS, "shift_jis"},
- "x-sjis": {japanese.ShiftJIS, "shift_jis"},
- "cseuckr": {korean.EUCKR, "euc-kr"},
- "csksc56011987": {korean.EUCKR, "euc-kr"},
- "euc-kr": {korean.EUCKR, "euc-kr"},
- "iso-ir-149": {korean.EUCKR, "euc-kr"},
- "korean": {korean.EUCKR, "euc-kr"},
- "ks_c_5601-1987": {korean.EUCKR, "euc-kr"},
- "ks_c_5601-1989": {korean.EUCKR, "euc-kr"},
- "ksc5601": {korean.EUCKR, "euc-kr"},
- "ksc_5601": {korean.EUCKR, "euc-kr"},
- "windows-949": {korean.EUCKR, "euc-kr"},
- "csiso2022kr": {encoding.Replacement, "replacement"},
- "iso-2022-kr": {encoding.Replacement, "replacement"},
- "iso-2022-cn": {encoding.Replacement, "replacement"},
- "iso-2022-cn-ext": {encoding.Replacement, "replacement"},
- "utf-16be": {unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), "utf-16be"},
- "utf-16": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"},
- "utf-16le": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"},
- "x-user-defined": {charmap.XUserDefined, "x-user-defined"},
-}
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE b/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE
deleted file mode 100644
index a68e67f..0000000
--- a/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE
+++ /dev/null
@@ -1,188 +0,0 @@
-
-Copyright (c) 2011-2014 - Canonical Inc.
-
-This software is licensed under the LGPLv3, included below.
-
-As a special exception to the GNU Lesser General Public License version 3
-("LGPL3"), the copyright holders of this Library give you permission to
-convey to a third party a Combined Work that links statically or dynamically
-to this Library without providing any Minimal Corresponding Source or
-Minimal Application Code as set out in 4d or providing the installation
-information set out in section 4e, provided that you comply with the other
-provisions of LGPL3 and provided that you meet, for the Application the
-terms and conditions of the license(s) which apply to the Application.
-
-Except as stated in this special exception, the provisions of LGPL3 will
-continue to comply in full to this Library. If you modify this Library, you
-may apply this exception to your version of this Library, but you are not
-obliged to do so. If you do not wish to do so, delete this exception
-statement from your version. This exception does not (and cannot) modify any
-license terms which apply to the Application, with which you must still
-comply.
-
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- 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 that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU 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 as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE.libyaml b/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE.libyaml
deleted file mode 100644
index 8da58fb..0000000
--- a/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE.libyaml
+++ /dev/null
@@ -1,31 +0,0 @@
-The following files were ported to Go from C files of libyaml, and thus
-are still covered by their original copyright and license:
-
- apic.go
- emitterc.go
- parserc.go
- readerc.go
- scannerc.go
- writerc.go
- yamlh.go
- yamlprivateh.go
-
-Copyright (c) 2006 Kirill Simonov
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/bitbucket.org/bertimus9/systemstat/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/bitbucket.org/bertimus9/systemstat/LICENSE
deleted file mode 100644
index 8bff971..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/bitbucket.org/bertimus9/systemstat/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 Phillip Bond
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/Sirupsen/logrus/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/Sirupsen/logrus/LICENSE
deleted file mode 100644
index f090cb4..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE
deleted file mode 100644
index e454a52..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE
+++ /dev/null
@@ -1,178 +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
-
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/codegangsta/negroni/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/codegangsta/negroni/LICENSE
deleted file mode 100644
index 08b5e20..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/codegangsta/negroni/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Jeremy Saenz
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/dgrijalva/jwt-go/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/dgrijalva/jwt-go/LICENSE
deleted file mode 100644
index df83a9c..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/dgrijalva/jwt-go/LICENSE
+++ /dev/null
@@ -1,8 +0,0 @@
-Copyright (c) 2012 Dave Grijalva
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/LICENSE
deleted file mode 100644
index 2744858..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/NOTICE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/NOTICE
deleted file mode 100644
index dc91298..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/NOTICE
+++ /dev/null
@@ -1,16 +0,0 @@
-libcontainer
-Copyright 2012-2015 Docker, Inc.
-
-This product includes software developed at Docker, Inc. (http://www.docker.com).
-
-The following is courtesy of our legal counsel:
-
-
-Use and transfer of Docker may be subject to certain restrictions by the
-United States and other governments.
-It is your responsibility to ensure that your use and/or transfer does not
-violate applicable laws.
-
-For more information, please see http://www.bis.doc.gov
-
-See also http://www.apache.org/dev/crypto.html and/or seek legal counsel.
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/Sirupsen/logrus/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/Sirupsen/logrus/LICENSE
deleted file mode 100644
index f090cb4..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/codegangsta/cli/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/codegangsta/cli/LICENSE
deleted file mode 100644
index 5515ccf..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/codegangsta/cli/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (C) 2013 Jeremy Saenz
-All Rights Reserved.
-
-MIT LICENSE
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/coreos/go-systemd/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/coreos/go-systemd/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/godbus/dbus/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/godbus/dbus/LICENSE
deleted file mode 100644
index 06b252b..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/syndtr/gocapability/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/vendor/src/github.com/syndtr/gocapability/LICENSE
deleted file mode 100644
index 80dd96d..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/libcontainer/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/spdystream/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/spdystream/LICENSE
deleted file mode 100644
index 2744858..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/docker/spdystream/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/LICENSE
deleted file mode 100644
index 5782c72..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright (c) 2014, Elazar Leibovich
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/emicklei/go-restful/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/emicklei/go-restful/LICENSE
deleted file mode 100644
index ece7ec6..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/emicklei/go-restful/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012,2013 Ernest Micklei
-
-MIT License
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/evanphx/json-patch/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/evanphx/json-patch/LICENSE
deleted file mode 100644
index 0eb9b72..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/evanphx/json-patch/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2014, Evan Phoenix
-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 Evan Phoenix 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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/LICENSE
deleted file mode 100644
index 4e11de1..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2015, go-dockerclient 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.
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/Sirupsen/logrus/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/Sirupsen/logrus/LICENSE
deleted file mode 100644
index f090cb4..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/mflag/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/mflag/LICENSE
deleted file mode 100644
index ac74d8f..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/context/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/context/LICENSE
deleted file mode 100644
index 0e5fb87..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/mux/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/mux/LICENSE
deleted file mode 100644
index 0e5fb87..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/fsouza/go-dockerclient/external/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/ghodss/yaml/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/ghodss/yaml/LICENSE
deleted file mode 100644
index 7805d36..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/ghodss/yaml/LICENSE
+++ /dev/null
@@ -1,50 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Sam Ghods
-
-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.
-
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/godbus/dbus/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/godbus/dbus/LICENSE
deleted file mode 100644
index 06b252b..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/golang/glog/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/golang/glog/LICENSE
deleted file mode 100644
index 37ec93a..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/golang/glog/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/google/gofuzz/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/google/gofuzz/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/google/gofuzz/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/gorilla/context/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/gorilla/context/LICENSE
deleted file mode 100644
index 0e5fb87..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/gorilla/mux/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/gorilla/mux/LICENSE
deleted file mode 100644
index 0e5fb87..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/imdario/mergo/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/imdario/mergo/LICENSE
deleted file mode 100644
index 6866802..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/imdario/mergo/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2013 Dario Castañé. All rights reserved.
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/imdario/mergo/testdata/license.yml b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/imdario/mergo/testdata/license.yml
deleted file mode 100644
index 62fdb61..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/imdario/mergo/testdata/license.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-import: ../../../../fossene/db/schema/thing.yml
-fields:
- site: string
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/LICENSE
deleted file mode 100644
index 5f0d1fb..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright 2014 Alan Shreve
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE
deleted file mode 100644
index 5c304d1..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/jonboulle/clockwork/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/juju/ratelimit/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/juju/ratelimit/LICENSE
deleted file mode 100644
index ade9307..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/juju/ratelimit/LICENSE
+++ /dev/null
@@ -1,191 +0,0 @@
-All files in this repository are licensed as follows. If you contribute
-to this repository, it is assumed that you license your contribution
-under the same license unless you state otherwise.
-
-All files Copyright (C) 2015 Canonical Ltd. unless otherwise specified in the file.
-
-This software is licensed under the LGPLv3, included below.
-
-As a special exception to the GNU Lesser General Public License version 3
-("LGPL3"), the copyright holders of this Library give you permission to
-convey to a third party a Combined Work that links statically or dynamically
-to this Library without providing any Minimal Corresponding Source or
-Minimal Application Code as set out in 4d or providing the installation
-information set out in section 4e, provided that you comply with the other
-provisions of LGPL3 and provided that you meet, for the Application the
-terms and conditions of the license(s) which apply to the Application.
-
-Except as stated in this special exception, the provisions of LGPL3 will
-continue to comply in full to this Library. If you modify this Library, you
-may apply this exception to your version of this Library, but you are not
-obliged to do so. If you do not wish to do so, delete this exception
-statement from your version. This exception does not (and cannot) modify any
-license terms which apply to the Application, with which you must still
-comply.
-
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- 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 that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU 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 as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/kardianos/osext/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/kardianos/osext/LICENSE
deleted file mode 100644
index 7448756..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/kardianos/osext/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/kr/pty/License b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/kr/pty/License
deleted file mode 100644
index 6b7558b..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/miekg/dns/COPYRIGHT b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/miekg/dns/COPYRIGHT
deleted file mode 100644
index 35702b1..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/miekg/dns/COPYRIGHT
+++ /dev/null
@@ -1,9 +0,0 @@
-Copyright 2009 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.
-Extensions of the original work are copyright (c) 2011 Miek Gieben
-
-Copyright 2011 Miek Gieben. All rights reserved. Use of this source code is
-governed by a BSD-style license that can be found in the LICENSE file.
-
-Copyright 2014 CloudFlare. All rights reserved. Use of this source code is
-governed by a BSD-style license that can be found in the LICENSE file.
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/miekg/dns/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/miekg/dns/LICENSE
deleted file mode 100644
index 5763fa7..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/miekg/dns/LICENSE
+++ /dev/null
@@ -1,32 +0,0 @@
-Extensions of the original work are copyright (c) 2011 Miek Gieben
-
-As this is fork of the official Go code the same license applies:
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/mitchellh/mapstructure/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/mitchellh/mapstructure/LICENSE
deleted file mode 100644
index f9c841a..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/mitchellh/mapstructure/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 Mitchell Hashimoto
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/onsi/ginkgo/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/onsi/ginkgo/LICENSE
deleted file mode 100644
index 9415ee7..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/onsi/ginkgo/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2013-2014 Onsi Fakhouri
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/onsi/gomega/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/onsi/gomega/LICENSE
deleted file mode 100644
index 9415ee7..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/onsi/gomega/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2013-2014 Onsi Fakhouri
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/pborman/uuid/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/pborman/uuid/LICENSE
deleted file mode 100644
index 5dc6826..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/pborman/uuid/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009,2014 Google 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 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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/prometheus/procfs/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/prometheus/procfs/LICENSE
deleted file mode 100644
index 261eeb9..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/prometheus/procfs/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/prometheus/procfs/NOTICE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/prometheus/procfs/NOTICE
deleted file mode 100644
index 53c5e9a..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/prometheus/procfs/NOTICE
+++ /dev/null
@@ -1,7 +0,0 @@
-procfs provides functions to retrieve system, kernel and process
-metrics from the pseudo-filesystem proc.
-
-Copyright 2014-2015 The Prometheus Authors
-
-This product includes software developed at
-SoundCloud Ltd. (http://soundcloud.com/).
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/rackspace/gophercloud/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/rackspace/gophercloud/LICENSE
deleted file mode 100644
index fbbbc9e..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/rackspace/gophercloud/LICENSE
+++ /dev/null
@@ -1,191 +0,0 @@
-Copyright 2012-2013 Rackspace, 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.
-
-------
-
- 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
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/russross/blackfriday/LICENSE.txt b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/russross/blackfriday/LICENSE.txt
deleted file mode 100644
index 2885af3..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/russross/blackfriday/LICENSE.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Blackfriday is distributed under the Simplified BSD License:
-
-> Copyright © 2011 Russ Ross
-> 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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/scalingdata/gcfg/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/scalingdata/gcfg/LICENSE
deleted file mode 100644
index b0a9e76..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/scalingdata/gcfg/LICENSE
+++ /dev/null
@@ -1,57 +0,0 @@
-Copyright (c) 2012 Péter Surányi. 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
-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.
-
-----------------------------------------------------------------------
-Portions of gcfg's source code have been derived from Go, and are
-covered by the following license:
-----------------------------------------------------------------------
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/spf13/cobra/LICENSE.txt b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/spf13/cobra/LICENSE.txt
deleted file mode 100644
index 298f0e2..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/spf13/cobra/LICENSE.txt
+++ /dev/null
@@ -1,174 +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.
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE
deleted file mode 100644
index 63ed1cf..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2012 Alex Ogier. All rights reserved.
-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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/vaughan0/go-ini/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/vaughan0/go-ini/LICENSE
deleted file mode 100644
index 968b453..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/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/k8s.io/kubernetes/Godeps/_workspace/src/github.com/xyproto/simpleredis/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/xyproto/simpleredis/LICENSE
deleted file mode 100644
index 145d387..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/github.com/xyproto/simpleredis/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Alexander F Rødseth
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/golang.org/x/oauth2/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/golang.org/x/oauth2/LICENSE
deleted file mode 100644
index d02f24f..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/golang.org/x/oauth2/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2009 The oauth2 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/k8s.io/kubernetes/Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
deleted file mode 100644
index de9c88c..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Copyright (c) 2013 Joshua Tacoma
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/gopkg.in/natefinch/lumberjack.v2/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/gopkg.in/natefinch/lumberjack.v2/LICENSE
deleted file mode 100644
index c3d4cc3..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/gopkg.in/natefinch/lumberjack.v2/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Nate Finch
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE
deleted file mode 100644
index a68e67f..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE
+++ /dev/null
@@ -1,188 +0,0 @@
-
-Copyright (c) 2011-2014 - Canonical Inc.
-
-This software is licensed under the LGPLv3, included below.
-
-As a special exception to the GNU Lesser General Public License version 3
-("LGPL3"), the copyright holders of this Library give you permission to
-convey to a third party a Combined Work that links statically or dynamically
-to this Library without providing any Minimal Corresponding Source or
-Minimal Application Code as set out in 4d or providing the installation
-information set out in section 4e, provided that you comply with the other
-provisions of LGPL3 and provided that you meet, for the Application the
-terms and conditions of the license(s) which apply to the Application.
-
-Except as stated in this special exception, the provisions of LGPL3 will
-continue to comply in full to this Library. If you modify this Library, you
-may apply this exception to your version of this Library, but you are not
-obliged to do so. If you do not wish to do so, delete this exception
-statement from your version. This exception does not (and cannot) modify any
-license terms which apply to the Application, with which you must still
-comply.
-
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- 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 that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU 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 as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE.libyaml b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE.libyaml
deleted file mode 100644
index 8da58fb..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE.libyaml
+++ /dev/null
@@ -1,31 +0,0 @@
-The following files were ported to Go from C files of libyaml, and thus
-are still covered by their original copyright and license:
-
- apic.go
- emitterc.go
- parserc.go
- readerc.go
- scannerc.go
- writerc.go
- yamlh.go
- yamlprivateh.go
-
-Copyright (c) 2006 Kirill Simonov
-
-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/k8s.io/kubernetes/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE
deleted file mode 100644
index efa1aa1..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE
+++ /dev/null
@@ -1,57 +0,0 @@
-Copyright (c) 2012 Péter Surányi. 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
-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.
-
-----------------------------------------------------------------------
-Portions of inf.Dec's source code have been derived from Go and are
-covered by the following license:
-----------------------------------------------------------------------
-
-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/k8s.io/kubernetes/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/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/k8s.io/kubernetes/cluster/juju/charms/trusty/kubernetes-master/copyright b/Godeps/_workspace/src/k8s.io/kubernetes/cluster/juju/charms/trusty/kubernetes-master/copyright
deleted file mode 100644
index a0b409a..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/cluster/juju/charms/trusty/kubernetes-master/copyright
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright 2015 Google Inc. All rights reserved.
-
-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/k8s.io/kubernetes/cluster/juju/charms/trusty/kubernetes/copyright b/Godeps/_workspace/src/k8s.io/kubernetes/cluster/juju/charms/trusty/kubernetes/copyright
deleted file mode 100644
index a0b409a..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/cluster/juju/charms/trusty/kubernetes/copyright
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright 2015 Google Inc. All rights reserved.
-
-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/k8s.io/kubernetes/docs/user-guide/update-demo/local/LICENSE.angular b/Godeps/_workspace/src/k8s.io/kubernetes/docs/user-guide/update-demo/local/LICENSE.angular
deleted file mode 100644
index 020f87a..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/docs/user-guide/update-demo/local/LICENSE.angular
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2010-2014 Google, Inc. http://angularjs.org
-
-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/k8s.io/kubernetes/third_party/forked/json/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/third_party/forked/json/LICENSE
deleted file mode 100644
index 7448756..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/third_party/forked/json/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/k8s.io/kubernetes/third_party/forked/reflect/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/third_party/forked/reflect/LICENSE
deleted file mode 100644
index 7448756..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/third_party/forked/reflect/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/k8s.io/kubernetes/third_party/golang/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/third_party/golang/LICENSE
deleted file mode 100644
index 7448756..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/third_party/golang/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/k8s.io/kubernetes/third_party/golang/PATENTS b/Godeps/_workspace/src/k8s.io/kubernetes/third_party/golang/PATENTS
deleted file mode 100644
index 7330990..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/third_party/golang/PATENTS
+++ /dev/null
@@ -1,22 +0,0 @@
-Additional IP Rights Grant (Patents)
-
-"This implementation" means the copyrightable works distributed by
-Google as part of the Go project.
-
-Google 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,
-transfer and otherwise run, modify and propagate the contents of this
-implementation of Go, where such license applies only to those patent
-claims, both currently owned or controlled by Google and acquired in
-the future, licensable by Google that are necessarily infringed by this
-implementation of Go. This grant does not include claims that would be
-infringed only as a consequence of further modification of this
-implementation. If you or your agent or exclusive licensee institute or
-order or agree to the institution of patent litigation against any
-entity (including a cross-claim or counterclaim in a lawsuit) alleging
-that this implementation of Go or any code incorporated within this
-implementation of Go constitutes direct or contributory patent
-infringement, or inducement of patent infringement, then any patent
-rights granted to you under this License for this implementation of Go
-shall terminate as of the date such litigation is filed.
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/third_party/htpasswd/COPYING b/Godeps/_workspace/src/k8s.io/kubernetes/third_party/htpasswd/COPYING
deleted file mode 100644
index c6b097c..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/third_party/htpasswd/COPYING
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (C) 2003-2013 Edgewall Software
-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.
- 3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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/k8s.io/kubernetes/third_party/pause/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/third_party/pause/LICENSE
deleted file mode 100644
index 2b5e5ff..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/third_party/pause/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-The Expat/MIT License
-
-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/k8s.io/kubernetes/third_party/swagger-ui/LICENSE b/Godeps/_workspace/src/k8s.io/kubernetes/third_party/swagger-ui/LICENSE
deleted file mode 100644
index 9f93e06..0000000
--- a/Godeps/_workspace/src/k8s.io/kubernetes/third_party/swagger-ui/LICENSE
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright 2014 Reverb Technologies, 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 [apache.org/licenses/LICENSE-2.0](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/speter.net/go/exp/math/dec/inf/LICENSE b/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE
deleted file mode 100644
index efa1aa1..0000000
--- a/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE
+++ /dev/null
@@ -1,57 +0,0 @@
-Copyright (c) 2012 Péter Surányi. 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
-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.
-
-----------------------------------------------------------------------
-Portions of inf.Dec's source code have been derived from Go and are
-covered by the following license:
-----------------------------------------------------------------------
-
-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/build.sh b/build.sh
deleted file mode 100755
index 578be4a..0000000
--- a/build.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-set -x
-set -e
-start=`date +%s`
-dir=$( dirname $0 )
-
-ENVS="darwin\nlinux"
-[ -z "$1" ] || ENVS="$1"
-
-
-[ -f $GOPATH/bin/godep ] || go get github.com/tools/godep
-
-# clean
-rm -Rf $dir/dist/*-amd64
-
-#save dep
-godep save ./... || true
-
-# format && test
-gofmt -w -s .
-godep go test -cover $dir/...
-
-# build
-if `command -v parallel >/dev/null 2>&1`; then
- echo -e "$ENVS" | parallel --will-cite -j10 --workdir . "GOOS={} GOARCH=amd64 godep go build -o dist/{}-amd64/ggn"
-else
- for e in `echo -e "$ENVS"`; do
- GOOS="$e" GOARCH=amd64 godep go build -o "dist/${e}-amd64/ggn"
- done
-fi
-
-godep go install
-
-end=`date +%s`
-echo "Duration : $((end-start))s"
diff --git a/builder/build.go b/builder/build.go
deleted file mode 100644
index cfd6a43..0000000
--- a/builder/build.go
+++ /dev/null
@@ -1,10 +0,0 @@
-package builder
-
-type Flags struct {
- All bool
- Yes bool
- Force bool
- GenerateManifests []string
-}
-
-var BuildFlags = Flags{}
diff --git a/clean.sh b/clean.sh
deleted file mode 100755
index 8b386b9..0000000
--- a/clean.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-rm -Rf dist/
diff --git a/commands/genautocomplete.go b/commands/genautocomplete.go
index 582c7dd..e3b150a 100644
--- a/commands/genautocomplete.go
+++ b/commands/genautocomplete.go
@@ -1,10 +1,12 @@
package commands
import (
- "github.com/Sirupsen/logrus"
+ "os"
+
"github.com/blablacar/ggn/ggn"
+ "github.com/blablacar/ggn/work"
+ "github.com/n0rad/go-erlog/logs"
"github.com/spf13/cobra"
- "os"
)
var autocompleteTarget string
@@ -29,14 +31,21 @@ or just source them in directly:
autocompleteTarget = ggn.Home.Path + "/ggn_completion.sh"
}
if autocompleteType != "bash" {
- logrus.WithField("type", autocompleteType).Fatalln("Only Bash is supported for now")
+ logs.WithField("type", autocompleteType).Fatal("Only Bash is supported for now")
}
+ work := work.NewWork(ggn.Home.Config.WorkPath)
+
+ for _, command := range cmd.Root().Commands() {
+ if command.Use != "genautocomplete" && command.Use != "version" && command.Use != "help [command]" { // TODO sux
+ command.AddCommand(prepareEnvCommands(work.LoadEnv(command.Use)))
+ }
+ }
err := cmd.Root().GenBashCompletionFile(autocompleteTarget)
if err != nil {
- logrus.WithError(err).Fatalln("Failed to generate shell completion file")
+ logs.WithE(err).Fatal("Failed to generate shell completion file")
} else {
- logrus.WithField("path", autocompleteTarget).Println("Bash completion saved")
+ logs.WithField("path", autocompleteTarget).Info("Bash completion saved")
}
os.Exit(0)
},
diff --git a/commands/ggn.go b/commands/ggn.go
index 43dfc65..db3718e 100644
--- a/commands/ggn.go
+++ b/commands/ggn.go
@@ -3,70 +3,130 @@ package commands
import (
"bufio"
"fmt"
- log "github.com/Sirupsen/logrus"
- "github.com/blablacar/cnt/utils"
- "github.com/blablacar/ggn/builder"
+ "os"
+ "strings"
+
+ "github.com/blablacar/dgr/bin-dgr/common"
"github.com/blablacar/ggn/ggn"
+ "github.com/blablacar/ggn/work"
"github.com/coreos/go-semver/semver"
+ "github.com/n0rad/go-erlog/logs"
"github.com/spf13/cobra"
- "os"
- "strings"
+ "github.com/spf13/pflag"
)
const FLEET_SUPPORTED_VERSION = "0.11.5"
-func Execute() {
+func Execute(commitHash string, ggnVersion string, buildDate string) {
+ ggn.CommitHash = commitHash
+ ggn.GgnVersion = ggnVersion
+ ggn.BuildDate = buildDate
+
checkFleetVersion()
- homefolder := ggn.DefaultHomeRoot()
- if argsHome := homeFolderFromArgs(); argsHome != "" {
- homefolder = argsHome
- } else {
- _, err := os.Stat(homefolder + "/green-garden")
- _, err2 := os.Stat(homefolder + "/ggn")
- if os.IsNotExist(err2) && err == nil {
- log.WithField("oldPath", homefolder+"/green-garden").
- WithField("newPath", homefolder+"/ggn").
- Warn("You are using the old home folder")
- homefolder += "/green-garden"
- } else {
- homefolder += "/ggn"
+ ggn.Home = discoverHome()
+ prepareLogs()
+ work.BuildFlags.GenerateManifests = GenerateManifestPathFromArgs()
+
+ rootCmd := &cobra.Command{
+ Use: "ggn",
+ }
+
+ var useless string
+ var useless2 []string
+ rootCmd.PersistentFlags().StringVarP(&useless, "log-level", "L", "info", "Set log level")
+ rootCmd.PersistentFlags().StringVarP(&useless, "home-path", "H", ggn.DefaultHomeRoot()+"/ggn", "Set home folder")
+ rootCmd.PersistentFlags().StringSliceVarP(&useless2, "generate-manifest", "M", []string{}, "Manifests used to generate. comma separated")
+ rootCmd.AddCommand(versionCmd, genautocompleteCmd)
+
+ newRoot := loadEnvCommandsReturnNewRoot(os.Args, rootCmd)
+ rootCmd.PersistentFlags().VisitAll(func(flag *pflag.Flag) {
+ newRoot.PersistentFlags().AddFlag(flag)
+ })
+
+ args := []string{findEnv()}
+ logs.WithField("args", args).Debug("Processing env with args")
+ rootCmd.SetArgs(args)
+ err := rootCmd.Execute()
+ if err != nil {
+ os.Exit(1)
+ }
+
+ logs.Debug("Victory !")
+}
+
+func findEnv() string { //TODO this is fucking dirty
+ for i := 1; i < len(os.Args); i++ {
+ if os.Args[i] == "--" {
+ return os.Args[i+1]
}
+ if os.Args[i] == "-h" || os.Args[i] == "--help" {
+ return os.Args[i]
+ }
+ if os.Args[i] == "-M" ||
+ os.Args[i] == "-L" ||
+ os.Args[i] == "-H" {
+ i++
+ continue
+ }
+ if strings.HasPrefix(os.Args[i], "-") ||
+ strings.HasPrefix(os.Args[i], "--generate-manifest=") ||
+ strings.HasPrefix(os.Args[i], "--log-level=") ||
+ strings.HasPrefix(os.Args[i], "--home-path=") {
+ continue
+ }
+ return os.Args[i]
}
- ggn.Home = ggn.NewHome(homefolder)
+ return ""
+}
+func prepareLogs() {
// logs
lvl := logLevelFromArgs()
if lvl == "" {
lvl = "info"
}
- level, err := log.ParseLevel(lvl)
+ level, err := logs.ParseLevel(lvl)
if err != nil {
- fmt.Printf("Unknown log level : %s", lvl)
+ fmt.Printf("Unknown log level : %s\n", lvl)
os.Exit(1)
}
- log.SetLevel(level)
+ logs.SetLevel(level)
+}
- rootCmd := &cobra.Command{
- Use: "ggn",
+func discoverHome() ggn.HomeStruct {
+ homefolder := ggn.DefaultHomeRoot()
+ if argsHome := homeFolderFromArgs(); argsHome != "" {
+ homefolder = argsHome
+ } else {
+ _, err := os.Stat(homefolder + "/green-garden")
+ _, err2 := os.Stat(homefolder + "/ggn")
+ if os.IsNotExist(err2) && err == nil {
+ logs.WithField("oldPath", homefolder+"/green-garden").
+ WithField("newPath", homefolder+"/ggn").
+ Warn("You are using the old home folder")
+ homefolder += "/green-garden"
+ } else {
+ homefolder += "/ggn"
+ }
}
+ return ggn.NewHome(homefolder)
+}
- var useless string
- var useless2 string
-
- rootCmd.PersistentFlags().StringVarP(&useless2, "log-level", "L", "info", "Set log level")
- rootCmd.PersistentFlags().StringVarP(&useless, "home-path", "H", ggn.DefaultHomeRoot()+"/ggn", "Set home folder")
- rootCmd.PersistentFlags().StringSliceVarP(&builder.BuildFlags.GenerateManifests, "generate-manifest", "M", []string{}, "Manifests used to generate. comma separated")
- rootCmd.AddCommand(versionCmd, generateCmd, genautocompleteCmd)
-
- loadEnvCommands(rootCmd)
-
- err = rootCmd.Execute()
- if err != nil {
- os.Exit(1)
+func GenerateManifestPathFromArgs() []string {
+ for i, arg := range os.Args {
+ if arg == "--" {
+ return []string{}
+ }
+ if arg == "-M" {
+ return strings.Split(os.Args[i+1], ",")
+ }
+ if strings.HasPrefix(arg, "--generate-manifest=") {
+ return strings.Split(arg[20:], ",")
+ }
}
- log.Debug("Victory !")
+ return []string{}
}
func homeFolderFromArgs() string {
@@ -100,9 +160,9 @@ func logLevelFromArgs() string {
}
func checkFleetVersion() {
- output, err := utils.ExecCmdGetOutput("fleetctl")
+ output, err := common.ExecCmdGetOutput("fleetctl")
if err != nil {
- log.Fatal("fleetctl is required in PATH")
+ logs.Fatal("fleetctl is required in PATH")
}
scanner := bufio.NewScanner(strings.NewReader(output))
@@ -113,12 +173,12 @@ func checkFleetVersion() {
versionString := strings.TrimSpace(scanner.Text())
version, err := semver.NewVersion(versionString)
if err != nil {
- log.Error("Cannot parse version of fleetctl", versionString)
+ logs.Error("Cannot parse version of fleetctl", versionString)
os.Exit(1)
}
supported, _ := semver.NewVersion(FLEET_SUPPORTED_VERSION)
if version.LessThan(*supported) {
- log.Error("fleetctl version in your path is too old. Require >= " + FLEET_SUPPORTED_VERSION)
+ logs.Error("fleetctl version in your path is too old. Require >= " + FLEET_SUPPORTED_VERSION)
os.Exit(1)
}
break
diff --git a/commands/prepare-env.go b/commands/prepare-env.go
index b892368..c931925 100644
--- a/commands/prepare-env.go
+++ b/commands/prepare-env.go
@@ -2,18 +2,19 @@ package commands
import (
"github.com/blablacar/ggn/work"
+ "github.com/n0rad/go-erlog/logs"
"github.com/spf13/cobra"
)
func prepareEnvCommands(env *work.Env) *cobra.Command {
envCmd := &cobra.Command{
- Use: env.GetName(),
- Short: "Run command for " + env.GetName(),
+ Use: env.GetDirName(),
+ Short: "Run command for " + env.GetDirName(),
}
checkCmd := &cobra.Command{
Use: "check",
- Short: "Check of " + env.GetName(),
+ Short: "Check of " + env.GetDirName(),
Run: func(cmd *cobra.Command, args []string) {
env.Check()
},
@@ -21,7 +22,7 @@ func prepareEnvCommands(env *work.Env) *cobra.Command {
fleetctlCmd := &cobra.Command{
Use: "fleetctl",
- Short: "Run fleetctl command on " + env.GetName(),
+ Short: "Run fleetctl command on " + env.GetDirName(),
Run: func(cmd *cobra.Command, args []string) {
env.Fleetctl(args)
},
@@ -29,24 +30,60 @@ func prepareEnvCommands(env *work.Env) *cobra.Command {
listUnitsCmd := &cobra.Command{
Use: "list-units",
- Short: "Run list-units command on " + env.GetName(),
+ Short: "Run list-units command on " + env.GetDirName(),
Run: func(cmd *cobra.Command, args []string) {
env.FleetctlListUnits()
},
}
+ listMachinesCmd := &cobra.Command{
+ Use: "list-machines",
+ Short: "Run list-machines command on " + env.GetDirName(),
+ Run: func(cmd *cobra.Command, args []string) {
+ env.FleetctlListMachines()
+ },
+ }
+
generateCmd := &cobra.Command{
Use: "generate",
- Short: "Generate units for " + env.GetName(),
+ Short: "Generate units for " + env.GetDirName(),
Run: func(cmd *cobra.Command, args []string) {
env.Generate()
},
}
- envCmd.AddCommand(generateCmd, fleetctlCmd, checkCmd, listUnitsCmd)
+ envCmd.AddCommand(generateCmd, fleetctlCmd, checkCmd, listUnitsCmd, listMachinesCmd)
+ unitNames := make(map[string]struct{})
+ conflictUnits := make(map[string]struct{})
for _, serviceName := range env.ListServices() {
service := env.LoadService(serviceName)
envCmd.AddCommand(prepareServiceCommands(service))
+
+ for _, unitName := range service.ListUnits() {
+ if _, ok := unitNames[unitName]; ok {
+ conflictUnits[unitName] = struct{}{}
+ }
+ unitNames[unitName] = struct{}{}
+ }
+ }
+
+ for _, serviceName := range env.ListServices() {
+ service := env.LoadService(serviceName)
+ for _, unitName := range service.ListUnits() {
+ unit := service.LoadUnit(unitName)
+ if _, ok := conflictUnits[unitName]; ok {
+ envCmd.AddCommand(&cobra.Command{
+ Use: unit.Name,
+ Short: getShortDescription(unit, "Run command for"),
+ Run: func(cmd *cobra.Command, args []string) {
+ logs.WithField("unit", unitName).Fatal("unit name in conflict. please specify service")
+ },
+ })
+ } else {
+ envCmd.AddCommand(prepareUnitCommands(unit))
+ }
+
+ }
}
return envCmd
diff --git a/commands/prepare-service.go b/commands/prepare-service.go
index c3aa661..4ae781f 100644
--- a/commands/prepare-service.go
+++ b/commands/prepare-service.go
@@ -1,43 +1,47 @@
package commands
import (
- "github.com/Sirupsen/logrus"
- "github.com/blablacar/ggn/builder"
- "github.com/blablacar/ggn/work/env"
- "github.com/spf13/cobra"
"os"
"strings"
"time"
+
+ "github.com/blablacar/ggn/work"
+ "github.com/n0rad/go-erlog/logs"
+ "github.com/spf13/cobra"
)
-func prepareServiceCommands(service *env.Service) *cobra.Command {
+func prepareServiceCommands(service *work.Service) *cobra.Command {
var ttl string
serviceCmd := &cobra.Command{
Use: service.Name,
- Short: "run command for " + service.Name + " on env " + service.GetEnv().GetName(),
+ Short: "run command for " + service.Name + " on env " + service.GetEnv().GetDirName(),
}
generateCmd := &cobra.Command{
Use: "generate",
- Short: "generate units for " + service.Name + " on env " + service.GetEnv().GetName(),
+ Short: "generate units for " + service.Name + " on env " + service.GetEnv().GetDirName(),
Long: `generate units using remote resolved or local pod/aci manifests`,
Run: func(cmd *cobra.Command, args []string) {
- service.Generate()
+ if err := service.Generate(); err != nil {
+ logs.WithE(err).Fatal("Generate failed")
+ }
},
}
checkCmd := &cobra.Command{
Use: "check [manifest...]",
- Short: "Check units for " + service.Name + " on env " + service.GetEnv().GetName(),
+ Short: "Check units for " + service.Name + " on env " + service.GetEnv().GetDirName(),
Run: func(cmd *cobra.Command, args []string) {
- service.Check()
+ if err := service.Check(); err != nil {
+ logs.WithE(err).Fatal("Check failed")
+ }
},
}
diffCmd := &cobra.Command{
Use: "diff [manifest...]",
- Short: "diff units for " + service.Name + " on env " + service.GetEnv().GetName(),
+ Short: "diff units for " + service.Name + " on env " + service.GetEnv().GetDirName(),
Run: func(cmd *cobra.Command, args []string) {
service.Diff()
},
@@ -45,18 +49,18 @@ func prepareServiceCommands(service *env.Service) *cobra.Command {
lockCmd := &cobra.Command{
Use: "lock [message...]",
- Short: "lock " + service.Name + " on env " + service.GetEnv().GetName(),
+ Short: "lock " + service.Name + " on env " + service.GetEnv().GetDirName(),
Long: `Add a lock to the service in etcd to prevent somebody else to do modification actions on this service/units.` +
`lock is ignored if set by the current user`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) == 0 {
- logrus.Fatal("Please add a message to describe lock")
+ logs.Fatal("Please add a message to describe lock")
}
message := strings.Join(args, " ")
ttl, err := time.ParseDuration(ttl)
if err != nil {
- logrus.WithError(err).Fatal("Wrong value for ttl")
+ logs.WithError(err).Fatal("Wrong value for ttl")
}
service.Lock("service/lock", ttl, message)
@@ -65,7 +69,7 @@ func prepareServiceCommands(service *env.Service) *cobra.Command {
unlockCmd := &cobra.Command{
Use: "unlock",
- Short: "unlock " + service.Name + " on env " + service.GetEnv().GetName(),
+ Short: "unlock " + service.Name + " on env " + service.GetEnv().GetDirName(),
Run: func(cmd *cobra.Command, args []string) {
service.Unlock("service/unlock")
},
@@ -73,7 +77,7 @@ func prepareServiceCommands(service *env.Service) *cobra.Command {
listCmd := &cobra.Command{
Use: "list-units",
- Short: "list-units on " + service.Name + " on env " + service.GetEnv().GetName(),
+ Short: "list-units on " + service.Name + " on env " + service.GetEnv().GetDirName(),
Run: func(cmd *cobra.Command, args []string) {
service.FleetListUnits("service/unlock")
},
@@ -81,7 +85,7 @@ func prepareServiceCommands(service *env.Service) *cobra.Command {
updateCmd := &cobra.Command{
Use: "update",
- Short: "update " + service.Name + " on env " + service.GetEnv().GetName(),
+ Short: "update " + service.Name + " on env " + service.GetEnv().GetDirName(),
Run: func(cmd *cobra.Command, args []string) {
err := service.Update()
if err != nil {
@@ -90,22 +94,14 @@ func prepareServiceCommands(service *env.Service) *cobra.Command {
},
}
+ serviceCmd.PersistentFlags().StringVarP(&work.BuildFlags.ManifestAttributes, "manifest-attributes", "A", "{}", "Attributes to template the service manifest with.")
+
lockCmd.Flags().StringVarP(&ttl, "duration", "t", "1h", "lock duration")
- updateCmd.Flags().BoolVarP(&builder.BuildFlags.All, "all", "a", false, "process all units, even up to date")
- updateCmd.Flags().BoolVarP(&builder.BuildFlags.Yes, "yes", "y", false, "process units without asking")
+ updateCmd.Flags().BoolVarP(&work.BuildFlags.All, "all", "a", false, "process all units, even up to date")
+ updateCmd.Flags().BoolVarP(&work.BuildFlags.Yes, "yes", "y", false, "process units without asking")
serviceCmd.AddCommand(generateCmd, lockCmd, unlockCmd, updateCmd, checkCmd, diffCmd, listCmd)
- // var units []string
- // hystrix.Go("list_units", func() error {
- // units = service.ListUnits()
- // return nil
- // }, func(err error) error {
- // entry := service.GetLog()
- // entry.WithError(err).Warn("Cannot list units. Some command may be missing")
- // return nil
- // })
-
for _, unitName := range service.ListUnits() {
unit := service.LoadUnit(unitName)
serviceCmd.AddCommand(prepareUnitCommands(unit))
diff --git a/commands/prepare-unit.go b/commands/prepare-unit.go
index bd9be92..589e9ee 100644
--- a/commands/prepare-unit.go
+++ b/commands/prepare-unit.go
@@ -1,12 +1,12 @@
package commands
import (
- "github.com/blablacar/ggn/builder"
- "github.com/blablacar/ggn/work/env/service"
+ "github.com/blablacar/ggn/work"
+ "github.com/n0rad/go-erlog/logs"
"github.com/spf13/cobra"
)
-func prepareUnitCommands(unit *service.Unit) *cobra.Command {
+func prepareUnitCommands(unit *work.Unit) *cobra.Command {
var follow bool
var lines int
@@ -110,15 +110,26 @@ func prepareUnitCommands(unit *service.Unit) *cobra.Command {
},
}
+ generateCmd := &cobra.Command{
+ Use: "generate",
+ Short: getShortDescription(unit, "generate"),
+ Run: func(cmd *cobra.Command, args []string) {
+ if err := unit.Service.Generate(); err != nil {
+ logs.WithE(err).Error("Generate failed")
+ }
+ },
+ }
+
+ unitCmd.PersistentFlags().StringVarP(&work.BuildFlags.ManifestAttributes, "manifest-attributes", "A", "{}", "Attributes to template the service manifest with.")
journalCmd.Flags().BoolVarP(&follow, "follow", "f", false, "follow")
journalCmd.Flags().IntVarP(&lines, "lines", "l", 10, "lines")
- updateCmd.Flags().BoolVarP(&builder.BuildFlags.Force, "force", "f", false, "force update even if up to date")
+ updateCmd.Flags().BoolVarP(&work.BuildFlags.Force, "force", "f", false, "force update even if up to date")
unitCmd.AddCommand(startCmd, stopCmd, updateCmd, destroyCmd, statusCmd, unloadCmd,
- diffCmd, checkCmd, journalCmd, loadCmd, sshCmd, restartCmd)
+ diffCmd, checkCmd, journalCmd, loadCmd, sshCmd, restartCmd, generateCmd)
return unitCmd
}
-func getShortDescription(unit *service.Unit, action string) string {
- return action + " '" + unit.Name + "' from '" + unit.Service.GetName() + "' on env '" + unit.Service.GetEnv().GetName() + "'"
+func getShortDescription(unit *work.Unit, action string) string {
+ return action + " '" + unit.Name + "' from '" + unit.Service.GetName() + "' on env '" + unit.Service.GetEnv().GetDirName() + "'"
}
diff --git a/commands/prepare.go b/commands/prepare.go
index cc15696..ddfaf65 100644
--- a/commands/prepare.go
+++ b/commands/prepare.go
@@ -1,31 +1,34 @@
package commands
import (
- "github.com/Sirupsen/logrus"
"github.com/blablacar/ggn/ggn"
"github.com/blablacar/ggn/work"
+ "github.com/n0rad/go-erlog/logs"
"github.com/spf13/cobra"
)
-var generateCmd = &cobra.Command{
- Use: "generate",
- Short: "generate units for all envs",
- Run: func(cmd *cobra.Command, args []string) {
- work := work.NewWork(ggn.Home.Config.WorkPath)
- for _, envName := range work.ListEnvs() {
- env := work.LoadEnv(envName)
- env.Generate()
- }
- },
-}
-
-func loadEnvCommands(rootCmd *cobra.Command) {
- logrus.WithField("path", ggn.Home.Config.WorkPath).Debug("Loading envs")
+func loadEnvCommandsReturnNewRoot(osArgs []string, rootCmd *cobra.Command) *cobra.Command {
+ logs.WithField("path", ggn.Home.Config.WorkPath).Debug("Loading envs")
work := work.NewWork(ggn.Home.Config.WorkPath)
+ newRootCmd := &cobra.Command{
+ Use: "ggn",
+ }
+
for _, envNames := range work.ListEnvs() {
env := work.LoadEnv(envNames)
- rootCmd.AddCommand(prepareEnvCommands(env))
- }
+ envCmd := &cobra.Command{
+ Use: env.GetDirName(),
+ Short: "Run command for " + env.GetDirName(),
+ Run: func(cmd *cobra.Command, args []string) {
+
+ newRootCmd.AddCommand(prepareEnvCommands(env))
+ newRootCmd.SetArgs(osArgs[1:])
+ newRootCmd.Execute()
+ },
+ }
+ rootCmd.AddCommand(envCmd)
+ }
+ return newRootCmd
}
diff --git a/commands/version.go b/commands/version.go
index fdad4a4..b3fa329 100644
--- a/commands/version.go
+++ b/commands/version.go
@@ -2,9 +2,10 @@ package commands
import (
"fmt"
+ "os"
+
"github.com/blablacar/ggn/ggn"
"github.com/spf13/cobra"
- "os"
)
var versionCmd = &cobra.Command{
@@ -13,7 +14,7 @@ var versionCmd = &cobra.Command{
Long: `Print the version number of cnt`,
Run: func(cmd *cobra.Command, args []string) {
fmt.Print("ggn\n\n")
- fmt.Printf("version : %s\n", ggn.Version)
+ fmt.Printf("version : %s\n", ggn.GgnVersion)
if ggn.BuildDate != "" {
fmt.Printf("build date : %s\n", ggn.BuildDate)
}
diff --git a/compile/version_generate.go b/compile/version_generate.go
deleted file mode 100644
index d65b1cd..0000000
--- a/compile/version_generate.go
+++ /dev/null
@@ -1,33 +0,0 @@
-package main
-
-import (
- "github.com/blablacar/cnt/utils"
- "io/ioutil"
- "os"
- "strings"
- "time"
-)
-
-const version_template = `package ggn
-
-func init() {
- Version = "X.X.X"
- CommitHash = "HASH"
- BuildDate = "DATE"
-}`
-
-func main() {
- hash := utils.GitHash()
-
- version := os.Getenv("VERSION")
- if version == "" {
- panic("You must set ggn version into VERSION env to generate. ex: # VERSION=1.0 go generate")
- }
- buildDate := time.Now()
-
- res := strings.Replace(version_template, "X.X.X", string(version), 1)
- res = strings.Replace(res, "HASH", hash, 1)
- res = strings.Replace(res, "DATE", buildDate.Format(time.RFC3339), 1)
-
- ioutil.WriteFile("ggn/version.go", []byte(res), 0644)
-}
diff --git a/examples/common-attributes/test/includeFile.yml b/examples/common-attributes/test/includeFile.yml
new file mode 100644
index 0000000..3614c07
--- /dev/null
+++ b/examples/common-attributes/test/includeFile.yml
@@ -0,0 +1,2 @@
+default:
+ includeGlobal: includeGlobalValue
diff --git a/examples/config.yml b/examples/config.yml
new file mode 100644
index 0000000..ede149d
--- /dev/null
+++ b/examples/config.yml
@@ -0,0 +1 @@
+workPath: ../examples
diff --git a/examples/env/prod-dc1/attributes/test.yml b/examples/env/prod-dc1/attributes/test.yml
new file mode 100644
index 0000000..c07097f
--- /dev/null
+++ b/examples/env/prod-dc1/attributes/test.yml
@@ -0,0 +1,6 @@
+include:
+ - test.includeFile
+ - env:prod-dc2:test.includeFile
+
+default:
+ attribute: attributeValue
diff --git a/examples/env/prod-dc1/services/test-service/attributes/test.yml b/examples/env/prod-dc1/services/test-service/attributes/test.yml
new file mode 100644
index 0000000..d15f8c6
--- /dev/null
+++ b/examples/env/prod-dc1/services/test-service/attributes/test.yml
@@ -0,0 +1,4 @@
+include:
+ - test.includeFile
+ - env:prod-dc2:test.includeFile
+ - env::test.includeFile
diff --git a/ggn/context.go b/ggn/context.go
index ed7bbd1..03f0c16 100644
--- a/ggn/context.go
+++ b/ggn/context.go
@@ -5,13 +5,18 @@ import (
)
var Home HomeStruct
-var CommitHash = ""
-var Version = "DEV"
-var BuildDate = ""
-var PathSkip = 0
+
+var CommitHash string
+var GgnVersion string
+var BuildDate string
func GetUserAndHost() string {
- user := os.Getenv("USER")
+ var user string
+ if Home.Config.EnvVarUser != "" {
+ user = os.Getenv(Home.Config.EnvVarUser)
+ } else {
+ user = os.Getenv("USER")
+ }
if Home.Config.User != "" {
user = Home.Config.User
}
diff --git a/ggn/home.go b/ggn/home.go
index aa31fcc..0b17802 100644
--- a/ggn/home.go
+++ b/ggn/home.go
@@ -1,28 +1,42 @@
package ggn
import (
- "github.com/Sirupsen/logrus"
- "github.com/blablacar/cnt/utils"
- "github.com/ghodss/yaml"
"io/ioutil"
"os"
"time"
+
+ "github.com/ghodss/yaml"
+ homedir "github.com/mitchellh/go-homedir"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/logs"
)
type Config struct {
- WorkPath string `yaml:"workPath,omitempty"`
- User string `yaml:"user,omitempty"`
+ WorkPath string `yaml:"workPath,omitempty"`
+ User string `yaml:"user,omitempty"`
+ EnvVarUser string `yaml:"envVarUser,omitempty"`
+
+ OverrideConfig map[string]struct {
+ Fleet struct {
+ Endpoint string `yaml:"endpoint,omitempty"`
+ Username string `yaml:"username,omitempty"`
+ Password string `yaml:"password,omitempty"`
+ Strict_host_key_checking *bool `yaml:"strict_host_key_checking,omitempty"`
+ Sudo *bool `yaml:"sudo,omitempty"`
+ Driver string `yaml:"driver,omitempty"`
+ } `yaml:"fleet,omitempty"`
+ } `yaml:"overrideConfig,omitempty"`
}
type HomeStruct struct {
- log logrus.Entry
+ fields data.Fields
Path string
Config Config
}
func NewHome(path string) HomeStruct {
- log := logrus.WithField("path", path)
- log.Debug("loading home")
+ fields := data.WithField("path", path)
+ logs.WithFields(fields).Debug("loading home")
var config Config
if source, err := ioutil.ReadFile(path + "/config.yml"); err == nil {
@@ -31,10 +45,10 @@ func NewHome(path string) HomeStruct {
panic(err)
}
} else {
- log.WithField("file", "config.yml").Fatal("Cannot read configuration file")
+ logs.WithF(fields).WithField("file", "config.yml").Fatal("Cannot read configuration file")
}
return HomeStruct{
- log: *log,
+ fields: fields,
Path: path,
Config: config,
}
@@ -43,7 +57,7 @@ func NewHome(path string) HomeStruct {
const PATH_LIST_MACHINES_CACHE = "/list-machines.cache"
func (h *HomeStruct) LoadMachinesCacheWithDate(env string) (string, time.Time) {
- h.log.WithField("env", env).Debug("Loading list machines cache")
+ logs.WithFields(h.fields).WithField("env", env).Debug("Loading list machines cache")
info, err := os.Stat(h.Path + PATH_LIST_MACHINES_CACHE + "." + env)
if err != nil {
return "", time.Now()
@@ -56,12 +70,16 @@ func (h *HomeStruct) LoadMachinesCacheWithDate(env string) (string, time.Time) {
}
func (h *HomeStruct) SaveMachinesCache(env string, data string) {
- h.log.WithField("env", env).Debug("save machines cache")
+ logs.WithF(h.fields).WithField("env", env).Debug("save machines cache")
if err := ioutil.WriteFile(h.Path+PATH_LIST_MACHINES_CACHE+"."+env, []byte(data), 0644); err != nil {
- logrus.WithError(err).Warn("Cannot persist list-machines cache")
+ logs.WithError(err).Warn("Cannot persist list-machines cache")
}
}
func DefaultHomeRoot() string {
- return utils.UserHomeOrFatal() + "/.config"
+ home, err := homedir.Dir()
+ if err != nil {
+ logs.WithError(err).Fatal("Failed to find user home folder")
+ }
+ return home + "/.config"
}
diff --git a/gomake b/gomake
new file mode 100755
index 0000000..8e1cdcb
--- /dev/null
+++ b/gomake
@@ -0,0 +1,312 @@
+#!/usr/bin/env bash
+set -efo pipefail # TODO u
+
+ : ${target_name:=dist}
+ : ${work_path:=.}
+ : ${app:=$(basename $(cd "${work_path}"; pwd))}
+ : ${repo:=$(git config --get remote.origin.url | sed -n 's/.*@\(.*\)\.git/\1/p' | tr : /)}
+ : ${osarchi:="$(go env GOHOSTOS)-$(go env GOHOSTARCH)"}
+ : ${release_osarchi:="linux-amd64,darwin-amd64,windows-amd64"}
+ : ${version:=0}
+ : ${token:=}
+ : ${upx:=false}
+ : ${build_packages:=}
+ : ${build_ldflags:="-s -w -X main.BuildTime=`date -u '+%Y-%m-%d_%H:%M:%S_UTC'` -X main.BuildVersion=\${version} -X main.BuildCommit=`git rev-parse --short HEAD`"}
+ : ${errcheck:=true}
+
+read -d '' helper < /dev/null | grep -v ${target_name}/ | grep -v vendor/ | grep -v .git`
+err_count=0
+
+#color_red() {
+# echo -n -e "\e[0;31m"
+#}
+#
+#color_reset() {
+# echo -n -e "\e[0m"
+#}
+
+echo_red() {
+ echo -n -e "\e[0;31m"
+ echo "${@}"
+ echo -n -e "\e[0m"
+}
+
+echo_purple() {
+ echo -e "\e[0;35m${@}\e[0m"
+}
+
+echo_green() {
+ echo -e "\e[0;32m${@}\e[0m"
+}
+
+echo_yellow() {
+ echo -e "\e[0;93m${@}\e[0m"
+}
+
+err_count() {
+ c=$(echo -e "${1}" | wc -l)
+ ((err_count+=${c}))
+}
+
+gomake_update() {
+ echo_green "Downloading gomake"
+ curl --fail --silent --show-error --location --remote-time --compressed \
+ -o ${work_path}/gomake.tmp \
+ https://raw.githubusercontent.com/n0rad/gomake/master/gomake
+ chmod +x ${work_path}/gomake.tmp
+ mv ${work_path}/gomake.tmp ${work_path}/$0
+}
+
+clean() {
+ echo_green "Cleaning"
+ rm -Rf ${work_path}/${target_name}
+}
+
+build() {
+ start=$(date +%s)
+
+ [ -z "$1" ] || osarchi="$1"
+ [ ! -z ${version+x} ] || version="0"
+
+ mkdir -p ${work_path}/${target_name}/bindata
+
+ if [ `type -t pre-build`"" == 'function' ]; then
+ pre-build
+ fi
+
+ echo_green "Goimports"
+ command -v goimports > /dev/null || go get -u golang.org/x/tools/cmd/goimports
+ goimports -w ${go_files}
+
+ echo_green "Format"
+ gofmt -w -s ${go_files}
+
+ echo_green "Fix"
+ go tool fix ${go_files}
+
+ if [ "$(ls -A ${work_path}/${target_name}/bindata)" ]; then
+ command -v go-bindata > /dev/null || go get -u github.com/jteeuwen/go-bindata/...
+ go-bindata -nomemcopy -pkg dist -prefix dist/bindata -o ${work_path}/${target_name}/bindata.go ${work_path}/${target_name}/bindata/...
+ fi
+
+ ldflags=$(eval echo ${build_ldflags})
+ IFS=',' read -ra current <<< "$osarchi"
+ for e in "${current[@]}"; do
+ echo_green "Building $e"
+
+ binaryPath=$(targetBinaryPath ${e})
+ $(cd ${work_path} && GOOS="${e%-*}" GOARCH="${e#*-}" go build -ldflags "${ldflags}" -o ${target_name}/${binaryPath} ${build_packages})
+
+ if [ "$upx" = true ]; then
+ if [ "${e%-*}" != "darwin" ]; then
+ echo_green "Compressing ${e}" # TODO compress on release only
+ command -v upx > /dev/null || (echo "upx is required to compress" && exit 1)
+ upx ${work_path}/${target_name}/${binaryPath} &> /dev/null
+ fi
+ fi
+
+ if [ "${e%-*}" == "windows" ]; then
+ mv ${work_path}/${target_name}/${binaryPath} ${work_path}/${target_name}/${binaryPath}.exe
+ fi
+ done
+ echo_purple "Build duration : $((`date +%s`-${start}))s"
+}
+
+targetBinaryPath() {
+ if [ "${1%-*}" == "windows" ]; then
+ echo ${app}-v${version}-${1}/${app}.exe
+ else
+ echo ${app}-v${version}-${1}/${app}
+ fi
+}
+
+install() {
+ echo_green "Installing"
+ cp ${work_path}/${target_name}/$(targetBinaryPath $(go env GOHOSTOS)-$(go env GOHOSTARCH)) ${GOPATH}/bin/
+}
+
+quality() {
+ start=$(date +%s)
+ cd ${work_path}
+
+ if [ "${errcheck}" = true ]; then
+ echo_green "Err check"
+ command -v errcheck > /dev/null || go get -u github.com/kisielk/errcheck
+ res=$(set +o pipefail; errcheck ./... | grep -v 'vendor/' | grep -v 'Close(' | grep -v '_test.go')
+ err_count "${res}"
+ echo_red "${res}"
+ fi
+
+ echo_green "Lint"
+ command -v golint > /dev/null || go get -u github.com/golang/lint/golint
+ for i in ${go_files}; do
+ golint ${i} | grep -v 'should have comment ' || true
+ done
+
+ echo_green "Vet"
+ go tool vet ${go_files} || true
+
+ echo_green "Misspell"
+ command -v misspell > /dev/null || go get -u github.com/client9/misspell/cmd/misspell
+ misspell -source=text ${go_files}
+
+ echo_green "Ineffassign"
+ command -v ineffassign > /dev/null || go get -u github.com/gordonklaus/ineffassign
+ for i in ${go_files}; do
+ ineffassign -n ${i} || true
+ done
+
+ echo_green "Gocyclo"
+ command -v gocyclo > /dev/null || go get -u github.com/fzipp/gocyclo
+ gocyclo -over 15 ${go_files} || true
+
+ cd -
+ echo_purple "Quality duration : $((`date +%s`-${start}))s"
+}
+
+require_clean_work_tree() {
+ # Update the index
+ git update-index -q --ignore-submodules --refresh
+ err=0
+
+ # Disallow unstaged changes in the working tree
+ if ! git diff-files --quiet --ignore-submodules --
+ then
+ echo_red "cannot release: you have unstaged changes."
+ git diff-files --name-status -r --ignore-submodules -- >&2
+ err=1
+ fi
+
+ # Disallow uncommitted changes in the index
+ if ! git diff-index --cached --quiet HEAD --ignore-submodules --
+ then
+ echo_red "cannot release: your index contains uncommitted changes."
+ git diff-index --cached --name-status -r --ignore-submodules HEAD -- >&2
+ err=1
+ fi
+
+ if [ ${err} = 1 ]
+ then
+ echo_red "Please commit or stash them."
+ exit 1
+ fi
+}
+
+release() {
+ start=$(date +%s)
+ if [ "${repo%%/*}" != "github.com" ]; then
+ echo "Push to '${repo%%/*}' not implemented"
+ exit 1
+ fi
+ if [ -z "${version}" ] || [ "${version}" == "0" ]; then
+ echo_red "please set version to release"
+ exit 1
+ fi
+ if [ -z "${token}" ]; then
+ echo_red "please set token to release"
+ exit 1
+ fi
+
+ github_repo=${repo#*/}
+
+ clean
+ build ${release_osarchi}
+ test
+ quality
+ require_clean_work_tree
+
+ echo_green "Compress release"
+ cd ${work_path}/${target_name}
+ for i in $(find . -type d -name "*-v${version}-*-*" | sed 's|./||') ; do
+ tar czf ${i}.tar.gz ${i}
+ done
+ cd -
+
+ git tag v${version} -a -m "Version $version"
+ git push origin v${version}
+
+ sleep 5
+
+ posturl=$(curl --data "{\"tag_name\": \"v${version}\",\"target_commitish\": \"master\",\"name\": \"v${version}\",\"body\": \"Release of version ${version}\",\"draft\": false,\"prerelease\": false}" https://api.github.com/repos/${github_repo}/releases?access_token=${token} | grep "\"upload_url\"" | sed -ne 's/.*\(http[^"]*\).*/\1/p')
+
+ for i in $(find ${work_path}/${target_name} -type f -name "*.tar.gz") ; do
+ fullpath=$(ls ${i})
+ filename=${fullpath##*/}
+ curl -i -X POST -H "Content-Type: application/x-gzip" --data-binary "@${fullpath}" "${posturl%\{?name,label\}}?name=${filename}&label=${filename}&access_token=${token}"
+ done
+ echo_purple "Release duration : $((`date +%s`-${start}))s"
+}
+
+test() {
+ start=$(date +%s)
+ echo_green "Testing"
+ go test -cover $(go list ${work_path}/... | grep -v vendor/)
+
+ if [ `type -t extra-test`"" == 'function' ]; then
+ extra-test
+ fi
+
+ echo_purple "Test duration : $((`date +%s`-${start}))s"
+}
+
+#########################################
+#########################################
+
+global_start=$(date +%s)
+
+commands=()
+while [ $# -gt 0 ]; do
+ case "${1}" in
+ -h|--help) echo "${helper}"; exit 0;;
+ --version=*)version="${1#*=}"; shift;;
+ --token=*) token="${1#*=}"; shift;;
+ --work-path=*) work_path="${1#*=}"; shift;;
+ -v) version="${2}"; [ $# -gt 1 ] || (echo_red "Missing argument for ${1}"; exit 1); shift 2;;
+ -t) token="${2}"; [ $# -gt 1 ] || (echo_red "Missing argument for ${1}"; exit 1); shift 2;;
+ -W) work_path="${2}"; [ $# -gt 1 ] || (echo_red "Missing argument for ${1}"; exit 1); shift 2;;
+ --) shift; commands+=("${@}"); break;;
+ *) commands+=("${1}"); shift;;
+ esac
+done
+
+if [ -f ${work_path}/gomake.cfg ]; then
+ . ${work_path}/gomake.cfg
+fi
+
+if [ ${#commands[@]} -eq 0 ]; then
+ commands=(clean build test quality)
+fi
+command_count=0
+for i in "${commands[@]}"; do
+ case ${i} in
+ test|build|release|clean|quality|install|gomake_update) ${i}; ((++command_count));;
+ *) echo_red "Unknown command '${i}'"; echo ${helper}; exit 1;;
+ esac
+done
+
+if [ ${command_count} -gt 1 ]; then
+ echo_purple "Global duration : $((`date +%s`-global_start))s"
+fi
+
+exit 0
diff --git a/gomake.cfg b/gomake.cfg
new file mode 100644
index 0000000..0f58eb1
--- /dev/null
+++ b/gomake.cfg
@@ -0,0 +1 @@
+upx=true
diff --git a/main.go b/main.go
index 5b322ce..865c25e 100644
--- a/main.go
+++ b/main.go
@@ -1,13 +1,18 @@
package main
import (
- "github.com/Sirupsen/logrus"
- "github.com/blablacar/cnt/log"
+ "math/rand"
+ "time"
+
"github.com/blablacar/ggn/commands"
+ _ "github.com/n0rad/go-erlog/register"
)
-//go:generate go run compile/version_generate.go
+var BuildCommit string
+var BuildVersion string
+var BuildTime string
+
func main() {
- logrus.SetFormatter(&log.BlaFormatter{})
- commands.Execute()
+ rand.Seed(time.Now().UTC().UnixNano())
+ commands.Execute(BuildCommit, BuildVersion, BuildTime)
}
diff --git a/release.sh b/release.sh
deleted file mode 100755
index 992e3f2..0000000
--- a/release.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/bash
-set -x
-set -e
-dir=$( dirname $0 )
-
-if [ $# != 2 ]; then
- echo "Usage: release.sh VERSION GITHUB_KEY"
- exit 1
-fi
-
-version=$1
-access_token=$2
-
-require_clean_work_tree () {
- # Update the index
- git update-index -q --ignore-submodules --refresh
- err=0
-
- # Disallow unstaged changes in the working tree
- if ! git diff-files --quiet --ignore-submodules --
- then
- echo >&2 "cannot $1: you have unstaged changes."
- git diff-files --name-status -r --ignore-submodules -- >&2
- err=1
- fi
-
- # Disallow uncommitted changes in the index
- if ! git diff-index --cached --quiet HEAD --ignore-submodules --
- then
- echo >&2 "cannot $1: your index contains uncommitted changes."
- git diff-index --cached --name-status -r --ignore-submodules HEAD -- >&2
- err=1
- fi
-
- if [ $err = 1 ]
- then
- echo >&2 "Please commit or stash them."
- exit 1
- fi
-}
-
-VERSION=$version go generate
-${dir}/build.sh
-require_clean_work_tree
-
-
-for i in ${dir}/dist/*-amd64/ ; do
- if [ -d "$i" ]; then
- cd $i
- platform=${PWD##*/}
- tar cvzf ggn-$platform-$version.tar.gz ggn
- cd -
- fi
-done
-
-git tag $version -a -m "Version $version"
-git push --tags
-
-sleep 5
-
-posturl=$(curl --data "{\"tag_name\": \"$1\",\"target_commitish\": \"master\",\"name\": \"$1\",\"body\": \"Release of version $1\",\"draft\": false,\"prerelease\": true}" https://api.github.com/repos/blablacar/ggn/releases?access_token=${access_token} | grep "\"upload_url\"" | sed -ne 's/.*\(http[^"]*\).*/\1/p')
-
-for i in ${dir}/dist/*-amd64/ ; do
- if [ -d "$i" ]; then
- fullpath=$(ls ${i}/*.tar.gz)
- filename=${fullpath##*/}
- curl -i -X POST -H "Content-Type: application/x-gzip" --data-binary "@${fullpath}" "${posturl%\{?name,label\}}?name=${filename}&label=${filename}&access_token=${access_token}"
- fi
-done
diff --git a/spec/env.go b/spec/env.go
deleted file mode 100644
index 119d792..0000000
--- a/spec/env.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package spec
-
-import (
- "github.com/Sirupsen/logrus"
- "github.com/coreos/etcd/client"
-)
-
-const PATH_ATTRIBUTES = "/attributes"
-
-const ACTIVE_ACTIVE = "active"
-const SUB_RUNNING = "running"
-
-type UnitStatus struct {
- Unit string
- Machine string
- Active string
- Sub string
-}
-
-type HookInfo struct {
- Command string
- Service Service
- Unit Unit
- Action string
- Attributes string
-}
-
-type Env interface {
- GetName() string
- GetLog() logrus.Entry
- GetAttributes() map[string]interface{}
- ListMachineNames() ([]string, error)
- RunFleetCmdGetOutput(args ...string) (string, string, error)
- RunFleetCmd(args ...string) error
- EtcdClient() client.KeysAPI
- RunEarlyHook(info HookInfo)
- RunLateHook(info HookInfo)
- ListUnits() map[string]UnitStatus
-}
diff --git a/spec/service.go b/spec/service.go
deleted file mode 100644
index 6b25ed1..0000000
--- a/spec/service.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package spec
-
-import (
- "github.com/Sirupsen/logrus"
- cntspec "github.com/blablacar/cnt/spec"
- "time"
-)
-
-const PATH_SERVICE_MANIFEST = "/service-manifest.yml"
-
-//type NodeManifest struct {
-// Hostname string `yaml:"hostname"`
-// Ip string `yaml:"ip"`
-// Fleet []string `yaml:"fleet"`
-//}
-
-const NODE_HOSTNAME = "hostname"
-
-type ServiceManifest struct {
- ConcurrentUpdater int `yaml:"concurrentUpdater"`
- Containers []cntspec.ACFullname `yaml:"containers"`
- ExecStartPre []string `yaml:"execStartPre"`
- ExecStart []string `yaml:"execStart"`
- Nodes interface{} `yaml:"nodes"`
-}
-
-type Service interface {
- HasTimer() bool
- PrepareAciList() string
- NodeAttributes(hostname string) map[string]interface{}
- GetAttributes() map[string]interface{}
- Generate()
- Unlock(command string)
- Lock(command string, ttl time.Duration, message string)
- GetName() string
- GetEnv() Env
- GetLog() logrus.Entry
- GetFleetUnitContent(unit string) (string, error)
-}
diff --git a/spec/unit.go b/spec/unit.go
deleted file mode 100644
index 7ff1bf0..0000000
--- a/spec/unit.go
+++ /dev/null
@@ -1,27 +0,0 @@
-package spec
-
-const PATH_UNIT_SERVICE_TEMPLATE = "/unit.tmpl"
-const PATH_UNIT_TIMER_TEMPLATE = "/unit.timer.tmpl"
-
-type UnitType int
-
-const (
- TYPE_SERVICE UnitType = iota
- TYPE_TIMER
-)
-
-func (u UnitType) String() string {
- switch u {
- case TYPE_SERVICE:
- return ".service"
- case TYPE_TIMER:
- return ".timer"
- }
- return ""
-}
-
-type Unit interface {
- GetType() UnitType
- GetName() string
- GetService() Service
-}
diff --git a/utils/attribute-files.go b/utils/attribute-files.go
index a478f25..40fd7d7 100644
--- a/utils/attribute-files.go
+++ b/utils/attribute-files.go
@@ -1,9 +1,9 @@
package utils
import (
- "github.com/blablacar/attributes-merger/attributes"
- "github.com/google/cadvisor/utils"
"strings"
+
+ "github.com/google/cadvisor/utils"
)
func AttributeFiles(path string) ([]string, error) {
@@ -12,7 +12,7 @@ func AttributeFiles(path string) ([]string, error) {
return res, nil
}
- in := attributes.NewInputs(path)
+ in := NewInputs(path)
// initialize input files list
err := in.ListFiles()
if err != nil {
diff --git a/Godeps/_workspace/src/github.com/blablacar/attributes-merger/attributes/inputs.go b/utils/inputs.go
similarity index 97%
rename from Godeps/_workspace/src/github.com/blablacar/attributes-merger/attributes/inputs.go
rename to utils/inputs.go
index 56212b9..4e02f23 100644
--- a/Godeps/_workspace/src/github.com/blablacar/attributes-merger/attributes/inputs.go
+++ b/utils/inputs.go
@@ -1,4 +1,4 @@
-package attributes
+package utils
import (
"io/ioutil"
diff --git a/Godeps/_workspace/src/github.com/blablacar/attributes-merger/attributes/merger.go b/utils/merger.go
similarity index 64%
rename from Godeps/_workspace/src/github.com/blablacar/attributes-merger/attributes/merger.go
rename to utils/merger.go
index 630f14b..1a23d71 100644
--- a/Godeps/_workspace/src/github.com/blablacar/attributes-merger/attributes/merger.go
+++ b/utils/merger.go
@@ -1,17 +1,18 @@
-package attributes
+package utils
import (
- "encoding/json"
"errors"
"fmt"
- "github.com/peterbourgon/mergemap"
- "gopkg.in/yaml.v2"
"io/ioutil"
- "os"
"strconv"
+
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/peterbourgon/mergemap"
+ "gopkg.in/yaml.v2"
)
-func MergeAttributesFilesForMap(omap map[string]interface{}, files []string) map[string]interface{} {
+func MergeAttributesFilesForMap(omap map[string]interface{}, files []string) (map[string]interface{}, error) {
newMap := make(map[string]interface{})
newMap["default"] = omap
@@ -19,28 +20,28 @@ func MergeAttributesFilesForMap(omap map[string]interface{}, files []string) map
// loop over attributes files
// merge override files to default files
for _, file := range files {
- var data interface{}
+ var contentData interface{}
yml, err := ioutil.ReadFile(file)
if err != nil {
- panic(err)
+ return newMap, errs.WithEF(err, data.WithField("file", file), "Failed to read file")
}
- // yaml to data
- err = yaml.Unmarshal(yml, &data)
+ // yaml to contentData
+ err = yaml.Unmarshal(yml, &contentData)
if err != nil {
- panic(err)
+ return newMap, errs.WithEF(err, data.WithField("file", file), "Failed to unmarshal file")
}
- data, err = transform(data)
+ contentData, err = transformYampToJson(contentData)
if err != nil {
- panic(err)
+ return newMap, errs.WithEF(err, data.WithField("file", file), "Failed to transform file to json")
}
- // data to map
- json := data.(map[string]interface{})
+ // contentData to map
+ json := contentData.(map[string]interface{})
omap = mergemap.Merge(newMap, json)
}
- return ProcessOverride(newMap)
+ return ProcessOverride(newMap), nil
}
-func MergeAttributesFiles(files []string) map[string]interface{} {
+func MergeAttributesFiles(files []string) (map[string]interface{}, error) {
omap := make(map[string]interface{})
return MergeAttributesFilesForMap(omap, files)
}
@@ -60,31 +61,8 @@ func ProcessOverride(omap map[string]interface{}) map[string]interface{} {
return omap
}
-func Merge(envName string, files []string) []byte { // inputDir string,
- // "out map" to store merged yamls
- omap := MergeAttributesFiles(files)
-
- envjson := os.Getenv(envName)
- if envjson != "" {
- var envattr map[string]interface{}
- err := json.Unmarshal([]byte(envjson), &envattr)
- if err != nil {
- panic(err)
- }
- omap = mergemap.Merge(omap, envattr)
- }
-
- // map to json
- out, err := json.Marshal(omap)
- if err != nil {
- panic(err)
- }
-
- return out
-}
-
-// transform YAML to JSON
-func transform(in interface{}) (_ interface{}, err error) {
+// transformYampToJson YAML to JSON
+func transformYampToJson(in interface{}) (_ interface{}, err error) {
switch in.(type) {
case map[interface{}]interface{}:
o := make(map[string]interface{})
@@ -99,7 +77,7 @@ func transform(in interface{}) (_ interface{}, err error) {
return nil, errors.New(
fmt.Sprintf("type not match: expect map key string or int get: %T", k))
}
- v, err = transform(v)
+ v, err = transformYampToJson(v)
if err != nil {
return nil, err
}
@@ -111,7 +89,7 @@ func transform(in interface{}) (_ interface{}, err error) {
len1 := len(in1)
o := make([]interface{}, len1)
for i := 0; i < len1; i++ {
- o[i], err = transform(in1[i])
+ o[i], err = transformYampToJson(in1[i])
if err != nil {
return nil, err
}
diff --git a/utils/templating.go b/utils/templating.go
deleted file mode 100644
index bdacfba..0000000
--- a/utils/templating.go
+++ /dev/null
@@ -1,110 +0,0 @@
-package utils
-
-import (
- "bufio"
- "encoding/json"
- "github.com/kelseyhightower/memkv"
- "io"
- "os"
- "path"
- "strings"
- "text/template"
- "time"
-)
-
-type Templating struct {
- template *template.Template
- name string
- content string
- functions map[string]interface{}
- vars memkv.Store
-}
-
-func NewTemplating(name, content string) *Templating {
- t := new(Templating)
- t.name = name
- t.content = cleanupOfTemplate(content)
- t.functions = newFuncMap()
- t.vars = memkv.New()
- addFuncs(t.functions, t.vars.FuncMap)
- return t
-}
-
-func cleanupOfTemplate(content string) string {
- var lines []string
- var currentLine string
- scanner := bufio.NewScanner(strings.NewReader(string(content)))
- for scanner.Scan() {
- part := strings.TrimRight(scanner.Text(), " ")
- leftTrim := strings.TrimLeft(part, " ")
- if strings.HasPrefix(leftTrim, "{{-") {
- part = "{{" + leftTrim[3:]
- }
- currentLine += part
- if strings.HasSuffix(currentLine, "-}}") {
- currentLine = currentLine[0:len(currentLine)-3] + "}}"
- } else {
- lines = append(lines, currentLine)
- currentLine = ""
- }
- }
- if currentLine != "" {
- lines = append(lines, currentLine)
- }
- return strings.Join(lines, "\n")
-}
-
-func (t *Templating) Parse() error {
- tmpl, err := template.New(t.name).Funcs(t.functions).Parse(t.content)
- t.template = tmpl
- return err
-}
-
-func (t *Templating) Execute(wr io.Writer, data interface{}) error {
- return t.template.Execute(wr, data)
-}
-
-func (t *Templating) AddFunctions(fs map[string]interface{}) {
- addFuncs(t.functions, fs)
-}
-
-func (t *Templating) AddVar(key string, value string) {
- t.vars.Set(key, value)
-}
-
-///////////////////////////////////
-
-func newFuncMap() map[string]interface{} {
- m := make(map[string]interface{})
- m["base"] = path.Base
- m["split"] = strings.Split
- m["json"] = UnmarshalJsonObject
- m["jsonArray"] = UnmarshalJsonArray
- m["dir"] = path.Dir
- m["getenv"] = os.Getenv
- m["join"] = strings.Join
- m["datetime"] = time.Now
- m["toUpper"] = strings.ToUpper
- m["toLower"] = strings.ToLower
- m["contains"] = strings.Contains
- m["replace"] = strings.Replace
- return m
-}
-
-func addFuncs(out, in map[string]interface{}) {
- for name, fn := range in {
- out[name] = fn
- }
-}
-
-func UnmarshalJsonObject(data string) (map[string]interface{}, error) {
- var ret map[string]interface{}
- err := json.Unmarshal([]byte(data), &ret)
- return ret, err
-}
-
-func UnmarshalJsonArray(data string) ([]interface{}, error) {
- var ret []interface{}
- err := json.Unmarshal([]byte(data), &ret)
- return ret, err
-}
diff --git a/Godeps/_workspace/src/github.com/appc/spec/LICENSE b/vendor/github.com/appc/spec/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/LICENSE
rename to vendor/github.com/appc/spec/LICENSE
diff --git a/vendor/github.com/appc/spec/aci/build.go b/vendor/github.com/appc/spec/aci/build.go
new file mode 100644
index 0000000..0d259a2
--- /dev/null
+++ b/vendor/github.com/appc/spec/aci/build.go
@@ -0,0 +1,110 @@
+// Copyright 2015 The appc Authors
+//
+// 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 aci
+
+import (
+ "archive/tar"
+ "io"
+ "os"
+ "path/filepath"
+
+ "github.com/appc/spec/pkg/tarheader"
+)
+
+// TarHeaderWalkFunc is the type of the function which allows setting tar
+// headers or filtering out tar entries when building an ACI. It will be
+// applied to every entry in the tar file.
+//
+// If true is returned, the entry will be included in the final ACI; if false,
+// the entry will not be included.
+type TarHeaderWalkFunc func(hdr *tar.Header) bool
+
+// BuildWalker creates a filepath.WalkFunc that walks over the given root
+// (which should represent an ACI layout on disk) and adds the files in the
+// rootfs/ subdirectory to the given ArchiveWriter
+func BuildWalker(root string, aw ArchiveWriter, cb TarHeaderWalkFunc) filepath.WalkFunc {
+ // cache of inode -> filepath, used to leverage hard links in the archive
+ inos := map[uint64]string{}
+ return func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ return err
+ }
+ relpath, err := filepath.Rel(root, path)
+ if err != nil {
+ return err
+ }
+ if relpath == "." {
+ return nil
+ }
+ if relpath == ManifestFile {
+ // ignore; this will be written by the archive writer
+ // TODO(jonboulle): does this make sense? maybe just remove from archivewriter?
+ return nil
+ }
+
+ link := ""
+ var r io.Reader
+ switch info.Mode() & os.ModeType {
+ case os.ModeSocket:
+ return nil
+ case os.ModeNamedPipe:
+ case os.ModeCharDevice:
+ case os.ModeDevice:
+ case os.ModeDir:
+ case os.ModeSymlink:
+ target, err := os.Readlink(path)
+ if err != nil {
+ return err
+ }
+ link = target
+ default:
+ file, err := os.Open(path)
+ if err != nil {
+ return err
+ }
+ defer file.Close()
+ r = file
+ }
+
+ hdr, err := tar.FileInfoHeader(info, link)
+ if err != nil {
+ panic(err)
+ }
+ // Because os.FileInfo's Name method returns only the base
+ // name of the file it describes, it may be necessary to
+ // modify the Name field of the returned header to provide the
+ // full path name of the file.
+ hdr.Name = relpath
+ tarheader.Populate(hdr, info, inos)
+ // If the file is a hard link to a file we've already seen, we
+ // don't need the contents
+ if hdr.Typeflag == tar.TypeLink {
+ hdr.Size = 0
+ r = nil
+ }
+
+ if cb != nil {
+ if !cb(hdr) {
+ return nil
+ }
+ }
+
+ if err := aw.AddFile(hdr, r); err != nil {
+ return err
+ }
+
+ return nil
+ }
+}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/defs.go b/vendor/github.com/appc/spec/aci/doc.go
similarity index 73%
rename from Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/defs.go
rename to vendor/github.com/appc/spec/aci/doc.go
index a45d870..624d431 100644
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/cpuload/netlink/defs.go
+++ b/vendor/github.com/appc/spec/aci/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
+// Copyright 2015 The appc Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,15 +12,5 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package netlink
-
-/*
-#include
-*/
-import "C"
-
-type TaskStats C.struct_taskstats
-
-const (
- __TASKSTATS_CMD_MAX = C.__TASKSTATS_CMD_MAX
-)
+// Package aci contains various functions for working with App Container Images.
+package aci
diff --git a/vendor/github.com/appc/spec/aci/file.go b/vendor/github.com/appc/spec/aci/file.go
new file mode 100644
index 0000000..fe4e1b5
--- /dev/null
+++ b/vendor/github.com/appc/spec/aci/file.go
@@ -0,0 +1,246 @@
+// Copyright 2015 The appc Authors
+//
+// 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 aci
+
+import (
+ "archive/tar"
+ "bytes"
+ "compress/bzip2"
+ "compress/gzip"
+ "encoding/hex"
+ "errors"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "log"
+ "net/http"
+ "os/exec"
+ "path/filepath"
+
+ "github.com/appc/spec/schema"
+)
+
+type FileType string
+
+const (
+ TypeGzip = FileType("gz")
+ TypeBzip2 = FileType("bz2")
+ TypeXz = FileType("xz")
+ TypeTar = FileType("tar")
+ TypeText = FileType("text")
+ TypeUnknown = FileType("unknown")
+
+ readLen = 512 // max bytes to sniff
+
+ hexHdrGzip = "1f8b"
+ hexHdrBzip2 = "425a68"
+ hexHdrXz = "fd377a585a00"
+ hexSigTar = "7573746172"
+
+ tarOffset = 257
+
+ textMime = "text/plain; charset=utf-8"
+)
+
+var (
+ hdrGzip []byte
+ hdrBzip2 []byte
+ hdrXz []byte
+ sigTar []byte
+ tarEnd int
+)
+
+func mustDecodeHex(s string) []byte {
+ b, err := hex.DecodeString(s)
+ if err != nil {
+ panic(err)
+ }
+ return b
+}
+
+func init() {
+ hdrGzip = mustDecodeHex(hexHdrGzip)
+ hdrBzip2 = mustDecodeHex(hexHdrBzip2)
+ hdrXz = mustDecodeHex(hexHdrXz)
+ sigTar = mustDecodeHex(hexSigTar)
+ tarEnd = tarOffset + len(sigTar)
+}
+
+// DetectFileType attempts to detect the type of file that the given reader
+// represents by comparing it against known file signatures (magic numbers)
+func DetectFileType(r io.Reader) (FileType, error) {
+ var b bytes.Buffer
+ n, err := io.CopyN(&b, r, readLen)
+ if err != nil && err != io.EOF {
+ return TypeUnknown, err
+ }
+ bs := b.Bytes()
+ switch {
+ case bytes.HasPrefix(bs, hdrGzip):
+ return TypeGzip, nil
+ case bytes.HasPrefix(bs, hdrBzip2):
+ return TypeBzip2, nil
+ case bytes.HasPrefix(bs, hdrXz):
+ return TypeXz, nil
+ case n > int64(tarEnd) && bytes.Equal(bs[tarOffset:tarEnd], sigTar):
+ return TypeTar, nil
+ case http.DetectContentType(bs) == textMime:
+ return TypeText, nil
+ default:
+ return TypeUnknown, nil
+ }
+}
+
+// XzReader is an io.ReadCloser which decompresses xz compressed data.
+type XzReader struct {
+ io.ReadCloser
+ cmd *exec.Cmd
+ closech chan error
+}
+
+// NewXzReader shells out to a command line xz executable (if
+// available) to decompress the given io.Reader using the xz
+// compression format and returns an *XzReader.
+// It is the caller's responsibility to call Close on the XzReader when done.
+func NewXzReader(r io.Reader) (*XzReader, error) {
+ rpipe, wpipe := io.Pipe()
+ ex, err := exec.LookPath("xz")
+ if err != nil {
+ log.Fatalf("couldn't find xz executable: %v", err)
+ }
+ cmd := exec.Command(ex, "--decompress", "--stdout")
+
+ closech := make(chan error)
+
+ cmd.Stdin = r
+ cmd.Stdout = wpipe
+
+ go func() {
+ err := cmd.Run()
+ wpipe.CloseWithError(err)
+ closech <- err
+ }()
+
+ return &XzReader{rpipe, cmd, closech}, nil
+}
+
+func (r *XzReader) Close() error {
+ r.ReadCloser.Close()
+ r.cmd.Process.Kill()
+ return <-r.closech
+}
+
+// ManifestFromImage extracts a new schema.ImageManifest from the given ACI image.
+func ManifestFromImage(rs io.ReadSeeker) (*schema.ImageManifest, error) {
+ var im schema.ImageManifest
+
+ tr, err := NewCompressedTarReader(rs)
+ if err != nil {
+ return nil, err
+ }
+ defer tr.Close()
+
+ for {
+ hdr, err := tr.Next()
+ switch err {
+ case io.EOF:
+ return nil, errors.New("missing manifest")
+ case nil:
+ if filepath.Clean(hdr.Name) == ManifestFile {
+ data, err := ioutil.ReadAll(tr)
+ if err != nil {
+ return nil, err
+ }
+ if err := im.UnmarshalJSON(data); err != nil {
+ return nil, err
+ }
+ return &im, nil
+ }
+ default:
+ return nil, fmt.Errorf("error extracting tarball: %v", err)
+ }
+ }
+}
+
+// TarReadCloser embeds a *tar.Reader and the related io.Closer
+// It is the caller's responsibility to call Close on TarReadCloser when
+// done.
+type TarReadCloser struct {
+ *tar.Reader
+ io.Closer
+}
+
+func (r *TarReadCloser) Close() error {
+ return r.Closer.Close()
+}
+
+// NewCompressedTarReader creates a new TarReadCloser reading from the
+// given ACI image.
+// It is the caller's responsibility to call Close on the TarReadCloser
+// when done.
+func NewCompressedTarReader(rs io.ReadSeeker) (*TarReadCloser, error) {
+ cr, err := NewCompressedReader(rs)
+ if err != nil {
+ return nil, err
+ }
+ return &TarReadCloser{tar.NewReader(cr), cr}, nil
+}
+
+// NewCompressedReader creates a new io.ReaderCloser from the given ACI image.
+// It is the caller's responsibility to call Close on the Reader when done.
+func NewCompressedReader(rs io.ReadSeeker) (io.ReadCloser, error) {
+
+ var (
+ dr io.ReadCloser
+ err error
+ )
+
+ _, err = rs.Seek(0, 0)
+ if err != nil {
+ return nil, err
+ }
+
+ ftype, err := DetectFileType(rs)
+ if err != nil {
+ return nil, err
+ }
+
+ _, err = rs.Seek(0, 0)
+ if err != nil {
+ return nil, err
+ }
+
+ switch ftype {
+ case TypeGzip:
+ dr, err = gzip.NewReader(rs)
+ if err != nil {
+ return nil, err
+ }
+ case TypeBzip2:
+ dr = ioutil.NopCloser(bzip2.NewReader(rs))
+ case TypeXz:
+ dr, err = NewXzReader(rs)
+ if err != nil {
+ return nil, err
+ }
+ case TypeTar:
+ dr = ioutil.NopCloser(rs)
+ case TypeUnknown:
+ return nil, errors.New("error: unknown image filetype")
+ default:
+ return nil, errors.New("no type returned from DetectFileType?")
+ }
+ return dr, nil
+}
diff --git a/vendor/github.com/appc/spec/aci/layout.go b/vendor/github.com/appc/spec/aci/layout.go
new file mode 100644
index 0000000..c2cce56
--- /dev/null
+++ b/vendor/github.com/appc/spec/aci/layout.go
@@ -0,0 +1,187 @@
+// Copyright 2015 The appc Authors
+//
+// 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 aci
+
+/*
+
+Image Layout
+
+The on-disk layout of an app container is straightforward.
+It includes a rootfs with all of the files that will exist in the root of the app and a manifest describing the image.
+The layout MUST contain an image manifest.
+
+/manifest
+/rootfs/
+/rootfs/usr/bin/mysql
+
+*/
+
+import (
+ "archive/tar"
+ "bytes"
+ "errors"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "strings"
+
+ "github.com/appc/spec/schema"
+ "github.com/appc/spec/schema/types"
+)
+
+const (
+ // Path to manifest file inside the layout
+ ManifestFile = "manifest"
+ // Path to rootfs directory inside the layout
+ RootfsDir = "rootfs"
+)
+
+type ErrOldVersion struct {
+ version types.SemVer
+}
+
+func (e ErrOldVersion) Error() string {
+ return fmt.Sprintf("ACVersion too old. Found major version %v, expected %v", e.version.Major, schema.AppContainerVersion.Major)
+}
+
+var (
+ ErrNoRootFS = errors.New("no rootfs found in layout")
+ ErrNoManifest = errors.New("no image manifest found in layout")
+)
+
+// ValidateLayout takes a directory and validates that the layout of the directory
+// matches that expected by the Application Container Image format.
+// If any errors are encountered during the validation, it will abort and
+// return the first one.
+func ValidateLayout(dir string) error {
+ fi, err := os.Stat(dir)
+ if err != nil {
+ return fmt.Errorf("error accessing layout: %v", err)
+ }
+ if !fi.IsDir() {
+ return fmt.Errorf("given path %q is not a directory", dir)
+ }
+ var flist []string
+ var imOK, rfsOK bool
+ var im io.Reader
+ walkLayout := func(fpath string, fi os.FileInfo, err error) error {
+ rpath, err := filepath.Rel(dir, fpath)
+ if err != nil {
+ return err
+ }
+ switch rpath {
+ case ".":
+ case ManifestFile:
+ im, err = os.Open(fpath)
+ if err != nil {
+ return err
+ }
+ imOK = true
+ case RootfsDir:
+ if !fi.IsDir() {
+ return errors.New("rootfs is not a directory")
+ }
+ rfsOK = true
+ default:
+ flist = append(flist, rpath)
+ }
+ return nil
+ }
+ if err := filepath.Walk(dir, walkLayout); err != nil {
+ return err
+ }
+ return validate(imOK, im, rfsOK, flist)
+}
+
+// ValidateArchive takes a *tar.Reader and validates that the layout of the
+// filesystem the reader encapsulates matches that expected by the
+// Application Container Image format. If any errors are encountered during
+// the validation, it will abort and return the first one.
+func ValidateArchive(tr *tar.Reader) error {
+ var fseen map[string]bool = make(map[string]bool)
+ var imOK, rfsOK bool
+ var im bytes.Buffer
+Tar:
+ for {
+ hdr, err := tr.Next()
+ switch {
+ case err == nil:
+ case err == io.EOF:
+ break Tar
+ default:
+ return err
+ }
+ name := filepath.Clean(hdr.Name)
+ switch name {
+ case ".":
+ case ManifestFile:
+ _, err := io.Copy(&im, tr)
+ if err != nil {
+ return err
+ }
+ imOK = true
+ case RootfsDir:
+ if !hdr.FileInfo().IsDir() {
+ return fmt.Errorf("rootfs is not a directory")
+ }
+ rfsOK = true
+ default:
+ if _, seen := fseen[name]; seen {
+ return fmt.Errorf("duplicate file entry in archive: %s", name)
+ }
+ fseen[name] = true
+ }
+ }
+ var flist []string
+ for key := range fseen {
+ flist = append(flist, key)
+ }
+ return validate(imOK, &im, rfsOK, flist)
+}
+
+func validate(imOK bool, im io.Reader, rfsOK bool, files []string) error {
+ defer func() {
+ if rc, ok := im.(io.Closer); ok {
+ rc.Close()
+ }
+ }()
+ if !imOK {
+ return ErrNoManifest
+ }
+ if !rfsOK {
+ return ErrNoRootFS
+ }
+ b, err := ioutil.ReadAll(im)
+ if err != nil {
+ return fmt.Errorf("error reading image manifest: %v", err)
+ }
+ var a schema.ImageManifest
+ if err := a.UnmarshalJSON(b); err != nil {
+ return fmt.Errorf("image manifest validation failed: %v", err)
+ }
+ if a.ACVersion.LessThanMajor(schema.AppContainerVersion) {
+ return ErrOldVersion{
+ version: a.ACVersion,
+ }
+ }
+ for _, f := range files {
+ if !strings.HasPrefix(f, "rootfs") {
+ return fmt.Errorf("unrecognized file path in layout: %q", f)
+ }
+ }
+ return nil
+}
diff --git a/vendor/github.com/appc/spec/aci/writer.go b/vendor/github.com/appc/spec/aci/writer.go
new file mode 100644
index 0000000..070b09b
--- /dev/null
+++ b/vendor/github.com/appc/spec/aci/writer.go
@@ -0,0 +1,98 @@
+// Copyright 2015 The appc Authors
+//
+// 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 aci
+
+import (
+ "archive/tar"
+ "bytes"
+ "encoding/json"
+ "io"
+ "time"
+
+ "github.com/appc/spec/schema"
+)
+
+// ArchiveWriter writes App Container Images. Users wanting to create an ACI or
+// should create an ArchiveWriter and add files to it; the ACI will be written
+// to the underlying tar.Writer
+type ArchiveWriter interface {
+ AddFile(hdr *tar.Header, r io.Reader) error
+ Close() error
+}
+
+type imageArchiveWriter struct {
+ *tar.Writer
+ am *schema.ImageManifest
+}
+
+// NewImageWriter creates a new ArchiveWriter which will generate an App
+// Container Image based on the given manifest and write it to the given
+// tar.Writer
+func NewImageWriter(am schema.ImageManifest, w *tar.Writer) ArchiveWriter {
+ aw := &imageArchiveWriter{
+ w,
+ &am,
+ }
+ return aw
+}
+
+func (aw *imageArchiveWriter) AddFile(hdr *tar.Header, r io.Reader) error {
+ err := aw.Writer.WriteHeader(hdr)
+ if err != nil {
+ return err
+ }
+
+ if r != nil {
+ _, err := io.Copy(aw.Writer, r)
+ if err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func (aw *imageArchiveWriter) addFileNow(path string, contents []byte) error {
+ buf := bytes.NewBuffer(contents)
+ now := time.Now()
+ hdr := tar.Header{
+ Name: path,
+ Mode: 0644,
+ Uid: 0,
+ Gid: 0,
+ Size: int64(buf.Len()),
+ ModTime: now,
+ Typeflag: tar.TypeReg,
+ Uname: "root",
+ Gname: "root",
+ ChangeTime: now,
+ }
+ return aw.AddFile(&hdr, buf)
+}
+
+func (aw *imageArchiveWriter) addManifest(name string, m json.Marshaler) error {
+ out, err := m.MarshalJSON()
+ if err != nil {
+ return err
+ }
+ return aw.addFileNow(name, out)
+}
+
+func (aw *imageArchiveWriter) Close() error {
+ if err := aw.addManifest(ManifestFile, aw.am); err != nil {
+ return err
+ }
+ return aw.Writer.Close()
+}
diff --git a/Godeps/_workspace/src/github.com/appc/spec/discovery/discovery.go b/vendor/github.com/appc/spec/discovery/discovery.go
similarity index 73%
rename from Godeps/_workspace/src/github.com/appc/spec/discovery/discovery.go
rename to vendor/github.com/appc/spec/discovery/discovery.go
index 6da2d85..b2dc659 100644
--- a/Godeps/_workspace/src/github.com/appc/spec/discovery/discovery.go
+++ b/vendor/github.com/appc/spec/discovery/discovery.go
@@ -37,15 +37,17 @@ type ACIEndpoint struct {
ASC string
}
-type Endpoints struct {
+// A struct containing both discovered endpoints and keys. Used to avoid
+// function duplication (one for endpoints and one for keys, so to avoid two
+// doDiscover, two DiscoverWalkFunc)
+type discoveryData struct {
ACIEndpoints []ACIEndpoint
- Keys []string
+ PublicKeys []string
}
-func (e *Endpoints) Append(ep Endpoints) {
- e.ACIEndpoints = append(e.ACIEndpoints, ep.ACIEndpoints...)
- e.Keys = append(e.Keys, ep.Keys...)
-}
+type ACIEndpoints []ACIEndpoint
+
+type PublicKeys []string
const (
defaultVersion = "latest"
@@ -124,7 +126,7 @@ func createTemplateVars(app App) []string {
return tplVars
}
-func doDiscover(pre string, hostHeaders map[string]http.Header, app App, insecure bool) (*Endpoints, error) {
+func doDiscover(pre string, hostHeaders map[string]http.Header, app App, insecure InsecureOption) (*discoveryData, error) {
app = *app.Copy()
if app.Labels["version"] == "" {
app.Labels["version"] = defaultVersion
@@ -140,7 +142,7 @@ func doDiscover(pre string, hostHeaders map[string]http.Header, app App, insecur
tplVars := createTemplateVars(app)
- de := &Endpoints{}
+ dd := &discoveryData{}
for _, m := range meta {
if !strings.HasPrefix(app.Name.String(), m.prefix) {
@@ -159,41 +161,37 @@ func doDiscover(pre string, hostHeaders map[string]http.Header, app App, insecur
if !ok {
continue
}
- de.ACIEndpoints = append(de.ACIEndpoints, ACIEndpoint{ACI: aci, ASC: asc})
+ dd.ACIEndpoints = append(dd.ACIEndpoints, ACIEndpoint{ACI: aci, ASC: asc})
case "ac-discovery-pubkeys":
- de.Keys = append(de.Keys, m.uri)
+ dd.PublicKeys = append(dd.PublicKeys, m.uri)
}
}
- return de, nil
+ return dd, nil
}
// DiscoverWalk will make HTTPS requests to find discovery meta tags and
// optionally will use HTTP if insecure is set. hostHeaders specifies the
// header to apply depending on the host (e.g. authentication). Based on the
// response of the discoverFn it will continue to recurse up the tree.
-func DiscoverWalk(app App, hostHeaders map[string]http.Header, insecure bool, discoverFn DiscoverWalkFunc) (err error) {
- var (
- eps *Endpoints
- )
-
+func DiscoverWalk(app App, hostHeaders map[string]http.Header, insecure InsecureOption, discoverFn DiscoverWalkFunc) (dd *discoveryData, err error) {
parts := strings.Split(string(app.Name), "/")
for i := range parts {
end := len(parts) - i
pre := strings.Join(parts[:end], "/")
- eps, err = doDiscover(pre, hostHeaders, app, insecure)
- if derr := discoverFn(pre, eps, err); derr != nil {
- return derr
+ dd, err = doDiscover(pre, hostHeaders, app, insecure)
+ if derr := discoverFn(pre, dd, err); derr != nil {
+ return dd, derr
}
}
- return
+ return nil, fmt.Errorf("discovery failed")
}
// DiscoverWalkFunc can stop a DiscoverWalk by returning non-nil error.
-type DiscoverWalkFunc func(prefix string, eps *Endpoints, err error) error
+type DiscoverWalkFunc func(prefix string, dd *discoveryData, err error) error
// FailedAttempt represents a failed discovery attempt. This is for debugging
// and user feedback.
@@ -202,59 +200,58 @@ type FailedAttempt struct {
Error error
}
-func walker(out *Endpoints, attempts *[]FailedAttempt, testFn DiscoverWalkFunc) DiscoverWalkFunc {
- return func(pre string, eps *Endpoints, err error) error {
+func walker(attempts *[]FailedAttempt, testFn DiscoverWalkFunc) DiscoverWalkFunc {
+ return func(pre string, dd *discoveryData, err error) error {
if err != nil {
*attempts = append(*attempts, FailedAttempt{pre, err})
return nil
}
- out.Append(*eps)
- if err := testFn(pre, eps, err); err != nil {
+ if err := testFn(pre, dd, err); err != nil {
return err
}
return nil
}
}
-// DiscoverEndpoints will make HTTPS requests to find the ac-discovery meta
+// DiscoverACIEndpoints will make HTTPS requests to find the ac-discovery meta
// tags and optionally will use HTTP if insecure is set. hostHeaders
// specifies the header to apply depending on the host (e.g. authentication).
// It will not give up until it has exhausted the path or found an image
// discovery.
-func DiscoverEndpoints(app App, hostHeaders map[string]http.Header, insecure bool) (out *Endpoints, attempts []FailedAttempt, err error) {
- out = &Endpoints{}
- testFn := func(pre string, eps *Endpoints, err error) error {
- if len(out.ACIEndpoints) != 0 {
+func DiscoverACIEndpoints(app App, hostHeaders map[string]http.Header, insecure InsecureOption) (ACIEndpoints, []FailedAttempt, error) {
+ testFn := func(pre string, dd *discoveryData, err error) error {
+ if len(dd.ACIEndpoints) != 0 {
return errEnough
}
return nil
}
- err = DiscoverWalk(app, hostHeaders, insecure, walker(out, &attempts, testFn))
+ attempts := []FailedAttempt{}
+ dd, err := DiscoverWalk(app, hostHeaders, insecure, walker(&attempts, testFn))
if err != nil && err != errEnough {
return nil, attempts, err
}
- return out, attempts, nil
+ return dd.ACIEndpoints, attempts, nil
}
// DiscoverPublicKey will make HTTPS requests to find the ac-public-keys meta
// tags and optionally will use HTTP if insecure is set. hostHeaders
// specifies the header to apply depending on the host (e.g. authentication).
// It will not give up until it has exhausted the path or found an public key.
-func DiscoverPublicKeys(app App, hostHeaders map[string]http.Header, insecure bool) (out *Endpoints, attempts []FailedAttempt, err error) {
- out = &Endpoints{}
- testFn := func(pre string, eps *Endpoints, err error) error {
- if len(out.Keys) != 0 {
+func DiscoverPublicKeys(app App, hostHeaders map[string]http.Header, insecure InsecureOption) (PublicKeys, []FailedAttempt, error) {
+ testFn := func(pre string, dd *discoveryData, err error) error {
+ if len(dd.PublicKeys) != 0 {
return errEnough
}
return nil
}
- err = DiscoverWalk(app, hostHeaders, insecure, walker(out, &attempts, testFn))
+ attempts := []FailedAttempt{}
+ dd, err := DiscoverWalk(app, hostHeaders, insecure, walker(&attempts, testFn))
if err != nil && err != errEnough {
return nil, attempts, err
}
- return out, attempts, nil
+ return dd.PublicKeys, attempts, nil
}
diff --git a/Godeps/_workspace/src/github.com/appc/spec/discovery/doc.go b/vendor/github.com/appc/spec/discovery/doc.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/discovery/doc.go
rename to vendor/github.com/appc/spec/discovery/doc.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/discovery/http.go b/vendor/github.com/appc/spec/discovery/http.go
similarity index 77%
rename from Godeps/_workspace/src/github.com/appc/spec/discovery/http.go
rename to vendor/github.com/appc/spec/discovery/http.go
index 3b0d1d4..430bcc6 100644
--- a/Godeps/_workspace/src/github.com/appc/spec/discovery/http.go
+++ b/vendor/github.com/appc/spec/discovery/http.go
@@ -15,6 +15,7 @@
package discovery
import (
+ "crypto/tls"
"fmt"
"io"
"net"
@@ -23,17 +24,28 @@ import (
"time"
)
+type InsecureOption int
+
const (
defaultDialTimeout = 5 * time.Second
)
+const (
+ InsecureNone InsecureOption = 0
+
+ InsecureTLS InsecureOption = 1 << iota
+ InsecureHTTP
+)
+
var (
// Client is the default http.Client used for discovery requests.
- Client *http.Client
+ Client *http.Client
+ ClientInsecureTLS *http.Client
// httpDo is the internal object used by discovery to retrieve URLs; it is
// defined here so it can be overridden for testing
- httpDo httpDoer
+ httpDo httpDoer
+ httpDoInsecureTLS httpDoer
)
// httpDoer is an interface used to wrap http.Client for real requests and
@@ -53,9 +65,17 @@ func init() {
Transport: t,
}
httpDo = Client
+
+ // copy for InsecureTLS
+ tInsecureTLS := *t
+ tInsecureTLS.TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
+ ClientInsecureTLS = &http.Client{
+ Transport: &tInsecureTLS,
+ }
+ httpDoInsecureTLS = ClientInsecureTLS
}
-func httpsOrHTTP(name string, hostHeaders map[string]http.Header, insecure bool) (urlStr string, body io.ReadCloser, err error) {
+func httpsOrHTTP(name string, hostHeaders map[string]http.Header, insecure InsecureOption) (urlStr string, body io.ReadCloser, err error) {
fetch := func(scheme string) (urlStr string, res *http.Response, err error) {
u, err := url.Parse(scheme + "://" + name)
if err != nil {
@@ -70,6 +90,10 @@ func httpsOrHTTP(name string, hostHeaders map[string]http.Header, insecure bool)
if hostHeader, ok := hostHeaders[u.Host]; ok {
req.Header = hostHeader
}
+ if insecure&InsecureTLS != 0 {
+ res, err = httpDoInsecureTLS.Do(req)
+ return
+ }
res, err = httpDo.Do(req)
return
}
@@ -80,7 +104,7 @@ func httpsOrHTTP(name string, hostHeaders map[string]http.Header, insecure bool)
}
urlStr, res, err := fetch("https")
if err != nil || res.StatusCode != http.StatusOK {
- if insecure {
+ if insecure&InsecureHTTP != 0 {
closeBody(res)
urlStr, res, err = fetch("http")
}
diff --git a/Godeps/_workspace/src/github.com/appc/spec/discovery/parse.go b/vendor/github.com/appc/spec/discovery/parse.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/discovery/parse.go
rename to vendor/github.com/appc/spec/discovery/parse.go
diff --git a/vendor/github.com/appc/spec/pkg/device/device_linux.go b/vendor/github.com/appc/spec/pkg/device/device_linux.go
new file mode 100644
index 0000000..4f895cd
--- /dev/null
+++ b/vendor/github.com/appc/spec/pkg/device/device_linux.go
@@ -0,0 +1,33 @@
+// Copyright 2016 The appc Authors
+//
+// 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.
+
+// +build linux
+
+package device
+
+// with glibc/sysdeps/unix/sysv/linux/sys/sysmacros.h as reference
+
+func Major(rdev uint64) uint {
+ return uint((rdev>>8)&0xfff) | (uint(rdev>>32) & ^uint(0xfff))
+}
+
+func Minor(rdev uint64) uint {
+ return uint(rdev&0xff) | uint(uint32(rdev>>12) & ^uint32(0xff))
+}
+
+func Makedev(maj uint, min uint) uint64 {
+ return uint64(min&0xff) | (uint64(maj&0xfff) << 8) |
+ ((uint64(min) & ^uint64(0xff)) << 12) |
+ ((uint64(maj) & ^uint64(0xfff)) << 32)
+}
diff --git a/vendor/github.com/appc/spec/pkg/device/device_posix.go b/vendor/github.com/appc/spec/pkg/device/device_posix.go
new file mode 100644
index 0000000..c2e1b31
--- /dev/null
+++ b/vendor/github.com/appc/spec/pkg/device/device_posix.go
@@ -0,0 +1,57 @@
+// Copyright 2015 The appc Authors
+//
+// 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.
+
+// +build freebsd netbsd openbsd darwin
+
+package device
+
+/*
+#define _BSD_SOURCE
+#define _DEFAULT_SOURCE
+#include
+
+unsigned int
+my_major(dev_t dev)
+{
+ return major(dev);
+}
+
+unsigned int
+my_minor(dev_t dev)
+{
+ return minor(dev);
+}
+
+dev_t
+my_makedev(unsigned int maj, unsigned int min)
+{
+ return makedev(maj, min);
+}
+*/
+import "C"
+
+func Major(rdev uint64) uint {
+ major := C.my_major(C.dev_t(rdev))
+ return uint(major)
+}
+
+func Minor(rdev uint64) uint {
+ minor := C.my_minor(C.dev_t(rdev))
+ return uint(minor)
+}
+
+func Makedev(maj uint, min uint) uint64 {
+ dev := C.my_makedev(C.uint(maj), C.uint(min))
+ return uint64(dev)
+}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/procfs/doc.go b/vendor/github.com/appc/spec/pkg/tarheader/doc.go
similarity index 71%
rename from Godeps/_workspace/src/github.com/google/cadvisor/utils/procfs/doc.go
rename to vendor/github.com/appc/spec/pkg/tarheader/doc.go
index 763a556..047a0c0 100644
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/procfs/doc.go
+++ b/vendor/github.com/appc/spec/pkg/tarheader/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
+// Copyright 2015 The appc Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,6 +12,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// procfs contains several low level functions to read information from /proc
-// filesystem, and also provides some utility functions like JiffiesToDuration.
-package procfs
+// Package tarheader contains a simple abstraction to accurately create
+// tar.Headers on different operating systems.
+package tarheader
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/fs/mockfs/fakefile.go b/vendor/github.com/appc/spec/pkg/tarheader/pop_darwin.go
similarity index 57%
rename from Godeps/_workspace/src/github.com/google/cadvisor/utils/fs/mockfs/fakefile.go
rename to vendor/github.com/appc/spec/pkg/tarheader/pop_darwin.go
index 77a3f48..8f68ee7 100644
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/fs/mockfs/fakefile.go
+++ b/vendor/github.com/appc/spec/pkg/tarheader/pop_darwin.go
@@ -1,4 +1,4 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
+// Copyright 2015 The appc Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,24 +12,28 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package mockfs
+//+build darwin
-import "bytes"
+package tarheader
-type FakeFile struct {
- bytes.Buffer
- Name string
-}
+import (
+ "archive/tar"
+ "os"
+ "syscall"
+ "time"
+)
-func (self *FakeFile) Close() error {
- return nil
+func init() {
+ populateHeaderStat = append(populateHeaderStat, populateHeaderCtime)
}
-func AddTextFile(mockfs *MockFileSystem, name, content string) *FakeFile {
- f := &FakeFile{
- Name: name,
- Buffer: *bytes.NewBufferString(content),
+func populateHeaderCtime(h *tar.Header, fi os.FileInfo, _ map[uint64]string) {
+ st, ok := fi.Sys().(*syscall.Stat_t)
+ if !ok {
+ return
}
- mockfs.EXPECT().Open(name).Return(f, nil).AnyTimes()
- return f
+
+ sec, nsec := st.Ctimespec.Unix()
+ ctime := time.Unix(sec, nsec)
+ h.ChangeTime = ctime
}
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/labels.go b/vendor/github.com/appc/spec/pkg/tarheader/pop_linux.go
similarity index 62%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/labels.go
rename to vendor/github.com/appc/spec/pkg/tarheader/pop_linux.go
index 5cf93a0..2055024 100644
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/lastditch/labels.go
+++ b/vendor/github.com/appc/spec/pkg/tarheader/pop_linux.go
@@ -12,27 +12,28 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package lastditch
+// +build linux
+
+package tarheader
import (
- "encoding/json"
+ "archive/tar"
+ "os"
+ "syscall"
+ "time"
)
-type Labels []Label
-
-// a type just to avoid a recursion during unmarshalling
-type labels Labels
-
-type Label struct {
- Name string `json:"name"`
- Value string `json:"value"`
+func init() {
+ populateHeaderStat = append(populateHeaderStat, populateHeaderCtime)
}
-func (l *Labels) UnmarshalJSON(data []byte) error {
- var jl labels
- if err := json.Unmarshal(data, &jl); err != nil {
- return err
+func populateHeaderCtime(h *tar.Header, fi os.FileInfo, _ map[uint64]string) {
+ st, ok := fi.Sys().(*syscall.Stat_t)
+ if !ok {
+ return
}
- *l = Labels(jl)
- return nil
+
+ sec, nsec := st.Ctim.Unix()
+ ctime := time.Unix(sec, nsec)
+ h.ChangeTime = ctime
}
diff --git a/vendor/github.com/appc/spec/pkg/tarheader/pop_posix.go b/vendor/github.com/appc/spec/pkg/tarheader/pop_posix.go
new file mode 100644
index 0000000..0cc083f
--- /dev/null
+++ b/vendor/github.com/appc/spec/pkg/tarheader/pop_posix.go
@@ -0,0 +1,50 @@
+// Copyright 2015 The appc Authors
+//
+// 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.
+
+// +build linux freebsd netbsd openbsd
+
+package tarheader
+
+import (
+ "archive/tar"
+ "os"
+ "syscall"
+
+ "github.com/appc/spec/pkg/device"
+)
+
+func init() {
+ populateHeaderStat = append(populateHeaderStat, populateHeaderUnix)
+}
+
+func populateHeaderUnix(h *tar.Header, fi os.FileInfo, seen map[uint64]string) {
+ st, ok := fi.Sys().(*syscall.Stat_t)
+ if !ok {
+ return
+ }
+ h.Uid = int(st.Uid)
+ h.Gid = int(st.Gid)
+ if st.Mode&syscall.S_IFMT == syscall.S_IFBLK || st.Mode&syscall.S_IFMT == syscall.S_IFCHR {
+ h.Devminor = int64(device.Minor(uint64(st.Rdev)))
+ h.Devmajor = int64(device.Major(uint64(st.Rdev)))
+ }
+ // If we have already seen this inode, generate a hardlink
+ p, ok := seen[uint64(st.Ino)]
+ if ok {
+ h.Linkname = p
+ h.Typeflag = tar.TypeLink
+ } else {
+ seen[uint64(st.Ino)] = h.Name
+ }
+}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/procfs/jiffy.go b/vendor/github.com/appc/spec/pkg/tarheader/tarheader.go
similarity index 62%
rename from Godeps/_workspace/src/github.com/google/cadvisor/utils/procfs/jiffy.go
rename to vendor/github.com/appc/spec/pkg/tarheader/tarheader.go
index b36772a..dc16c33 100644
--- a/Godeps/_workspace/src/github.com/google/cadvisor/utils/procfs/jiffy.go
+++ b/vendor/github.com/appc/spec/pkg/tarheader/tarheader.go
@@ -1,4 +1,4 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
+// Copyright 2015 The appc Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,22 +12,17 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package procfs
+package tarheader
-/*
-#include
-*/
-import "C"
-import "time"
+import (
+ "archive/tar"
+ "os"
+)
-var userHz uint64
+var populateHeaderStat []func(h *tar.Header, fi os.FileInfo, seen map[uint64]string)
-func init() {
- userHzLong := C.sysconf(C._SC_CLK_TCK)
- userHz = uint64(userHzLong)
-}
-
-func JiffiesToDuration(jiffies uint64) time.Duration {
- d := jiffies * 1000000000 / userHz
- return time.Duration(d)
+func Populate(h *tar.Header, fi os.FileInfo, seen map[uint64]string) {
+ for _, pop := range populateHeaderStat {
+ pop(h, fi, seen)
+ }
}
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/common/common.go b/vendor/github.com/appc/spec/schema/common/common.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/common/common.go
rename to vendor/github.com/appc/spec/schema/common/common.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/doc.go b/vendor/github.com/appc/spec/schema/doc.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/doc.go
rename to vendor/github.com/appc/spec/schema/doc.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/image.go b/vendor/github.com/appc/spec/schema/image.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/image.go
rename to vendor/github.com/appc/spec/schema/image.go
index 5aa536f..fac4c79 100644
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/image.go
+++ b/vendor/github.com/appc/spec/schema/image.go
@@ -22,7 +22,7 @@ import (
"github.com/appc/spec/schema/types"
- "github.com/camlistore/camlistore/pkg/errorutil"
+ "go4.org/errorutil"
)
const (
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/kind.go b/vendor/github.com/appc/spec/schema/kind.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/kind.go
rename to vendor/github.com/appc/spec/schema/kind.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/pod.go b/vendor/github.com/appc/spec/schema/pod.go
similarity index 92%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/pod.go
rename to vendor/github.com/appc/spec/schema/pod.go
index 4046816..d4792ff 100644
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/pod.go
+++ b/vendor/github.com/appc/spec/schema/pod.go
@@ -22,7 +22,7 @@ import (
"github.com/appc/spec/schema/types"
- "github.com/camlistore/camlistore/pkg/errorutil"
+ "go4.org/errorutil"
)
const PodManifestKind = types.ACKind("PodManifest")
@@ -152,11 +152,12 @@ func (r Mount) assertValid() error {
// RuntimeApp describes an application referenced in a PodManifest
type RuntimeApp struct {
- Name types.ACName `json:"name"`
- Image RuntimeImage `json:"image"`
- App *types.App `json:"app,omitempty"`
- Mounts []Mount `json:"mounts,omitempty"`
- Annotations types.Annotations `json:"annotations,omitempty"`
+ Name types.ACName `json:"name"`
+ Image RuntimeImage `json:"image"`
+ App *types.App `json:"app,omitempty"`
+ ReadOnlyRootFS bool `json:"readOnlyRootFS,omitempty"`
+ Mounts []Mount `json:"mounts,omitempty"`
+ Annotations types.Annotations `json:"annotations,omitempty"`
}
// RuntimeImage describes an image referenced in a RuntimeApp
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/acidentifier.go b/vendor/github.com/appc/spec/schema/types/acidentifier.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/acidentifier.go
rename to vendor/github.com/appc/spec/schema/types/acidentifier.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/ackind.go b/vendor/github.com/appc/spec/schema/types/ackind.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/ackind.go
rename to vendor/github.com/appc/spec/schema/types/ackind.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/acname.go b/vendor/github.com/appc/spec/schema/types/acname.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/acname.go
rename to vendor/github.com/appc/spec/schema/types/acname.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/annotations.go b/vendor/github.com/appc/spec/schema/types/annotations.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/annotations.go
rename to vendor/github.com/appc/spec/schema/types/annotations.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/app.go b/vendor/github.com/appc/spec/schema/types/app.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/app.go
rename to vendor/github.com/appc/spec/schema/types/app.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/date.go b/vendor/github.com/appc/spec/schema/types/date.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/date.go
rename to vendor/github.com/appc/spec/schema/types/date.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/dependencies.go b/vendor/github.com/appc/spec/schema/types/dependencies.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/dependencies.go
rename to vendor/github.com/appc/spec/schema/types/dependencies.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/doc.go b/vendor/github.com/appc/spec/schema/types/doc.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/doc.go
rename to vendor/github.com/appc/spec/schema/types/doc.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/environment.go b/vendor/github.com/appc/spec/schema/types/environment.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/environment.go
rename to vendor/github.com/appc/spec/schema/types/environment.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/errors.go b/vendor/github.com/appc/spec/schema/types/errors.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/errors.go
rename to vendor/github.com/appc/spec/schema/types/errors.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/event_handler.go b/vendor/github.com/appc/spec/schema/types/event_handler.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/event_handler.go
rename to vendor/github.com/appc/spec/schema/types/event_handler.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/exec.go b/vendor/github.com/appc/spec/schema/types/exec.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/exec.go
rename to vendor/github.com/appc/spec/schema/types/exec.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/hash.go b/vendor/github.com/appc/spec/schema/types/hash.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/hash.go
rename to vendor/github.com/appc/spec/schema/types/hash.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/isolator.go b/vendor/github.com/appc/spec/schema/types/isolator.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/isolator.go
rename to vendor/github.com/appc/spec/schema/types/isolator.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/isolator_linux_specific.go b/vendor/github.com/appc/spec/schema/types/isolator_linux_specific.go
similarity index 96%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/isolator_linux_specific.go
rename to vendor/github.com/appc/spec/schema/types/isolator_linux_specific.go
index ae4bfee..b390ed9 100644
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/types/isolator_linux_specific.go
+++ b/vendor/github.com/appc/spec/schema/types/isolator_linux_specific.go
@@ -96,7 +96,7 @@ func NewLinuxCapabilitiesRetainSet(caps ...string) (*LinuxCapabilitiesRetainSet,
}
func (l LinuxCapabilitiesRetainSet) AsIsolator() Isolator {
- b, err := json.Marshal(l)
+ b, err := json.Marshal(l.linuxCapabilitiesSetBase.val)
if err != nil {
panic(err)
}
@@ -130,7 +130,7 @@ func NewLinuxCapabilitiesRevokeSet(caps ...string) (*LinuxCapabilitiesRevokeSet,
}
func (l LinuxCapabilitiesRevokeSet) AsIsolator() Isolator {
- b, err := json.Marshal(l)
+ b, err := json.Marshal(l.linuxCapabilitiesSetBase.val)
if err != nil {
panic(err)
}
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/isolator_resources.go b/vendor/github.com/appc/spec/schema/types/isolator_resources.go
similarity index 89%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/isolator_resources.go
rename to vendor/github.com/appc/spec/schema/types/isolator_resources.go
index eb791ef..2ac5130 100644
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/types/isolator_resources.go
+++ b/vendor/github.com/appc/spec/schema/types/isolator_resources.go
@@ -128,6 +128,21 @@ func (r ResourceCPU) AssertValid() error {
return nil
}
+func (r ResourceCPU) AsIsolator() Isolator {
+ isol := isolatorMap[ResourceCPUName]()
+
+ b, err := json.Marshal(r.val)
+ if err != nil {
+ panic(err)
+ }
+ valRaw := json.RawMessage(b)
+ return Isolator{
+ Name: ResourceCPUName,
+ ValueRaw: &valRaw,
+ value: isol,
+ }
+}
+
func NewResourceCPUIsolator(request, limit string) (*ResourceCPU, error) {
req, err := resource.ParseQuantity(request)
if err != nil {
@@ -167,6 +182,21 @@ func (r ResourceMemory) AssertValid() error {
return nil
}
+func (r ResourceMemory) AsIsolator() Isolator {
+ isol := isolatorMap[ResourceMemoryName]()
+
+ b, err := json.Marshal(r.val)
+ if err != nil {
+ panic(err)
+ }
+ valRaw := json.RawMessage(b)
+ return Isolator{
+ Name: ResourceMemoryName,
+ ValueRaw: &valRaw,
+ value: isol,
+ }
+}
+
func NewResourceMemoryIsolator(request, limit string) (*ResourceMemory, error) {
req, err := resource.ParseQuantity(request)
if err != nil {
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/labels.go b/vendor/github.com/appc/spec/schema/types/labels.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/labels.go
rename to vendor/github.com/appc/spec/schema/types/labels.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/mountpoint.go b/vendor/github.com/appc/spec/schema/types/mountpoint.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/mountpoint.go
rename to vendor/github.com/appc/spec/schema/types/mountpoint.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/port.go b/vendor/github.com/appc/spec/schema/types/port.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/port.go
rename to vendor/github.com/appc/spec/schema/types/port.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/semver.go b/vendor/github.com/appc/spec/schema/types/semver.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/semver.go
rename to vendor/github.com/appc/spec/schema/types/semver.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/url.go b/vendor/github.com/appc/spec/schema/types/url.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/url.go
rename to vendor/github.com/appc/spec/schema/types/url.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/uuid.go b/vendor/github.com/appc/spec/schema/types/uuid.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/uuid.go
rename to vendor/github.com/appc/spec/schema/types/uuid.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/types/volume.go b/vendor/github.com/appc/spec/schema/types/volume.go
similarity index 66%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/types/volume.go
rename to vendor/github.com/appc/spec/schema/types/volume.go
index 6f49078..c5ae591 100644
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/types/volume.go
+++ b/vendor/github.com/appc/spec/schema/types/volume.go
@@ -21,10 +21,17 @@ import (
"net/url"
"path/filepath"
"strconv"
+ "strings"
"github.com/appc/spec/schema/common"
)
+const (
+ emptyVolumeDefaultMode = "0755"
+ emptyVolumeDefaultUID = 0
+ emptyVolumeDefaultGID = 0
+)
+
// Volume encapsulates a volume which should be mounted into the filesystem
// of all apps in a PodManifest
type Volume struct {
@@ -37,9 +44,9 @@ type Volume struct {
ReadOnly *bool `json:"readOnly,omitempty"`
// currently used only by "empty"
- Mode string `json:"mode,omitempty"`
- UID int `json:"uid,omitempty"`
- GID int `json:"gid,omitempty"`
+ Mode *string `json:"mode,omitempty"`
+ UID *int `json:"uid,omitempty"`
+ GID *int `json:"gid,omitempty"`
}
type volume Volume
@@ -54,13 +61,13 @@ func (v Volume) assertValid() error {
if v.Source != "" {
return errors.New("source for empty volume must be empty")
}
- if v.Mode == "" {
+ if v.Mode == nil {
return errors.New("mode for empty volume must be set")
}
- if v.UID == -1 {
+ if v.UID == nil {
return errors.New("uid for empty volume must be set")
}
- if v.GID == -1 {
+ if v.GID == nil {
return errors.New("gid for empty volume must be set")
}
return nil
@@ -68,6 +75,15 @@ func (v Volume) assertValid() error {
if v.Source == "" {
return errors.New("source for host volume cannot be empty")
}
+ if v.Mode != nil {
+ return errors.New("mode for host volume cannot be set")
+ }
+ if v.UID != nil {
+ return errors.New("uid for host volume cannot be set")
+ }
+ if v.GID != nil {
+ return errors.New("gid for host volume cannot be set")
+ }
if !filepath.IsAbs(v.Source) {
return errors.New("source for host volume must be absolute path")
}
@@ -79,21 +95,14 @@ func (v Volume) assertValid() error {
func (v *Volume) UnmarshalJSON(data []byte) error {
var vv volume
- vv.Mode = "0755"
- vv.UID = 0
- vv.GID = 0
if err := json.Unmarshal(data, &vv); err != nil {
return err
}
nv := Volume(vv)
+ maybeSetDefaults(&nv)
if err := nv.assertValid(); err != nil {
return err
}
- if nv.Kind != "empty" {
- nv.Mode = ""
- nv.UID = -1
- nv.GID = -1
- }
*v = nv
return nil
}
@@ -106,14 +115,35 @@ func (v Volume) MarshalJSON() ([]byte, error) {
}
func (v Volume) String() string {
- s := fmt.Sprintf("%s,kind=%s,readOnly=%t", v.Name, v.Kind, *v.ReadOnly)
+ s := []string{
+ v.Name.String(),
+ ",kind=",
+ v.Kind,
+ }
if v.Source != "" {
- s = s + fmt.Sprintf(",source=%s", v.Source)
+ s = append(s, ",source=")
+ s = append(s, v.Source)
}
- if v.Mode != "" && v.UID != -1 && v.GID != -1 {
- s = s + fmt.Sprintf(",mode=%s,uid=%d,gid=%d", v.Mode, v.UID, v.GID)
+ if v.ReadOnly != nil {
+ s = append(s, ",readOnly=")
+ s = append(s, strconv.FormatBool(*v.ReadOnly))
}
- return s
+ switch v.Kind {
+ case "empty":
+ if *v.Mode != emptyVolumeDefaultMode {
+ s = append(s, ",mode=")
+ s = append(s, *v.Mode)
+ }
+ if *v.UID != emptyVolumeDefaultUID {
+ s = append(s, ",uid=")
+ s = append(s, strconv.Itoa(*v.UID))
+ }
+ if *v.GID != emptyVolumeDefaultGID {
+ s = append(s, ",gid=")
+ s = append(s, strconv.Itoa(*v.GID))
+ }
+ }
+ return strings.Join(s, "")
}
// VolumeFromString takes a command line volume parameter and returns a volume
@@ -121,11 +151,7 @@ func (v Volume) String() string {
// Example volume parameters:
// database,kind=host,source=/tmp,readOnly=true
func VolumeFromString(vp string) (*Volume, error) {
- vol := Volume{
- Mode: "0755",
- UID: 0,
- GID: 0,
- }
+ var vol Volume
vp = "name=" + vp
vpQuery, err := common.MakeQueryString(vp)
@@ -138,6 +164,7 @@ func VolumeFromString(vp string) (*Volume, error) {
return nil, err
}
for key, val := range v {
+ val := val
if len(val) > 1 {
return nil, fmt.Errorf("label %s with multiple values %q", key, val)
}
@@ -160,32 +187,50 @@ func VolumeFromString(vp string) (*Volume, error) {
}
vol.ReadOnly = &ro
case "mode":
- vol.Mode = val[0]
+ vol.Mode = &val[0]
case "uid":
u, err := strconv.Atoi(val[0])
if err != nil {
return nil, err
}
- vol.UID = u
+ vol.UID = &u
case "gid":
g, err := strconv.Atoi(val[0])
if err != nil {
return nil, err
}
- vol.GID = g
+ vol.GID = &g
default:
return nil, fmt.Errorf("unknown volume parameter %q", key)
}
}
+
+ maybeSetDefaults(&vol)
+
err = vol.assertValid()
if err != nil {
return nil, err
}
- if vol.Kind != "empty" {
- vol.Mode = ""
- vol.UID = -1
- vol.GID = -1
- }
return &vol, nil
}
+
+// maybeSetDefaults sets the correct default values for certain fields on a
+// Volume if they are not already been set. These fields are not
+// pre-populated on all Volumes as the Volume type is polymorphic.
+func maybeSetDefaults(vol *Volume) {
+ if vol.Kind == "empty" {
+ if vol.Mode == nil {
+ m := emptyVolumeDefaultMode
+ vol.Mode = &m
+ }
+ if vol.UID == nil {
+ u := emptyVolumeDefaultUID
+ vol.UID = &u
+ }
+ if vol.GID == nil {
+ g := emptyVolumeDefaultGID
+ vol.GID = &g
+ }
+ }
+}
diff --git a/Godeps/_workspace/src/github.com/appc/spec/schema/version.go b/vendor/github.com/appc/spec/schema/version.go
similarity index 97%
rename from Godeps/_workspace/src/github.com/appc/spec/schema/version.go
rename to vendor/github.com/appc/spec/schema/version.go
index 395ec35..eaa5f8b 100644
--- a/Godeps/_workspace/src/github.com/appc/spec/schema/version.go
+++ b/vendor/github.com/appc/spec/schema/version.go
@@ -22,7 +22,7 @@ const (
// version represents the canonical version of the appc spec and tooling.
// For now, the schema and tooling is coupled with the spec itself, so
// this must be kept in sync with the VERSION file in the root of the repo.
- version string = "0.7.1+git"
+ version string = "0.8.1"
)
var (
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE b/vendor/github.com/blablacar/dgr/LICENSE.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE
rename to vendor/github.com/blablacar/dgr/LICENSE.md
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/spec/ac-fullname.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/acfullname.go
similarity index 73%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/spec/ac-fullname.go
rename to vendor/github.com/blablacar/dgr/bin-dgr/common/acfullname.go
index ab7613c..563fde3 100644
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/spec/ac-fullname.go
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/acfullname.go
@@ -1,10 +1,12 @@
-package spec
+package common
import (
"encoding/json"
- log "github.com/Sirupsen/logrus"
"github.com/appc/spec/discovery"
"github.com/juju/errors"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/n0rad/go-erlog/logs"
"net/http"
"regexp"
"strings"
@@ -31,15 +33,19 @@ func (n ACFullname) LatestVersion() (string, error) {
app.Labels["arch"] = "amd64"
}
- endpoint, _, err := discovery.DiscoverEndpoints(*app, nil, false)
+ endpoints, _, err := discovery.DiscoverACIEndpoints(*app, nil, discovery.InsecureTLS|discovery.InsecureHTTP) //TODO support security
if err != nil {
return "", errors.Annotate(err, "Latest discovery fail")
}
- r, _ := regexp.Compile(`^(\d+\.)?(\d+\.)?(\*|\d+)(\-[\dA-Za-z]+){0,1}$`)
+ r, _ := regexp.Compile(`^(\d+\.)?(\d+\.)?(\*|\d+)(\-[\dA-Za-z]+){0,1}$`) // TODO this is nexus specific
- url := getRedirectForLatest(endpoint.ACIEndpoints[0].ACI)
- log.Debug("latest version url is ", url)
+ if len(endpoints) == 0 {
+ return "", errs.WithF(data.WithField("aci", string(n)), "Discovery does not give an endpoint to check latest version")
+ }
+
+ url := getRedirectForLatest(endpoints[0].ACI)
+ logs.WithField("url", url).Debug("latest verion url")
for _, part := range strings.Split(url, "/") {
if r.Match([]byte(part)) {
@@ -57,7 +63,7 @@ func (n ACFullname) String() string {
return string(n)
}
-/* example.com/yopla:1 */
+/* example.com/dgr/yopla:1 */
func NewACFullName(s string) *ACFullname {
n := ACFullname(s)
return &n
@@ -85,13 +91,20 @@ func (n ACFullname) Version() string {
}
/* yopla:1 */
-func (n ACFullname) ShortNameId() string {
- return strings.Split(string(n), "/")[1]
+func (n ACFullname) TinyNameId() string {
+ split := strings.Split(string(n), "/")
+ return split[len(split)-1]
}
-/* yopla */
+/* dgr/yopla */
func (n ACFullname) ShortName() string {
- return strings.Split(n.Name(), "/")[1]
+ return strings.SplitN(n.Name(), "/", 2)[1]
+}
+
+/* yopla */
+func (n ACFullname) TinyName() string {
+ split := strings.Split(n.Name(), "/")
+ return split[len(split)-1]
}
/* example.com */
@@ -99,7 +112,7 @@ func (n ACFullname) DomainName() string {
return strings.Split(n.Name(), "/")[0]
}
-/* example.com/yopla */
+/* example.com/dgr/yopla */
func (n ACFullname) Name() string {
return strings.Split(string(n), ":")[0]
}
diff --git a/vendor/github.com/blablacar/dgr/bin-dgr/common/aci-manifest.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/aci-manifest.go
new file mode 100644
index 0000000..c75f8ba
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/aci-manifest.go
@@ -0,0 +1,146 @@
+package common
+
+import (
+ "encoding/json"
+ "github.com/appc/spec/aci"
+ "github.com/appc/spec/schema"
+ "github.com/appc/spec/schema/types"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "io"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "time"
+)
+
+func ExtractManifestContentFromAci(aciPath string) ([]byte, error) {
+ fields := data.WithField("file", aciPath)
+ input, err := os.Open(aciPath)
+ if err != nil {
+ return nil, errs.WithEF(err, fields, "Cannot open file")
+ }
+ defer input.Close()
+
+ tr, err := aci.NewCompressedTarReader(input)
+ if err != nil {
+ return nil, errs.WithEF(err, fields, "Cannot open file as tar")
+ }
+
+Tar:
+ for {
+ hdr, err := tr.Next()
+ switch err {
+ case io.EOF:
+ break Tar
+ case nil:
+ if filepath.Clean(hdr.Name) == aci.ManifestFile {
+ bytes, err := ioutil.ReadAll(tr)
+ if err != nil {
+ return nil, errs.WithEF(err, fields, "Cannot read manifest content in tar")
+ }
+ return bytes, nil
+ }
+ default:
+ return nil, errs.WithEF(err, fields, "error reading tarball file")
+ }
+ }
+ return nil, errs.WithEF(err, fields, "Cannot found manifest in file")
+}
+
+func ExtractManifestFromAci(aciPath string) (*schema.ImageManifest, error) {
+ fields := data.WithField("file", aciPath)
+ content, err := ExtractManifestContentFromAci(aciPath)
+ if err != nil {
+ return nil, errs.WithEF(err, fields, "Cannot extract aci manifest content from file")
+ }
+ im := &schema.ImageManifest{}
+
+ err = im.UnmarshalJSON(content)
+ if err != nil {
+ return nil, errs.WithEF(err, fields.WithField("content", string(content)), "Cannot unmarshall json content")
+ }
+ return im, nil
+}
+
+func WriteAciManifest(m *AciManifest, targetFile string, projectName string, dgrVersion string) error {
+ fields := data.WithField("name", m.NameAndVersion.String())
+ name, err := types.NewACIdentifier(projectName)
+ if err != nil {
+ return errs.WithEF(err, fields, "aci name is not a valid identifier for rkt")
+ }
+
+ labels := types.Labels{}
+ if m.NameAndVersion.Version() != "" {
+ labels = append(labels, types.Label{Name: "version", Value: m.NameAndVersion.Version()})
+ }
+ labels = append(labels, types.Label{Name: "os", Value: "linux"})
+ labels = append(labels, types.Label{Name: "arch", Value: "amd64"})
+
+ if m.Aci.App.User == "" {
+ m.Aci.App.User = "0"
+ }
+ if m.Aci.App.Group == "" {
+ m.Aci.App.Group = "0"
+ }
+
+ im := schema.BlankImageManifest()
+ im.Annotations = m.Aci.Annotations
+
+ //dgrBuilderIdentifier, _ := types.NewACIdentifier(ManifestDrgBuilder)
+ dgrVersionIdentifier, _ := types.NewACIdentifier(ManifestDrgVersion)
+ buildDateIdentifier, _ := types.NewACIdentifier("build-date")
+ im.Annotations.Set(*dgrVersionIdentifier, dgrVersion)
+ //im.Annotations.Set(*dgrBuilderIdentifier, m.Builder.Image.String())
+ im.Annotations.Set(*buildDateIdentifier, time.Now().Format(time.RFC3339))
+ im.Dependencies, err = ToAppcDependencies(m.Aci.Dependencies)
+ if err != nil {
+ return errs.WithEF(err, fields, "Failed to prepare dependencies for manifest")
+ }
+ im.Name = *name
+ im.Labels = labels
+
+ if len(m.Aci.App.Exec) == 0 {
+ m.Aci.App.Exec = []string{"/dgr/bin/busybox", "sh"}
+ }
+
+ im.App = &types.App{
+ Exec: m.Aci.App.Exec,
+ EventHandlers: []types.EventHandler{{Name: "pre-start", Exec: []string{"/dgr/bin/prestart"}}},
+ User: m.Aci.App.User,
+ Group: m.Aci.App.Group,
+ WorkingDirectory: m.Aci.App.WorkingDirectory,
+ SupplementaryGIDs: m.Aci.App.SupplementaryGIDs,
+ Environment: m.Aci.App.Environment,
+ MountPoints: m.Aci.App.MountPoints,
+ Ports: m.Aci.App.Ports,
+ Isolators: m.Aci.App.Isolators,
+ }
+ buff, err := json.MarshalIndent(im, "", " ")
+ if err != nil {
+ return errs.WithEF(err, fields.WithField("object", im), "Failed to marshal manifest")
+ }
+ err = ioutil.WriteFile(targetFile, buff, 0644)
+ if err != nil {
+ return errs.WithEF(err, fields.WithField("file", targetFile), "Failed to write manifest file")
+ }
+ return nil
+}
+
+func ToAppcDependencies(dependencies []ACFullname) (types.Dependencies, error) {
+ appcDependencies := types.Dependencies{}
+ for _, dep := range dependencies {
+ id, err := types.NewACIdentifier(dep.Name())
+ if err != nil {
+ return nil, errs.WithEF(err, data.WithField("name", dep.Name()), "invalid identifer name for rkt")
+ }
+ t := types.Dependency{ImageName: *id}
+ if dep.Version() != "" {
+ t.Labels = types.Labels{}
+ t.Labels = append(t.Labels, types.Label{Name: "version", Value: dep.Version()})
+ }
+
+ appcDependencies = append(appcDependencies, t)
+ }
+ return appcDependencies, nil
+}
diff --git a/vendor/github.com/blablacar/dgr/bin-dgr/common/common.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/common.go
new file mode 100644
index 0000000..512ade5
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/common.go
@@ -0,0 +1,45 @@
+package common
+
+import (
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+)
+
+const PathImageAci = "/image.aci"
+const PathManifest = "/manifest"
+const PathRootfs = "/rootfs"
+const PathAciManifest = "/aci-manifest.yml"
+const PathManifestYmlTmpl = "/aci-manifest.yml.tmpl"
+
+const EnvDgrVersion = "DGR_VERSION"
+const EnvAciPath = "ACI_PATH"
+const EnvAciTarget = "ACI_TARGET"
+const EnvLogLevel = "LOG_LEVEL"
+const EnvCatchOnError = "CATCH_ON_ERROR"
+const EnvCatchOnStep = "CATCH_ON_STEP"
+
+const EnvBuilderCommand = "BUILDER_COMMAND"
+const PrefixBuilder = "builder/"
+
+const ManifestDrgVersion = "dgr-version"
+
+type BuilderCommand string
+
+const (
+ CommandBuild BuilderCommand = "build"
+ CommandInit BuilderCommand = "init"
+ CommandTry BuilderCommand = "try"
+)
+
+func (b BuilderCommand) CommandManifestKey() (string, error) {
+ switch b {
+ case CommandBuild:
+ return "blablacar.github.io/dgr/stage1/build", nil
+ case CommandInit:
+ return "blablacar.github.io/dgr/stage1/init", nil
+ case CommandTry:
+ return "blablacar.github.io/dgr/stage1/try", nil
+ default:
+ return "", errs.WithF(data.WithField("command", b), "Unimplemented command manifest key")
+ }
+}
diff --git a/vendor/github.com/blablacar/dgr/bin-dgr/common/dgr-manifest.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/dgr-manifest.go
new file mode 100644
index 0000000..f931a23
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/dgr-manifest.go
@@ -0,0 +1,123 @@
+package common
+
+import (
+ "bufio"
+ "bytes"
+ "github.com/appc/spec/schema"
+ "github.com/appc/spec/schema/types"
+ "github.com/blablacar/dgr/bin-templater/template"
+ "github.com/ghodss/yaml"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/n0rad/go-erlog/logs"
+)
+
+type PodManifest struct {
+ Name ACFullname `json:"name,omitempty" yaml:"name,omitempty"`
+ Pod *PodDefinition `json:"pod,omitempty" yaml:"pod,omitempty"`
+}
+
+type PodDefinition struct {
+ Apps []RuntimeApp `json:"apps,omitempty" yaml:"apps,omitempty"`
+ Volumes []types.Volume `json:"volumes,omitempty" yaml:"volumes,omitempty"`
+ Isolators []types.Isolator `json:"isolators,omitempty" yaml:"isolators,omitempty"`
+ Annotations types.Annotations `json:"annotations,omitempty" yaml:"annotations,omitempty"`
+ Ports []types.ExposedPort `json:"ports,omitempty" yaml:"ports,omitempty"`
+}
+
+type RuntimeApp struct {
+ Dependencies []ACFullname `json:"dependencies,omitempty" yaml:"dependencies,omitempty"`
+ Name string `json:"name,omitempty" yaml:"name,omitempty"`
+ App DgrApp `json:"app,omitempty" yaml:"app,omitempty"`
+ Mounts []schema.Mount `json:"mounts,omitempty" yaml:"mounts,omitempty"`
+ Annotations types.Annotations `json:"annotations,omitempty" yaml:"annotations,omitempty"`
+}
+
+type Env struct {
+ Name string `json:"name"`
+ Value string `json:"value"`
+}
+
+type MountInfo struct {
+ From string `json:"from"`
+ To string `json:"to"`
+}
+
+type BuildDefinition struct {
+ Image ACFullname `json:"image,omitempty" yaml:"image,omitempty"`
+ Dependencies []ACFullname `json:"dependencies,omitempty" yaml:"dependencies,omitempty"`
+ MountPoints []MountInfo `json:"mountPoints,omitempty" yaml:"mountPoints,omitempty"`
+}
+
+type AciManifest struct {
+ NameAndVersion ACFullname `json:"name,omitempty" yaml:"name,omitempty"`
+ Builder BuildDefinition `json:"builder,omitempty" yaml:"builder,omitempty"`
+ Aci AciDefinition `json:"aci,omitempty" yaml:"aci,omitempty"`
+ Tester TestManifest `json:"tester,omitempty" yaml:"tester,omitempty"`
+}
+
+type TestManifest struct {
+ Builder BuildDefinition `json:"builder,omitempty" yaml:"builder,omitempty"`
+ Aci AciDefinition `json:"aci,omitempty" yaml:"aci,omitempty"`
+}
+
+type AciDefinition struct {
+ App DgrApp `json:"app,omitempty" yaml:"app,omitempty"`
+ Annotations types.Annotations `json:"annotations,omitempty" yaml:"annotations,omitempty"`
+ Dependencies []ACFullname `json:"dependencies,omitempty" yaml:"dependencies,omitempty"`
+ PathWhitelist []string `json:"pathWhitelist,omitempty" yaml:"pathWhitelist,omitempty"`
+}
+
+type DgrApp struct {
+ Exec types.Exec `json:"exec,omitempty" yaml:"exec,omitempty"`
+ User string `json:"user,omitempty" yaml:"user,omitempty"`
+ Group string `json:"group,omitempty" yaml:"group,omitempty"`
+ SupplementaryGIDs []int `json:"supplementaryGIDs,omitempty" yaml:"supplementaryGIDs,omitempty"`
+ WorkingDirectory string `json:"workingDirectory,omitempty" yaml:"workingDirectory,omitempty"`
+ Environment types.Environment `json:"environment,omitempty" yaml:"environment,omitempty"`
+ MountPoints []types.MountPoint `json:"mountPoints,omitempty" yaml:"mountPoints,omitempty"`
+ Ports []types.Port `json:"ports,omitempty" yaml:"ports,omitempty"`
+ Isolators types.Isolators `json:"isolators,omitempty" yaml:"isolators,omitempty"`
+}
+
+func ProcessManifestTemplate(manifestContent string, data2 interface{}, checkNoValue bool) (*AciManifest, error) {
+ manifest := AciManifest{Aci: AciDefinition{}}
+ fields := data.WithField("source", manifestContent)
+
+ template, err := template.NewTemplating(nil, "", manifestContent)
+ if err != nil {
+ return nil, errs.WithEF(err, fields, "Failed to load templating of manifest")
+ }
+
+ var b bytes.Buffer
+ writer := bufio.NewWriter(&b)
+ if err := template.Execute(writer, data2); err != nil {
+ return nil, errs.WithEF(err, fields, "Failed to template manifest")
+ }
+ if err := writer.Flush(); err != nil {
+ return nil, errs.WithEF(err, fields, "Failed to flush buffer")
+ }
+
+ templated := b.Bytes()
+ if logs.IsDebugEnabled() {
+ logs.WithField("content", string(templated)).Debug("Templated manifest")
+ }
+
+ if checkNoValue {
+ scanner := bufio.NewScanner(bytes.NewReader(templated))
+ scanner.Split(bufio.ScanLines)
+ for i := 1; scanner.Scan(); i++ {
+ text := scanner.Text()
+ if bytes.Contains([]byte(text), []byte("")) {
+ return nil, errs.WithF(fields.WithField("line", i).WithField("text", text), "Templating result of manifest have ")
+ }
+ }
+ }
+
+ err = yaml.Unmarshal(templated, &manifest)
+ if err != nil {
+ return nil, errs.WithEF(err, fields, "Cannot unmarshall manifest")
+ }
+
+ return &manifest, nil
+}
diff --git a/vendor/github.com/blablacar/dgr/bin-dgr/common/exec.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/exec.go
new file mode 100644
index 0000000..a3493bf
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/exec.go
@@ -0,0 +1,63 @@
+package common
+
+import (
+ "bytes"
+ "github.com/n0rad/go-erlog/logs"
+ "os"
+ "os/exec"
+ "strings"
+)
+
+func ExecCmdGetStdoutAndStderr(head string, parts ...string) (string, string, error) {
+ var stdout bytes.Buffer
+ var stderr bytes.Buffer
+
+ if logs.IsDebugEnabled() {
+ logs.WithField("command", strings.Join([]string{head, " ", strings.Join(parts, " ")}, " ")).Debug("Running external command")
+ }
+ cmd := exec.Command(head, parts...)
+ cmd.Stdout = &stdout
+ cmd.Stderr = &stderr
+ cmd.Start()
+ err := cmd.Wait()
+ return strings.TrimSpace(stdout.String()), strings.TrimSpace(stderr.String()), err
+}
+
+func ExecCmdGetOutput(head string, parts ...string) (string, error) {
+ var stdout bytes.Buffer
+
+ if logs.IsDebugEnabled() {
+ logs.WithField("command", strings.Join([]string{head, " ", strings.Join(parts, " ")}, " ")).Debug("Running external command")
+ }
+ cmd := exec.Command(head, parts...)
+ cmd.Stdout = &stdout
+ cmd.Stderr = os.Stderr
+ cmd.Start()
+ err := cmd.Wait()
+ return strings.TrimSpace(stdout.String()), err
+}
+
+func ExecCmdGetStderr(head string, parts ...string) (string, error) {
+ var stderr bytes.Buffer
+
+ if logs.IsDebugEnabled() {
+ logs.WithField("command", strings.Join([]string{head, " ", strings.Join(parts, " ")}, " ")).Debug("Running external command")
+ }
+ cmd := exec.Command(head, parts...)
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = &stderr
+ cmd.Start()
+ err := cmd.Wait()
+ return strings.TrimSpace(stderr.String()), err
+}
+
+func ExecCmd(head string, parts ...string) error {
+ if logs.IsDebugEnabled() {
+ logs.WithField("command", strings.Join([]string{head, " ", strings.Join(parts, " ")}, " ")).Debug("Running external command")
+ }
+ cmd := exec.Command(head, parts...)
+ cmd.Stdout = os.Stdout
+ cmd.Stdin = os.Stdin
+ cmd.Stderr = os.Stderr
+ return cmd.Run()
+}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/utils.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/files.go
similarity index 52%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/utils/utils.go
rename to vendor/github.com/blablacar/dgr/bin-dgr/common/files.go
index 40399c0..62be1df 100644
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/utils.go
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/files.go
@@ -1,69 +1,23 @@
-package utils
+package common
import (
- "bytes"
"fmt"
- log "github.com/Sirupsen/logrus"
- "github.com/mitchellh/go-homedir"
"io"
- "math/rand"
"os"
- "os/exec"
- "strings"
- "time"
)
-func UserHomeOrFatal() string {
- usr, err := homedir.Dir()
+func IsDirEmpty(name string) (bool, error) {
+ f, err := os.Open(name)
if err != nil {
- panic(err)
+ return false, err
}
- return usr
-}
-
-func ExecCmdGetStdoutAndStderr(head string, parts ...string) (string, string, error) {
- var stdout bytes.Buffer
- var stderr bytes.Buffer
-
- log.Debug("Exec > ", head, " ", strings.Join(parts, " "))
- cmd := exec.Command(head, parts...)
- cmd.Stdout = &stdout
- cmd.Stderr = &stderr
- cmd.Start()
- err := cmd.Wait()
- return strings.TrimSpace(stdout.String()), strings.TrimSpace(stderr.String()), err
-}
-
-func ExecCmdGetOutput(head string, parts ...string) (string, error) {
- var stdout bytes.Buffer
-
- log.Debug("Exec > ", head, " ", strings.Join(parts, " "))
- cmd := exec.Command(head, parts...)
- cmd.Stdout = &stdout
- cmd.Stderr = os.Stderr
- cmd.Start()
- err := cmd.Wait()
- return strings.TrimSpace(stdout.String()), err
-}
+ defer f.Close()
-func ExecCmd(head string, parts ...string) error {
- log.Debug("Exec > ", head, " ", strings.Join(parts, " "))
- cmd := exec.Command(head, parts...)
- cmd.Stdout = os.Stdout
- cmd.Stdin = os.Stdin
- cmd.Stderr = os.Stderr
- return cmd.Run()
-}
-
-var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
-
-func RandSeq(n int) string {
- rand.Seed(time.Now().UnixNano())
- b := make([]rune, n)
- for i := range b {
- b[i] = letters[rand.Intn(len(letters))]
+ _, err = f.Readdir(1)
+ if err == io.EOF {
+ return true, nil
}
- return string(b)
+ return false, err // Either not empty or error, suits both cases
}
func CopyDir(source string, dest string) (err error) {
@@ -132,20 +86,20 @@ func CopyFile(src, dst string) (err error) {
return
}
}
- if err = os.Link(src, dst); err == nil {
- return
- }
- err = copyFileContents(src, dst)
+ // if err = os.Link(src, dst); err == nil {
+ // return
+ // }
+ err = copyFileContents(src, dst, sfi)
return
}
-func copyFileContents(src, dst string) (err error) {
+func copyFileContents(src, dst string, sfi os.FileInfo) (err error) {
in, err := os.Open(src)
if err != nil {
return
}
defer in.Close()
- out, err := os.Create(dst)
+ out, err := os.OpenFile(dst, os.O_RDWR|os.O_CREATE|os.O_TRUNC, sfi.Mode())
if err != nil {
return
}
diff --git a/vendor/github.com/blablacar/dgr/bin-dgr/common/rkt-client.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/rkt-client.go
new file mode 100644
index 0000000..83310bc
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/rkt-client.go
@@ -0,0 +1,213 @@
+package common
+
+import (
+ "bufio"
+ "fmt"
+ "github.com/appc/spec/discovery"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/n0rad/go-erlog/logs"
+ "strings"
+)
+
+const rktSupportedVersion Version = "1.4.0"
+
+type InsecuOptions []string
+
+func (i InsecuOptions) ToDiscoveryInsecureOption() discovery.InsecureOption {
+ val := discovery.InsecureNone
+ for _, option := range i {
+ switch strings.ToLower(option) {
+ case "tls":
+ val |= discovery.InsecureTLS
+ case "http":
+ val |= discovery.InsecureHTTP
+ }
+ }
+ return val
+}
+
+func (i InsecuOptions) HasImage() bool {
+ for _, option := range i {
+ if strings.ToLower(option) == "image" {
+ return true
+ }
+ }
+ return false
+}
+
+type RktConfig struct {
+ Path string `yaml:"path"`
+ InsecureOptions InsecuOptions `yaml:"insecureOptions"`
+ dir string `yaml:"dir"`
+ LocalConfig string `yaml:"localConfig"`
+ SystemConfig string `yaml:"systemConfig"`
+ UserConfig string `yaml:"userConfig"`
+ TrustKeysFromHttps bool `yaml:"trustKeysFromHttps"`
+ NoStore bool `yaml:"noStore"`
+ StoreOnly bool `yaml:"storeOnly"`
+}
+
+type RktClient struct {
+ config RktConfig
+ globalArgs []string
+ fields data.Fields
+}
+
+func NewRktClient(config RktConfig) (*RktClient, error) {
+ if len(config.InsecureOptions) == 0 {
+ config.InsecureOptions = []string{"ondisk", "image"}
+ }
+
+ rkt := &RktClient{
+ fields: data.WithField("config", config),
+ config: config,
+ globalArgs: config.prepareGlobalArgs(config.InsecureOptions),
+ }
+
+ v, err := rkt.Version()
+ if err != nil {
+ return nil, err
+ }
+ if v.LessThan(rktSupportedVersion) {
+ return nil, errs.WithF(rkt.fields.WithField("current", v).WithField("required", ">="+rktSupportedVersion), "Unsupported version of rkt")
+ }
+
+ logs.WithField("version", v).WithField("args", rkt.globalArgs).Debug("New rkt client")
+ return rkt, nil
+}
+
+func (rktCfg *RktConfig) prepareGlobalArgs(insecureOptions []string) []string {
+ args := []string{}
+
+ cmd := "rkt"
+ if rktCfg.Path != "" {
+ cmd = rktCfg.Path
+ }
+ args = append(args, cmd)
+
+ if logs.IsDebugEnabled() {
+ args = append(args, "--debug")
+ }
+ if rktCfg.TrustKeysFromHttps {
+ args = append(args, "--trust-keys-from-https")
+ }
+ if rktCfg.UserConfig != "" {
+ args = append(args, "--user-config="+rktCfg.UserConfig)
+ }
+ if rktCfg.LocalConfig != "" {
+ args = append(args, "--local-config="+rktCfg.LocalConfig)
+ }
+ if rktCfg.SystemConfig != "" {
+ args = append(args, "--system-config="+rktCfg.SystemConfig)
+ }
+ if rktCfg.dir != "" {
+ args = append(args, "--rkt.dir="+rktCfg.dir)
+ }
+ args = append(args, "--insecure-options="+strings.Join(insecureOptions, ","))
+ return args
+}
+
+func (rkt *RktClient) argsStore(cmd []string, globalArgs []string, cmdArgs ...string) []string {
+ args := globalArgs[1:]
+ args = append(args, cmd...)
+ if rkt.config.NoStore {
+ args = append(args, "--no-store")
+ }
+ if rkt.config.StoreOnly {
+ args = append(args, "--store-only")
+ }
+ args = append(args, cmdArgs...)
+ return args
+}
+
+func (rkt *RktClient) GetPath() (string, error) {
+ if rkt.config.Path != "" {
+ return rkt.config.Path, nil
+ }
+ return ExecCmdGetOutput("/bin/bash", "-c", "command -v rkt")
+}
+
+func (rkt *RktClient) Version() (Version, error) {
+ output, err := ExecCmdGetOutput(rkt.globalArgs[0], "version")
+ if err != nil {
+ return "", errs.WithEF(err, rkt.fields, "Failed to get rkt Version")
+ }
+
+ scanner := bufio.NewScanner(strings.NewReader(output))
+ for scanner.Scan() {
+ line := scanner.Text()
+ if strings.HasPrefix(line, "rkt Version:") {
+ var versionString string
+ if read, err := fmt.Sscanf(line, "rkt Version: %s", &versionString); read != 1 || err != nil {
+ return "", errs.WithEF(err, rkt.fields.WithField("cpntent", line), "Failed to read rkt version")
+ }
+ version := Version(versionString)
+ return version, nil
+ }
+ }
+ return "", errs.WithF(rkt.fields.WithField("content", output), "Cannot found rkt version from rkt call")
+}
+
+func (rkt *RktClient) Fetch(image string) (string, error) {
+ hash, err := ExecCmdGetOutput(rkt.globalArgs[0], rkt.argsStore([]string{"fetch"}, rkt.globalArgs, "--full", image)...)
+ if err != nil {
+ return "", errs.WithEF(err, rkt.fields.WithField("image", image), "Failed to fetch image")
+ }
+ return hash, err
+}
+
+func (rkt *RktClient) FetchInsecure(image string) (string, error) {
+ globalArgs := rkt.globalArgs
+ if !rkt.config.InsecureOptions.HasImage() {
+ globalArgs = rkt.config.prepareGlobalArgs(append(rkt.config.InsecureOptions, "image"))
+ }
+ hash, err := ExecCmdGetOutput(rkt.globalArgs[0], rkt.argsStore([]string{"fetch"}, globalArgs, "--full", image)...)
+ if err != nil {
+ return "", errs.WithEF(err, rkt.fields.WithField("image", image), "Failed to fetch image")
+ }
+ return hash, err
+}
+
+func (rkt *RktClient) CatManifest(image string) (string, error) {
+ content, err := ExecCmdGetOutput(rkt.globalArgs[0], append(rkt.globalArgs[1:], "image", "cat-manifest", image)...)
+ if err != nil {
+ return "", errs.WithEF(err, rkt.fields.WithField("image", image), "Failed to cat manifest")
+ }
+ return content, err
+}
+
+func (rkt *RktClient) ImageRm(images string) error {
+ stdout, stderr, err := ExecCmdGetStdoutAndStderr(rkt.globalArgs[0], append(rkt.globalArgs[1:], "image", "rm", images)...)
+ if err != nil {
+ return errs.WithEF(err, rkt.fields.WithField("images", images).WithField("stdout", stdout).WithField("stderr", stderr), "Failed to cat manifest")
+ }
+ return err
+}
+
+func (rkt *RktClient) RmFromFile(path string) (string, string, error) {
+ out, stderr, err := ExecCmdGetStdoutAndStderr(rkt.globalArgs[0], append(rkt.globalArgs[1:], "rm", "--uuid-file", path)...)
+ if err != nil {
+ return "", "", errs.WithEF(err, rkt.fields.WithField("path", path).
+ WithField("stdout", out).
+ WithField("stderr", stderr), "Failed to remove containers")
+ }
+ return out, stderr, err
+}
+
+func (rkt *RktClient) Rm(uuids string) (string, string, error) {
+ out, stderr, err := ExecCmdGetStdoutAndStderr(rkt.globalArgs[0], append(rkt.globalArgs[1:], "rm", uuids)...)
+ if err != nil {
+ return "", "", errs.WithEF(err, rkt.fields.WithField("uuids", uuids).
+ WithField("stdout", out).
+ WithField("stderr", stderr), "Failed to remove containers")
+ }
+ return out, stderr, err
+}
+
+func (rkt *RktClient) Run(args []string) error {
+ if err := ExecCmd(rkt.globalArgs[0], append(append(rkt.globalArgs[1:], "run"), args...)...); err != nil {
+ return errs.WithEF(err, rkt.fields, "Run failed")
+ }
+ return nil
+}
diff --git a/vendor/github.com/blablacar/dgr/bin-dgr/common/tar.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/tar.go
new file mode 100644
index 0000000..1da0af8
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/tar.go
@@ -0,0 +1,11 @@
+package common
+
+func Tar(destination string, source ...string) error { // remove zip
+ source = append(source, "")
+ source = append(source, "")
+ copy(source[2:], source[0:])
+ source[0] = "cpf"
+ source[1] = destination
+
+ return ExecCmd("tar", source...)
+}
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/version.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/version.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/utils/version.go
rename to vendor/github.com/blablacar/dgr/bin-dgr/common/version.go
index cc5acad..d7eb22e 100644
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/utils/version.go
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/version.go
@@ -1,4 +1,4 @@
-package utils
+package common
import (
"strconv"
diff --git a/vendor/github.com/blablacar/dgr/bin-dgr/common/version_generator.go b/vendor/github.com/blablacar/dgr/bin-dgr/common/version_generator.go
new file mode 100644
index 0000000..53ceea9
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-dgr/common/version_generator.go
@@ -0,0 +1,28 @@
+package common
+
+import (
+ "fmt"
+ "github.com/n0rad/go-erlog/logs"
+ "time"
+)
+
+func GenerateVersion(aciHome string) string {
+ version := generateDate()
+ if hash, err := GitHash(aciHome); err == nil {
+ version += "-v" + hash
+ }
+ return version
+}
+
+func generateDate() string {
+ return fmt.Sprintf("%s", time.Now().Format("20060102.150405"))
+}
+
+func GitHash(path string) (string, error) {
+ out, _, err := ExecCmdGetStdoutAndStderr("git", "-C", path, "rev-parse", "--short", "HEAD")
+ if err != nil {
+ logs.WithE(err).WithField("path", path).Debug("Failed to get git hash from path")
+ return "", err
+ }
+ return out, nil
+}
diff --git a/vendor/github.com/blablacar/dgr/bin-templater/template/directory.go b/vendor/github.com/blablacar/dgr/bin-templater/template/directory.go
new file mode 100644
index 0000000..2275bae
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-templater/template/directory.go
@@ -0,0 +1,129 @@
+package template
+
+import (
+ "io/ioutil"
+ "os"
+ "strings"
+ txttmpl "text/template"
+
+ "github.com/leekchan/gtf"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/n0rad/go-erlog/logs"
+)
+
+type TemplateDir struct {
+ continueOnError bool
+ fields data.Fields
+ src string
+ dst string
+ Partials *txttmpl.Template
+}
+
+func NewTemplateDir(path string, targetRoot string, continueOnError bool) (*TemplateDir, error) {
+ fields := data.WithField("dir", path).WithField("continueOnError", continueOnError)
+ logs.WithF(fields).Debug("Reading template dir")
+ tmplDir := &TemplateDir{
+ fields: fields,
+ src: path,
+ dst: targetRoot,
+ continueOnError: continueOnError,
+ }
+ return tmplDir, tmplDir.LoadPartial()
+}
+
+func (t *TemplateDir) LoadPartial() error {
+ partials := []string{}
+
+ directory, err := os.Open(t.src)
+ if err != nil {
+ return errs.WithEF(err, t.fields, "Failed to open template dir")
+ }
+ objects, err := directory.Readdir(-1)
+ if err != nil {
+ return errs.WithEF(err, t.fields, "Failed to read template dir")
+ }
+ for _, obj := range objects {
+ if !obj.IsDir() && strings.HasSuffix(obj.Name(), ".partial") {
+ partials = append(partials, t.src+"/"+obj.Name())
+ }
+ }
+
+ if len(partials) == 0 {
+ return nil
+ }
+ var tmpl *txttmpl.Template
+ for _, partial := range partials {
+ if tmpl == nil {
+ tmpl = txttmpl.New(partial).Funcs(TemplateFunctions).Funcs(map[string]interface{}(gtf.GtfFuncMap))
+ } else {
+ tmpl = tmpl.New(partial).Funcs(TemplateFunctions).Funcs(map[string]interface{}(gtf.GtfFuncMap))
+ }
+
+ content, err := ioutil.ReadFile(partial)
+ if err != nil {
+ return errs.WithEF(err, t.fields.WithField("partial", partial), "Cannot read partial file")
+ }
+ tmpl, err = tmpl.Funcs(TemplateFunctions).Parse(CleanupOfTemplate(string(content)))
+ if err != nil {
+ return errs.WithEF(err, t.fields.WithField("partial", partial), "Failed to parse partial")
+ }
+ }
+ t.Partials = tmpl
+ return nil
+}
+
+func (t *TemplateDir) Process(attributes map[string]interface{}) error {
+ if err := t.processSingleDir(t.src, t.dst, attributes); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (t *TemplateDir) processSingleDir(src string, dst string, attributes map[string]interface{}) error {
+ sourceInfo, err := os.Stat(src)
+ if err != nil {
+ return errs.WithEF(err, t.fields, "Cannot read source dir stat")
+ }
+
+ if err := os.MkdirAll(dst, sourceInfo.Mode()); err != nil {
+ return errs.WithEF(err, t.fields, "Cannot create target directory templates")
+ }
+
+ directory, err := os.Open(src)
+ if err != nil {
+ return errs.WithEF(err, t.fields, "Cannot open directory")
+ }
+ objects, err := directory.Readdir(-1)
+ if err != nil {
+ return errs.WithEF(err, t.fields, "Cannot list files in directory")
+ }
+ for _, obj := range objects {
+ srcObj := src + "/" + obj.Name()
+ dstObj := dst + "/" + obj.Name()
+ if obj.IsDir() {
+ if err := t.processSingleDir(srcObj, dstObj, attributes); err != nil {
+ return err
+ }
+ } else if strings.HasSuffix(obj.Name(), ".tmpl") || (strings.Contains(obj.Name(), ".tmpl.") && (!strings.HasSuffix(obj.Name(), ".cfg"))) {
+ if strings.HasSuffix(obj.Name(), ".tmpl") {
+ dstObj = dstObj[:len(dstObj)-5]
+ } else {
+ dstObj = dst + "/" + strings.Replace(obj.Name(), ".tmpl.", ".", 1)
+ }
+ template, err := NewTemplateFile(t.Partials, srcObj, obj.Mode())
+ if err != nil {
+ return err
+ }
+ if err2 := template.RunTemplate(dstObj, attributes, !t.continueOnError); err2 != nil {
+ if t.continueOnError {
+ err = err2
+ logs.WithEF(err, t.fields).Error("Templating failed")
+ } else {
+ return err2
+ }
+ }
+ }
+ }
+ return err
+}
diff --git a/vendor/github.com/blablacar/dgr/bin-templater/template/file.go b/vendor/github.com/blablacar/dgr/bin-templater/template/file.go
new file mode 100644
index 0000000..2f23ffd
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-templater/template/file.go
@@ -0,0 +1,140 @@
+package template
+
+import (
+ "bufio"
+ "bytes"
+ "io/ioutil"
+ "os"
+ "os/exec"
+ txttmpl "text/template"
+
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/n0rad/go-erlog/logs"
+ "gopkg.in/yaml.v2"
+)
+
+type TemplateFile struct {
+ Uid int `yaml:"uid"`
+ Gid int `yaml:"gid"`
+ CheckCmd string `yaml:"checkCmd"`
+
+ fields data.Fields
+ Mode os.FileMode
+ template *Templating
+}
+
+func NewTemplateFile(partials *txttmpl.Template, src string, mode os.FileMode) (*TemplateFile, error) {
+ fields := data.WithField("src", src)
+
+ content, err := ioutil.ReadFile(src)
+ if err != nil {
+ return nil, errs.WithEF(err, fields, "Cannot read template file")
+ }
+
+ template, err := NewTemplating(partials, src, string(content))
+ if err != nil {
+ return nil, errs.WithEF(err, fields, "Failed to prepare template")
+ }
+
+ t := &TemplateFile{
+ Uid: os.Getuid(),
+ Gid: os.Getgid(),
+ fields: fields,
+ template: template,
+ Mode: mode,
+ }
+ err = t.loadTemplateConfig(src)
+ logs.WithF(fields).WithField("data", t).Trace("Template loaded")
+ return t, err
+}
+
+func (t *TemplateFile) loadTemplateConfig(src string) error {
+ cfgPath := src + EXT_CFG
+ if _, err := os.Stat(cfgPath); os.IsNotExist(err) {
+ return nil
+ }
+
+ source, err := ioutil.ReadFile(cfgPath)
+ if err != nil {
+ return err
+ }
+ err = yaml.Unmarshal([]byte(source), t)
+ if err != nil {
+ return errs.WithEF(err, data.WithField("name", src), "Cannot unmarshall cfg")
+ }
+ return nil
+}
+
+func (f *TemplateFile) RunTemplate(dst string, attributes map[string]interface{}, failOnNoValue bool) error {
+ if logs.IsTraceEnabled() {
+ logs.WithF(f.fields).WithField("attributes", attributes).WithField("failOnNoValue", failOnNoValue).Trace("templating with attributes")
+ }
+ fields := f.fields.WithField("dst", dst)
+
+ logs.WithF(fields).Info("Templating file")
+
+ out, err := os.OpenFile(dst, os.O_RDWR|os.O_CREATE|os.O_TRUNC, f.Mode)
+ if err != nil {
+ return errs.WithEF(err, fields, "Cannot open destination file")
+ }
+ defer func() {
+ out.Close()
+ }()
+
+ buff := bytes.Buffer{}
+ writer := bufio.NewWriter(&buff)
+ if err := f.template.Execute(writer, attributes); err != nil {
+ return errs.WithEF(err, fields, "Templating execution failed")
+ }
+
+ if err := writer.Flush(); err != nil {
+ return errs.WithEF(err, fields, "Failed to flush buffer")
+ }
+ buff.WriteByte('\n')
+
+ b := buff.Bytes()
+
+ if logs.IsTraceEnabled() {
+ logs.WithF(f.fields).WithField("result", string(b)).Trace("templating done")
+ }
+
+ scanner := bufio.NewScanner(bytes.NewReader(b)) // TODO this sux
+ scanner.Split(bufio.ScanLines)
+ for i := 1; scanner.Scan(); i++ {
+ text := scanner.Text()
+ if bytes.Contains([]byte(text), []byte("")) {
+ err = errs.WithF(fields.WithField("line", i).WithField("text", text), "Templating result have ")
+ if failOnNoValue {
+ return err
+ } else {
+ logs.WithE(err).Error("Templating result have ")
+ }
+ }
+ }
+
+ if length, err := out.Write(b); length != len(b) || err != nil {
+ return errs.WithEF(err, fields, "Write to file failed")
+ }
+
+ if err = out.Sync(); err != nil {
+ return errs.WithEF(err, fields, "Failed to sync output file")
+ }
+ if err = os.Chmod(dst, f.Mode); err != nil {
+ return errs.WithEF(err, fields.WithField("file", dst), "Failed to set mode on file")
+ }
+ if err = os.Chown(dst, f.Uid, f.Gid); err != nil {
+ return errs.WithEF(err, fields.WithField("file", dst), "Failed to set owner of file")
+ }
+
+ if f.CheckCmd != "" {
+ cmd := exec.Command("/dgr/bin/busybox", "sh", "-c", f.CheckCmd)
+ cmd.Stdout = os.Stdout
+ cmd.Stdin = os.Stdin
+ cmd.Stderr = os.Stderr
+ if err = cmd.Run(); err != nil {
+ return errs.WithEF(err, fields.WithField("file", dst), "Check command failed after templating")
+ }
+ }
+ return err
+}
diff --git a/vendor/github.com/blablacar/dgr/bin-templater/template/templating.go b/vendor/github.com/blablacar/dgr/bin-templater/template/templating.go
new file mode 100644
index 0000000..49fdc43
--- /dev/null
+++ b/vendor/github.com/blablacar/dgr/bin-templater/template/templating.go
@@ -0,0 +1,355 @@
+package template
+
+import (
+ "bufio"
+ "encoding/json"
+ "fmt"
+ "io"
+ "os"
+ "path"
+ "reflect"
+ "sort"
+ "strings"
+ txttmpl "text/template"
+ "time"
+
+ "github.com/leekchan/gtf"
+ "gopkg.in/yaml.v2"
+)
+
+type Templating struct {
+ template *txttmpl.Template
+ name string
+ content string
+ functions map[string]interface{}
+}
+
+const EXT_CFG = ".cfg"
+
+var TemplateFunctions map[string]interface{}
+
+func NewTemplating(partials *txttmpl.Template, filePath, content string) (*Templating, error) {
+ t := Templating{
+ name: filePath,
+ content: CleanupOfTemplate(content),
+ functions: TemplateFunctions,
+ }
+ if partials == nil {
+ partials = txttmpl.New(t.name)
+ }
+
+ tmpl, err := partials.New(t.name).Funcs(t.functions).Funcs(map[string]interface{}(gtf.GtfFuncMap)).Parse(t.content)
+ t.template = tmpl
+ return &t, err
+}
+
+func CleanupOfTemplate(content string) string {
+ var lines []string
+ var currentLine string
+ scanner := bufio.NewScanner(strings.NewReader(string(content)))
+ for scanner.Scan() {
+ part := strings.TrimRight(scanner.Text(), " ")
+ leftTrim := strings.TrimLeft(part, " ")
+ if strings.HasPrefix(leftTrim, "{{-") {
+ part = "{{" + leftTrim[3:]
+ }
+ currentLine += part
+ if strings.HasSuffix(currentLine, "-}}") {
+ currentLine = currentLine[0:len(currentLine)-3] + "}}"
+ } else {
+ lines = append(lines, currentLine)
+ currentLine = ""
+ }
+ }
+ if currentLine != "" {
+ lines = append(lines, currentLine)
+ }
+ return strings.Join(lines, "\n")
+}
+
+func (t *Templating) Execute(wr io.Writer, data interface{}) error {
+ return t.template.Execute(wr, data)
+}
+
+func (t *Templating) AddFunction(name string, fn interface{}) {
+ t.functions[name] = fn
+}
+
+func (t *Templating) AddFunctions(fs map[string]interface{}) {
+ addFuncs(t.functions, fs)
+}
+
+///////////////////////////////////
+
+func ifOrDef(eif interface{}, yes interface{}, no interface{}) interface{} {
+ if eif != nil {
+ return yes
+ }
+ return no
+}
+
+func orDef(val interface{}, def interface{}) interface{} {
+ if val != nil {
+ return val
+ }
+ return def
+}
+
+func orDefs(val []interface{}, def interface{}) interface{} {
+ if val != nil && len(val) != 0 {
+ return val
+ }
+ return []interface{}{def}
+}
+
+func addFuncs(out, in map[string]interface{}) {
+ for name, fn := range in {
+ out[name] = fn
+ }
+}
+
+func UnmarshalJsonObject(data string) (map[string]interface{}, error) {
+ var ret map[string]interface{}
+ err := json.Unmarshal([]byte(data), &ret)
+ return ret, err
+}
+
+func UnmarshalJsonArray(data string) ([]interface{}, error) {
+ var ret []interface{}
+ err := json.Unmarshal([]byte(data), &ret)
+ return ret, err
+}
+
+func toJson(data interface{}) (string, error) {
+ res, err := json.MarshalIndent(data, "", " ")
+ return string(res), err
+}
+
+func toYaml(data interface{}) (string, error) {
+ res, err := yaml.Marshal(data)
+ return string(res), err
+}
+
+func IsType(data interface{}, t string) bool {
+ dataType := reflect.TypeOf(data)
+ if dataType == nil {
+ return false
+ }
+ if dataType.String() == t {
+ return true
+ }
+ return false
+}
+
+func IsKind(data interface{}, t string) bool {
+ dataType := reflect.TypeOf(data)
+ if dataType == nil {
+ return false
+ }
+ if dataType.Kind().String() == t {
+ return true
+ }
+ return false
+}
+
+func IsMap(data interface{}) bool {
+ dataType := reflect.TypeOf(data)
+ if dataType == nil {
+ return false
+ }
+ if dataType.Kind() == reflect.Map {
+ return true
+ }
+ return false
+}
+
+func IsArray(data interface{}) bool {
+ dataType := reflect.TypeOf(data)
+ if dataType == nil {
+ return false
+ }
+ if dataType.Kind() == reflect.Array || dataType.Kind() == reflect.Slice {
+ return true
+ }
+ return false
+}
+
+func IsString(data interface{}) bool {
+ dataType := reflect.TypeOf(data)
+ if dataType == nil {
+ return false
+ }
+ if dataType.Kind() == reflect.String {
+ return true
+ }
+ return false
+}
+
+func IsNil(data interface{}) bool {
+ dataType := reflect.TypeOf(data)
+ if dataType == nil {
+ return true
+ }
+ return false
+}
+
+func IsMapFirst(data interface{}, element interface{}) bool {
+ switch reflect.TypeOf(data).Kind() {
+ case reflect.Map:
+ mapItem := reflect.ValueOf(data).MapKeys()
+
+ var keys []string
+ for _, k := range mapItem {
+ keys = append(keys, k.String())
+ }
+ sort.Strings(keys)
+ mapItemType := keys[0]
+ return (mapItemType == element)
+ }
+ return false
+}
+
+func IsMapLast(data interface{}, element interface{}) bool {
+ switch reflect.TypeOf(data).Kind() {
+ case reflect.Map:
+ mapItem := reflect.ValueOf(data).MapKeys()
+
+ var keys []string
+ for _, k := range mapItem {
+ keys = append(keys, k.String())
+ }
+ sort.Strings(keys)
+ mapItemType := keys[len(keys)-1]
+ return (mapItemType == element)
+ }
+ return false
+}
+
+func HowDeep(data interface{}, element interface{}) int {
+ return HowDeepIsIt(data, element, 0)
+}
+
+func HowDeepIsIt(data interface{}, element interface{}, deep int) int {
+ elemType := reflect.TypeOf(element).Kind()
+ mapItem := reflect.ValueOf(data)
+ elemItem := reflect.ValueOf(element)
+ switch elemType {
+ case reflect.Map:
+ for _, b := range reflect.ValueOf(data).MapKeys() {
+ if reflect.DeepEqual(mapItem.MapIndex(b).Interface(), elemItem.Interface()) {
+ return deep + 1
+ }
+ if IsMap(mapItem.MapIndex(b).Interface()) {
+ index := HowDeepIsIt(mapItem.MapIndex(b).Interface(), element, deep+1)
+ if index == deep+2 {
+ return index
+ }
+ }
+ }
+ }
+
+ return deep
+}
+
+func add(x, y int) int {
+ return x + y
+}
+
+func mul(x, y int) int {
+ return x * y
+}
+
+func div(x, y int) int {
+ return x / y
+}
+
+func mod(x, y int) int {
+ return x % y
+}
+
+func sub(x, y int) int {
+ return x - y
+}
+
+func eq(args ...interface{}) bool {
+ if len(args) == 0 {
+ return false
+ }
+ x := args[0]
+ switch x := x.(type) {
+ case string, int, int64, byte, float32, float64:
+ for _, y := range args[1:] {
+ if x == y {
+ return true
+ }
+ }
+ return false
+ }
+
+ for _, y := range args[1:] {
+ if reflect.DeepEqual(x, y) {
+ return true
+ }
+ }
+ return false
+}
+
+type Cell struct{ v interface{} }
+
+func NewCell(v ...interface{}) (*Cell, error) {
+ switch len(v) {
+ case 0:
+ return new(Cell), nil
+ case 1:
+ return &Cell{v[0]}, nil
+ default:
+ return nil, fmt.Errorf("wrong number of args: want 0 or 1, got %v", len(v))
+ }
+}
+
+func (c *Cell) Set(v interface{}) *Cell { c.v = v; return c }
+func (c *Cell) Get() interface{} { return c.v }
+
+func init() {
+ TemplateFunctions = make(map[string]interface{})
+ TemplateFunctions["base"] = path.Base
+ TemplateFunctions["split"] = strings.Split
+ TemplateFunctions["json"] = UnmarshalJsonObject
+ TemplateFunctions["jsonArray"] = UnmarshalJsonArray
+ TemplateFunctions["dir"] = path.Dir
+ TemplateFunctions["getenv"] = os.Getenv
+ TemplateFunctions["join"] = strings.Join
+ TemplateFunctions["datetime"] = time.Now
+ TemplateFunctions["toUpper"] = strings.ToUpper
+ TemplateFunctions["toLower"] = strings.ToLower
+ TemplateFunctions["contains"] = strings.Contains
+ TemplateFunctions["replace"] = strings.Replace
+ TemplateFunctions["repeat"] = strings.Repeat
+ TemplateFunctions["hasPrefix"] = strings.HasPrefix
+ TemplateFunctions["hasSuffix"] = strings.HasSuffix
+ TemplateFunctions["orDef"] = orDef
+ TemplateFunctions["orDefs"] = orDefs
+ TemplateFunctions["ifOrDef"] = ifOrDef
+ TemplateFunctions["isType"] = IsType
+ TemplateFunctions["isMap"] = IsMap
+ TemplateFunctions["isArray"] = IsArray
+ TemplateFunctions["isKind"] = IsKind
+ TemplateFunctions["isString"] = IsString
+ TemplateFunctions["isMapFirst"] = IsMapFirst
+ TemplateFunctions["isNil"] = IsNil
+ TemplateFunctions["isMapLast"] = IsMapLast
+ TemplateFunctions["howDeep"] = HowDeep
+ TemplateFunctions["add"] = add
+ TemplateFunctions["mul"] = mul
+ TemplateFunctions["div"] = div
+ TemplateFunctions["sub"] = sub
+ TemplateFunctions["mod"] = mod
+ TemplateFunctions["toJson"] = toJson
+ TemplateFunctions["toYaml"] = toYaml
+ TemplateFunctions["cell"] = NewCell
+ TemplateFunctions["eq"] = eq
+
+ TemplateFunctions["IsMapFirst"] = IsMapFirst
+ TemplateFunctions["IsMapLast"] = IsMapLast
+ TemplateFunctions["HowDeep"] = HowDeep
+}
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/0doc.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/0doc.go
similarity index 91%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/0doc.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/0doc.go
index 14ea964..caa7e0a 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/0doc.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/0doc.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a MIT license found in the LICENSE file.
/*
-High Performance, Feature-Rich Idiomatic Go codec/encoding library for
+High Performance, Feature-Rich Idiomatic Go codec/encoding library for
binc, msgpack, cbor, json.
Supported Serialization formats are:
@@ -11,7 +11,7 @@ Supported Serialization formats are:
- binc: http://github.com/ugorji/binc
- cbor: http://cbor.io http://tools.ietf.org/html/rfc7049
- json: http://json.org http://tools.ietf.org/html/rfc7159
- - simple:
+ - simple:
To install:
@@ -19,7 +19,7 @@ To install:
This package understands the 'unsafe' tag, to allow using unsafe semantics:
- - When decoding into a struct, you need to read the field name as a string
+ - When decoding into a struct, you need to read the field name as a string
so you can find the struct field it is mapped to.
Using `unsafe` will bypass the allocation and copying overhead of []byte->string conversion.
@@ -38,9 +38,9 @@ Rich Feature Set includes:
- Very High Performance.
Our extensive benchmarks show us outperforming Gob, Json, Bson, etc by 2-4X.
- Multiple conversions:
- Package coerces types where appropriate
+ Package coerces types where appropriate
e.g. decode an int in the stream into a float, etc.
- - Corner Cases:
+ - Corner Cases:
Overflows, nil maps/slices, nil values in streams are handled correctly
- Standard field renaming via tags
- Support for omitting empty fields during an encoding
@@ -56,7 +56,7 @@ Rich Feature Set includes:
- Fast (no-reflection) encoding/decoding of common maps and slices
- Code-generation for faster performance.
- Support binary (e.g. messagepack, cbor) and text (e.g. json) formats
- - Support indefinite-length formats to enable true streaming
+ - Support indefinite-length formats to enable true streaming
(for formats which support it e.g. json, cbor)
- Support canonical encoding, where a value is ALWAYS encoded as same sequence of bytes.
This mostly applies to maps, where iteration order is non-deterministic.
@@ -64,16 +64,15 @@ Rich Feature Set includes:
- Never silently skip data when decoding.
User decides whether to return an error or silently skip data when keys or indexes
in the data stream do not map to fields in the struct.
- - Detect and error when encoding a cyclic reference (instead of stack overflow shutdown)
- Encode/Decode from/to chan types (for iterative streaming support)
- Drop-in replacement for encoding/json. `json:` key in struct tag supported.
- Provides a RPC Server and Client Codec for net/rpc communication protocol.
- - Handle unique idiosynchracies of codecs e.g.
- - For messagepack, configure how ambiguities in handling raw bytes are resolved
- - For messagepack, provide rpc server/client codec to support
+ - Handle unique idiosynchracies of codecs e.g.
+ - For messagepack, configure how ambiguities in handling raw bytes are resolved
+ - For messagepack, provide rpc server/client codec to support
msgpack-rpc protocol defined at:
https://github.com/msgpack-rpc/msgpack-rpc/blob/master/spec.md
-
+
Extension Support
Users can register a function to handle the encoding or decoding of
@@ -172,8 +171,6 @@ package codec
// TODO:
//
-// - optimization for codecgen:
-// if len of entity is <= 3 words, then support a value receiver for encode.
// - (En|De)coder should store an error when it occurs.
// Until reset, subsequent calls return that error that was stored.
// This means that free panics must go away.
@@ -193,7 +190,4 @@ package codec
// - Consider making Handle used AS-IS within the encoding/decoding session.
// This means that we don't cache Handle information within the (En|De)coder,
// except we really need it at Reset(...)
-// - Consider adding math/big support
-// - Consider reducing the size of the generated functions:
-// Maybe use one loop, and put the conditionals in the loop.
-// for ... { if cLen > 0 { if j == cLen { break } } else if dd.CheckBreak() { break } }
+// - Handle recursive types during encoding/decoding?
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/README.md b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/README.md
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/README.md
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/binc.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/binc.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/binc.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/binc.go
index 766d26c..c884d14 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/binc.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/binc.go
@@ -908,14 +908,10 @@ func (h *BincHandle) newDecDriver(d *Decoder) decDriver {
func (e *bincEncDriver) reset() {
e.w = e.e.w
- e.s = 0
- e.m = nil
}
func (d *bincDecDriver) reset() {
d.r = d.d.r
- d.s = nil
- d.bd, d.bdRead, d.vd, d.vs = 0, false, 0, 0
}
var _ decDriver = (*bincDecDriver)(nil)
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/cbor.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/cbor.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/cbor.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/cbor.go
index cfd89b7..0e5d32b 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/cbor.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/cbor.go
@@ -578,7 +578,6 @@ func (e *cborEncDriver) reset() {
func (d *cborDecDriver) reset() {
d.r = d.d.r
- d.bd, d.bdRead = 0, false
}
var _ decDriver = (*cborDecDriver)(nil)
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/decode.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/decode.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/decode.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/decode.go
index d842a24..b3b99f0 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/decode.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/decode.go
@@ -1862,7 +1862,6 @@ func (d *Decoder) intern(s string) {
}
}
-// nextValueBytes returns the next value in the stream as a set of bytes.
func (d *Decoder) nextValueBytes() []byte {
d.d.uncacheRead()
d.r.track()
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/encode.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/encode.go
similarity index 95%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/encode.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/encode.go
index d7ad330..99af6fa 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/encode.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/encode.go
@@ -110,15 +110,6 @@ type EncodeOptions struct {
//
Canonical bool
- // CheckCircularRef controls whether we check for circular references
- // and error fast during an encode.
- //
- // If enabled, an error is received if a pointer to a struct
- // references itself either directly or through one of its fields (iteratively).
- //
- // This is opt-in, as there may be a performance hit to checking circular references.
- CheckCircularRef bool
-
// AsSymbols defines what should be encoded as symbols.
//
// Encoding as symbols can reduce the encoded size significantly.
@@ -512,7 +503,7 @@ func (f *encFnInfo) kStruct(rv reflect.Value) {
newlen := len(fti.sfi)
// Use sync.Pool to reduce allocating slices unnecessarily.
- // The cost of sync.Pool is less than the cost of new allocation.
+ // The cost of the occasional locking is less than the cost of new allocation.
pool, poolv, fkvs := encStructPoolGet(newlen)
// if toMap, use the sorted array. If toArray, use unsorted array (to match sequence in struct)
@@ -523,6 +514,11 @@ func (f *encFnInfo) kStruct(rv reflect.Value) {
var kv stringRv
for _, si := range tisfi {
kv.r = si.field(rv, false)
+ // if si.i != -1 {
+ // rvals[newlen] = rv.Field(int(si.i))
+ // } else {
+ // rvals[newlen] = rv.FieldByIndex(si.is)
+ // }
if toMap {
if si.omitEmpty && isEmptyValue(kv.r) {
continue
@@ -600,15 +596,13 @@ func (f *encFnInfo) kStruct(rv reflect.Value) {
// f.e.encodeValue(rv.Elem())
// }
-// func (f *encFnInfo) kInterface(rv reflect.Value) {
-// println("kInterface called")
-// debug.PrintStack()
-// if rv.IsNil() {
-// f.e.e.EncodeNil()
-// return
-// }
-// f.e.encodeValue(rv.Elem(), nil)
-// }
+func (f *encFnInfo) kInterface(rv reflect.Value) {
+ if rv.IsNil() {
+ f.e.e.EncodeNil()
+ return
+ }
+ f.e.encodeValue(rv.Elem(), nil)
+}
func (f *encFnInfo) kMap(rv reflect.Value) {
ee := f.e.e
@@ -883,7 +877,6 @@ type Encoder struct {
// as the handler MAY need to do some coordination.
w encWriter
s []encRtidFn
- ci set
be bool // is binary encoding
js bool // is json handle
@@ -1140,23 +1133,20 @@ func (e *Encoder) encode(iv interface{}) {
}
}
-func (e *Encoder) preEncodeValue(rv reflect.Value) (rv2 reflect.Value, sptr uintptr, proceed bool) {
+func (e *Encoder) encodeI(iv interface{}, checkFastpath, checkCodecSelfer bool) {
+ if rv, proceed := e.preEncodeValue(reflect.ValueOf(iv)); proceed {
+ rt := rv.Type()
+ rtid := reflect.ValueOf(rt).Pointer()
+ fn := e.getEncFn(rtid, rt, checkFastpath, checkCodecSelfer)
+ fn.f(&fn.i, rv)
+ }
+}
+
+func (e *Encoder) preEncodeValue(rv reflect.Value) (rv2 reflect.Value, proceed bool) {
// use a goto statement instead of a recursive function for ptr/interface.
TOP:
switch rv.Kind() {
- case reflect.Ptr:
- if rv.IsNil() {
- e.e.EncodeNil()
- return
- }
- rv = rv.Elem()
- if e.h.CheckCircularRef && rv.Kind() == reflect.Struct {
- // TODO: Movable pointers will be an issue here. Future problem.
- sptr = rv.UnsafeAddr()
- break TOP
- }
- goto TOP
- case reflect.Interface:
+ case reflect.Ptr, reflect.Interface:
if rv.IsNil() {
e.e.EncodeNil()
return
@@ -1173,39 +1163,18 @@ TOP:
return
}
- proceed = true
- rv2 = rv
- return
-}
-
-func (e *Encoder) doEncodeValue(rv reflect.Value, fn *encFn, sptr uintptr,
- checkFastpath, checkCodecSelfer bool) {
- if sptr != 0 {
- if (&e.ci).add(sptr) {
- e.errorf("circular reference found: # %d", sptr)
- }
- }
- if fn == nil {
- rt := rv.Type()
- rtid := reflect.ValueOf(rt).Pointer()
- fn = e.getEncFn(rtid, rt, true, true)
- }
- fn.f(&fn.i, rv)
- if sptr != 0 {
- (&e.ci).remove(sptr)
- }
-}
-
-func (e *Encoder) encodeI(iv interface{}, checkFastpath, checkCodecSelfer bool) {
- if rv, sptr, proceed := e.preEncodeValue(reflect.ValueOf(iv)); proceed {
- e.doEncodeValue(rv, nil, sptr, checkFastpath, checkCodecSelfer)
- }
+ return rv, true
}
func (e *Encoder) encodeValue(rv reflect.Value, fn *encFn) {
// if a valid fn is passed, it MUST BE for the dereferenced type of rv
- if rv, sptr, proceed := e.preEncodeValue(rv); proceed {
- e.doEncodeValue(rv, fn, sptr, true, true)
+ if rv, proceed := e.preEncodeValue(rv); proceed {
+ if fn == nil {
+ rt := rv.Type()
+ rtid := reflect.ValueOf(rt).Pointer()
+ fn = e.getEncFn(rtid, rt, true, true)
+ }
+ fn.f(&fn.i, rv)
}
}
@@ -1315,11 +1284,10 @@ func (e *Encoder) getEncFn(rtid uintptr, rt reflect.Type, checkFastpath, checkCo
fn.f = (*encFnInfo).kSlice
case reflect.Struct:
fn.f = (*encFnInfo).kStruct
- // reflect.Ptr and reflect.Interface are handled already by preEncodeValue
// case reflect.Ptr:
// fn.f = (*encFnInfo).kPtr
- // case reflect.Interface:
- // fn.f = (*encFnInfo).kInterface
+ case reflect.Interface:
+ fn.f = (*encFnInfo).kInterface
case reflect.Map:
fn.f = (*encFnInfo).kMap
default:
@@ -1385,6 +1353,25 @@ func encStructPoolGet(newlen int) (p *sync.Pool, v interface{}, s []stringRv) {
// panic(errors.New("encStructPoolLen must be equal to 4")) // defensive, in case it is changed
// }
// idxpool := newlen / 8
+
+ // if pool == nil {
+ // fkvs = make([]stringRv, newlen)
+ // } else {
+ // poolv = pool.Get()
+ // switch vv := poolv.(type) {
+ // case *[8]stringRv:
+ // fkvs = vv[:newlen]
+ // case *[16]stringRv:
+ // fkvs = vv[:newlen]
+ // case *[32]stringRv:
+ // fkvs = vv[:newlen]
+ // case *[64]stringRv:
+ // fkvs = vv[:newlen]
+ // case *[128]stringRv:
+ // fkvs = vv[:newlen]
+ // }
+ // }
+
if newlen <= 8 {
p = &encStructPool[0]
v = p.Get()
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.generated.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.generated.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.generated.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.generated.go
index fd92fab..d968a50 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.generated.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.generated.go
@@ -3470,7 +3470,7 @@ func (_ fastpathT) EncMapIntfIntfV(v map[interface{}]interface{}, checkNil bool,
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -3523,7 +3523,7 @@ func (_ fastpathT) EncMapIntfStringV(v map[interface{}]string, checkNil bool, e
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -3576,7 +3576,7 @@ func (_ fastpathT) EncMapIntfUintV(v map[interface{}]uint, checkNil bool, e *Enc
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -3629,7 +3629,7 @@ func (_ fastpathT) EncMapIntfUint8V(v map[interface{}]uint8, checkNil bool, e *E
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -3682,7 +3682,7 @@ func (_ fastpathT) EncMapIntfUint16V(v map[interface{}]uint16, checkNil bool, e
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -3735,7 +3735,7 @@ func (_ fastpathT) EncMapIntfUint32V(v map[interface{}]uint32, checkNil bool, e
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -3788,7 +3788,7 @@ func (_ fastpathT) EncMapIntfUint64V(v map[interface{}]uint64, checkNil bool, e
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -3841,7 +3841,7 @@ func (_ fastpathT) EncMapIntfUintptrV(v map[interface{}]uintptr, checkNil bool,
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -3894,7 +3894,7 @@ func (_ fastpathT) EncMapIntfIntV(v map[interface{}]int, checkNil bool, e *Encod
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -3947,7 +3947,7 @@ func (_ fastpathT) EncMapIntfInt8V(v map[interface{}]int8, checkNil bool, e *Enc
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -4000,7 +4000,7 @@ func (_ fastpathT) EncMapIntfInt16V(v map[interface{}]int16, checkNil bool, e *E
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -4053,7 +4053,7 @@ func (_ fastpathT) EncMapIntfInt32V(v map[interface{}]int32, checkNil bool, e *E
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -4106,7 +4106,7 @@ func (_ fastpathT) EncMapIntfInt64V(v map[interface{}]int64, checkNil bool, e *E
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -4159,7 +4159,7 @@ func (_ fastpathT) EncMapIntfFloat32V(v map[interface{}]float32, checkNil bool,
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -4212,7 +4212,7 @@ func (_ fastpathT) EncMapIntfFloat64V(v map[interface{}]float64, checkNil bool,
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -4265,7 +4265,7 @@ func (_ fastpathT) EncMapIntfBoolV(v map[interface{}]bool, checkNil bool, e *Enc
v2 := make([]bytesI, len(v))
var i, l int
var vp *bytesI
- for k2 := range v {
+ for k2, _ := range v {
l = len(mksv)
e2.MustEncode(k2)
vp = &v2[i]
@@ -4316,7 +4316,7 @@ func (_ fastpathT) EncMapStringIntfV(v map[string]interface{}, checkNil bool, e
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4371,7 +4371,7 @@ func (_ fastpathT) EncMapStringStringV(v map[string]string, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4426,7 +4426,7 @@ func (_ fastpathT) EncMapStringUintV(v map[string]uint, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4481,7 +4481,7 @@ func (_ fastpathT) EncMapStringUint8V(v map[string]uint8, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4536,7 +4536,7 @@ func (_ fastpathT) EncMapStringUint16V(v map[string]uint16, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4591,7 +4591,7 @@ func (_ fastpathT) EncMapStringUint32V(v map[string]uint32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4646,7 +4646,7 @@ func (_ fastpathT) EncMapStringUint64V(v map[string]uint64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4701,7 +4701,7 @@ func (_ fastpathT) EncMapStringUintptrV(v map[string]uintptr, checkNil bool, e *
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4756,7 +4756,7 @@ func (_ fastpathT) EncMapStringIntV(v map[string]int, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4811,7 +4811,7 @@ func (_ fastpathT) EncMapStringInt8V(v map[string]int8, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4866,7 +4866,7 @@ func (_ fastpathT) EncMapStringInt16V(v map[string]int16, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4921,7 +4921,7 @@ func (_ fastpathT) EncMapStringInt32V(v map[string]int32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -4976,7 +4976,7 @@ func (_ fastpathT) EncMapStringInt64V(v map[string]int64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -5031,7 +5031,7 @@ func (_ fastpathT) EncMapStringFloat32V(v map[string]float32, checkNil bool, e *
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -5086,7 +5086,7 @@ func (_ fastpathT) EncMapStringFloat64V(v map[string]float64, checkNil bool, e *
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -5141,7 +5141,7 @@ func (_ fastpathT) EncMapStringBoolV(v map[string]bool, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]string, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = string(k)
i++
}
@@ -5195,7 +5195,7 @@ func (_ fastpathT) EncMapFloat32IntfV(v map[float32]interface{}, checkNil bool,
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5241,7 +5241,7 @@ func (_ fastpathT) EncMapFloat32StringV(v map[float32]string, checkNil bool, e *
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5287,7 +5287,7 @@ func (_ fastpathT) EncMapFloat32UintV(v map[float32]uint, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5333,7 +5333,7 @@ func (_ fastpathT) EncMapFloat32Uint8V(v map[float32]uint8, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5379,7 +5379,7 @@ func (_ fastpathT) EncMapFloat32Uint16V(v map[float32]uint16, checkNil bool, e *
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5425,7 +5425,7 @@ func (_ fastpathT) EncMapFloat32Uint32V(v map[float32]uint32, checkNil bool, e *
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5471,7 +5471,7 @@ func (_ fastpathT) EncMapFloat32Uint64V(v map[float32]uint64, checkNil bool, e *
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5517,7 +5517,7 @@ func (_ fastpathT) EncMapFloat32UintptrV(v map[float32]uintptr, checkNil bool, e
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5563,7 +5563,7 @@ func (_ fastpathT) EncMapFloat32IntV(v map[float32]int, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5609,7 +5609,7 @@ func (_ fastpathT) EncMapFloat32Int8V(v map[float32]int8, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5655,7 +5655,7 @@ func (_ fastpathT) EncMapFloat32Int16V(v map[float32]int16, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5701,7 +5701,7 @@ func (_ fastpathT) EncMapFloat32Int32V(v map[float32]int32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5747,7 +5747,7 @@ func (_ fastpathT) EncMapFloat32Int64V(v map[float32]int64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5793,7 +5793,7 @@ func (_ fastpathT) EncMapFloat32Float32V(v map[float32]float32, checkNil bool, e
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5839,7 +5839,7 @@ func (_ fastpathT) EncMapFloat32Float64V(v map[float32]float64, checkNil bool, e
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5885,7 +5885,7 @@ func (_ fastpathT) EncMapFloat32BoolV(v map[float32]bool, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5931,7 +5931,7 @@ func (_ fastpathT) EncMapFloat64IntfV(v map[float64]interface{}, checkNil bool,
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -5977,7 +5977,7 @@ func (_ fastpathT) EncMapFloat64StringV(v map[float64]string, checkNil bool, e *
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6023,7 +6023,7 @@ func (_ fastpathT) EncMapFloat64UintV(v map[float64]uint, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6069,7 +6069,7 @@ func (_ fastpathT) EncMapFloat64Uint8V(v map[float64]uint8, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6115,7 +6115,7 @@ func (_ fastpathT) EncMapFloat64Uint16V(v map[float64]uint16, checkNil bool, e *
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6161,7 +6161,7 @@ func (_ fastpathT) EncMapFloat64Uint32V(v map[float64]uint32, checkNil bool, e *
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6207,7 +6207,7 @@ func (_ fastpathT) EncMapFloat64Uint64V(v map[float64]uint64, checkNil bool, e *
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6253,7 +6253,7 @@ func (_ fastpathT) EncMapFloat64UintptrV(v map[float64]uintptr, checkNil bool, e
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6299,7 +6299,7 @@ func (_ fastpathT) EncMapFloat64IntV(v map[float64]int, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6345,7 +6345,7 @@ func (_ fastpathT) EncMapFloat64Int8V(v map[float64]int8, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6391,7 +6391,7 @@ func (_ fastpathT) EncMapFloat64Int16V(v map[float64]int16, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6437,7 +6437,7 @@ func (_ fastpathT) EncMapFloat64Int32V(v map[float64]int32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6483,7 +6483,7 @@ func (_ fastpathT) EncMapFloat64Int64V(v map[float64]int64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6529,7 +6529,7 @@ func (_ fastpathT) EncMapFloat64Float32V(v map[float64]float32, checkNil bool, e
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6575,7 +6575,7 @@ func (_ fastpathT) EncMapFloat64Float64V(v map[float64]float64, checkNil bool, e
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6621,7 +6621,7 @@ func (_ fastpathT) EncMapFloat64BoolV(v map[float64]bool, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]float64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = float64(k)
i++
}
@@ -6667,7 +6667,7 @@ func (_ fastpathT) EncMapUintIntfV(v map[uint]interface{}, checkNil bool, e *Enc
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -6713,7 +6713,7 @@ func (_ fastpathT) EncMapUintStringV(v map[uint]string, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -6759,7 +6759,7 @@ func (_ fastpathT) EncMapUintUintV(v map[uint]uint, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -6805,7 +6805,7 @@ func (_ fastpathT) EncMapUintUint8V(v map[uint]uint8, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -6851,7 +6851,7 @@ func (_ fastpathT) EncMapUintUint16V(v map[uint]uint16, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -6897,7 +6897,7 @@ func (_ fastpathT) EncMapUintUint32V(v map[uint]uint32, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -6943,7 +6943,7 @@ func (_ fastpathT) EncMapUintUint64V(v map[uint]uint64, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -6989,7 +6989,7 @@ func (_ fastpathT) EncMapUintUintptrV(v map[uint]uintptr, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7035,7 +7035,7 @@ func (_ fastpathT) EncMapUintIntV(v map[uint]int, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7081,7 +7081,7 @@ func (_ fastpathT) EncMapUintInt8V(v map[uint]int8, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7127,7 +7127,7 @@ func (_ fastpathT) EncMapUintInt16V(v map[uint]int16, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7173,7 +7173,7 @@ func (_ fastpathT) EncMapUintInt32V(v map[uint]int32, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7219,7 +7219,7 @@ func (_ fastpathT) EncMapUintInt64V(v map[uint]int64, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7265,7 +7265,7 @@ func (_ fastpathT) EncMapUintFloat32V(v map[uint]float32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7311,7 +7311,7 @@ func (_ fastpathT) EncMapUintFloat64V(v map[uint]float64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7357,7 +7357,7 @@ func (_ fastpathT) EncMapUintBoolV(v map[uint]bool, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7403,7 +7403,7 @@ func (_ fastpathT) EncMapUint8IntfV(v map[uint8]interface{}, checkNil bool, e *E
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7449,7 +7449,7 @@ func (_ fastpathT) EncMapUint8StringV(v map[uint8]string, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7495,7 +7495,7 @@ func (_ fastpathT) EncMapUint8UintV(v map[uint8]uint, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7541,7 +7541,7 @@ func (_ fastpathT) EncMapUint8Uint8V(v map[uint8]uint8, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7587,7 +7587,7 @@ func (_ fastpathT) EncMapUint8Uint16V(v map[uint8]uint16, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7633,7 +7633,7 @@ func (_ fastpathT) EncMapUint8Uint32V(v map[uint8]uint32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7679,7 +7679,7 @@ func (_ fastpathT) EncMapUint8Uint64V(v map[uint8]uint64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7725,7 +7725,7 @@ func (_ fastpathT) EncMapUint8UintptrV(v map[uint8]uintptr, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7771,7 +7771,7 @@ func (_ fastpathT) EncMapUint8IntV(v map[uint8]int, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7817,7 +7817,7 @@ func (_ fastpathT) EncMapUint8Int8V(v map[uint8]int8, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7863,7 +7863,7 @@ func (_ fastpathT) EncMapUint8Int16V(v map[uint8]int16, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7909,7 +7909,7 @@ func (_ fastpathT) EncMapUint8Int32V(v map[uint8]int32, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -7955,7 +7955,7 @@ func (_ fastpathT) EncMapUint8Int64V(v map[uint8]int64, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8001,7 +8001,7 @@ func (_ fastpathT) EncMapUint8Float32V(v map[uint8]float32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8047,7 +8047,7 @@ func (_ fastpathT) EncMapUint8Float64V(v map[uint8]float64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8093,7 +8093,7 @@ func (_ fastpathT) EncMapUint8BoolV(v map[uint8]bool, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8139,7 +8139,7 @@ func (_ fastpathT) EncMapUint16IntfV(v map[uint16]interface{}, checkNil bool, e
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8185,7 +8185,7 @@ func (_ fastpathT) EncMapUint16StringV(v map[uint16]string, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8231,7 +8231,7 @@ func (_ fastpathT) EncMapUint16UintV(v map[uint16]uint, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8277,7 +8277,7 @@ func (_ fastpathT) EncMapUint16Uint8V(v map[uint16]uint8, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8323,7 +8323,7 @@ func (_ fastpathT) EncMapUint16Uint16V(v map[uint16]uint16, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8369,7 +8369,7 @@ func (_ fastpathT) EncMapUint16Uint32V(v map[uint16]uint32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8415,7 +8415,7 @@ func (_ fastpathT) EncMapUint16Uint64V(v map[uint16]uint64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8461,7 +8461,7 @@ func (_ fastpathT) EncMapUint16UintptrV(v map[uint16]uintptr, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8507,7 +8507,7 @@ func (_ fastpathT) EncMapUint16IntV(v map[uint16]int, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8553,7 +8553,7 @@ func (_ fastpathT) EncMapUint16Int8V(v map[uint16]int8, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8599,7 +8599,7 @@ func (_ fastpathT) EncMapUint16Int16V(v map[uint16]int16, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8645,7 +8645,7 @@ func (_ fastpathT) EncMapUint16Int32V(v map[uint16]int32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8691,7 +8691,7 @@ func (_ fastpathT) EncMapUint16Int64V(v map[uint16]int64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8737,7 +8737,7 @@ func (_ fastpathT) EncMapUint16Float32V(v map[uint16]float32, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8783,7 +8783,7 @@ func (_ fastpathT) EncMapUint16Float64V(v map[uint16]float64, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8829,7 +8829,7 @@ func (_ fastpathT) EncMapUint16BoolV(v map[uint16]bool, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8875,7 +8875,7 @@ func (_ fastpathT) EncMapUint32IntfV(v map[uint32]interface{}, checkNil bool, e
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8921,7 +8921,7 @@ func (_ fastpathT) EncMapUint32StringV(v map[uint32]string, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -8967,7 +8967,7 @@ func (_ fastpathT) EncMapUint32UintV(v map[uint32]uint, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9013,7 +9013,7 @@ func (_ fastpathT) EncMapUint32Uint8V(v map[uint32]uint8, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9059,7 +9059,7 @@ func (_ fastpathT) EncMapUint32Uint16V(v map[uint32]uint16, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9105,7 +9105,7 @@ func (_ fastpathT) EncMapUint32Uint32V(v map[uint32]uint32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9151,7 +9151,7 @@ func (_ fastpathT) EncMapUint32Uint64V(v map[uint32]uint64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9197,7 +9197,7 @@ func (_ fastpathT) EncMapUint32UintptrV(v map[uint32]uintptr, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9243,7 +9243,7 @@ func (_ fastpathT) EncMapUint32IntV(v map[uint32]int, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9289,7 +9289,7 @@ func (_ fastpathT) EncMapUint32Int8V(v map[uint32]int8, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9335,7 +9335,7 @@ func (_ fastpathT) EncMapUint32Int16V(v map[uint32]int16, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9381,7 +9381,7 @@ func (_ fastpathT) EncMapUint32Int32V(v map[uint32]int32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9427,7 +9427,7 @@ func (_ fastpathT) EncMapUint32Int64V(v map[uint32]int64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9473,7 +9473,7 @@ func (_ fastpathT) EncMapUint32Float32V(v map[uint32]float32, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9519,7 +9519,7 @@ func (_ fastpathT) EncMapUint32Float64V(v map[uint32]float64, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9565,7 +9565,7 @@ func (_ fastpathT) EncMapUint32BoolV(v map[uint32]bool, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9611,7 +9611,7 @@ func (_ fastpathT) EncMapUint64IntfV(v map[uint64]interface{}, checkNil bool, e
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9657,7 +9657,7 @@ func (_ fastpathT) EncMapUint64StringV(v map[uint64]string, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9703,7 +9703,7 @@ func (_ fastpathT) EncMapUint64UintV(v map[uint64]uint, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9749,7 +9749,7 @@ func (_ fastpathT) EncMapUint64Uint8V(v map[uint64]uint8, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9795,7 +9795,7 @@ func (_ fastpathT) EncMapUint64Uint16V(v map[uint64]uint16, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9841,7 +9841,7 @@ func (_ fastpathT) EncMapUint64Uint32V(v map[uint64]uint32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9887,7 +9887,7 @@ func (_ fastpathT) EncMapUint64Uint64V(v map[uint64]uint64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9933,7 +9933,7 @@ func (_ fastpathT) EncMapUint64UintptrV(v map[uint64]uintptr, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -9979,7 +9979,7 @@ func (_ fastpathT) EncMapUint64IntV(v map[uint64]int, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10025,7 +10025,7 @@ func (_ fastpathT) EncMapUint64Int8V(v map[uint64]int8, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10071,7 +10071,7 @@ func (_ fastpathT) EncMapUint64Int16V(v map[uint64]int16, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10117,7 +10117,7 @@ func (_ fastpathT) EncMapUint64Int32V(v map[uint64]int32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10163,7 +10163,7 @@ func (_ fastpathT) EncMapUint64Int64V(v map[uint64]int64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10209,7 +10209,7 @@ func (_ fastpathT) EncMapUint64Float32V(v map[uint64]float32, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10255,7 +10255,7 @@ func (_ fastpathT) EncMapUint64Float64V(v map[uint64]float64, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10301,7 +10301,7 @@ func (_ fastpathT) EncMapUint64BoolV(v map[uint64]bool, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10347,7 +10347,7 @@ func (_ fastpathT) EncMapUintptrIntfV(v map[uintptr]interface{}, checkNil bool,
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10393,7 +10393,7 @@ func (_ fastpathT) EncMapUintptrStringV(v map[uintptr]string, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10439,7 +10439,7 @@ func (_ fastpathT) EncMapUintptrUintV(v map[uintptr]uint, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10485,7 +10485,7 @@ func (_ fastpathT) EncMapUintptrUint8V(v map[uintptr]uint8, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10531,7 +10531,7 @@ func (_ fastpathT) EncMapUintptrUint16V(v map[uintptr]uint16, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10577,7 +10577,7 @@ func (_ fastpathT) EncMapUintptrUint32V(v map[uintptr]uint32, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10623,7 +10623,7 @@ func (_ fastpathT) EncMapUintptrUint64V(v map[uintptr]uint64, checkNil bool, e *
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10669,7 +10669,7 @@ func (_ fastpathT) EncMapUintptrUintptrV(v map[uintptr]uintptr, checkNil bool, e
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10715,7 +10715,7 @@ func (_ fastpathT) EncMapUintptrIntV(v map[uintptr]int, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10761,7 +10761,7 @@ func (_ fastpathT) EncMapUintptrInt8V(v map[uintptr]int8, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10807,7 +10807,7 @@ func (_ fastpathT) EncMapUintptrInt16V(v map[uintptr]int16, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10853,7 +10853,7 @@ func (_ fastpathT) EncMapUintptrInt32V(v map[uintptr]int32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10899,7 +10899,7 @@ func (_ fastpathT) EncMapUintptrInt64V(v map[uintptr]int64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10945,7 +10945,7 @@ func (_ fastpathT) EncMapUintptrFloat32V(v map[uintptr]float32, checkNil bool, e
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -10991,7 +10991,7 @@ func (_ fastpathT) EncMapUintptrFloat64V(v map[uintptr]float64, checkNil bool, e
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -11037,7 +11037,7 @@ func (_ fastpathT) EncMapUintptrBoolV(v map[uintptr]bool, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]uint64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = uint64(k)
i++
}
@@ -11083,7 +11083,7 @@ func (_ fastpathT) EncMapIntIntfV(v map[int]interface{}, checkNil bool, e *Encod
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11129,7 +11129,7 @@ func (_ fastpathT) EncMapIntStringV(v map[int]string, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11175,7 +11175,7 @@ func (_ fastpathT) EncMapIntUintV(v map[int]uint, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11221,7 +11221,7 @@ func (_ fastpathT) EncMapIntUint8V(v map[int]uint8, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11267,7 +11267,7 @@ func (_ fastpathT) EncMapIntUint16V(v map[int]uint16, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11313,7 +11313,7 @@ func (_ fastpathT) EncMapIntUint32V(v map[int]uint32, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11359,7 +11359,7 @@ func (_ fastpathT) EncMapIntUint64V(v map[int]uint64, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11405,7 +11405,7 @@ func (_ fastpathT) EncMapIntUintptrV(v map[int]uintptr, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11451,7 +11451,7 @@ func (_ fastpathT) EncMapIntIntV(v map[int]int, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11497,7 +11497,7 @@ func (_ fastpathT) EncMapIntInt8V(v map[int]int8, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11543,7 +11543,7 @@ func (_ fastpathT) EncMapIntInt16V(v map[int]int16, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11589,7 +11589,7 @@ func (_ fastpathT) EncMapIntInt32V(v map[int]int32, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11635,7 +11635,7 @@ func (_ fastpathT) EncMapIntInt64V(v map[int]int64, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11681,7 +11681,7 @@ func (_ fastpathT) EncMapIntFloat32V(v map[int]float32, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11727,7 +11727,7 @@ func (_ fastpathT) EncMapIntFloat64V(v map[int]float64, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11773,7 +11773,7 @@ func (_ fastpathT) EncMapIntBoolV(v map[int]bool, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11819,7 +11819,7 @@ func (_ fastpathT) EncMapInt8IntfV(v map[int8]interface{}, checkNil bool, e *Enc
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11865,7 +11865,7 @@ func (_ fastpathT) EncMapInt8StringV(v map[int8]string, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11911,7 +11911,7 @@ func (_ fastpathT) EncMapInt8UintV(v map[int8]uint, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -11957,7 +11957,7 @@ func (_ fastpathT) EncMapInt8Uint8V(v map[int8]uint8, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12003,7 +12003,7 @@ func (_ fastpathT) EncMapInt8Uint16V(v map[int8]uint16, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12049,7 +12049,7 @@ func (_ fastpathT) EncMapInt8Uint32V(v map[int8]uint32, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12095,7 +12095,7 @@ func (_ fastpathT) EncMapInt8Uint64V(v map[int8]uint64, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12141,7 +12141,7 @@ func (_ fastpathT) EncMapInt8UintptrV(v map[int8]uintptr, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12187,7 +12187,7 @@ func (_ fastpathT) EncMapInt8IntV(v map[int8]int, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12233,7 +12233,7 @@ func (_ fastpathT) EncMapInt8Int8V(v map[int8]int8, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12279,7 +12279,7 @@ func (_ fastpathT) EncMapInt8Int16V(v map[int8]int16, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12325,7 +12325,7 @@ func (_ fastpathT) EncMapInt8Int32V(v map[int8]int32, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12371,7 +12371,7 @@ func (_ fastpathT) EncMapInt8Int64V(v map[int8]int64, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12417,7 +12417,7 @@ func (_ fastpathT) EncMapInt8Float32V(v map[int8]float32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12463,7 +12463,7 @@ func (_ fastpathT) EncMapInt8Float64V(v map[int8]float64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12509,7 +12509,7 @@ func (_ fastpathT) EncMapInt8BoolV(v map[int8]bool, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12555,7 +12555,7 @@ func (_ fastpathT) EncMapInt16IntfV(v map[int16]interface{}, checkNil bool, e *E
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12601,7 +12601,7 @@ func (_ fastpathT) EncMapInt16StringV(v map[int16]string, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12647,7 +12647,7 @@ func (_ fastpathT) EncMapInt16UintV(v map[int16]uint, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12693,7 +12693,7 @@ func (_ fastpathT) EncMapInt16Uint8V(v map[int16]uint8, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12739,7 +12739,7 @@ func (_ fastpathT) EncMapInt16Uint16V(v map[int16]uint16, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12785,7 +12785,7 @@ func (_ fastpathT) EncMapInt16Uint32V(v map[int16]uint32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12831,7 +12831,7 @@ func (_ fastpathT) EncMapInt16Uint64V(v map[int16]uint64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12877,7 +12877,7 @@ func (_ fastpathT) EncMapInt16UintptrV(v map[int16]uintptr, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12923,7 +12923,7 @@ func (_ fastpathT) EncMapInt16IntV(v map[int16]int, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -12969,7 +12969,7 @@ func (_ fastpathT) EncMapInt16Int8V(v map[int16]int8, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13015,7 +13015,7 @@ func (_ fastpathT) EncMapInt16Int16V(v map[int16]int16, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13061,7 +13061,7 @@ func (_ fastpathT) EncMapInt16Int32V(v map[int16]int32, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13107,7 +13107,7 @@ func (_ fastpathT) EncMapInt16Int64V(v map[int16]int64, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13153,7 +13153,7 @@ func (_ fastpathT) EncMapInt16Float32V(v map[int16]float32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13199,7 +13199,7 @@ func (_ fastpathT) EncMapInt16Float64V(v map[int16]float64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13245,7 +13245,7 @@ func (_ fastpathT) EncMapInt16BoolV(v map[int16]bool, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13291,7 +13291,7 @@ func (_ fastpathT) EncMapInt32IntfV(v map[int32]interface{}, checkNil bool, e *E
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13337,7 +13337,7 @@ func (_ fastpathT) EncMapInt32StringV(v map[int32]string, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13383,7 +13383,7 @@ func (_ fastpathT) EncMapInt32UintV(v map[int32]uint, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13429,7 +13429,7 @@ func (_ fastpathT) EncMapInt32Uint8V(v map[int32]uint8, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13475,7 +13475,7 @@ func (_ fastpathT) EncMapInt32Uint16V(v map[int32]uint16, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13521,7 +13521,7 @@ func (_ fastpathT) EncMapInt32Uint32V(v map[int32]uint32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13567,7 +13567,7 @@ func (_ fastpathT) EncMapInt32Uint64V(v map[int32]uint64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13613,7 +13613,7 @@ func (_ fastpathT) EncMapInt32UintptrV(v map[int32]uintptr, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13659,7 +13659,7 @@ func (_ fastpathT) EncMapInt32IntV(v map[int32]int, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13705,7 +13705,7 @@ func (_ fastpathT) EncMapInt32Int8V(v map[int32]int8, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13751,7 +13751,7 @@ func (_ fastpathT) EncMapInt32Int16V(v map[int32]int16, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13797,7 +13797,7 @@ func (_ fastpathT) EncMapInt32Int32V(v map[int32]int32, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13843,7 +13843,7 @@ func (_ fastpathT) EncMapInt32Int64V(v map[int32]int64, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13889,7 +13889,7 @@ func (_ fastpathT) EncMapInt32Float32V(v map[int32]float32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13935,7 +13935,7 @@ func (_ fastpathT) EncMapInt32Float64V(v map[int32]float64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -13981,7 +13981,7 @@ func (_ fastpathT) EncMapInt32BoolV(v map[int32]bool, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14027,7 +14027,7 @@ func (_ fastpathT) EncMapInt64IntfV(v map[int64]interface{}, checkNil bool, e *E
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14073,7 +14073,7 @@ func (_ fastpathT) EncMapInt64StringV(v map[int64]string, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14119,7 +14119,7 @@ func (_ fastpathT) EncMapInt64UintV(v map[int64]uint, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14165,7 +14165,7 @@ func (_ fastpathT) EncMapInt64Uint8V(v map[int64]uint8, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14211,7 +14211,7 @@ func (_ fastpathT) EncMapInt64Uint16V(v map[int64]uint16, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14257,7 +14257,7 @@ func (_ fastpathT) EncMapInt64Uint32V(v map[int64]uint32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14303,7 +14303,7 @@ func (_ fastpathT) EncMapInt64Uint64V(v map[int64]uint64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14349,7 +14349,7 @@ func (_ fastpathT) EncMapInt64UintptrV(v map[int64]uintptr, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14395,7 +14395,7 @@ func (_ fastpathT) EncMapInt64IntV(v map[int64]int, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14441,7 +14441,7 @@ func (_ fastpathT) EncMapInt64Int8V(v map[int64]int8, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14487,7 +14487,7 @@ func (_ fastpathT) EncMapInt64Int16V(v map[int64]int16, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14533,7 +14533,7 @@ func (_ fastpathT) EncMapInt64Int32V(v map[int64]int32, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14579,7 +14579,7 @@ func (_ fastpathT) EncMapInt64Int64V(v map[int64]int64, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14625,7 +14625,7 @@ func (_ fastpathT) EncMapInt64Float32V(v map[int64]float32, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14671,7 +14671,7 @@ func (_ fastpathT) EncMapInt64Float64V(v map[int64]float64, checkNil bool, e *En
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14717,7 +14717,7 @@ func (_ fastpathT) EncMapInt64BoolV(v map[int64]bool, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]int64, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = int64(k)
i++
}
@@ -14763,7 +14763,7 @@ func (_ fastpathT) EncMapBoolIntfV(v map[bool]interface{}, checkNil bool, e *Enc
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -14809,7 +14809,7 @@ func (_ fastpathT) EncMapBoolStringV(v map[bool]string, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -14855,7 +14855,7 @@ func (_ fastpathT) EncMapBoolUintV(v map[bool]uint, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -14901,7 +14901,7 @@ func (_ fastpathT) EncMapBoolUint8V(v map[bool]uint8, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -14947,7 +14947,7 @@ func (_ fastpathT) EncMapBoolUint16V(v map[bool]uint16, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -14993,7 +14993,7 @@ func (_ fastpathT) EncMapBoolUint32V(v map[bool]uint32, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15039,7 +15039,7 @@ func (_ fastpathT) EncMapBoolUint64V(v map[bool]uint64, checkNil bool, e *Encode
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15085,7 +15085,7 @@ func (_ fastpathT) EncMapBoolUintptrV(v map[bool]uintptr, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15131,7 +15131,7 @@ func (_ fastpathT) EncMapBoolIntV(v map[bool]int, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15177,7 +15177,7 @@ func (_ fastpathT) EncMapBoolInt8V(v map[bool]int8, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15223,7 +15223,7 @@ func (_ fastpathT) EncMapBoolInt16V(v map[bool]int16, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15269,7 +15269,7 @@ func (_ fastpathT) EncMapBoolInt32V(v map[bool]int32, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15315,7 +15315,7 @@ func (_ fastpathT) EncMapBoolInt64V(v map[bool]int64, checkNil bool, e *Encoder)
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15361,7 +15361,7 @@ func (_ fastpathT) EncMapBoolFloat32V(v map[bool]float32, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15407,7 +15407,7 @@ func (_ fastpathT) EncMapBoolFloat64V(v map[bool]float64, checkNil bool, e *Enco
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
@@ -15453,7 +15453,7 @@ func (_ fastpathT) EncMapBoolBoolV(v map[bool]bool, checkNil bool, e *Encoder) {
if e.h.Canonical {
v2 := make([]bool, len(v))
var i int
- for k := range v {
+ for k, _ := range v {
v2[i] = bool(k)
i++
}
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.go.tmpl b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.go.tmpl
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.go.tmpl
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/fast-path.go.tmpl
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-dec-array.go.tmpl b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-dec-array.go.tmpl
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/gen-dec-array.go.tmpl
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-dec-array.go.tmpl
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-dec-map.go.tmpl b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-dec-map.go.tmpl
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/gen-dec-map.go.tmpl
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-dec-map.go.tmpl
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-helper.generated.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-helper.generated.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/gen-helper.generated.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-helper.generated.go
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-helper.go.tmpl b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-helper.go.tmpl
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/gen-helper.go.tmpl
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen-helper.go.tmpl
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.generated.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.generated.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/gen.generated.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.generated.go
index f3c1b70..fb6f4b8 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.generated.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.generated.go
@@ -169,3 +169,4 @@ if {{var "l"}} == 0 {
*{{ .Varname }} = {{var "v"}}
}{{end}}
`
+
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/gen.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.go
index 754672b..a075e7c 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/gen.go
@@ -219,7 +219,7 @@ func Gen(w io.Writer, buildTags, pkgName, uid string, useUnsafe bool, ti *TypeIn
}
// use a sorted set of im keys, so that we can get consistent output
imKeys := make([]string, 0, len(x.im))
- for k := range x.im {
+ for k, _ := range x.im {
imKeys = append(imKeys, k)
}
sort.Strings(imKeys)
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/helper.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/helper.go
similarity index 88%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/helper.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/helper.go
index 40065a0..560014a 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/helper.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/helper.go
@@ -155,10 +155,8 @@ const (
resetSliceElemToZeroValue bool = false
)
-var (
- oneByteArr = [1]byte{0}
- zeroByteSlice = oneByteArr[:0:0]
-)
+var oneByteArr = [1]byte{0}
+var zeroByteSlice = oneByteArr[:0:0]
type charEncoding uint8
@@ -217,24 +215,6 @@ const (
containerArrayEnd
)
-type rgetPoolT struct {
- encNames [8]string
- fNames [8]string
- etypes [8]uintptr
- sfis [8]*structFieldInfo
-}
-
-var rgetPool = sync.Pool{
- New: func() interface{} { return new(rgetPoolT) },
-}
-
-type rgetT struct {
- fNames []string
- encNames []string
- etypes []uintptr
- sfis []*structFieldInfo
-}
-
type containerStateRecv interface {
sendContainerState(containerState)
}
@@ -853,17 +833,14 @@ func (x *TypeInfos) get(rtid uintptr, rt reflect.Type) (pti *typeInfo) {
siInfo = parseStructFieldInfo(structInfoFieldName, x.structTag(f.Tag))
ti.toArray = siInfo.toArray
}
- pi := rgetPool.Get()
- pv := pi.(*rgetPoolT)
- pv.etypes[0] = ti.baseId
- vv := rgetT{pv.fNames[:0], pv.encNames[:0], pv.etypes[:1], pv.sfis[:0]}
- x.rget(rt, rtid, nil, &vv, siInfo)
- ti.sfip = make([]*structFieldInfo, len(vv.sfis))
- ti.sfi = make([]*structFieldInfo, len(vv.sfis))
- copy(ti.sfip, vv.sfis)
- sort.Sort(sfiSortedByEncName(vv.sfis))
- copy(ti.sfi, vv.sfis)
- rgetPool.Put(pi)
+ sfip := make([]*structFieldInfo, 0, rt.NumField())
+ x.rget(rt, nil, make(map[string]bool, 16), &sfip, siInfo)
+
+ ti.sfip = make([]*structFieldInfo, len(sfip))
+ ti.sfi = make([]*structFieldInfo, len(sfip))
+ copy(ti.sfip, sfip)
+ sort.Sort(sfiSortedByEncName(sfip))
+ copy(ti.sfi, sfip)
}
// sfi = sfip
@@ -876,37 +853,16 @@ func (x *TypeInfos) get(rtid uintptr, rt reflect.Type) (pti *typeInfo) {
return
}
-func (x *TypeInfos) rget(rt reflect.Type, rtid uintptr,
- indexstack []int, pv *rgetT, siInfo *structFieldInfo,
+func (x *TypeInfos) rget(rt reflect.Type, indexstack []int, fnameToHastag map[string]bool,
+ sfi *[]*structFieldInfo, siInfo *structFieldInfo,
) {
- // This will read up the fields and store how to access the value.
- // It uses the go language's rules for embedding, as below:
- // - if a field has been seen while traversing, skip it
- // - if an encName has been seen while traversing, skip it
- // - if an embedded type has been seen, skip it
- //
- // Also, per Go's rules, embedded fields must be analyzed AFTER all top-level fields.
- //
- // Note: we consciously use slices, not a map, to simulate a set.
- // Typically, types have < 16 fields, and iteration using equals is faster than maps there
-
- type anonField struct {
- ft reflect.Type
- idx int
- }
-
- var anonFields []anonField
-
-LOOP:
- for j, jlen := 0, rt.NumField(); j < jlen; j++ {
+ for j := 0; j < rt.NumField(); j++ {
f := rt.Field(j)
fkind := f.Type.Kind()
// skip if a func type, or is unexported, or structTag value == "-"
- switch fkind {
- case reflect.Func, reflect.Complex64, reflect.Complex128, reflect.UnsafePointer:
- continue LOOP
+ if fkind == reflect.Func {
+ continue
}
-
// if r1, _ := utf8.DecodeRuneInString(f.Name); r1 == utf8.RuneError || !unicode.IsUpper(r1) {
if f.PkgPath != "" && !f.Anonymous { // unexported, not embedded
continue
@@ -930,8 +886,11 @@ LOOP:
ft = ft.Elem()
}
if ft.Kind() == reflect.Struct {
- // handle anonymous fields after handling all the non-anon fields
- anonFields = append(anonFields, anonField{ft, j})
+ indexstack2 := make([]int, len(indexstack)+1, len(indexstack)+4)
+ copy(indexstack2, indexstack)
+ indexstack2[len(indexstack)] = j
+ // indexstack2 := append(append(make([]int, 0, len(indexstack)+4), indexstack...), j)
+ x.rget(ft, indexstack2, fnameToHastag, sfi, siInfo)
continue
}
}
@@ -942,39 +901,26 @@ LOOP:
continue
}
+ // do not let fields with same name in embedded structs override field at higher level.
+ // this must be done after anonymous check, to allow anonymous field
+ // still include their child fields
+ if _, ok := fnameToHastag[f.Name]; ok {
+ continue
+ }
if f.Name == "" {
panic(noFieldNameToStructFieldInfoErr)
}
-
- for _, k := range pv.fNames {
- if k == f.Name {
- continue LOOP
- }
- }
- pv.fNames = append(pv.fNames, f.Name)
-
if si == nil {
si = parseStructFieldInfo(f.Name, stag)
} else if si.encName == "" {
si.encName = f.Name
}
-
- for _, k := range pv.encNames {
- if k == si.encName {
- continue LOOP
- }
- }
- pv.encNames = append(pv.encNames, si.encName)
-
// si.ikind = int(f.Type.Kind())
if len(indexstack) == 0 {
si.i = int16(j)
} else {
si.i = -1
- si.is = make([]int, len(indexstack)+1)
- copy(si.is, indexstack)
- si.is[len(indexstack)] = j
- // si.is = append(append(make([]int, 0, len(indexstack)+4), indexstack...), j)
+ si.is = append(append(make([]int, 0, len(indexstack)+4), indexstack...), j)
}
if siInfo != nil {
@@ -982,26 +928,8 @@ LOOP:
si.omitEmpty = true
}
}
- pv.sfis = append(pv.sfis, si)
- }
-
- // now handle anonymous fields
-LOOP2:
- for _, af := range anonFields {
- // if etypes contains this, then do not call rget again (as the fields are already seen here)
- ftid := reflect.ValueOf(af.ft).Pointer()
- for _, k := range pv.etypes {
- if k == ftid {
- continue LOOP2
- }
- }
- pv.etypes = append(pv.etypes, ftid)
-
- indexstack2 := make([]int, len(indexstack)+1)
- copy(indexstack2, indexstack)
- indexstack2[len(indexstack)] = af.idx
- // indexstack2 := append(append(make([]int, 0, len(indexstack)+4), indexstack...), j)
- x.rget(af.ft, ftid, indexstack2, pv, siInfo)
+ *sfi = append(*sfi, si)
+ fnameToHastag[f.Name] = stag != ""
}
}
@@ -1199,73 +1127,3 @@ type bytesISlice []bytesI
func (p bytesISlice) Len() int { return len(p) }
func (p bytesISlice) Less(i, j int) bool { return bytes.Compare(p[i].v, p[j].v) == -1 }
func (p bytesISlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
-
-// -----------------
-
-type set []uintptr
-
-func (s *set) add(v uintptr) (exists bool) {
- // e.ci is always nil, or len >= 1
- // defer func() { fmt.Printf("$$$$$$$$$$$ cirRef Add: %v, exists: %v\n", v, exists) }()
- x := *s
- if x == nil {
- x = make([]uintptr, 1, 8)
- x[0] = v
- *s = x
- return
- }
- // typically, length will be 1. make this perform.
- if len(x) == 1 {
- if j := x[0]; j == 0 {
- x[0] = v
- } else if j == v {
- exists = true
- } else {
- x = append(x, v)
- *s = x
- }
- return
- }
- // check if it exists
- for _, j := range x {
- if j == v {
- exists = true
- return
- }
- }
- // try to replace a "deleted" slot
- for i, j := range x {
- if j == 0 {
- x[i] = v
- return
- }
- }
- // if unable to replace deleted slot, just append it.
- x = append(x, v)
- *s = x
- return
-}
-
-func (s *set) remove(v uintptr) (exists bool) {
- // defer func() { fmt.Printf("$$$$$$$$$$$ cirRef Rm: %v, exists: %v\n", v, exists) }()
- x := *s
- if len(x) == 0 {
- return
- }
- if len(x) == 1 {
- if x[0] == v {
- x[0] = 0
- }
- return
- }
- for i, j := range x {
- if j == v {
- exists = true
- x[i] = 0 // set it to 0, as way to delete it.
- // copy(x[i:], x[i+1:])
- // x = x[:len(x)-1]
- return
- }
- }
- return
-}
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/helper_internal.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/helper_internal.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/helper_internal.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/helper_internal.go
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/helper_not_unsafe.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/helper_not_unsafe.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/helper_not_unsafe.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/helper_not_unsafe.go
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/helper_unsafe.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/helper_unsafe.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/helper_unsafe.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/helper_unsafe.go
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/json.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/json.go
similarity index 91%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/json.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/json.go
index 142d5b5..a18a5f7 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/json.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/json.go
@@ -43,23 +43,18 @@ import (
//--------------------------------
-var (
- jsonLiterals = [...]byte{'t', 'r', 'u', 'e', 'f', 'a', 'l', 's', 'e', 'n', 'u', 'l', 'l'}
+var jsonLiterals = [...]byte{'t', 'r', 'u', 'e', 'f', 'a', 'l', 's', 'e', 'n', 'u', 'l', 'l'}
- jsonFloat64Pow10 = [...]float64{
- 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
- 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
- 1e20, 1e21, 1e22,
- }
-
- jsonUint64Pow10 = [...]uint64{
- 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
- 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
- }
+var jsonFloat64Pow10 = [...]float64{
+ 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
+ 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
+ 1e20, 1e21, 1e22,
+}
- // jsonTabs and jsonSpaces are used as caches for indents
- jsonTabs, jsonSpaces string
-)
+var jsonUint64Pow10 = [...]uint64{
+ 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
+ 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
+}
const (
// jsonUnreadAfterDecNum controls whether we unread after decoding a number.
@@ -90,23 +85,8 @@ const (
jsonNumUintMaxVal = 1< 0 {
- e.d = true
- e.ds = jsonSpaces[:e.h.Indent]
- } else if e.h.Indent < 0 {
- e.d = true
- e.dt = true
- e.ds = jsonTabs[:-(e.h.Indent)]
- }
}
func (d *jsonDecDriver) reset() {
d.r = d.d.r
- d.se.i = d.h.RawBytesExt
- if d.bs != nil {
- d.bs = d.bs[:0]
- }
- d.c, d.tok = 0, 0
- d.n.reset()
}
var jsonEncodeTerminate = []byte{' '}
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/msgpack.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/msgpack.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/msgpack.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/msgpack.go
index afe5935..5eb4c96 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/msgpack.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/msgpack.go
@@ -729,7 +729,6 @@ func (e *msgpackEncDriver) reset() {
func (d *msgpackDecDriver) reset() {
d.r = d.d.r
- d.bd, d.bdRead = 0, false
}
//--------------------------------------------------
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/noop.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/noop.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/noop.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/noop.go
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/prebuild.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/prebuild.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/prebuild.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/prebuild.go
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/prebuild.sh b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/prebuild.sh
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/prebuild.sh
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/prebuild.sh
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/rpc.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/rpc.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/rpc.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/rpc.go
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/simple.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/simple.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/simple.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/simple.go
index 7c0ba7a..c150496 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/simple.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/simple.go
@@ -512,7 +512,6 @@ func (e *simpleEncDriver) reset() {
func (d *simpleDecDriver) reset() {
d.r = d.d.r
- d.bd, d.bdRead = 0, false
}
var _ decDriver = (*simpleDecDriver)(nil)
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/test-cbor-goldens.json b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/test-cbor-goldens.json
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/test-cbor-goldens.json
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/test-cbor-goldens.json
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/test.py b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/test.py
similarity index 100%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/test.py
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/test.py
diff --git a/Godeps/_workspace/src/github.com/ugorji/go/codec/time.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/time.go
similarity index 94%
rename from Godeps/_workspace/src/github.com/ugorji/go/codec/time.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/time.go
index 718b731..fc4c63e 100644
--- a/Godeps/_workspace/src/github.com/ugorji/go/codec/time.go
+++ b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec/time.go
@@ -5,22 +5,11 @@ package codec
import (
"fmt"
- "reflect"
"time"
)
var (
- timeDigits = [...]byte{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}
- timeExtEncFn = func(rv reflect.Value) (bs []byte, err error) {
- defer panicToErr(&err)
- bs = timeExt{}.WriteExt(rv.Interface())
- return
- }
- timeExtDecFn = func(rv reflect.Value, bs []byte) (err error) {
- defer panicToErr(&err)
- timeExt{}.ReadExt(rv.Interface(), bs)
- return
- }
+ timeDigits = [...]byte{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}
)
type timeExt struct{}
diff --git a/Godeps/_workspace/src/golang.org/x/net/context/context.go b/vendor/github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context/context.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/context/context.go
rename to vendor/github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context/context.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/google/btree/LICENSE b/vendor/github.com/coreos/etcd/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/google/btree/LICENSE
rename to vendor/github.com/coreos/etcd/LICENSE
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/NOTICE b/vendor/github.com/coreos/etcd/NOTICE
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/NOTICE
rename to vendor/github.com/coreos/etcd/NOTICE
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/README.md b/vendor/github.com/coreos/etcd/client/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/README.md
rename to vendor/github.com/coreos/etcd/client/README.md
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/auth_role.go b/vendor/github.com/coreos/etcd/client/auth_role.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/auth_role.go
rename to vendor/github.com/coreos/etcd/client/auth_role.go
index 8de58af..e771db7 100644
--- a/Godeps/_workspace/src/github.com/coreos/etcd/client/auth_role.go
+++ b/vendor/github.com/coreos/etcd/client/auth_role.go
@@ -20,7 +20,7 @@ import (
"net/http"
"net/url"
- "golang.org/x/net/context"
+ "github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
)
type Role struct {
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/auth_user.go b/vendor/github.com/coreos/etcd/client/auth_user.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/auth_user.go
rename to vendor/github.com/coreos/etcd/client/auth_user.go
index 6e0e4c5..9df1f29 100644
--- a/Godeps/_workspace/src/github.com/coreos/etcd/client/auth_user.go
+++ b/vendor/github.com/coreos/etcd/client/auth_user.go
@@ -21,7 +21,7 @@ import (
"net/url"
"path"
- "golang.org/x/net/context"
+ "github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
)
var (
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/cancelreq.go b/vendor/github.com/coreos/etcd/client/cancelreq.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/cancelreq.go
rename to vendor/github.com/coreos/etcd/client/cancelreq.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/cancelreq_go14.go b/vendor/github.com/coreos/etcd/client/cancelreq_go14.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/cancelreq_go14.go
rename to vendor/github.com/coreos/etcd/client/cancelreq_go14.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/client.go b/vendor/github.com/coreos/etcd/client/client.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/client.go
rename to vendor/github.com/coreos/etcd/client/client.go
index 34adb82..da86a0b 100644
--- a/Godeps/_workspace/src/github.com/coreos/etcd/client/client.go
+++ b/vendor/github.com/coreos/etcd/client/client.go
@@ -27,7 +27,7 @@ import (
"sync"
"time"
- "golang.org/x/net/context"
+ "github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
)
var (
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/cluster_error.go b/vendor/github.com/coreos/etcd/client/cluster_error.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/cluster_error.go
rename to vendor/github.com/coreos/etcd/client/cluster_error.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/curl.go b/vendor/github.com/coreos/etcd/client/curl.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/curl.go
rename to vendor/github.com/coreos/etcd/client/curl.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/discover.go b/vendor/github.com/coreos/etcd/client/discover.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/discover.go
rename to vendor/github.com/coreos/etcd/client/discover.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/doc.go b/vendor/github.com/coreos/etcd/client/doc.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/doc.go
rename to vendor/github.com/coreos/etcd/client/doc.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/keys.generated.go b/vendor/github.com/coreos/etcd/client/keys.generated.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/keys.generated.go
rename to vendor/github.com/coreos/etcd/client/keys.generated.go
index 748283a..feac0d1 100644
--- a/Godeps/_workspace/src/github.com/coreos/etcd/client/keys.generated.go
+++ b/vendor/github.com/coreos/etcd/client/keys.generated.go
@@ -8,7 +8,7 @@ package client
import (
"errors"
"fmt"
- codec1978 "github.com/ugorji/go/codec"
+ codec1978 "github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec"
"reflect"
"runtime"
time "time"
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/keys.go b/vendor/github.com/coreos/etcd/client/keys.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/keys.go
rename to vendor/github.com/coreos/etcd/client/keys.go
index 9dca46b..67fa02d 100644
--- a/Godeps/_workspace/src/github.com/coreos/etcd/client/keys.go
+++ b/vendor/github.com/coreos/etcd/client/keys.go
@@ -26,9 +26,9 @@ import (
"strings"
"time"
+ "github.com/coreos/etcd/Godeps/_workspace/src/github.com/ugorji/go/codec"
+ "github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
"github.com/coreos/etcd/pkg/pathutil"
- "github.com/ugorji/go/codec"
- "golang.org/x/net/context"
)
const (
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/members.go b/vendor/github.com/coreos/etcd/client/members.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/members.go
rename to vendor/github.com/coreos/etcd/client/members.go
index c1c7840..b6f33ed 100644
--- a/Godeps/_workspace/src/github.com/coreos/etcd/client/members.go
+++ b/vendor/github.com/coreos/etcd/client/members.go
@@ -22,7 +22,7 @@ import (
"net/url"
"path"
- "golang.org/x/net/context"
+ "github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
"github.com/coreos/etcd/pkg/types"
)
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/client/srv.go b/vendor/github.com/coreos/etcd/client/srv.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/client/srv.go
rename to vendor/github.com/coreos/etcd/client/srv.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/pkg/pathutil/path.go b/vendor/github.com/coreos/etcd/pkg/pathutil/path.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/pkg/pathutil/path.go
rename to vendor/github.com/coreos/etcd/pkg/pathutil/path.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/id.go b/vendor/github.com/coreos/etcd/pkg/types/id.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/id.go
rename to vendor/github.com/coreos/etcd/pkg/types/id.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/set.go b/vendor/github.com/coreos/etcd/pkg/types/set.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/set.go
rename to vendor/github.com/coreos/etcd/pkg/types/set.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/slice.go b/vendor/github.com/coreos/etcd/pkg/types/slice.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/slice.go
rename to vendor/github.com/coreos/etcd/pkg/types/slice.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/urls.go b/vendor/github.com/coreos/etcd/pkg/types/urls.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/urls.go
rename to vendor/github.com/coreos/etcd/pkg/types/urls.go
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/urlsmap.go b/vendor/github.com/coreos/etcd/pkg/types/urlsmap.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/pkg/types/urlsmap.go
rename to vendor/github.com/coreos/etcd/pkg/types/urlsmap.go
diff --git a/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/deserialize.go b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/deserialize.go
similarity index 59%
rename from Godeps/_workspace/src/github.com/coreos/go-systemd/unit/deserialize.go
rename to vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/deserialize.go
index 8a88162..2b1522e 100644
--- a/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/deserialize.go
+++ b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/deserialize.go
@@ -1,17 +1,3 @@
-// Copyright 2015 CoreOS, 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.
-
package unit
import (
@@ -24,23 +10,6 @@ import (
"unicode"
)
-const (
- // SYSTEMD_LINE_MAX mimics the maximum line length that systemd can use.
- // On typical systemd platforms (i.e. modern Linux), this will most
- // commonly be 2048, so let's use that as a sanity check.
- // Technically, we should probably pull this at runtime:
- // SYSTEMD_LINE_MAX = int(C.sysconf(C.__SC_LINE_MAX))
- // but this would introduce an (unfortunate) dependency on cgo
- SYSTEMD_LINE_MAX = 2048
-
- // characters that systemd considers indicate a newline
- SYSTEMD_NEWLINE = "\r\n"
-)
-
-var (
- ErrLineTooLong = fmt.Errorf("line too long (max %d bytes)", SYSTEMD_LINE_MAX)
-)
-
// Deserialize parses a systemd unit file into a list of UnitOption objects.
func Deserialize(f io.Reader) (opts []*UnitOption, err error) {
lexer, optchan, errchan := newLexer(f)
@@ -71,34 +40,17 @@ type lexer struct {
func (l *lexer) lex() {
var err error
- defer func() {
- close(l.optchan)
- close(l.errchan)
- }()
next := l.lexNextSection
for next != nil {
- if l.buf.Buffered() >= SYSTEMD_LINE_MAX {
- // systemd truncates lines longer than LINE_MAX
- // https://bugs.freedesktop.org/show_bug.cgi?id=85308
- // Rather than allowing this to pass silently, let's
- // explicitly gate people from encountering this
- line, err := l.buf.Peek(SYSTEMD_LINE_MAX)
- if err != nil {
- l.errchan <- err
- return
- }
- if bytes.IndexAny(line, SYSTEMD_NEWLINE) == -1 {
- l.errchan <- ErrLineTooLong
- return
- }
- }
-
next, err = next()
if err != nil {
l.errchan <- err
- return
+ break
}
}
+
+ close(l.optchan)
+ close(l.errchan)
}
type lexStep func() (lexStep, error)
@@ -114,7 +66,7 @@ func (l *lexer) lexSectionName() (lexStep, error) {
func (l *lexer) lexSectionSuffixFunc(section string) lexStep {
return func() (lexStep, error) {
- garbage, _, err := l.toEOL()
+ garbage, err := l.toEOL()
if err != nil {
return nil, err
}
@@ -131,7 +83,7 @@ func (l *lexer) lexSectionSuffixFunc(section string) lexStep {
func (l *lexer) ignoreLineFunc(next lexStep) lexStep {
return func() (lexStep, error) {
for {
- line, _, err := l.toEOL()
+ line, err := l.toEOL()
if err != nil {
return nil, err
}
@@ -211,64 +163,49 @@ func (l *lexer) lexOptionNameFunc(section string) lexStep {
}
name := strings.TrimSpace(partial.String())
- return l.lexOptionValueFunc(section, name, bytes.Buffer{}), nil
+ return l.lexOptionValueFunc(section, name), nil
}
}
-func (l *lexer) lexOptionValueFunc(section, name string, partial bytes.Buffer) lexStep {
+func (l *lexer) lexOptionValueFunc(section, name string) lexStep {
return func() (lexStep, error) {
+ var partial bytes.Buffer
+
for {
- line, eof, err := l.toEOL()
+ line, err := l.toEOL()
if err != nil {
return nil, err
}
- if len(bytes.TrimSpace(line)) == 0 {
- break
- }
-
- partial.Write(line)
-
// lack of continuation means this value has been exhausted
idx := bytes.LastIndex(line, []byte{'\\'})
if idx == -1 || idx != (len(line)-1) {
+ partial.Write(line)
break
}
- if !eof {
- partial.WriteRune('\n')
- }
-
- return l.lexOptionValueFunc(section, name, partial), nil
+ partial.Write(line[0:idx])
+ partial.WriteRune(' ')
}
- val := partial.String()
- if strings.HasSuffix(val, "\n") {
- // A newline was added to the end, so the file didn't end with a backslash.
- // => Keep the newline
- val = strings.TrimSpace(val) + "\n"
- } else {
- val = strings.TrimSpace(val)
- }
+ val := strings.TrimSpace(partial.String())
l.optchan <- &UnitOption{Section: section, Name: name, Value: val}
return l.lexNextSectionOrOptionFunc(section), nil
}
}
-// toEOL reads until the end-of-line or end-of-file.
-// Returns (data, EOFfound, error)
-func (l *lexer) toEOL() ([]byte, bool, error) {
+func (l *lexer) toEOL() ([]byte, error) {
line, err := l.buf.ReadBytes('\n')
// ignore EOF here since it's roughly equivalent to EOL
if err != nil && err != io.EOF {
- return nil, false, err
+ return nil, err
}
line = bytes.TrimSuffix(line, []byte{'\r'})
line = bytes.TrimSuffix(line, []byte{'\n'})
- return line, err == io.EOF, nil
+ return line, nil
}
func isComment(r rune) bool {
diff --git a/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/option.go b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/option.go
new file mode 100644
index 0000000..2b70fca
--- /dev/null
+++ b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/option.go
@@ -0,0 +1,36 @@
+package unit
+
+import (
+ "fmt"
+)
+
+type UnitOption struct {
+ Section string
+ Name string
+ Value string
+}
+
+func (uo *UnitOption) String() string {
+ return fmt.Sprintf("{Section: %q, Name: %q, Value: %q}", uo.Section, uo.Name, uo.Value)
+}
+
+func (uo *UnitOption) Match(other *UnitOption) bool {
+ return uo.Section == other.Section &&
+ uo.Name == other.Name &&
+ uo.Value == other.Value
+}
+
+func AllMatch(u1 []*UnitOption, u2 []*UnitOption) bool {
+ length := len(u1)
+ if length != len(u2) {
+ return false
+ }
+
+ for i := 0; i < length; i++ {
+ if !u1[i].Match(u2[i]) {
+ return false
+ }
+ }
+
+ return true
+}
diff --git a/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/serialize.go b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/serialize.go
new file mode 100644
index 0000000..867ce60
--- /dev/null
+++ b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit/serialize.go
@@ -0,0 +1,51 @@
+package unit
+
+import (
+ "bytes"
+ "io"
+)
+
+// Serialize encodes all of the given UnitOption objects into a unit file
+func Serialize(opts []*UnitOption) io.Reader {
+ var buf bytes.Buffer
+
+ if len(opts) == 0 {
+ return &buf
+ }
+
+ curSection := opts[0].Section
+
+ writeSectionHeader(&buf, curSection)
+ writeNewline(&buf)
+
+ for _, opt := range opts {
+ if opt.Section != curSection {
+ curSection = opt.Section
+
+ writeNewline(&buf)
+ writeSectionHeader(&buf, curSection)
+ writeNewline(&buf)
+ }
+
+ writeOption(&buf, opt)
+ writeNewline(&buf)
+ }
+
+ return &buf
+}
+
+func writeNewline(buf *bytes.Buffer) {
+ buf.WriteRune('\n')
+}
+
+func writeSectionHeader(buf *bytes.Buffer, section string) {
+ buf.WriteRune('[')
+ buf.WriteString(section)
+ buf.WriteRune(']')
+}
+
+func writeOption(buf *bytes.Buffer, opt *UnitOption) {
+ buf.WriteString(opt.Name)
+ buf.WriteRune('=')
+ buf.WriteString(opt.Value)
+}
diff --git a/Godeps/_workspace/src/github.com/jonboulle/clockwork/.gitignore b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/.gitignore
similarity index 100%
rename from Godeps/_workspace/src/github.com/jonboulle/clockwork/.gitignore
rename to vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/.gitignore
diff --git a/Godeps/_workspace/src/github.com/kelseyhightower/memkv/.travis.yml b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/.travis.yml
similarity index 73%
rename from Godeps/_workspace/src/github.com/kelseyhightower/memkv/.travis.yml
rename to vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/.travis.yml
index 98b4346..6a363c7 100644
--- a/Godeps/_workspace/src/github.com/kelseyhightower/memkv/.travis.yml
+++ b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/.travis.yml
@@ -1,5 +1,3 @@
language: go
-
go:
- 1.3
- - tip
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE
rename to vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/LICENSE
diff --git a/Godeps/_workspace/src/github.com/jonboulle/clockwork/README.md b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/jonboulle/clockwork/README.md
rename to vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/README.md
diff --git a/Godeps/_workspace/src/github.com/jonboulle/clockwork/clockwork.go b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/clockwork.go
similarity index 90%
rename from Godeps/_workspace/src/github.com/jonboulle/clockwork/clockwork.go
rename to vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/clockwork.go
index cf4e327..4b6918b 100644
--- a/Godeps/_workspace/src/github.com/jonboulle/clockwork/clockwork.go
+++ b/vendor/github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork/clockwork.go
@@ -32,18 +32,10 @@ func NewRealClock() Clock {
}
// NewFakeClock returns a FakeClock implementation which can be
-// manually advanced through time for testing. The initial time of the
-// FakeClock will be an arbitrary non-zero time.
+// manually advanced through time for testing.
func NewFakeClock() FakeClock {
- // use a fixture that does not fulfill Time.IsZero()
- return NewFakeClockAt(time.Date(1984, time.April, 4, 0, 0, 0, 0, time.UTC))
-}
-
-// NewFakeClock returns a FakeClock initialised at the given time.Time.
-func NewFakeClockAt(t time.Time) FakeClock {
return &fakeClock{
- l: sync.RWMutex{},
- time: t,
+ l: sync.RWMutex{},
}
}
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/LICENSE b/vendor/github.com/coreos/fleet/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/etcd/LICENSE
rename to vendor/github.com/coreos/fleet/LICENSE
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/NOTICE b/vendor/github.com/coreos/fleet/NOTICE
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/NOTICE
rename to vendor/github.com/coreos/fleet/NOTICE
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/log/log.go b/vendor/github.com/coreos/fleet/log/log.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/log/log.go
rename to vendor/github.com/coreos/fleet/log/log.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/args.go b/vendor/github.com/coreos/fleet/pkg/args.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/pkg/args.go
rename to vendor/github.com/coreos/fleet/pkg/args.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/backoff.go b/vendor/github.com/coreos/fleet/pkg/backoff.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/pkg/backoff.go
rename to vendor/github.com/coreos/fleet/pkg/backoff.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/filepath.go b/vendor/github.com/coreos/fleet/pkg/filepath.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/pkg/filepath.go
rename to vendor/github.com/coreos/fleet/pkg/filepath.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/filesystem.go b/vendor/github.com/coreos/fleet/pkg/filesystem.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/pkg/filesystem.go
rename to vendor/github.com/coreos/fleet/pkg/filesystem.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/flag.go b/vendor/github.com/coreos/fleet/pkg/flag.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/pkg/flag.go
rename to vendor/github.com/coreos/fleet/pkg/flag.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/http.go b/vendor/github.com/coreos/fleet/pkg/http.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/pkg/http.go
rename to vendor/github.com/coreos/fleet/pkg/http.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/reconcile.go b/vendor/github.com/coreos/fleet/pkg/reconcile.go
similarity index 96%
rename from Godeps/_workspace/src/github.com/coreos/fleet/pkg/reconcile.go
rename to vendor/github.com/coreos/fleet/pkg/reconcile.go
index 022031d..4019a39 100644
--- a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/reconcile.go
+++ b/vendor/github.com/coreos/fleet/pkg/reconcile.go
@@ -17,7 +17,7 @@ package pkg
import (
"time"
- "github.com/jonboulle/clockwork"
+ "github.com/coreos/fleet/Godeps/_workspace/src/github.com/jonboulle/clockwork"
"github.com/coreos/fleet/log"
)
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/set.go b/vendor/github.com/coreos/fleet/pkg/set.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/coreos/fleet/pkg/set.go
rename to vendor/github.com/coreos/fleet/pkg/set.go
index 6b8ceca..f05cdee 100644
--- a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/set.go
+++ b/vendor/github.com/coreos/fleet/pkg/set.go
@@ -81,7 +81,7 @@ func (us *unsafeSet) Length() int {
// Values returns the values of the Set in an unspecified order.
func (us *unsafeSet) Values() (values []string) {
values = make([]string, 0)
- for val := range us.d {
+ for val, _ := range us.d {
values = append(values, val)
}
return
@@ -90,7 +90,7 @@ func (us *unsafeSet) Values() (values []string) {
// Copy creates a new Set containing the values of the first
func (us *unsafeSet) Copy() Set {
cp := NewUnsafeSet()
- for val := range us.d {
+ for val, _ := range us.d {
cp.Add(val)
}
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/pkg/tls.go b/vendor/github.com/coreos/fleet/pkg/tls.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/pkg/tls.go
rename to vendor/github.com/coreos/fleet/pkg/tls.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/unit/fake.go b/vendor/github.com/coreos/fleet/unit/fake.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/coreos/fleet/unit/fake.go
rename to vendor/github.com/coreos/fleet/unit/fake.go
index 2ecf970..bc82352 100644
--- a/Godeps/_workspace/src/github.com/coreos/fleet/unit/fake.go
+++ b/vendor/github.com/coreos/fleet/unit/fake.go
@@ -56,7 +56,7 @@ func (fum *FakeUnitManager) Units() ([]string, error) {
defer fum.RUnlock()
lst := make([]string, 0, len(fum.u))
- for name := range fum.u {
+ for name, _ := range fum.u {
lst = append(lst, name)
}
return lst, nil
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/unit/generator.go b/vendor/github.com/coreos/fleet/unit/generator.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/unit/generator.go
rename to vendor/github.com/coreos/fleet/unit/generator.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/unit/manager.go b/vendor/github.com/coreos/fleet/unit/manager.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/unit/manager.go
rename to vendor/github.com/coreos/fleet/unit/manager.go
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/unit/unit.go b/vendor/github.com/coreos/fleet/unit/unit.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/coreos/fleet/unit/unit.go
rename to vendor/github.com/coreos/fleet/unit/unit.go
index aa15dd4..2da58a6 100644
--- a/Godeps/_workspace/src/github.com/coreos/fleet/unit/unit.go
+++ b/vendor/github.com/coreos/fleet/unit/unit.go
@@ -22,7 +22,7 @@ import (
"io/ioutil"
"strings"
- "github.com/coreos/go-systemd/unit"
+ "github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-systemd/unit"
)
func NewUnitFile(raw string) (*UnitFile, error) {
diff --git a/Godeps/_workspace/src/github.com/coreos/fleet/LICENSE b/vendor/github.com/coreos/go-semver/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/fleet/LICENSE
rename to vendor/github.com/coreos/go-semver/LICENSE
diff --git a/Godeps/_workspace/src/github.com/coreos/go-semver/semver/semver.go b/vendor/github.com/coreos/go-semver/semver/semver.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/go-semver/semver/semver.go
rename to vendor/github.com/coreos/go-semver/semver/semver.go
diff --git a/Godeps/_workspace/src/github.com/coreos/go-semver/semver/sort.go b/vendor/github.com/coreos/go-semver/semver/sort.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/go-semver/semver/sort.go
rename to vendor/github.com/coreos/go-semver/semver/sort.go
diff --git a/vendor/github.com/ghodss/yaml/.gitignore b/vendor/github.com/ghodss/yaml/.gitignore
new file mode 100644
index 0000000..e256a31
--- /dev/null
+++ b/vendor/github.com/ghodss/yaml/.gitignore
@@ -0,0 +1,20 @@
+# OSX leaves these everywhere on SMB shares
+._*
+
+# Eclipse files
+.classpath
+.project
+.settings/**
+
+# Emacs save files
+*~
+
+# Vim-related files
+[._]*.s[a-w][a-z]
+[._]s[a-w][a-z]
+*.un~
+Session.vim
+.netrwhist
+
+# Go test binaries
+*.test
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/ghodss/yaml/LICENSE b/vendor/github.com/ghodss/yaml/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/ghodss/yaml/LICENSE
rename to vendor/github.com/ghodss/yaml/LICENSE
diff --git a/vendor/github.com/ghodss/yaml/README.md b/vendor/github.com/ghodss/yaml/README.md
new file mode 100644
index 0000000..2d60309
--- /dev/null
+++ b/vendor/github.com/ghodss/yaml/README.md
@@ -0,0 +1,114 @@
+# YAML marshaling and unmarshaling support for Go
+
+## Introduction
+
+A wrapper around [go-yaml](https://github.com/go-yaml/yaml) designed to enable a better way of handling YAML when marshaling to and from structs.
+
+In short, this library first converts YAML to JSON using go-yaml and then uses `json.Marshal` and `json.Unmarshal` to convert to or from the struct. This means that it effectively reuses the JSON struct tags as well as the custom JSON methods `MarshalJSON` and `UnmarshalJSON` unlike go-yaml. For a detailed overview of the rationale behind this method, [see this blog post](http://ghodss.com/2014/the-right-way-to-handle-yaml-in-golang/).
+
+## Compatibility
+
+This package uses [go-yaml v2](https://github.com/go-yaml/yaml) and therefore supports [everything go-yaml supports](https://github.com/go-yaml/yaml#compatibility).
+
+## Caveats
+
+**Caveat #1:** When using `yaml.Marshal` and `yaml.Unmarshal`, binary data should NOT be preceded with the `!!binary` YAML tag. If you do, go-yaml will convert the binary data from base64 to native binary data, which is not compatible with JSON. You can still use binary in your YAML files though - just store them without the `!!binary` tag and decode the base64 in your code (e.g. in the custom JSON methods `MarshalJSON` and `UnmarshalJSON`). This also has the benefit that your YAML and your JSON binary data will be decoded exactly the same way. As an example:
+
+```
+BAD:
+ exampleKey: !!binary gIGC
+
+GOOD:
+ exampleKey: gIGC
+... and decode the base64 data in your code.
+```
+
+**Caveat #2:** When using `YAMLToJSON` directly, maps with keys that are maps will result in an error since this is not supported by JSON. This error will occur in `Unmarshal` as well since you can't unmarshal map keys anyways since struct fields can't be keys.
+
+## Installation and usage
+
+To install, run:
+
+```
+$ go get github.com/ghodss/yaml
+```
+
+And import using:
+
+```
+import "github.com/ghodss/yaml"
+```
+
+Usage is very similar to the JSON library:
+
+```go
+import (
+ "fmt"
+
+ "github.com/ghodss/yaml"
+)
+
+type Person struct {
+ Name string `json:"name"` // Affects YAML field names too.
+ Age int `json:"name"`
+}
+
+func main() {
+ // Marshal a Person struct to YAML.
+ p := Person{"John", 30}
+ y, err := yaml.Marshal(p)
+ if err != nil {
+ fmt.Printf("err: %v\n", err)
+ return
+ }
+ fmt.Println(string(y))
+ /* Output:
+ name: John
+ age: 30
+ */
+
+ // Unmarshal the YAML back into a Person struct.
+ var p2 Person
+ err := yaml.Unmarshal(y, &p2)
+ if err != nil {
+ fmt.Printf("err: %v\n", err)
+ return
+ }
+ fmt.Println(p2)
+ /* Output:
+ {John 30}
+ */
+}
+```
+
+`yaml.YAMLToJSON` and `yaml.JSONToYAML` methods are also available:
+
+```go
+import (
+ "fmt"
+
+ "github.com/ghodss/yaml"
+)
+func main() {
+ j := []byte(`{"name": "John", "age": 30}`)
+ y, err := yaml.JSONToYAML(j)
+ if err != nil {
+ fmt.Printf("err: %v\n", err)
+ return
+ }
+ fmt.Println(string(y))
+ /* Output:
+ name: John
+ age: 30
+ */
+ j2, err := yaml.YAMLToJSON(y)
+ if err != nil {
+ fmt.Printf("err: %v\n", err)
+ return
+ }
+ fmt.Println(string(j2))
+ /* Output:
+ {"age":30,"name":"John"}
+ */
+}
+```
diff --git a/vendor/github.com/ghodss/yaml/fields.go b/vendor/github.com/ghodss/yaml/fields.go
new file mode 100644
index 0000000..0bd3c2b
--- /dev/null
+++ b/vendor/github.com/ghodss/yaml/fields.go
@@ -0,0 +1,497 @@
+// Copyright 2013 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 yaml
+
+import (
+ "bytes"
+ "encoding"
+ "encoding/json"
+ "reflect"
+ "sort"
+ "strings"
+ "sync"
+ "unicode"
+ "unicode/utf8"
+)
+
+// indirect walks down v allocating pointers as needed,
+// until it gets to a non-pointer.
+// if it encounters an Unmarshaler, indirect stops and returns that.
+// if decodingNull is true, indirect stops at the last pointer so it can be set to nil.
+func indirect(v reflect.Value, decodingNull bool) (json.Unmarshaler, encoding.TextUnmarshaler, reflect.Value) {
+ // If v is a named type and is addressable,
+ // start with its address, so that if the type has pointer methods,
+ // we find them.
+ if v.Kind() != reflect.Ptr && v.Type().Name() != "" && v.CanAddr() {
+ v = v.Addr()
+ }
+ for {
+ // Load value from interface, but only if the result will be
+ // usefully addressable.
+ if v.Kind() == reflect.Interface && !v.IsNil() {
+ e := v.Elem()
+ if e.Kind() == reflect.Ptr && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Ptr) {
+ v = e
+ continue
+ }
+ }
+
+ if v.Kind() != reflect.Ptr {
+ break
+ }
+
+ if v.Elem().Kind() != reflect.Ptr && decodingNull && v.CanSet() {
+ break
+ }
+ if v.IsNil() {
+ v.Set(reflect.New(v.Type().Elem()))
+ }
+ if v.Type().NumMethod() > 0 {
+ if u, ok := v.Interface().(json.Unmarshaler); ok {
+ return u, nil, reflect.Value{}
+ }
+ if u, ok := v.Interface().(encoding.TextUnmarshaler); ok {
+ return nil, u, reflect.Value{}
+ }
+ }
+ v = v.Elem()
+ }
+ return nil, nil, v
+}
+
+// A field represents a single field found in a struct.
+type field struct {
+ name string
+ nameBytes []byte // []byte(name)
+ equalFold func(s, t []byte) bool // bytes.EqualFold or equivalent
+
+ tag bool
+ index []int
+ typ reflect.Type
+ omitEmpty bool
+ quoted bool
+}
+
+func fillField(f field) field {
+ f.nameBytes = []byte(f.name)
+ f.equalFold = foldFunc(f.nameBytes)
+ return f
+}
+
+// byName sorts field by name, breaking ties with depth,
+// then breaking ties with "name came from json tag", then
+// breaking ties with index sequence.
+type byName []field
+
+func (x byName) Len() int { return len(x) }
+
+func (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
+
+func (x byName) Less(i, j int) bool {
+ if x[i].name != x[j].name {
+ return x[i].name < x[j].name
+ }
+ if len(x[i].index) != len(x[j].index) {
+ return len(x[i].index) < len(x[j].index)
+ }
+ if x[i].tag != x[j].tag {
+ return x[i].tag
+ }
+ return byIndex(x).Less(i, j)
+}
+
+// byIndex sorts field by index sequence.
+type byIndex []field
+
+func (x byIndex) Len() int { return len(x) }
+
+func (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
+
+func (x byIndex) Less(i, j int) bool {
+ for k, xik := range x[i].index {
+ if k >= len(x[j].index) {
+ return false
+ }
+ if xik != x[j].index[k] {
+ return xik < x[j].index[k]
+ }
+ }
+ return len(x[i].index) < len(x[j].index)
+}
+
+// typeFields returns a list of fields that JSON should recognize for the given type.
+// The algorithm is breadth-first search over the set of structs to include - the top struct
+// and then any reachable anonymous structs.
+func typeFields(t reflect.Type) []field {
+ // Anonymous fields to explore at the current level and the next.
+ current := []field{}
+ next := []field{{typ: t}}
+
+ // Count of queued names for current level and the next.
+ count := map[reflect.Type]int{}
+ nextCount := map[reflect.Type]int{}
+
+ // Types already visited at an earlier level.
+ visited := map[reflect.Type]bool{}
+
+ // Fields found.
+ var fields []field
+
+ for len(next) > 0 {
+ current, next = next, current[:0]
+ count, nextCount = nextCount, map[reflect.Type]int{}
+
+ for _, f := range current {
+ if visited[f.typ] {
+ continue
+ }
+ visited[f.typ] = true
+
+ // Scan f.typ for fields to include.
+ for i := 0; i < f.typ.NumField(); i++ {
+ sf := f.typ.Field(i)
+ if sf.PkgPath != "" { // unexported
+ continue
+ }
+ tag := sf.Tag.Get("json")
+ if tag == "-" {
+ continue
+ }
+ name, opts := parseTag(tag)
+ if !isValidTag(name) {
+ name = ""
+ }
+ index := make([]int, len(f.index)+1)
+ copy(index, f.index)
+ index[len(f.index)] = i
+
+ ft := sf.Type
+ if ft.Name() == "" && ft.Kind() == reflect.Ptr {
+ // Follow pointer.
+ ft = ft.Elem()
+ }
+
+ // Record found field and index sequence.
+ if name != "" || !sf.Anonymous || ft.Kind() != reflect.Struct {
+ tagged := name != ""
+ if name == "" {
+ name = sf.Name
+ }
+ fields = append(fields, fillField(field{
+ name: name,
+ tag: tagged,
+ index: index,
+ typ: ft,
+ omitEmpty: opts.Contains("omitempty"),
+ quoted: opts.Contains("string"),
+ }))
+ if count[f.typ] > 1 {
+ // If there were multiple instances, add a second,
+ // so that the annihilation code will see a duplicate.
+ // It only cares about the distinction between 1 or 2,
+ // so don't bother generating any more copies.
+ fields = append(fields, fields[len(fields)-1])
+ }
+ continue
+ }
+
+ // Record new anonymous struct to explore in next round.
+ nextCount[ft]++
+ if nextCount[ft] == 1 {
+ next = append(next, fillField(field{name: ft.Name(), index: index, typ: ft}))
+ }
+ }
+ }
+ }
+
+ sort.Sort(byName(fields))
+
+ // Delete all fields that are hidden by the Go rules for embedded fields,
+ // except that fields with JSON tags are promoted.
+
+ // The fields are sorted in primary order of name, secondary order
+ // of field index length. Loop over names; for each name, delete
+ // hidden fields by choosing the one dominant field that survives.
+ out := fields[:0]
+ for advance, i := 0, 0; i < len(fields); i += advance {
+ // One iteration per name.
+ // Find the sequence of fields with the name of this first field.
+ fi := fields[i]
+ name := fi.name
+ for advance = 1; i+advance < len(fields); advance++ {
+ fj := fields[i+advance]
+ if fj.name != name {
+ break
+ }
+ }
+ if advance == 1 { // Only one field with this name
+ out = append(out, fi)
+ continue
+ }
+ dominant, ok := dominantField(fields[i : i+advance])
+ if ok {
+ out = append(out, dominant)
+ }
+ }
+
+ fields = out
+ sort.Sort(byIndex(fields))
+
+ return fields
+}
+
+// dominantField looks through the fields, all of which are known to
+// have the same name, to find the single field that dominates the
+// others using Go's embedding rules, modified by the presence of
+// JSON tags. If there are multiple top-level fields, the boolean
+// will be false: This condition is an error in Go and we skip all
+// the fields.
+func dominantField(fields []field) (field, bool) {
+ // The fields are sorted in increasing index-length order. The winner
+ // must therefore be one with the shortest index length. Drop all
+ // longer entries, which is easy: just truncate the slice.
+ length := len(fields[0].index)
+ tagged := -1 // Index of first tagged field.
+ for i, f := range fields {
+ if len(f.index) > length {
+ fields = fields[:i]
+ break
+ }
+ if f.tag {
+ if tagged >= 0 {
+ // Multiple tagged fields at the same level: conflict.
+ // Return no field.
+ return field{}, false
+ }
+ tagged = i
+ }
+ }
+ if tagged >= 0 {
+ return fields[tagged], true
+ }
+ // All remaining fields have the same length. If there's more than one,
+ // we have a conflict (two fields named "X" at the same level) and we
+ // return no field.
+ if len(fields) > 1 {
+ return field{}, false
+ }
+ return fields[0], true
+}
+
+var fieldCache struct {
+ sync.RWMutex
+ m map[reflect.Type][]field
+}
+
+// cachedTypeFields is like typeFields but uses a cache to avoid repeated work.
+func cachedTypeFields(t reflect.Type) []field {
+ fieldCache.RLock()
+ f := fieldCache.m[t]
+ fieldCache.RUnlock()
+ if f != nil {
+ return f
+ }
+
+ // Compute fields without lock.
+ // Might duplicate effort but won't hold other computations back.
+ f = typeFields(t)
+ if f == nil {
+ f = []field{}
+ }
+
+ fieldCache.Lock()
+ if fieldCache.m == nil {
+ fieldCache.m = map[reflect.Type][]field{}
+ }
+ fieldCache.m[t] = f
+ fieldCache.Unlock()
+ return f
+}
+
+func isValidTag(s string) bool {
+ if s == "" {
+ return false
+ }
+ for _, c := range s {
+ switch {
+ case strings.ContainsRune("!#$%&()*+-./:<=>?@[]^_{|}~ ", c):
+ // Backslash and quote chars are reserved, but
+ // otherwise any punctuation chars are allowed
+ // in a tag name.
+ default:
+ if !unicode.IsLetter(c) && !unicode.IsDigit(c) {
+ return false
+ }
+ }
+ }
+ return true
+}
+
+const (
+ caseMask = ^byte(0x20) // Mask to ignore case in ASCII.
+ kelvin = '\u212a'
+ smallLongEss = '\u017f'
+)
+
+// foldFunc returns one of four different case folding equivalence
+// functions, from most general (and slow) to fastest:
+//
+// 1) bytes.EqualFold, if the key s contains any non-ASCII UTF-8
+// 2) equalFoldRight, if s contains special folding ASCII ('k', 'K', 's', 'S')
+// 3) asciiEqualFold, no special, but includes non-letters (including _)
+// 4) simpleLetterEqualFold, no specials, no non-letters.
+//
+// The letters S and K are special because they map to 3 runes, not just 2:
+// * S maps to s and to U+017F 'ſ' Latin small letter long s
+// * k maps to K and to U+212A 'K' Kelvin sign
+// See http://play.golang.org/p/tTxjOc0OGo
+//
+// The returned function is specialized for matching against s and
+// should only be given s. It's not curried for performance reasons.
+func foldFunc(s []byte) func(s, t []byte) bool {
+ nonLetter := false
+ special := false // special letter
+ for _, b := range s {
+ if b >= utf8.RuneSelf {
+ return bytes.EqualFold
+ }
+ upper := b & caseMask
+ if upper < 'A' || upper > 'Z' {
+ nonLetter = true
+ } else if upper == 'K' || upper == 'S' {
+ // See above for why these letters are special.
+ special = true
+ }
+ }
+ if special {
+ return equalFoldRight
+ }
+ if nonLetter {
+ return asciiEqualFold
+ }
+ return simpleLetterEqualFold
+}
+
+// equalFoldRight is a specialization of bytes.EqualFold when s is
+// known to be all ASCII (including punctuation), but contains an 's',
+// 'S', 'k', or 'K', requiring a Unicode fold on the bytes in t.
+// See comments on foldFunc.
+func equalFoldRight(s, t []byte) bool {
+ for _, sb := range s {
+ if len(t) == 0 {
+ return false
+ }
+ tb := t[0]
+ if tb < utf8.RuneSelf {
+ if sb != tb {
+ sbUpper := sb & caseMask
+ if 'A' <= sbUpper && sbUpper <= 'Z' {
+ if sbUpper != tb&caseMask {
+ return false
+ }
+ } else {
+ return false
+ }
+ }
+ t = t[1:]
+ continue
+ }
+ // sb is ASCII and t is not. t must be either kelvin
+ // sign or long s; sb must be s, S, k, or K.
+ tr, size := utf8.DecodeRune(t)
+ switch sb {
+ case 's', 'S':
+ if tr != smallLongEss {
+ return false
+ }
+ case 'k', 'K':
+ if tr != kelvin {
+ return false
+ }
+ default:
+ return false
+ }
+ t = t[size:]
+
+ }
+ if len(t) > 0 {
+ return false
+ }
+ return true
+}
+
+// asciiEqualFold is a specialization of bytes.EqualFold for use when
+// s is all ASCII (but may contain non-letters) and contains no
+// special-folding letters.
+// See comments on foldFunc.
+func asciiEqualFold(s, t []byte) bool {
+ if len(s) != len(t) {
+ return false
+ }
+ for i, sb := range s {
+ tb := t[i]
+ if sb == tb {
+ continue
+ }
+ if ('a' <= sb && sb <= 'z') || ('A' <= sb && sb <= 'Z') {
+ if sb&caseMask != tb&caseMask {
+ return false
+ }
+ } else {
+ return false
+ }
+ }
+ return true
+}
+
+// simpleLetterEqualFold is a specialization of bytes.EqualFold for
+// use when s is all ASCII letters (no underscores, etc) and also
+// doesn't contain 'k', 'K', 's', or 'S'.
+// See comments on foldFunc.
+func simpleLetterEqualFold(s, t []byte) bool {
+ if len(s) != len(t) {
+ return false
+ }
+ for i, b := range s {
+ if b&caseMask != t[i]&caseMask {
+ return false
+ }
+ }
+ return true
+}
+
+// tagOptions is the string following a comma in a struct field's "json"
+// tag, or the empty string. It does not include the leading comma.
+type tagOptions string
+
+// parseTag splits a struct field's json tag into its name and
+// comma-separated options.
+func parseTag(tag string) (string, tagOptions) {
+ if idx := strings.Index(tag, ","); idx != -1 {
+ return tag[:idx], tagOptions(tag[idx+1:])
+ }
+ return tag, tagOptions("")
+}
+
+// Contains reports whether a comma-separated list of options
+// contains a particular substr flag. substr must be surrounded by a
+// string boundary or commas.
+func (o tagOptions) Contains(optionName string) bool {
+ if len(o) == 0 {
+ return false
+ }
+ s := string(o)
+ for s != "" {
+ var next string
+ i := strings.Index(s, ",")
+ if i >= 0 {
+ s, next = s[:i], s[i+1:]
+ }
+ if s == optionName {
+ return true
+ }
+ s = next
+ }
+ return false
+}
diff --git a/vendor/github.com/ghodss/yaml/yaml.go b/vendor/github.com/ghodss/yaml/yaml.go
new file mode 100644
index 0000000..fa0de8f
--- /dev/null
+++ b/vendor/github.com/ghodss/yaml/yaml.go
@@ -0,0 +1,266 @@
+package yaml
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "reflect"
+ "strconv"
+
+ "gopkg.in/yaml.v2"
+)
+
+// Marshals the object into JSON then converts JSON to YAML and returns the
+// YAML.
+func Marshal(o interface{}) ([]byte, error) {
+ j, err := json.Marshal(o)
+ if err != nil {
+ return nil, fmt.Errorf("error marshaling into JSON: ", err)
+ }
+
+ y, err := JSONToYAML(j)
+ if err != nil {
+ return nil, fmt.Errorf("error converting JSON to YAML: ", err)
+ }
+
+ return y, nil
+}
+
+// Converts YAML to JSON then uses JSON to unmarshal into an object.
+func Unmarshal(y []byte, o interface{}) error {
+ vo := reflect.ValueOf(o)
+ j, err := yamlToJSON(y, &vo)
+ if err != nil {
+ return fmt.Errorf("error converting YAML to JSON: %v", err)
+ }
+
+ err = json.Unmarshal(j, o)
+ if err != nil {
+ return fmt.Errorf("error unmarshaling JSON: %v", err)
+ }
+
+ return nil
+}
+
+// Convert JSON to YAML.
+func JSONToYAML(j []byte) ([]byte, error) {
+ // Convert the JSON to an object.
+ var jsonObj interface{}
+ // We are using yaml.Unmarshal here (instead of json.Unmarshal) because the
+ // Go JSON library doesn't try to pick the right number type (int, float,
+ // etc.) when unmarshling to interface{}, it just picks float64
+ // universally. go-yaml does go through the effort of picking the right
+ // number type, so we can preserve number type throughout this process.
+ err := yaml.Unmarshal(j, &jsonObj)
+ if err != nil {
+ return nil, err
+ }
+
+ // Marshal this object into YAML.
+ return yaml.Marshal(jsonObj)
+}
+
+// Convert YAML to JSON. Since JSON is a subset of YAML, passing JSON through
+// this method should be a no-op.
+//
+// Things YAML can do that are not supported by JSON:
+// * In YAML you can have binary and null keys in your maps. These are invalid
+// in JSON. (int and float keys are converted to strings.)
+// * Binary data in YAML with the !!binary tag is not supported. If you want to
+// use binary data with this library, encode the data as base64 as usual but do
+// not use the !!binary tag in your YAML. This will ensure the original base64
+// encoded data makes it all the way through to the JSON.
+func YAMLToJSON(y []byte) ([]byte, error) {
+ return yamlToJSON(y, nil)
+}
+
+func yamlToJSON(y []byte, jsonTarget *reflect.Value) ([]byte, error) {
+ // Convert the YAML to an object.
+ var yamlObj interface{}
+ err := yaml.Unmarshal(y, &yamlObj)
+ if err != nil {
+ return nil, err
+ }
+
+ // YAML objects are not completely compatible with JSON objects (e.g. you
+ // can have non-string keys in YAML). So, convert the YAML-compatible object
+ // to a JSON-compatible object, failing with an error if irrecoverable
+ // incompatibilties happen along the way.
+ jsonObj, err := convertToJSONableObject(yamlObj, jsonTarget)
+ if err != nil {
+ return nil, err
+ }
+
+ // Convert this object to JSON and return the data.
+ return json.Marshal(jsonObj)
+}
+
+func convertToJSONableObject(yamlObj interface{}, jsonTarget *reflect.Value) (interface{}, error) {
+ var err error
+
+ // Resolve jsonTarget to a concrete value (i.e. not a pointer or an
+ // interface). We pass decodingNull as false because we're not actually
+ // decoding into the value, we're just checking if the ultimate target is a
+ // string.
+ if jsonTarget != nil {
+ ju, tu, pv := indirect(*jsonTarget, false)
+ // We have a JSON or Text Umarshaler at this level, so we can't be trying
+ // to decode into a string.
+ if ju != nil || tu != nil {
+ jsonTarget = nil
+ } else {
+ jsonTarget = &pv
+ }
+ }
+
+ // If yamlObj is a number or a boolean, check if jsonTarget is a string -
+ // if so, coerce. Else return normal.
+ // If yamlObj is a map or array, find the field that each key is
+ // unmarshaling to, and when you recurse pass the reflect.Value for that
+ // field back into this function.
+ switch typedYAMLObj := yamlObj.(type) {
+ case map[interface{}]interface{}:
+ // JSON does not support arbitrary keys in a map, so we must convert
+ // these keys to strings.
+ //
+ // From my reading of go-yaml v2 (specifically the resolve function),
+ // keys can only have the types string, int, int64, float64, binary
+ // (unsupported), or null (unsupported).
+ strMap := make(map[string]interface{})
+ for k, v := range typedYAMLObj {
+ // Resolve the key to a string first.
+ var keyString string
+ switch typedKey := k.(type) {
+ case string:
+ keyString = typedKey
+ case int:
+ keyString = strconv.Itoa(typedKey)
+ case int64:
+ // go-yaml will only return an int64 as a key if the system
+ // architecture is 32-bit and the key's value is between 32-bit
+ // and 64-bit. Otherwise the key type will simply be int.
+ keyString = strconv.FormatInt(typedKey, 10)
+ case float64:
+ // Stolen from go-yaml to use the same conversion to string as
+ // the go-yaml library uses to convert float to string when
+ // Marshaling.
+ s := strconv.FormatFloat(typedKey, 'g', -1, 32)
+ switch s {
+ case "+Inf":
+ s = ".inf"
+ case "-Inf":
+ s = "-.inf"
+ case "NaN":
+ s = ".nan"
+ }
+ keyString = s
+ case bool:
+ if typedKey {
+ keyString = "true"
+ } else {
+ keyString = "false"
+ }
+ default:
+ return nil, fmt.Errorf("Unsupported map key of type: %s, key: %+#v, value: %+#v",
+ reflect.TypeOf(k), k, v)
+ }
+
+ // If jsonTarget is a struct (which it really should be), find the
+ // field it's going to map to. If it's not a struct, just pass nil
+ // - JSON conversion will error for us if it's a real issue.
+ if jsonTarget != nil {
+ t := *jsonTarget
+ if t.Kind() == reflect.Struct {
+ keyBytes := []byte(keyString)
+ // Find the field that the JSON library would use.
+ var f *field
+ fields := cachedTypeFields(t.Type())
+ for i := range fields {
+ ff := &fields[i]
+ if bytes.Equal(ff.nameBytes, keyBytes) {
+ f = ff
+ break
+ }
+ // Do case-insensitive comparison.
+ if f == nil && ff.equalFold(ff.nameBytes, keyBytes) {
+ f = ff
+ }
+ }
+ if f != nil {
+ // Find the reflect.Value of the most preferential
+ // struct field.
+ jtf := t.Field(f.index[0])
+ strMap[keyString], err = convertToJSONableObject(v, &jtf)
+ if err != nil {
+ return nil, err
+ }
+ continue
+ }
+ }
+ }
+ strMap[keyString], err = convertToJSONableObject(v, nil)
+ if err != nil {
+ return nil, err
+ }
+ }
+ return strMap, nil
+ case []interface{}:
+ // We need to recurse into arrays in case there are any
+ // map[interface{}]interface{}'s inside and to convert any
+ // numbers to strings.
+
+ // If jsonTarget is a slice (which it really should be), find the
+ // thing it's going to map to. If it's not a slice, just pass nil
+ // - JSON conversion will error for us if it's a real issue.
+ var jsonSliceElemValue *reflect.Value
+ if jsonTarget != nil {
+ t := *jsonTarget
+ if t.Kind() == reflect.Slice {
+ // By default slices point to nil, but we need a reflect.Value
+ // pointing to a value of the slice type, so we create one here.
+ ev := reflect.Indirect(reflect.New(t.Type().Elem()))
+ jsonSliceElemValue = &ev
+ }
+ }
+
+ // Make and use a new array.
+ arr := make([]interface{}, len(typedYAMLObj))
+ for i, v := range typedYAMLObj {
+ arr[i], err = convertToJSONableObject(v, jsonSliceElemValue)
+ if err != nil {
+ return nil, err
+ }
+ }
+ return arr, nil
+ default:
+ // If the target type is a string and the YAML type is a number,
+ // convert the YAML type to a string.
+ if jsonTarget != nil && (*jsonTarget).Kind() == reflect.String {
+ // Based on my reading of go-yaml, it may return int, int64,
+ // float64, or uint64.
+ var s string
+ switch typedVal := typedYAMLObj.(type) {
+ case int:
+ s = strconv.FormatInt(int64(typedVal), 10)
+ case int64:
+ s = strconv.FormatInt(typedVal, 10)
+ case float64:
+ s = strconv.FormatFloat(typedVal, 'g', -1, 32)
+ case uint64:
+ s = strconv.FormatUint(typedVal, 10)
+ case bool:
+ if typedVal {
+ s = "true"
+ } else {
+ s = "false"
+ }
+ }
+ if len(s) > 0 {
+ yamlObj = interface{}(s)
+ }
+ }
+ return yamlObj, nil
+ }
+
+ return nil, nil
+}
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/LICENSE b/vendor/github.com/google/cadvisor/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/google/cadvisor/LICENSE
rename to vendor/github.com/google/cadvisor/LICENSE
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/path.go b/vendor/github.com/google/cadvisor/utils/path.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/google/cadvisor/utils/path.go
rename to vendor/github.com/google/cadvisor/utils/path.go
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/timed_store.go b/vendor/github.com/google/cadvisor/utils/timed_store.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/google/cadvisor/utils/timed_store.go
rename to vendor/github.com/google/cadvisor/utils/timed_store.go
diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/utils.go b/vendor/github.com/google/cadvisor/utils/utils.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/google/cadvisor/utils/utils.go
rename to vendor/github.com/google/cadvisor/utils/utils.go
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/LICENSE b/vendor/github.com/inconshreveable/mousetrap/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/LICENSE
rename to vendor/github.com/inconshreveable/mousetrap/LICENSE
diff --git a/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/README.md b/vendor/github.com/inconshreveable/mousetrap/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/inconshreveable/mousetrap/README.md
rename to vendor/github.com/inconshreveable/mousetrap/README.md
diff --git a/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/trap_others.go b/vendor/github.com/inconshreveable/mousetrap/trap_others.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/inconshreveable/mousetrap/trap_others.go
rename to vendor/github.com/inconshreveable/mousetrap/trap_others.go
diff --git a/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/trap_windows.go b/vendor/github.com/inconshreveable/mousetrap/trap_windows.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/inconshreveable/mousetrap/trap_windows.go
rename to vendor/github.com/inconshreveable/mousetrap/trap_windows.go
diff --git a/Godeps/_workspace/src/github.com/inconshreveable/mousetrap/trap_windows_1.4.go b/vendor/github.com/inconshreveable/mousetrap/trap_windows_1.4.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/inconshreveable/mousetrap/trap_windows_1.4.go
rename to vendor/github.com/inconshreveable/mousetrap/trap_windows_1.4.go
diff --git a/Godeps/_workspace/src/github.com/juju/errors/.gitignore b/vendor/github.com/juju/errors/.gitignore
similarity index 100%
rename from Godeps/_workspace/src/github.com/juju/errors/.gitignore
rename to vendor/github.com/juju/errors/.gitignore
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/juju/errors/LICENSE b/vendor/github.com/juju/errors/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/juju/errors/LICENSE
rename to vendor/github.com/juju/errors/LICENSE
diff --git a/Godeps/_workspace/src/github.com/juju/errors/Makefile b/vendor/github.com/juju/errors/Makefile
similarity index 100%
rename from Godeps/_workspace/src/github.com/juju/errors/Makefile
rename to vendor/github.com/juju/errors/Makefile
diff --git a/Godeps/_workspace/src/github.com/juju/errors/README.md b/vendor/github.com/juju/errors/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/juju/errors/README.md
rename to vendor/github.com/juju/errors/README.md
diff --git a/Godeps/_workspace/src/github.com/juju/errors/doc.go b/vendor/github.com/juju/errors/doc.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/juju/errors/doc.go
rename to vendor/github.com/juju/errors/doc.go
diff --git a/Godeps/_workspace/src/github.com/juju/errors/error.go b/vendor/github.com/juju/errors/error.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/juju/errors/error.go
rename to vendor/github.com/juju/errors/error.go
diff --git a/Godeps/_workspace/src/github.com/juju/errors/errortypes.go b/vendor/github.com/juju/errors/errortypes.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/juju/errors/errortypes.go
rename to vendor/github.com/juju/errors/errortypes.go
diff --git a/Godeps/_workspace/src/github.com/juju/errors/functions.go b/vendor/github.com/juju/errors/functions.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/juju/errors/functions.go
rename to vendor/github.com/juju/errors/functions.go
diff --git a/Godeps/_workspace/src/github.com/juju/errors/path.go b/vendor/github.com/juju/errors/path.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/juju/errors/path.go
rename to vendor/github.com/juju/errors/path.go
diff --git a/vendor/github.com/leekchan/gtf/.gitignore b/vendor/github.com/leekchan/gtf/.gitignore
new file mode 100644
index 0000000..daf913b
--- /dev/null
+++ b/vendor/github.com/leekchan/gtf/.gitignore
@@ -0,0 +1,24 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
+*.prof
diff --git a/vendor/github.com/leekchan/gtf/.travis.yml b/vendor/github.com/leekchan/gtf/.travis.yml
new file mode 100644
index 0000000..bbd90ac
--- /dev/null
+++ b/vendor/github.com/leekchan/gtf/.travis.yml
@@ -0,0 +1,9 @@
+language: go
+go:
+ - tip
+before_install:
+ - go get github.com/axw/gocov/gocov
+ - go get github.com/mattn/goveralls
+ - if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi
+script:
+ - $HOME/gopath/bin/goveralls -service=travis-ci
\ No newline at end of file
diff --git a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/xiang90/probing/LICENSE b/vendor/github.com/leekchan/gtf/LICENSE
similarity index 94%
rename from Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/xiang90/probing/LICENSE
rename to vendor/github.com/leekchan/gtf/LICENSE
index cde8b8b..244f4d8 100644
--- a/Godeps/_workspace/src/github.com/coreos/etcd/Godeps/_workspace/src/github.com/xiang90/probing/LICENSE
+++ b/vendor/github.com/leekchan/gtf/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2015 Xiang Li
+Copyright (c) 2015 Kyoung-chan Lee (leekchan@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
diff --git a/vendor/github.com/leekchan/gtf/README.md b/vendor/github.com/leekchan/gtf/README.md
new file mode 100644
index 0000000..5f49fc7
--- /dev/null
+++ b/vendor/github.com/leekchan/gtf/README.md
@@ -0,0 +1,711 @@
+# gtf - a useful set of Golang Template Functions
+[](https://travis-ci.org/leekchan/gtf)
+[](https://coveralls.io/github/leekchan/gtf?branch=master)
+[](https://godoc.org/github.com/leekchan/gtf)
+
+gtf is a useful set of Golang Template Functions. The goal of this project is implementing all built-in template filters of Django & Jinja2.
+
+## Basic usages
+
+### Method 1 : Uses gtf.New
+
+gtf.New is a wrapper function of [template.New](http://golang.org/pkg/text/template/#New). It automatically adds the gtf functions to the template's function map and returns [template.Template](http://golang.org/pkg/text/template/#Template).
+
+```Go
+package main
+
+import (
+ "net/http"
+ "github.com/leekchan/gtf"
+)
+
+func main() {
+ http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+ filesize := 554832114
+ tpl, _ := gtf.New("test").Parse("{{ . | filesizeformat }}")
+ tpl.Execute(w, filesize)
+ })
+ http.ListenAndServe(":8080", nil)
+}
+```
+
+### Method 2 : Adds gtf functions to the existing template.
+
+You can also add the gtf functions to the existing template. Just call ".Funcs(gtf.GtfFuncMap)".
+
+```Go
+package main
+
+import (
+ "net/http"
+ "html/template"
+ "github.com/leekchan/gtf"
+)
+
+func main() {
+ http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+ filesize := 554832114
+ tpl, _ := template.New("test").Funcs(gtf.GtfFuncMap).Parse("{{ . | filesizeformat }}")
+ tpl.Execute(w, filesize)
+ })
+ http.ListenAndServe(":8080", nil)
+}
+```
+
+
+## Integration
+
+You can use gtf with any web frameworks (revel, beego, martini, gin, etc) which use the Golang's built-in [html/template package](http://golang.org/pkg/html/template/).
+
+
+### Injection
+
+You can inject gtf functions into your webframework's original FuncMap by calling "gtf.Inject" / "gtf.ForceInject" / "gtf.InjectWithPrefix".
+
+#### gtf.Inject
+
+gtf.Inject injects gtf functions into the passed FuncMap. It does not overwrite the original function which have same name as a gtf function.
+
+```Go
+Inject(originalFuncMap)
+```
+
+#### gtf.ForceInject
+
+gtf.ForceInject injects gtf functions into the passed FuncMap. It overwrites the original function which have same name as a gtf function.
+
+```Go
+ForceInject(originalFuncMap)
+```
+
+
+#### gtf.InjectWithPrefix
+
+gtf.Inject injects gtf functions into the passed FuncMap. It prefixes the gtf functions with the specified prefix. If there are many function which have same names as the gtf functions, you can use this function to prefix the gtf functions.
+
+
+```Go
+InjectWithPrefix(originalFuncMap, "gtf_") // prefix : gtf_
+```
+
+
+### [Revel](http://revel.github.io/) integration
+
+Calling "gtf.Inject(revel.TemplateFuncs)" injects gtf functions into revel.TemplateFuncs. Just add this one line in init() of init.go, and use gtf functions in your templates! :)
+
+```Go
+// init.go
+
+package app
+
+import "github.com/revel/revel"
+import "github.com/leekchan/gtf"
+
+func init() {
+ gtf.Inject(revel.TemplateFuncs)
+}
+```
+
+
+### [Beego](http://beego.me/) integration
+
+Add these three lines before "beego.Run()" in your main() function. This code snippet will inject gtf functions into beego's FuncMap.
+
+```Go
+for k, v := range gtf.GtfFuncMap {
+ beego.AddFuncMap(k, v)
+}
+```
+
+**Full example:**
+
+```Go
+package main
+
+import (
+ "github.com/astaxie/beego"
+ "github.com/beego/i18n"
+
+ "github.com/beego/samples/WebIM/controllers"
+
+ "github.com/leekchan/gtf"
+)
+
+const (
+ APP_VER = "0.1.1.0227"
+)
+
+func main() {
+ beego.Info(beego.AppName, APP_VER)
+
+ // Register routers.
+ beego.Router("/", &controllers.AppController{})
+ // Indicate AppController.Join method to handle POST requests.
+ beego.Router("/join", &controllers.AppController{}, "post:Join")
+
+ // Long polling.
+ beego.Router("/lp", &controllers.LongPollingController{}, "get:Join")
+ beego.Router("/lp/post", &controllers.LongPollingController{})
+ beego.Router("/lp/fetch", &controllers.LongPollingController{}, "get:Fetch")
+
+ // WebSocket.
+ beego.Router("/ws", &controllers.WebSocketController{})
+ beego.Router("/ws/join", &controllers.WebSocketController{}, "get:Join")
+
+ // Register template functions.
+ beego.AddFuncMap("i18n", i18n.Tr)
+
+ // Register gtf functions.
+ for k, v := range gtf.GtfFuncMap {
+ beego.AddFuncMap(k, v)
+ }
+
+ beego.Run()
+}
+```
+
+
+### Other web frameworks (TODO)
+
+I will add the detailed integration guides for other web frameworks soon!
+
+
+## Safety
+All gtf functions have their own recovery logics. The basic behavior of the recovery logic is silently swallowing all unexpected panics. All gtf functions would not make any panics in runtime. (**Production Ready!**)
+
+If a panic occurs inside a gtf function, the function will silently swallow the panic and return "" (empty string). If you meet any unexpected empty output, [please make an issue](https://github.com/leekchan/gtf/issues/new)! :)
+
+
+
+## Reference
+
+### Index
+
+* [replace](#replace)
+* [default](#default)
+* [length](#length)
+* [lower](#lower)
+* [upper](#upper)
+* [truncatechars](#truncatechars)
+* [urlencode](#urlencode)
+* [wordcount](#wordcount)
+* [divisibleby](#divisibleby)
+* [lengthis](#lengthis)
+* [trim](#trim)
+* [capfirst](#capfirst)
+* [pluralize](#pluralize)
+* [yesno](#yesno)
+* [rjust](#rjust)
+* [ljust](#ljust)
+* [center](#center)
+* [filesizeformat](#filesizeformat)
+* [apnumber](#apnumber)
+* [intcomma](#intcomma)
+* [ordinal](#ordinal)
+* [first](#first)
+* [last](#last)
+* [join](#join)
+* [slice](#slice)
+* [random](#random)
+* [striptags](#striptags)
+
+
+
+#### replace
+
+Removes all values of arg from the given string.
+
+* supported value types : string
+* supported argument types : string
+
+```
+{{ value | replace " " }}
+```
+If value is "The Go Programming Language", the output will be "TheGoProgrammingLanguage".
+
+
+
+#### default
+
+1. If the given string is ""(empty string), uses the given default argument.
+1. If the given array/slice/map is empty, uses the given default argument.
+1. If the given boolean value is false, uses the given default argument.
+
+* supported value types : string, array, slice, map, boolean
+* supported argument types : all
+
+```
+{{ value | default "default value" }}
+```
+If value is ""(the empty string), the output will be "default value".
+
+
+
+#### length
+
+Returns the length of the given string/array/slice/map.
+
+* supported value types : string, array, slice, map
+
+This function also supports unicode strings.
+
+```
+{{ value | length }}
+```
+If value is "The Go Programming Language", the output will be 27.
+
+
+
+#### lower
+
+Converts the given string into all lowercase.
+
+* supported value types : string
+
+```
+{{ value | lower }}
+```
+If value is "The Go Programming Language", the output will be "the go programming language".
+
+
+
+#### upper
+
+Converts the given string into all uppercase.
+
+* supported value types : string
+
+```
+{{ value | upper }}
+```
+If value is "The Go Programming Language", the output will be "THE GO PROGRAMMING LANGUAGE".
+
+
+
+#### truncatechars
+
+Truncates the given string if it is longer than the specified number of characters. Truncated strings will end with a translatable ellipsis sequence ("...")
+
+* supported value types : string
+
+**Argument:** Number of characters to truncate to
+
+This function also supports unicode strings.
+
+```
+{{ value | truncatechars 12 }}
+```
+
+**Examples**
+
+1. If input is {{ "The Go Programming Language" | truncatechars 12 }}, the output will be "The Go Pr...". (basic string)
+1. If input is {{ "안녕하세요. 반갑습니다." | truncatechars 12 }}, the output will be "안녕하세요. 반갑...". (unicode)
+1. If input is {{ "안녕하세요. The Go Programming Language" | truncatechars 30 }}, the output will be "안녕하세요. The Go Programming L...". (unicode)
+1. If input is {{ "The" | truncatechars 30 }}, the output will be "The". (If the length of the given string is shorter than the argument, the output will be the original string.)
+1. If input is {{ "The Go Programming Language" | truncatechars 3 }}, the output will be "The". (If the argument is less than or equal to 3, the output will not contain "...".)
+1. If input is {{ "The Go" | truncatechars -1 }}, the output will be "The Go". (If the argument is less than 0, the argument will be ignored.)
+
+
+
+#### urlencode
+
+Escapes the given string for use in a URL.
+
+* supported value types : string
+
+```
+{{ value | urlencode }}
+```
+
+If value is "http://www.example.org/foo?a=b&c=d", the output will be "http%3A%2F%2Fwww.example.org%2Ffoo%3Fa%3Db%26c%3Dd".
+
+
+
+#### wordcount
+
+Returns the number of words.
+
+* supported value types : string
+
+```
+{{ value | wordcount }}
+```
+
+If value is "The Go Programming Language", the output will be 4.
+
+
+
+#### divisibleby
+
+Returns true if the value is divisible by the argument.
+
+* supported value types : int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64
+* supported argument types : int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64
+
+```
+{{ value | divisibleby 3 }}
+```
+
+**Examples**
+
+1. If input is {{ 21 | divisibleby 3 }}, the output will be true.
+1. If input is {{ 21 | divisibleby 4 }}, the output will be false.
+1. If input is {{ 3.0 | divisibleby 1.5 }}, the output will be true.
+
+
+
+#### lengthis
+
+Returns true if the value's length is the argument, or false otherwise.
+
+* supported value types : string, array, slice, map
+* supported argument types : int
+
+```
+{{ value | lengthis 3 }}
+```
+
+This function also supports unicode strings.
+
+**Examples**
+
+1. If input is {{ "Go" | lengthis 2 }}, the output will be true.
+1. If input is {{ "안녕하세요. Go!" | lengthis 10 }}, the output will be true.
+
+
+
+#### trim
+
+Strips leading and trailing whitespace.
+
+* supported value types : string
+
+```
+{{ value | trim }}
+```
+
+
+
+#### capfirst
+
+Capitalizes the first character of the given string.
+
+* supported value types : string
+
+```
+{{ value | capfirst }}
+```
+
+If value is "the go programming language", the output will be "The go programming language".
+
+
+
+#### pluralize
+
+Returns a plural suffix if the value is not 1. You can specify both a singular and plural suffix, separated by a comma.
+
+**Argument:** singular and plural suffix.
+
+1. "s" --> specify a singular suffix.
+2. "y,ies" --> specify both a singular and plural suffix.
+
+* supported value types : int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64
+* supported argument types : string
+
+```
+{{ value | pluralize "s" }}
+{{ value | pluralize "y,ies" }}
+```
+
+**Examples**
+
+1. You have 0 message{{ 0 | pluralize "s" }} --> You have 0 messages
+2. You have 1 message{{ 1 | pluralize "s" }} --> You have 1 message
+3. 0 cand{{ 0 | pluralize "y,ies" }} --> 0 candies
+4. 1 cand{{ 1 | pluralize "y,ies" }} --> 1 candy
+5. 2 cand{{ 2 | pluralize "y,ies" }} --> 2 candies
+
+
+
+#### yesno
+
+Returns argument strings according to the given boolean value.
+
+* supported value types : boolean
+* supported argument types : string
+
+**Argument:** any value for true and false
+
+```
+{{ value | yesno "yes!" "no!" }}
+```
+
+
+#### rjust
+
+Right-aligns the given string in a field of a given width. This function also supports unicode strings.
+
+* supported value types : string
+
+```
+{{ value | rjust 10 }}
+```
+
+**Examples**
+
+1. If input is {{ "Go" | rjust 10 }}, the output will be " Go".
+1. If input is {{ "안녕하세요" | rjust 10 }}, the output will be " 안녕하세요".
+
+
+
+#### ljust
+
+Left-aligns the given string in a field of a given width. This function also supports unicode strings.
+
+* supported value types : string
+
+```
+{{ value | ljust 10 }}
+```
+
+**Examples**
+
+1. If input is {{ "Go" | ljust 10 }}, the output will be "Go ".
+1. If input is {{ "안녕하세요" | ljust 10 }}, the output will be "안녕하세요 ".
+
+
+
+#### center
+
+Centers the given string in a field of a given width. This function also supports unicode strings.
+
+* supported value types : string
+
+```
+{{ value | center 10 }}
+```
+
+**Examples**
+
+1. If input is {{ "Go" | center 10 }}, the output will be " Go ".
+1. If input is {{ "안녕하세요" | center 10 }}, the output will be " 안녕하세요 ".
+
+
+
+#### filesizeformat
+
+Formats the value like a human readable file size.
+
+* supported value types : int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64
+
+```
+{{ value | filesizeformat }}
+```
+
+**Examples**
+
+1. {{ 234 | filesizeformat }} --> "234 bytes"
+1. {{ 12345 | filesizeformat }} --> "12.1 KB"
+1. {{ 12345.35335 | filesizeformat }} --> "12.1 KB"
+1. {{ 1048576 | filesizeformat } --> "1 MB"
+1. {{ 554832114 | filesizeformat }} --> "529.1 MB"
+1. {{ 14868735121 | filesizeformat }} --> "13.8 GB"
+1. {{ 14868735121365 | filesizeformat }} --> "13.5 TB"
+1. {{ 1486873512136523 | filesizeformat }} --> "1.3 PB"
+
+
+
+#### apnumber
+
+For numbers 1-9, returns the number spelled out. Otherwise, returns the number.
+
+* supported value types : int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64
+
+```
+{{ value | apnumber }}
+```
+
+**Examples**
+
+1. {{ 1 | apnumber }} --> one
+1. {{ 2 | apnumber }} --> two
+1. {{ 3 | apnumber }} --> three
+1. {{ 9 | apnumber }} --> nine
+1. {{ 10 | apnumber }} --> 10
+1. {{ 1000 | apnumber }} --> 1000
+
+
+
+#### intcomma
+
+Converts an integer to a string containing commas every three digits.
+
+* supported value types : int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64
+
+```
+{{ value | intcomma }}
+```
+
+**Examples**
+
+1. {{ 1000 | intcomma }} --> 1,000
+1. {{ -1000 | intcomma }} --> -1,000
+1. {{ 1578652313 | intcomma }} --> 1,578,652,313
+
+
+
+#### ordinal
+
+Converts an integer to its ordinal as a string.
+
+* supported value types : int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64
+
+```
+{{ value | ordinal }}
+```
+
+**Examples**
+
+1. {{ 1 | ordinal }} --> 1st
+1. {{ 2 | ordinal }} --> 2nd
+1. {{ 3 | ordinal }} --> 3rd
+1. {{ 11 | ordinal }} --> 11th
+1. {{ 12 | ordinal }} --> 12th
+1. {{ 13 | ordinal }} --> 13th
+1. {{ 14 | ordinal }} --> 14th
+
+
+
+#### first
+
+Returns the first item in the given value.
+
+* supported value types : string, slice, array
+
+This function also supports unicode strings.
+
+```
+{{ value | first }}
+```
+
+**Examples**
+
+1. If value is the string "The go programming language", the output will be the string "T".
+1. If value is the string "안녕하세요", the output will be the string "안". (unicode)
+1. If value is the slice []string{"go", "python", "ruby"}, the output will be the string "go".
+1. If value is the array [3]string{"go", "python", "ruby"}, the output will be the string "go".
+
+
+
+#### last
+
+Returns the last item in the given value.
+
+* supported value types : string, slice, array
+
+This function also supports unicode strings.
+
+```
+{{ value | last }}
+```
+
+**Examples**
+
+1. If value is the string "The go programming language", the output will be the string "e".
+1. If value is the string "안녕하세요", the output will be the string "요". (unicode)
+1. If value is the slice []string{"go", "python", "ruby"}, the output will be the string "ruby".
+1. If value is the array [3]string{"go", "python", "ruby"}, the output will be the string "ruby".
+
+
+
+
+#### join
+
+Concatenates the given slice to create a single string. The given argument (separator) will be placed between elements in the resulting string.
+
+```
+{{ value | join " " }}
+```
+
+If value is the slice []string{"go", "python", "ruby"}, the output will be the string "go python ruby"
+
+
+
+
+#### slice
+
+Returns a slice of the given value. The first argument is the start position, and the second argument is the end position.
+
+* supported value types : string, slice
+* supported argument types : int
+
+This function also supports unicode strings.
+
+```
+{{ value | slice 0 2 }}
+```
+
+**Examples**
+
+1. If input is {{ "The go programming language" | slice 0 6 }}, the output will be "The go".
+1. If input is {{ "안녕하세요" | slice 0 2 }}, the output will be "안녕". (unicode)
+1. If input is {{ []string{"go", "python", "ruby"} | slice 0 2 }}, the output will be []string{"go", "python"}.
+
+
+
+
+#### random
+
+Returns a random item from the given value.
+
+* supported value types : string, slice, array
+
+This function also supports unicode strings.
+
+```
+{{ value | random }}
+```
+
+**Examples**
+
+1. If input is {{ "The go programming language" | random }}, the output could be "T".
+1. If input is {{ "안녕하세요" | random }}, the output could be "안". (unicode)
+1. If input is {{ []string{"go", "python", "ruby"} | random }}, the output could be "go".
+1. If input is {{ [3]string{"go", "python", "ruby"} | random }}, the output could be "go".
+
+
+
+
+#### striptags
+
+Makes all possible efforts to strip all [X]HTML tags from given value.
+
+* supported value types : string
+
+This function also supports unicode strings.
+
+```
+{{ value | striptags }}
+```
+
+**Examples**
+
+1. If input is {{ "<strong>text</strong>" | striptags }}, the output will be "text".
+1. If input is {{ "<strong><em>안녕하세요</em></strong>" | striptags }}, the output will be "안녕하세요". (unicode)
+1. If input is {{ "<a href="/link">text <strong>안녕하세요</strong></a>" | striptags }}, the output will be "text 안녕하세요".
+
+
+
+
+
+## Goal
+The first goal is implementing all built-in template filters of Django & Jinja2.
+
+* [Django | Built-in filter reference](https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#built-in-filter-reference)
+* [Jinja2 | List of Builtin Filters](http://jinja.pocoo.org/docs/dev/templates/#builtin-filters)
+
+The final goal is building a ultimate set which contains hundreds of useful template functions.
+
+
+## Contributing
+I love pull requests :) You can add any useful template functions by submitting a pull request!
diff --git a/vendor/github.com/leekchan/gtf/gtf.go b/vendor/github.com/leekchan/gtf/gtf.go
new file mode 100644
index 0000000..836c9ce
--- /dev/null
+++ b/vendor/github.com/leekchan/gtf/gtf.go
@@ -0,0 +1,463 @@
+package gtf
+
+import (
+ "fmt"
+ "html/template"
+ "math"
+ "math/rand"
+ "net/url"
+ "reflect"
+ "regexp"
+ "strings"
+ "time"
+)
+
+var striptagsRegexp = regexp.MustCompile("<[^>]*?>")
+
+// recovery will silently swallow all unexpected panics.
+func recovery() {
+ recover()
+}
+
+var GtfFuncMap = template.FuncMap{
+ "replace": func(s1 string, s2 string) string {
+ defer recovery()
+
+ return strings.Replace(s2, s1, "", -1)
+ },
+ "default": func(arg interface{}, value interface{}) interface{} {
+ defer recovery()
+
+ v := reflect.ValueOf(value)
+ switch v.Kind() {
+ case reflect.String, reflect.Slice, reflect.Array, reflect.Map:
+ if v.Len() == 0 {
+ return arg
+ }
+ case reflect.Bool:
+ if !v.Bool() {
+ return arg
+ }
+ default:
+ return value
+ }
+
+ return value
+ },
+ "length": func(value interface{}) int {
+ defer recovery()
+
+ v := reflect.ValueOf(value)
+ switch v.Kind() {
+ case reflect.Slice, reflect.Array, reflect.Map:
+ return v.Len()
+ case reflect.String:
+ return len([]rune(v.String()))
+ }
+
+ return 0
+ },
+ "lower": func(s string) string {
+ defer recovery()
+
+ return strings.ToLower(s)
+ },
+ "upper": func(s string) string {
+ defer recovery()
+
+ return strings.ToUpper(s)
+ },
+ "truncatechars": func(n int, s string) string {
+ defer recovery()
+
+ if n < 0 {
+ return s
+ }
+
+ r := []rune(s)
+ rLength := len(r)
+
+ if n >= rLength {
+ return s
+ }
+
+ if n > 3 && rLength > 3 {
+ return string(r[:n-3]) + "..."
+ }
+
+ return string(r[:n])
+ },
+ "urlencode": func(s string) string {
+ defer recovery()
+
+ return url.QueryEscape(s)
+ },
+ "wordcount": func(s string) int {
+ defer recovery()
+
+ return len(strings.Fields(s))
+ },
+ "divisibleby": func(arg interface{}, value interface{}) bool {
+ defer recovery()
+
+ var v float64
+ switch value.(type) {
+ case int, int8, int16, int32, int64:
+ v = float64(reflect.ValueOf(value).Int())
+ case uint, uint8, uint16, uint32, uint64:
+ v = float64(reflect.ValueOf(value).Uint())
+ case float32, float64:
+ v = reflect.ValueOf(value).Float()
+ default:
+ return false
+ }
+
+ var a float64
+ switch arg.(type) {
+ case int, int8, int16, int32, int64:
+ a = float64(reflect.ValueOf(arg).Int())
+ case uint, uint8, uint16, uint32, uint64:
+ a = float64(reflect.ValueOf(arg).Uint())
+ case float32, float64:
+ a = reflect.ValueOf(arg).Float()
+ default:
+ return false
+ }
+
+ return math.Mod(v, a) == 0
+ },
+ "lengthis": func(arg int, value interface{}) bool {
+ defer recovery()
+
+ v := reflect.ValueOf(value)
+ switch v.Kind() {
+ case reflect.Slice, reflect.Array, reflect.Map:
+ return v.Len() == arg
+ case reflect.String:
+ return len([]rune(v.String())) == arg
+ }
+
+ return false
+ },
+ "trim": func(s string) string {
+ defer recovery()
+
+ return strings.TrimSpace(s)
+ },
+ "capfirst": func(s string) string {
+ defer recovery()
+
+ return strings.ToUpper(string(s[0])) + s[1:]
+ },
+ "pluralize": func(arg string, value interface{}) string {
+ defer recovery()
+
+ flag := false
+ v := reflect.ValueOf(value)
+ switch v.Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ flag = v.Int() == 1
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ flag = v.Uint() == 1
+ default:
+ return ""
+ }
+
+ if !strings.Contains(arg, ",") {
+ arg = "," + arg
+ }
+
+ bits := strings.Split(arg, ",")
+
+ if len(bits) > 2 {
+ return ""
+ }
+
+ if flag {
+ return bits[0]
+ }
+
+ return bits[1]
+ },
+ "yesno": func(yes string, no string, value bool) string {
+ defer recovery()
+
+ if value {
+ return yes
+ }
+
+ return no
+ },
+ "rjust": func(arg int, value string) string {
+ defer recovery()
+
+ n := arg - len([]rune(value))
+
+ if n > 0 {
+ value = strings.Repeat(" ", n) + value
+ }
+
+ return value
+ },
+ "ljust": func(arg int, value string) string {
+ defer recovery()
+
+ n := arg - len([]rune(value))
+
+ if n > 0 {
+ value = value + strings.Repeat(" ", n)
+ }
+
+ return value
+ },
+ "center": func(arg int, value string) string {
+ defer recovery()
+
+ n := arg - len([]rune(value))
+
+ if n > 0 {
+ left := n / 2
+ right := n - left
+ value = strings.Repeat(" ", left) + value + strings.Repeat(" ", right)
+ }
+
+ return value
+ },
+ "filesizeformat": func(value interface{}) string {
+ defer recovery()
+
+ var size float64
+
+ v := reflect.ValueOf(value)
+ switch v.Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ size = float64(v.Int())
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ size = float64(v.Uint())
+ case reflect.Float32, reflect.Float64:
+ size = v.Float()
+ default:
+ return ""
+ }
+
+ var KB float64 = 1 << 10
+ var MB float64 = 1 << 20
+ var GB float64 = 1 << 30
+ var TB float64 = 1 << 40
+ var PB float64 = 1 << 50
+
+ filesizeFormat := func(filesize float64, suffix string) string {
+ return strings.Replace(fmt.Sprintf("%.1f %s", filesize, suffix), ".0", "", -1)
+ }
+
+ var result string
+ if size < KB {
+ result = filesizeFormat(size, "bytes")
+ } else if size < MB {
+ result = filesizeFormat(size/KB, "KB")
+ } else if size < GB {
+ result = filesizeFormat(size/MB, "MB")
+ } else if size < TB {
+ result = filesizeFormat(size/GB, "GB")
+ } else if size < PB {
+ result = filesizeFormat(size/TB, "TB")
+ } else {
+ result = filesizeFormat(size/PB, "PB")
+ }
+
+ return result
+ },
+ "apnumber": func(value interface{}) interface{} {
+ defer recovery()
+
+ name := [10]string{"one", "two", "three", "four", "five",
+ "six", "seven", "eight", "nine"}
+
+ v := reflect.ValueOf(value)
+ switch v.Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ if v.Int() < 10 {
+ return name[v.Int()-1]
+ }
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ if v.Uint() < 10 {
+ return name[v.Uint()-1]
+ }
+ }
+
+ return value
+ },
+ "intcomma": func(value interface{}) string {
+ defer recovery()
+
+ v := reflect.ValueOf(value)
+
+ var x uint
+ minus := false
+ switch v.Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ if v.Int() < 0 {
+ minus = true
+ x = uint(-v.Int())
+ } else {
+ x = uint(v.Int())
+ }
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ x = uint(v.Uint())
+ default:
+ return ""
+ }
+
+ var result string
+ for x >= 1000 {
+ result = fmt.Sprintf(",%03d%s", x%1000, result)
+ x /= 1000
+ }
+ result = fmt.Sprintf("%d%s", x, result)
+
+ if minus {
+ result = "-" + result
+ }
+
+ return result
+ },
+ "ordinal": func(value interface{}) string {
+ defer recovery()
+
+ v := reflect.ValueOf(value)
+
+ var x uint
+ switch v.Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ if v.Int() < 0 {
+ return ""
+ }
+ x = uint(v.Int())
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ x = uint(v.Uint())
+ default:
+ return ""
+ }
+
+ suffixes := [10]string{"th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th"}
+
+ switch x % 100 {
+ case 11, 12, 13:
+ return fmt.Sprintf("%d%s", x, suffixes[0])
+ }
+
+ return fmt.Sprintf("%d%s", x, suffixes[x%10])
+ },
+ "first": func(value interface{}) interface{} {
+ defer recovery()
+
+ v := reflect.ValueOf(value)
+
+ switch v.Kind() {
+ case reflect.String:
+ return string([]rune(v.String())[0])
+ case reflect.Slice, reflect.Array:
+ return v.Index(0).Interface()
+ }
+
+ return ""
+ },
+ "last": func(value interface{}) interface{} {
+ defer recovery()
+
+ v := reflect.ValueOf(value)
+
+ switch v.Kind() {
+ case reflect.String:
+ str := []rune(v.String())
+ return string(str[len(str)-1])
+ case reflect.Slice, reflect.Array:
+ return v.Index(v.Len() - 1).Interface()
+ }
+
+ return ""
+ },
+ "join": func(arg string, value []string) string {
+ defer recovery()
+
+ return strings.Join(value, arg)
+ },
+ "slice": func(start int, end int, value interface{}) interface{} {
+ defer recovery()
+
+ v := reflect.ValueOf(value)
+
+ if start < 0 {
+ start = 0
+ }
+
+ switch v.Kind() {
+ case reflect.String:
+ str := []rune(v.String())
+
+ if end > len(str) {
+ end = len(str)
+ }
+
+ return string(str[start:end])
+ case reflect.Slice:
+ return v.Slice(start, end).Interface()
+ }
+ return ""
+ },
+ "random": func(value interface{}) interface{} {
+ defer recovery()
+
+ rand.Seed(time.Now().UTC().UnixNano())
+
+ v := reflect.ValueOf(value)
+
+ switch v.Kind() {
+ case reflect.String:
+ str := []rune(v.String())
+ return string(str[rand.Intn(len(str))])
+ case reflect.Slice, reflect.Array:
+ return v.Index(rand.Intn(v.Len())).Interface()
+ }
+
+ return ""
+ },
+ "striptags": func(s string) string {
+ return strings.TrimSpace(striptagsRegexp.ReplaceAllString(s, ""))
+ },
+}
+
+// gtf.New is a wrapper function of template.New(http://golang.org/pkg/text/template/#New).
+// It automatically adds the gtf functions to the template's function map
+// and returns template.Template(http://golang.org/pkg/text/template/#Template).
+func New(name string) *template.Template {
+ return template.New(name).Funcs(GtfFuncMap)
+}
+
+// gtf.Inject injects gtf functions into the passed FuncMap.
+// It does not overwrite the original function which have same name as a gtf function.
+func Inject(funcs map[string]interface{}) {
+ for k, v := range GtfFuncMap {
+ if _, ok := funcs[k]; !ok {
+ funcs[k] = v
+ }
+ }
+}
+
+// gtf.ForceInject injects gtf functions into the passed FuncMap.
+// It overwrites the original function which have same name as a gtf function.
+func ForceInject(funcs map[string]interface{}) {
+ for k, v := range GtfFuncMap {
+ funcs[k] = v
+ }
+}
+
+// gtf.Inject injects gtf functions into the passed FuncMap.
+// It prefixes the gtf functions with the specified prefix.
+// If there are many function which have same names as the gtf functions,
+// you can use this function to prefix the gtf functions.
+func InjectWithPrefix(funcs map[string]interface{}, prefix string) {
+ for k, v := range GtfFuncMap {
+ funcs[prefix+k] = v
+ }
+}
diff --git a/Godeps/_workspace/src/github.com/mgutz/ansi/.gitignore b/vendor/github.com/mgutz/ansi/.gitignore
similarity index 100%
rename from Godeps/_workspace/src/github.com/mgutz/ansi/.gitignore
rename to vendor/github.com/mgutz/ansi/.gitignore
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/mgutz/ansi/LICENSE b/vendor/github.com/mgutz/ansi/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/mgutz/ansi/LICENSE
rename to vendor/github.com/mgutz/ansi/LICENSE
diff --git a/Godeps/_workspace/src/github.com/mgutz/ansi/README.md b/vendor/github.com/mgutz/ansi/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/mgutz/ansi/README.md
rename to vendor/github.com/mgutz/ansi/README.md
diff --git a/Godeps/_workspace/src/github.com/mgutz/ansi/ansi.go b/vendor/github.com/mgutz/ansi/ansi.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/mgutz/ansi/ansi.go
rename to vendor/github.com/mgutz/ansi/ansi.go
diff --git a/Godeps/_workspace/src/github.com/mgutz/ansi/doc.go b/vendor/github.com/mgutz/ansi/doc.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/mgutz/ansi/doc.go
rename to vendor/github.com/mgutz/ansi/doc.go
diff --git a/Godeps/_workspace/src/github.com/mgutz/ansi/print.go b/vendor/github.com/mgutz/ansi/print.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/mgutz/ansi/print.go
rename to vendor/github.com/mgutz/ansi/print.go
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/mitchellh/go-homedir/LICENSE b/vendor/github.com/mitchellh/go-homedir/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/mitchellh/go-homedir/LICENSE
rename to vendor/github.com/mitchellh/go-homedir/LICENSE
diff --git a/Godeps/_workspace/src/github.com/mitchellh/go-homedir/README.md b/vendor/github.com/mitchellh/go-homedir/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/mitchellh/go-homedir/README.md
rename to vendor/github.com/mitchellh/go-homedir/README.md
diff --git a/Godeps/_workspace/src/github.com/mitchellh/go-homedir/homedir.go b/vendor/github.com/mitchellh/go-homedir/homedir.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/mitchellh/go-homedir/homedir.go
rename to vendor/github.com/mitchellh/go-homedir/homedir.go
diff --git a/vendor/github.com/n0rad/go-erlog/Makefile b/vendor/github.com/n0rad/go-erlog/Makefile
new file mode 100644
index 0000000..9eaa682
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/Makefile
@@ -0,0 +1,10 @@
+# this just wrap go commands
+
+
+all: format test
+
+format:
+ gofmt -w -s .
+
+test:
+ go test -cover ./...
diff --git a/vendor/github.com/n0rad/go-erlog/appender.go b/vendor/github.com/n0rad/go-erlog/appender.go
new file mode 100644
index 0000000..2241750
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/appender.go
@@ -0,0 +1,11 @@
+package erlog
+
+import (
+ "github.com/n0rad/go-erlog/logs"
+)
+
+type Appender interface {
+ Fire(event *LogEvent)
+ GetLevel() logs.Level
+ SetLevel(level logs.Level)
+}
diff --git a/vendor/github.com/n0rad/go-erlog/data/data.go b/vendor/github.com/n0rad/go-erlog/data/data.go
new file mode 100644
index 0000000..eece691
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/data/data.go
@@ -0,0 +1,38 @@
+package data
+
+type Fields map[string]interface{}
+
+type FieldsConverter interface {
+ ToFields() Fields
+}
+
+func WithField(key string, value interface{}) Fields {
+ i := make(Fields, 3)
+ return i.WithField(key, value)
+}
+
+func WithFields(fields FieldsConverter) Fields {
+ return fields.ToFields()
+}
+
+func (f Fields) WithField(key string, value interface{}) Fields {
+ n := f.copy()
+ n[key] = value
+ return n
+}
+
+func (f Fields) WithFields(data Fields) Fields {
+ n := f.copy()
+ for k, v := range data {
+ n[k] = v
+ }
+ return n
+}
+
+func (f Fields) copy() Fields {
+ data := Fields{}
+ for k, v := range f {
+ data[k] = v
+ }
+ return data
+}
diff --git a/vendor/github.com/n0rad/go-erlog/errs/entry.go b/vendor/github.com/n0rad/go-erlog/errs/entry.go
new file mode 100644
index 0000000..5391d0f
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/errs/entry.go
@@ -0,0 +1,144 @@
+package errs
+
+import (
+ "bytes"
+ "fmt"
+ "github.com/n0rad/go-erlog/data"
+ "runtime"
+)
+
+var MaxStackDepth = 50
+
+type EntryError struct {
+ Fields data.Fields
+ Message string
+ Err error
+ Stack []uintptr
+ frames []StackFrame
+}
+
+func With(message string) *EntryError {
+ return fill(&EntryError{
+ Message: message,
+ })
+}
+
+func WithF(fields data.Fields, msg string) *EntryError {
+ return fill(&EntryError{
+ Fields: fields,
+ Message: msg,
+ })
+}
+
+func WithE(err error, msg string) *EntryError {
+ return fill(&EntryError{
+ Err: err,
+ Message: msg,
+ })
+}
+
+func WithEF(err error, fields data.Fields, msg string) *EntryError {
+ return fill(&EntryError{
+ Err: err,
+ Fields: fields,
+ Message: msg,
+ })
+}
+
+func fill(entry *EntryError) *EntryError {
+ stack := make([]uintptr, MaxStackDepth)
+ length := runtime.Callers(2, stack[:])
+ entry.Stack = stack[:length]
+ return entry
+}
+
+///////////////////////////////////////////////
+
+func Is(e1 error, e2 error) bool {
+ if e1 == e2 {
+ return true
+ }
+
+ ee1, ok1 := e1.(*EntryError)
+ ee2, ok2 := e2.(*EntryError)
+ if ok1 && ok2 && ee1.Message == ee2.Message {
+ return true
+ }
+
+ if e1.Error() == e2.Error() {
+ return true
+ }
+
+ return false
+}
+
+//////////////////////////////////////////////
+
+func (e *EntryError) WithFields(data data.Fields) *EntryError {
+ e.Fields = data
+ return e
+}
+
+func (e *EntryError) WithErr(err error) *EntryError {
+ e.Err = err
+ return e
+}
+
+func (e *EntryError) WithField(name string, value interface{}) *EntryError {
+ if e.Fields == nil {
+ e.Fields = data.WithField(name, value)
+ } else {
+ e.Fields = e.Fields.WithField(name, value)
+ }
+ return e
+}
+
+func (e *EntryError) WithMessage(msg string) *EntryError {
+ e.Message = msg
+ return e
+}
+
+func (e *EntryError) Error() string {
+ var buffer bytes.Buffer
+ buffer.WriteString(e.Message)
+ if e.Fields != nil {
+ for key := range e.Fields {
+ buffer.WriteString(" ")
+ buffer.WriteString(key)
+ buffer.WriteString("=")
+ buffer.WriteString(fmt.Sprintf("%+v", e.Fields[key]))
+ }
+ }
+ buffer.WriteString("\n")
+ if e.Err != nil {
+ buffer.WriteString("Caused by : ")
+ buffer.WriteString(e.Err.Error())
+ buffer.WriteString("\n")
+ }
+ return buffer.String()
+}
+
+func (e *EntryError) String() string {
+ return e.Error()
+}
+
+//
+//func (e *EntryError) Stack() []byte {
+// buf := bytes.Buffer{}
+//
+// for _, frame := range e.StackFrames() {
+// buf.WriteString(frame.String())
+// }
+//
+// return buf.Bytes()
+//}
+//
+//func (e *EntryError) StackFrames() []StackFrame {
+// if e.frames == nil {
+// e.frames = make([]StackFrame, len(e.stack))
+// for i, pc := range e.stack {
+// e.frames[i] = NewStackFrame(pc)
+// }
+// }
+// return e.frames
+//}
diff --git a/vendor/github.com/n0rad/go-erlog/errs/stackframe.go b/vendor/github.com/n0rad/go-erlog/errs/stackframe.go
new file mode 100644
index 0000000..4a27b19
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/errs/stackframe.go
@@ -0,0 +1,102 @@
+package errs
+
+import (
+ "bytes"
+ "fmt"
+ "io/ioutil"
+ "runtime"
+ "strings"
+)
+
+// A StackFrame contains all necessary information about to generate a line
+// in a callstack.
+type StackFrame struct {
+ // The path to the file containing this ProgramCounter
+ File string
+ // The LineNumber in that file
+ LineNumber int
+ // The Name of the function that contains this ProgramCounter
+ Name string
+ // The Package that contains this function
+ Package string
+ // The underlying ProgramCounter
+ ProgramCounter uintptr
+}
+
+// NewStackFrame popoulates a stack frame object from the program counter.
+func NewStackFrame(pc uintptr) (frame StackFrame) {
+
+ frame = StackFrame{ProgramCounter: pc}
+ if frame.Func() == nil {
+ return
+ }
+ frame.Package, frame.Name = packageAndName(frame.Func())
+
+ // pc -1 because the program counters we use are usually return addresses,
+ // and we want to show the line that corresponds to the function call
+ frame.File, frame.LineNumber = frame.Func().FileLine(pc - 1)
+ return
+
+}
+
+// Func returns the function that contained this frame.
+func (frame *StackFrame) Func() *runtime.Func {
+ if frame.ProgramCounter == 0 {
+ return nil
+ }
+ return runtime.FuncForPC(frame.ProgramCounter)
+}
+
+// String returns the stackframe formatted in the same way as go does
+// in runtime/debug.Stack()
+func (frame *StackFrame) String() string {
+ str := fmt.Sprintf("%s:%d (0x%x)\n", frame.File, frame.LineNumber, frame.ProgramCounter)
+
+ source, err := frame.SourceLine()
+ if err != nil {
+ return str
+ }
+
+ return str + fmt.Sprintf("\t%s: %s\n", frame.Name, source)
+}
+
+// SourceLine gets the line of code (from File and Line) of the original source if possible.
+func (frame *StackFrame) SourceLine() (string, error) {
+ data, err := ioutil.ReadFile(frame.File)
+
+ if err != nil {
+ return "", With("Cannot read source line").WithErr(err)
+ }
+
+ lines := bytes.Split(data, []byte{'\n'})
+ if frame.LineNumber <= 0 || frame.LineNumber >= len(lines) {
+ return "???", nil
+ }
+ // -1 because line-numbers are 1 based, but our array is 0 based
+ return string(bytes.Trim(lines[frame.LineNumber-1], " \t")), nil
+}
+
+func packageAndName(fn *runtime.Func) (string, string) {
+ name := fn.Name()
+ pkg := ""
+
+ // The name includes the path name to the package, which is unnecessary
+ // since the file name is already included. Plus, it has center dots.
+ // That is, we see
+ // runtime/debug.*T·ptrmethod
+ // and want
+ // *T.ptrmethod
+ // Since the package path might contains dots (e.g. code.google.com/...),
+ // we first remove the path prefix if there is one.
+ if lastslash := strings.LastIndex(name, "/"); lastslash >= 0 {
+ pkg += name[:lastslash] + "/"
+ name = name[lastslash+1:]
+ }
+ if period := strings.Index(name, "."); period >= 0 {
+ pkg += name[:period]
+ name = name[period+1:]
+ }
+
+ name = strings.Replace(name, "·", ".", -1)
+ return pkg, name
+}
diff --git a/vendor/github.com/n0rad/go-erlog/event.go b/vendor/github.com/n0rad/go-erlog/event.go
new file mode 100644
index 0000000..ea3bce4
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/event.go
@@ -0,0 +1,41 @@
+package erlog
+
+import (
+ "github.com/n0rad/go-erlog/logs"
+ "runtime"
+ "strings"
+ "time"
+)
+
+type LogEvent struct {
+ logs.Entry
+ Depth int
+ Time time.Time
+ File string
+ Line int
+}
+
+func NewLogEvent(entry *logs.Entry) *LogEvent {
+ var file string
+ var line int
+ var ok bool
+ for i := 2; ; i++ {
+ _, file, line, ok = runtime.Caller(i)
+ if !ok {
+ file = "???"
+ line = 0
+ }
+ if !strings.Contains(file, "n0rad/go-erlog") {
+ break
+ }
+ if strings.Contains(file, "n0rad/go-erlog/examples") { // TODO what to do with that ?
+ break
+ }
+ }
+
+ return &LogEvent{
+ Entry: *entry,
+ File: file,
+ Line: line,
+ }
+}
diff --git a/vendor/github.com/n0rad/go-erlog/formatter.go b/vendor/github.com/n0rad/go-erlog/formatter.go
new file mode 100644
index 0000000..7d42408
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/formatter.go
@@ -0,0 +1,303 @@
+package erlog
+
+import (
+ "bytes"
+ "fmt"
+ "github.com/mgutz/ansi"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/n0rad/go-erlog/logs"
+ "io"
+ "runtime"
+ "sort"
+ "strings"
+ "sync"
+ "time"
+)
+
+var pathSkip int = 0
+
+var reset = ansi.ColorCode("reset")
+
+var fileColorNormal = ansi.ColorCode("cyan+b")
+var fileColorFail = ansi.ColorCode("cyan")
+
+var timeColorNormal = ansi.ColorFunc("blue+b")
+var timeColorFail = ansi.ColorFunc("blue")
+
+var lvlColorError = ansi.ColorCode("red+b")
+var lvlColorWarn = ansi.ColorCode("yellow+b")
+var lvlColorInfo = ansi.ColorCode("green")
+var lvlColorDebug = ansi.ColorCode("magenta")
+var lvlColorTrace = ansi.ColorCode("blue")
+var lvlColorPanic = ansi.ColorCode(":red+h")
+
+type ErlogWriterAppender struct {
+ Out io.Writer
+ Level logs.Level
+ mu sync.Mutex
+}
+
+func init() {
+ _, file, _, _ := runtime.Caller(0)
+ paths := strings.Split(file, "/")
+ for i := 0; i < len(paths); i++ {
+ if paths[i] == "github.com" {
+ pathSkip = i + 2
+ break
+ }
+ }
+}
+
+func NewErlogWriterAppender(writer io.Writer) (f *ErlogWriterAppender) {
+ return &ErlogWriterAppender{
+ Out: writer,
+ }
+}
+
+func (f *ErlogWriterAppender) GetLevel() logs.Level {
+ return f.Level
+}
+
+func (f *ErlogWriterAppender) SetLevel(level logs.Level) {
+ f.Level = level
+}
+
+func (f *ErlogWriterAppender) Fire(event *LogEvent) {
+ keys := f.prepareKeys(event.Fields)
+ time := time.Now().Format("15:04:05") // TODO prepare format ?
+ level := f.textLevel(event.Level)
+
+ // isColored := isTerminal && (runtime.GOOS != "windows")
+ paths := strings.SplitN(event.File, "/", pathSkip+1)
+
+ packagePath := event.File
+ if len(paths) > pathSkip {
+ packagePath = paths[pathSkip]
+ }
+
+ b := &bytes.Buffer{}
+ fmt.Fprintf(b, "%s %s%-5s%s %s%30s:%-3d%s %s%-44s%s",
+ f.timeColor(event.Level)(time),
+ f.levelColor(event.Level),
+ level,
+ reset,
+ f.fileColor(event.Level),
+ f.reduceFilePath(packagePath, 30),
+ event.Line,
+ reset,
+ f.textColor(event.Level),
+ event.Message,
+ reset)
+ for _, k := range keys {
+ v := event.Entry.Fields[k]
+ fmt.Fprintf(b, " %s%s%s=%+v", lvlColorInfo, k, reset, v)
+ }
+ b.WriteByte('\n')
+
+ f.logError(b, event)
+
+ f.mu.Lock()
+ defer f.mu.Unlock()
+ f.Out.Write(b.Bytes())
+}
+
+func (f *ErlogWriterAppender) logError(b *bytes.Buffer, event *LogEvent) {
+ if event.Err == nil {
+ return
+ }
+
+ for err := event.Err; err != nil; {
+ if e, ok := err.(*errs.EntryError); ok {
+ path, line := findFileAndName(e.Stack)
+ paths := strings.SplitN(path, "/", pathSkip+1)
+
+ packagePath := event.File
+ if len(paths) > pathSkip {
+ packagePath = paths[pathSkip]
+ }
+
+ fmt.Fprintf(b, " %s%30s:%-3d%s %s%-44s%s",
+ f.fileColor(event.Level),
+ f.reduceFilePath(packagePath, 30),
+ line,
+ reset,
+ f.textColor(event.Level),
+ e.Message,
+ reset)
+
+ keys := f.prepareKeys(e.Fields)
+ for _, k := range keys {
+ v := e.Fields[k]
+ fmt.Fprintf(b, " %s%s%s=%+v", lvlColorInfo, k, reset, v)
+ }
+ b.WriteByte('\n')
+
+ err = e.Err
+ } else {
+ fmt.Fprintf(b, " %s%s%s\n",
+ f.textColor(event.Level),
+ err.Error(),
+ reset)
+ err = nil
+ }
+ }
+}
+
+func findFileAndName(ptrs []uintptr) (string, int) {
+ var frame errs.StackFrame
+ for i := 1; i < len(ptrs); i++ {
+ frame = errs.NewStackFrame(ptrs[i])
+ if !strings.Contains(frame.Package, "n0rad/go-erlog") {
+ break
+ }
+ if strings.Contains(frame.Package, "n0rad/go-erlog/examples") { // TODO what to do with that ?
+ break
+ }
+ }
+ return frame.File, frame.LineNumber
+}
+
+func toLog(err error, level logs.Level) {
+ if e, ok := err.(*errs.EntryError); ok {
+ logs.LogEntry(&logs.Entry{
+ Message: e.Message,
+ Fields: e.Fields,
+ Level: level})
+ if e.Err != nil { // TODO this sux
+ toLog(e.Err, level)
+ }
+ } else {
+ logs.LogEntry(&logs.Entry{
+ Message: err.Error(),
+ Level: level,
+ })
+ }
+}
+
+func (f *ErlogWriterAppender) reduceFilePath(path string, max int) string {
+ if len(path) <= max {
+ return path
+ }
+
+ split := strings.Split(path, "/")
+ splitlen := len(split)
+ reducedSize := len(path)
+ var buffer bytes.Buffer
+ for i, e := range split {
+ if reducedSize > max && i+1 < splitlen {
+ buffer.WriteByte(e[0])
+ reducedSize -= len(e) - 1
+ } else {
+ buffer.WriteString(e)
+ }
+ if i+1 < splitlen {
+ buffer.WriteByte('/')
+ }
+ }
+ return buffer.String()
+}
+
+func (f *ErlogWriterAppender) prepareKeys(fields data.Fields) []string {
+ var keys []string = make([]string, 0, len(fields))
+ for k := range fields {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+ return keys
+}
+
+func (f *ErlogWriterAppender) textLevel(level logs.Level) string {
+ levelText := strings.ToUpper(level.String())
+ switch level {
+ case logs.INFO:
+ case logs.WARN:
+ levelText = levelText[0:4]
+ default:
+ levelText = levelText[0:5]
+ }
+ return levelText
+}
+
+func (f *ErlogWriterAppender) fileColor(level logs.Level) string {
+ switch level {
+ case logs.DEBUG, logs.INFO, logs.TRACE:
+ return fileColorFail
+ default:
+ return fileColorNormal
+ }
+}
+
+func (f *ErlogWriterAppender) textColor(level logs.Level) string {
+ switch level {
+ case logs.WARN:
+ return lvlColorWarn
+ case logs.ERROR, logs.FATAL, logs.PANIC:
+ return lvlColorError
+ default:
+ return ""
+ }
+}
+
+func (f *ErlogWriterAppender) timeColor(level logs.Level) func(string) string {
+ switch level {
+ case logs.DEBUG, logs.INFO, logs.TRACE:
+ return timeColorFail
+ default:
+ return timeColorNormal
+ }
+}
+
+func (f *ErlogWriterAppender) levelColor(level logs.Level) string {
+ switch level {
+ case logs.TRACE:
+ return lvlColorTrace
+ case logs.DEBUG:
+ return lvlColorDebug
+ case logs.WARN:
+ return lvlColorWarn
+ case logs.ERROR:
+ return lvlColorError
+ case logs.FATAL, logs.PANIC:
+ return lvlColorPanic
+ default:
+ return lvlColorInfo
+ }
+}
+
+func needsQuoting(text string) bool {
+ for _, ch := range text {
+ if !((ch >= 'a' && ch <= 'z') ||
+ (ch >= 'A' && ch <= 'Z') ||
+ (ch >= '0' && ch <= '9') ||
+ ch == '-' || ch == '.') {
+ return false
+ }
+ }
+ return true
+}
+
+func (f *ErlogWriterAppender) appendKeyValue(b *bytes.Buffer, key string, value interface{}) {
+ b.WriteString(key)
+ b.WriteByte('=')
+
+ switch value := value.(type) {
+ case string:
+ if needsQuoting(value) {
+ b.WriteString(value)
+ } else {
+ fmt.Fprintf(b, "%q", value)
+ }
+ case error:
+ errmsg := value.Error()
+ if needsQuoting(errmsg) {
+ b.WriteString(errmsg)
+ } else {
+ fmt.Fprintf(b, "%q", value)
+ }
+ default:
+ fmt.Fprint(b, value)
+ }
+
+ b.WriteByte(' ')
+}
diff --git a/vendor/github.com/n0rad/go-erlog/logger.go b/vendor/github.com/n0rad/go-erlog/logger.go
new file mode 100644
index 0000000..4643109
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/logger.go
@@ -0,0 +1,160 @@
+package erlog
+
+import (
+ "fmt"
+ "github.com/n0rad/go-erlog/logs"
+ "os"
+ "strings"
+)
+
+type ErlogFactory struct {
+ defaultLog *ErlogLogger
+ logs map[string]*ErlogLogger
+}
+
+func NewErlogFactory() *ErlogFactory {
+ return &ErlogFactory{
+ defaultLog: newLog(),
+ logs: make(map[string]*ErlogLogger, 10),
+ }
+}
+
+func (l *ErlogFactory) GetLog(name string) logs.Log {
+ if name == "" {
+ return l.defaultLog
+ }
+ log := l.logs[name]
+ if log == nil {
+ log = newLog()
+ l.logs[name] = log
+ }
+ return log
+}
+
+type ErlogLogger struct {
+ Appenders []Appender
+ Level logs.Level
+}
+
+func newLog() *ErlogLogger {
+ return &ErlogLogger{
+ Appenders: []Appender{NewErlogWriterAppender(os.Stderr)},
+ Level: logs.INFO,
+ }
+}
+
+func (l *ErlogLogger) log(event *LogEvent) {
+ for _, appender := range l.Appenders {
+ appender.Fire(event)
+ }
+}
+
+func (l *ErlogLogger) Trace(message ...string) {
+ if logs.TRACE.IsEnableFor(l.Level) {
+ l.logS(logs.TRACE, message...)
+ }
+}
+
+func (l *ErlogLogger) Debug(message ...string) {
+ if logs.DEBUG.IsEnableFor(l.Level) {
+ l.logS(logs.DEBUG, message...)
+ }
+}
+func (l *ErlogLogger) Info(message ...string) {
+ if logs.INFO.IsEnableFor(l.Level) {
+ l.logS(logs.INFO, message...)
+ }
+}
+func (l *ErlogLogger) Warn(message ...string) {
+ if logs.WARN.IsEnableFor(l.Level) {
+ l.logS(logs.WARN, message...)
+ }
+}
+func (l *ErlogLogger) Error(message ...string) {
+ if logs.ERROR.IsEnableFor(l.Level) {
+ l.logS(logs.ERROR, message...)
+ }
+}
+func (l *ErlogLogger) Panic(message ...string) {
+ if logs.PANIC.IsEnableFor(l.Level) {
+ l.logS(logs.PANIC, message...)
+ }
+ panic(strings.Join(message, " "))
+}
+func (l *ErlogLogger) Fatal(message ...string) {
+ if logs.FATAL.IsEnableFor(l.Level) {
+ l.logS(logs.FATAL, message...)
+ }
+ os.Exit(1)
+}
+
+func (l *ErlogLogger) Tracef(format string, message ...interface{}) {
+ if logs.TRACE.IsEnableFor(l.Level) {
+ l.logS(logs.TRACE, fmt.Sprintf(format, message))
+ }
+}
+
+func (l *ErlogLogger) Debugf(format string, message ...interface{}) {
+ if logs.DEBUG.IsEnableFor(l.Level) {
+ l.logS(logs.DEBUG, fmt.Sprintf(format, message))
+ }
+}
+
+func (l *ErlogLogger) Infof(format string, message ...interface{}) {
+ if logs.INFO.IsEnableFor(l.Level) {
+ l.logS(logs.INFO, fmt.Sprintf(format, message))
+ }
+}
+
+func (l *ErlogLogger) Warnf(format string, message ...interface{}) {
+ if logs.WARN.IsEnableFor(l.Level) {
+ l.logS(logs.WARN, fmt.Sprintf(format, message))
+ }
+}
+
+func (l *ErlogLogger) Errorf(format string, message ...interface{}) {
+ if logs.ERROR.IsEnableFor(l.Level) {
+ l.logS(logs.ERROR, fmt.Sprintf(format, message))
+ }
+}
+
+func (l *ErlogLogger) Panicf(format string, message ...interface{}) {
+ if logs.PANIC.IsEnableFor(l.Level) {
+ l.logS(logs.PANIC, fmt.Sprintf(format, message))
+ }
+ panic(fmt.Sprintf(format, message))
+}
+
+func (l *ErlogLogger) Fatalf(format string, message ...interface{}) {
+ if logs.FATAL.IsEnableFor(l.Level) {
+ l.logS(logs.FATAL, fmt.Sprintf(format, message))
+ }
+ os.Exit(1)
+}
+
+func (l *ErlogLogger) logS(level logs.Level, msg ...string) {
+ l.log(NewLogEvent(&logs.Entry{Level: level, Message: strings.Join(msg, " ")}))
+}
+
+func (l *ErlogLogger) LogEntry(entry *logs.Entry) {
+ if entry.Level.IsEnableFor(l.Level) {
+ l.log(NewLogEvent(entry))
+ }
+ if entry.Level == logs.PANIC {
+ panic(entry.Message)
+ } else if entry.Level == logs.FATAL {
+ os.Exit(1)
+ }
+}
+
+func (l *ErlogLogger) GetLevel() logs.Level { return l.Level }
+func (l *ErlogLogger) SetLevel(level logs.Level) { l.Level = level }
+
+func (l *ErlogLogger) IsTraceEnabled() bool { return logs.TRACE.IsEnableFor(l.Level) }
+func (l *ErlogLogger) IsDebugEnabled() bool { return logs.DEBUG.IsEnableFor(l.Level) }
+func (l *ErlogLogger) IsInfoEnabled() bool { return logs.INFO.IsEnableFor(l.Level) }
+func (l *ErlogLogger) IsWarnEnabled() bool { return logs.WARN.IsEnableFor(l.Level) }
+func (l *ErlogLogger) IsErrorEnabled() bool { return logs.ERROR.IsEnableFor(l.Level) }
+func (l *ErlogLogger) IsPanicEnabled() bool { return logs.PANIC.IsEnableFor(l.Level) }
+func (l *ErlogLogger) IsFatalEnabled() bool { return logs.FATAL.IsEnableFor(l.Level) }
+func (l *ErlogLogger) IsLevelEnabled(level logs.Level) bool { return level.IsEnableFor(l.Level) }
diff --git a/vendor/github.com/n0rad/go-erlog/logs/default.go b/vendor/github.com/n0rad/go-erlog/logs/default.go
new file mode 100644
index 0000000..6c7c2f7
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/logs/default.go
@@ -0,0 +1,34 @@
+package logs
+
+func GetDefaultLog() Log { return factory.GetLog("") }
+func GetLog(name string) Log { return factory.GetLog(name) }
+
+func SetLevel(lvl Level) { GetDefaultLog().SetLevel(lvl) }
+func GetLevel() Level { return GetDefaultLog().GetLevel() }
+
+func Trace(msg ...string) { GetDefaultLog().Trace(msg...) }
+func Debug(msg ...string) { GetDefaultLog().Debug(msg...) }
+func Info(msg ...string) { GetDefaultLog().Info(msg...) }
+func Warn(msg ...string) { GetDefaultLog().Warn(msg...) }
+func Error(msg ...string) { GetDefaultLog().Error(msg...) }
+func Panic(msg ...string) { GetDefaultLog().Panic(msg...) }
+func Fatal(msg ...string) { GetDefaultLog().Fatal(msg...) }
+
+func Tracef(format string, msg ...interface{}) { GetDefaultLog().Tracef(format, msg...) }
+func Debugf(format string, msg ...interface{}) { GetDefaultLog().Debugf(format, msg...) }
+func Infof(format string, msg ...interface{}) { GetDefaultLog().Infof(format, msg...) }
+func Warnf(format string, msg ...interface{}) { GetDefaultLog().Warnf(format, msg...) }
+func Errorf(format string, msg ...interface{}) { GetDefaultLog().Errorf(format, msg...) }
+func Panicf(format string, msg ...interface{}) { GetDefaultLog().Panicf(format, msg...) }
+func Fatalf(format string, msg ...interface{}) { GetDefaultLog().Fatalf(format, msg...) }
+
+func LogEntry(entry *Entry) { GetDefaultLog().LogEntry(entry) }
+
+func IsLevelEnabled(lvl Level) bool { return GetDefaultLog().IsLevelEnabled(lvl) }
+func IsTraceEnabled() bool { return GetDefaultLog().IsTraceEnabled() }
+func IsDebugEnabled() bool { return GetDefaultLog().IsDebugEnabled() }
+func IsInfoEnabled() bool { return GetDefaultLog().IsInfoEnabled() }
+func IsWarnEnabled() bool { return GetDefaultLog().IsWarnEnabled() }
+func IsErrorEnabled() bool { return GetDefaultLog().IsErrorEnabled() }
+func IsPanicEnabled() bool { return GetDefaultLog().IsPanicEnabled() }
+func IsFatalEnabled() bool { return GetDefaultLog().IsFatalEnabled() }
diff --git a/vendor/github.com/n0rad/go-erlog/logs/dummy.go b/vendor/github.com/n0rad/go-erlog/logs/dummy.go
new file mode 100644
index 0000000..49182c5
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/logs/dummy.go
@@ -0,0 +1,58 @@
+package logs
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "strings"
+)
+
+type DummyLog struct {
+ Out io.Writer
+}
+
+func (d *DummyLog) GetLog(name string) Log { return d }
+
+func (d *DummyLog) Tracef(format string, msg ...interface{}) {
+ d.log(TRACE, fmt.Sprintf(format, msg...))
+}
+func (d *DummyLog) Debugf(format string, msg ...interface{}) {
+ d.log(DEBUG, fmt.Sprintf(format, msg...))
+}
+func (d *DummyLog) Infof(format string, msg ...interface{}) {
+ d.log(INFO, fmt.Sprintf(format, msg...))
+}
+func (d *DummyLog) Warnf(format string, msg ...interface{}) {
+ d.log(WARN, fmt.Sprintf(format, msg...))
+}
+func (d *DummyLog) Errorf(format string, msg ...interface{}) {
+ d.log(ERROR, fmt.Sprintf(format, msg...))
+}
+func (d *DummyLog) Panicf(format string, msg ...interface{}) {
+ d.log(PANIC, fmt.Sprintf(format, msg...))
+}
+func (d *DummyLog) Fatalf(format string, msg ...interface{}) {
+ d.log(FATAL, fmt.Sprintf(format, msg...))
+}
+
+func (d *DummyLog) Trace(msg ...string) { d.log(TRACE, msg...) }
+func (d *DummyLog) Debug(msg ...string) { d.log(DEBUG, msg...) }
+func (d *DummyLog) Info(msg ...string) { d.log(INFO, msg...) }
+func (d *DummyLog) Warn(msg ...string) { d.log(WARN, msg...) }
+func (d *DummyLog) Error(msg ...string) { d.log(ERROR, msg...) }
+func (d *DummyLog) Panic(msg ...string) { d.log(PANIC, msg...); panic(msg) }
+func (d *DummyLog) Fatal(msg ...string) { d.log(FATAL, msg...); os.Exit(1) }
+func (d *DummyLog) log(level Level, msg ...string) {
+ d.LogEntry(&Entry{Level: level, Message: strings.Join(msg, " ")})
+}
+func (d *DummyLog) LogEntry(entry *Entry) { fmt.Fprintf(d.Out, "%s: %s\n", entry.Level, entry.Message) }
+func (d *DummyLog) GetLevel() Level { return TRACE }
+func (d *DummyLog) SetLevel(lvl Level) { d.Error("Dummy log cannot set level") }
+func (d *DummyLog) IsLevelEnabled(lvl Level) bool { return true }
+func (d *DummyLog) IsTraceEnabled() bool { return true }
+func (d *DummyLog) IsDebugEnabled() bool { return true }
+func (d *DummyLog) IsInfoEnabled() bool { return true }
+func (d *DummyLog) IsWarnEnabled() bool { return true }
+func (d *DummyLog) IsErrorEnabled() bool { return true }
+func (d *DummyLog) IsPanicEnabled() bool { return true }
+func (d *DummyLog) IsFatalEnabled() bool { return true }
diff --git a/vendor/github.com/n0rad/go-erlog/logs/entry.go b/vendor/github.com/n0rad/go-erlog/logs/entry.go
new file mode 100644
index 0000000..1d7ffa2
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/logs/entry.go
@@ -0,0 +1,113 @@
+package logs
+
+import (
+ "github.com/n0rad/go-erlog/data"
+)
+
+type Entry struct {
+ Logger Log
+ Level Level
+ Fields data.Fields
+ Message string
+ Err error
+}
+
+func WithError(err error) *Entry {
+ return &Entry{
+ Logger: GetDefaultLog(),
+ Err: err,
+ }
+}
+
+func WithField(name string, value interface{}) *Entry {
+ return &Entry{
+ Logger: GetDefaultLog(),
+ Fields: data.WithField(name, value),
+ }
+}
+
+func WithFields(fields data.Fields) *Entry {
+ return &Entry{
+ Logger: GetDefaultLog(),
+ Fields: fields,
+ }
+}
+
+func WithEF(err error, fields data.Fields) *Entry {
+ return &Entry{
+ Logger: GetDefaultLog(),
+ Err: err,
+ Fields: fields,
+ }
+}
+
+func WithF(fields data.Fields) *Entry {
+ return WithFields(fields)
+}
+
+func WithE(err error) *Entry {
+ return WithError(err)
+}
+
+///////////////////////////////////
+
+func (e *Entry) WithFields(data data.Fields) *Entry {
+ e.Fields = data
+ return e
+}
+
+func (e *Entry) WithField(name string, value interface{}) *Entry {
+ if e.Fields == nil {
+ e.Fields = data.WithField(name, value)
+ } else {
+ e.Fields = e.Fields.WithField(name, value)
+ }
+ return e
+}
+
+func (e *Entry) WithLog(logger Log) *Entry {
+ e.Logger = logger
+ return e
+}
+
+func (e *Entry) Trace(msg string) {
+ e.Level = TRACE
+ e.Message = msg
+ e.Logger.LogEntry(e)
+}
+
+func (e *Entry) Debug(msg string) {
+ e.Level = DEBUG
+ e.Message = msg
+ e.Logger.LogEntry(e)
+}
+
+func (e *Entry) Info(msg string) {
+ e.Level = INFO
+ e.Message = msg
+ e.Logger.LogEntry(e)
+}
+
+func (e *Entry) Warn(msg string) {
+ e.Level = WARN
+ e.Message = msg
+ e.Logger.LogEntry(e)
+}
+
+func (e *Entry) Error(msg string) {
+ e.Level = ERROR
+ e.Message = msg
+ e.Logger.LogEntry(e)
+}
+
+func (e *Entry) Panic(msg string) {
+ e.Level = PANIC
+ e.Message = msg
+ e.Logger.LogEntry(e)
+}
+
+func (e *Entry) Fatal(msg string) {
+ e.Level = FATAL
+ e.Message = msg
+ e.Logger.LogEntry(e)
+}
diff --git a/vendor/github.com/n0rad/go-erlog/logs/levels.go b/vendor/github.com/n0rad/go-erlog/logs/levels.go
new file mode 100644
index 0000000..f4cb981
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/logs/levels.go
@@ -0,0 +1,71 @@
+package logs
+
+import (
+ "fmt"
+ "strings"
+)
+
+type Level uint8
+
+const (
+ // the program cannot continue. will log and exit(1)
+ FATAL Level = iota
+ // the routine cannot continue. will log and call go panic function
+ PANIC
+ // program continue but caller have received error or data lost or similar
+ ERROR
+ // recovered problem or non critical
+ WARN
+ // general info
+ INFO
+ // tell what is going on step by step
+ DEBUG
+ // log data content
+ TRACE
+)
+
+func (level Level) String() string {
+ switch level {
+ case TRACE:
+ return "TRACE"
+ case DEBUG:
+ return "DEBUG"
+ case INFO:
+ return "INFO"
+ case WARN:
+ return "WARN"
+ case ERROR:
+ return "ERROR"
+ case FATAL:
+ return "FATAL"
+ case PANIC:
+ return "PANIC"
+ }
+ return "UNKNOWN"
+}
+
+func ParseLevel(lvl string) (Level, error) {
+ lvl = strings.ToUpper(lvl)
+ switch lvl {
+ case "PANIC":
+ return PANIC, nil
+ case "FATAL":
+ return FATAL, nil
+ case "ERROR":
+ return ERROR, nil
+ case "WARN", "WARNING":
+ return WARN, nil
+ case "INFO":
+ return INFO, nil
+ case "DEBUG":
+ return DEBUG, nil
+ case "TRACE":
+ return TRACE, nil
+ }
+ var l Level
+ return l, fmt.Errorf("Not a valid level : %s", lvl) // not using errs to prevent cycle dep
+}
+
+func (l Level) IsEnableFor(level Level) bool {
+ return level >= l
+}
diff --git a/vendor/github.com/n0rad/go-erlog/logs/logger.go b/vendor/github.com/n0rad/go-erlog/logs/logger.go
new file mode 100644
index 0000000..158332e
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/logs/logger.go
@@ -0,0 +1,62 @@
+package logs
+
+import (
+ "fmt"
+ "os"
+ "reflect"
+ "runtime"
+ "sync"
+)
+
+type LogFactory interface {
+ GetLog(name string) Log
+}
+
+type Log interface {
+ Trace(msg ...string)
+ Debug(msg ...string)
+ Info(msg ...string)
+ Warn(msg ...string)
+ Error(msg ...string)
+ Panic(msg ...string)
+ Fatal(msg ...string)
+
+ Tracef(format string, msg ...interface{})
+ Debugf(format string, msg ...interface{})
+ Infof(format string, msg ...interface{})
+ Warnf(format string, msg ...interface{})
+ Errorf(format string, msg ...interface{})
+ Panicf(format string, msg ...interface{})
+ Fatalf(format string, msg ...interface{})
+
+ LogEntry(entry *Entry)
+
+ GetLevel() Level
+ SetLevel(lvl Level)
+
+ IsLevelEnabled(lvl Level) bool
+ IsTraceEnabled() bool
+ IsDebugEnabled() bool
+ IsInfoEnabled() bool
+ IsWarnEnabled() bool
+ IsErrorEnabled() bool
+ IsPanicEnabled() bool
+ IsFatalEnabled() bool
+}
+
+var factory LogFactory = &DummyLog{Out: os.Stderr}
+var mu sync.Mutex
+
+func RegisterLoggerFactory(f LogFactory) {
+ mu.Lock()
+ if f == factory {
+ return
+ }
+
+ if _, ok := factory.(*DummyLog); !ok {
+ _, file, line, _ := runtime.Caller(1)
+ fmt.Fprintf(os.Stderr, "Re-Registering the logger factory : %s:%d. There is already one registered : %s\n", file, line, reflect.TypeOf(factory))
+ }
+ factory = f
+ mu.Unlock()
+}
diff --git a/vendor/github.com/n0rad/go-erlog/readme.md b/vendor/github.com/n0rad/go-erlog/readme.md
new file mode 100644
index 0000000..b33a6d6
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/readme.md
@@ -0,0 +1,54 @@
+# Go erlog
+
+*this is experimental*
+
+In a fusion of logrus and go-errors logic with improvement to provide:
+- a logging api supporting fields and stacktrace
+- a logging implementation supporting multiple appenders
+- log level by appenders
+- trace log level
+- fields to errors
+- stacktrace to errors
+- errors to log transformation without losing fields or stackstrace
+
+# install
+
+```shell
+go get github.com/n0rad/go-erlog
+```
+
+# usage
+
+basic :
+```go
+package main
+
+import (
+ "github.com/n0rad/go-erlog/log" // the api
+ _ "github.com/n0rad/go-erlog/register" // use erlog implementation, with default appender (colored to stderr)
+)
+
+func main() {
+ log.SetLevel(log.TRACE) // default is INFO
+
+ log.Trace("I'm trace")
+ log.Debug("I'm debug")
+ log.Info("I'm info")
+ log.Warn("I'm warn")
+ log.Error("I'm error")
+
+ func() {
+ defer func() { recover() }()
+ func() { log.Panic("I'm panic") }()
+ }()
+
+ log.Fatal("I'm fatal")
+}
+```
+
+will produce
+
+
+
+advanced :
+
diff --git a/vendor/github.com/n0rad/go-erlog/register/register.go b/vendor/github.com/n0rad/go-erlog/register/register.go
new file mode 100644
index 0000000..612e6d3
--- /dev/null
+++ b/vendor/github.com/n0rad/go-erlog/register/register.go
@@ -0,0 +1,10 @@
+package register
+
+import (
+ "github.com/n0rad/go-erlog"
+ "github.com/n0rad/go-erlog/logs"
+)
+
+func init() {
+ logs.RegisterLoggerFactory(erlog.NewErlogFactory())
+}
diff --git a/Godeps/_workspace/src/github.com/peterbourgon/mergemap/.gitignore b/vendor/github.com/peterbourgon/mergemap/.gitignore
similarity index 100%
rename from Godeps/_workspace/src/github.com/peterbourgon/mergemap/.gitignore
rename to vendor/github.com/peterbourgon/mergemap/.gitignore
diff --git a/Godeps/_workspace/src/github.com/peterbourgon/mergemap/LICENSE b/vendor/github.com/peterbourgon/mergemap/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/peterbourgon/mergemap/LICENSE
rename to vendor/github.com/peterbourgon/mergemap/LICENSE
diff --git a/Godeps/_workspace/src/github.com/peterbourgon/mergemap/README.md b/vendor/github.com/peterbourgon/mergemap/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/peterbourgon/mergemap/README.md
rename to vendor/github.com/peterbourgon/mergemap/README.md
diff --git a/Godeps/_workspace/src/github.com/peterbourgon/mergemap/mergemap.go b/vendor/github.com/peterbourgon/mergemap/mergemap.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/peterbourgon/mergemap/mergemap.go
rename to vendor/github.com/peterbourgon/mergemap/mergemap.go
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/.gitignore b/vendor/github.com/spf13/cobra/.gitignore
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/cobra/.gitignore
rename to vendor/github.com/spf13/cobra/.gitignore
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/.travis.yml b/vendor/github.com/spf13/cobra/.travis.yml
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/cobra/.travis.yml
rename to vendor/github.com/spf13/cobra/.travis.yml
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/spf13/cobra/LICENSE.txt b/vendor/github.com/spf13/cobra/LICENSE.txt
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/spf13/cobra/LICENSE.txt
rename to vendor/github.com/spf13/cobra/LICENSE.txt
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/cobra/README.md
rename to vendor/github.com/spf13/cobra/README.md
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/bash_completions.go b/vendor/github.com/spf13/cobra/bash_completions.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/spf13/cobra/bash_completions.go
rename to vendor/github.com/spf13/cobra/bash_completions.go
index 321f90f..3a421bc 100644
--- a/Godeps/_workspace/src/github.com/spf13/cobra/bash_completions.go
+++ b/vendor/github.com/spf13/cobra/bash_completions.go
@@ -275,7 +275,7 @@ func writeRequiredFlag(cmd *Command, out *bytes.Buffer) {
fmt.Fprintf(out, " must_have_one_flag=()\n")
flags := cmd.NonInheritedFlags()
flags.VisitAll(func(flag *pflag.Flag) {
- for key := range flag.Annotations {
+ for key, _ := range flag.Annotations {
switch key {
case BashCompOneRequiredFlag:
format := " must_have_one_flag+=(\"--%s"
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/bash_completions.md b/vendor/github.com/spf13/cobra/bash_completions.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/cobra/bash_completions.md
rename to vendor/github.com/spf13/cobra/bash_completions.md
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/cobra.go b/vendor/github.com/spf13/cobra/cobra.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/cobra/cobra.go
rename to vendor/github.com/spf13/cobra/cobra.go
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/cobra/command.go
rename to vendor/github.com/spf13/cobra/command.go
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/md_docs.go b/vendor/github.com/spf13/cobra/md_docs.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/cobra/md_docs.go
rename to vendor/github.com/spf13/cobra/md_docs.go
diff --git a/Godeps/_workspace/src/github.com/spf13/cobra/md_docs.md b/vendor/github.com/spf13/cobra/md_docs.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/cobra/md_docs.md
rename to vendor/github.com/spf13/cobra/md_docs.md
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/.travis.yml b/vendor/github.com/spf13/pflag/.travis.yml
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/.travis.yml
rename to vendor/github.com/spf13/pflag/.travis.yml
diff --git a/Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE b/vendor/github.com/spf13/pflag/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/github.com/spf13/pflag/LICENSE
rename to vendor/github.com/spf13/pflag/LICENSE
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/README.md b/vendor/github.com/spf13/pflag/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/README.md
rename to vendor/github.com/spf13/pflag/README.md
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/bool.go b/vendor/github.com/spf13/pflag/bool.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/bool.go
rename to vendor/github.com/spf13/pflag/bool.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/duration.go b/vendor/github.com/spf13/pflag/duration.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/duration.go
rename to vendor/github.com/spf13/pflag/duration.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/flag.go
rename to vendor/github.com/spf13/pflag/flag.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/float32.go b/vendor/github.com/spf13/pflag/float32.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/float32.go
rename to vendor/github.com/spf13/pflag/float32.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/float64.go b/vendor/github.com/spf13/pflag/float64.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/float64.go
rename to vendor/github.com/spf13/pflag/float64.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/int.go b/vendor/github.com/spf13/pflag/int.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/int.go
rename to vendor/github.com/spf13/pflag/int.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/int32.go b/vendor/github.com/spf13/pflag/int32.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/int32.go
rename to vendor/github.com/spf13/pflag/int32.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/int64.go b/vendor/github.com/spf13/pflag/int64.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/int64.go
rename to vendor/github.com/spf13/pflag/int64.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/int8.go b/vendor/github.com/spf13/pflag/int8.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/int8.go
rename to vendor/github.com/spf13/pflag/int8.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/int_slice.go b/vendor/github.com/spf13/pflag/int_slice.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/int_slice.go
rename to vendor/github.com/spf13/pflag/int_slice.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/ip.go b/vendor/github.com/spf13/pflag/ip.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/ip.go
rename to vendor/github.com/spf13/pflag/ip.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/ipmask.go b/vendor/github.com/spf13/pflag/ipmask.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/ipmask.go
rename to vendor/github.com/spf13/pflag/ipmask.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/string.go b/vendor/github.com/spf13/pflag/string.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/string.go
rename to vendor/github.com/spf13/pflag/string.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/string_slice.go b/vendor/github.com/spf13/pflag/string_slice.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/string_slice.go
rename to vendor/github.com/spf13/pflag/string_slice.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/uint.go b/vendor/github.com/spf13/pflag/uint.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/uint.go
rename to vendor/github.com/spf13/pflag/uint.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/uint16.go b/vendor/github.com/spf13/pflag/uint16.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/uint16.go
rename to vendor/github.com/spf13/pflag/uint16.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/uint32.go b/vendor/github.com/spf13/pflag/uint32.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/uint32.go
rename to vendor/github.com/spf13/pflag/uint32.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/uint64.go b/vendor/github.com/spf13/pflag/uint64.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/uint64.go
rename to vendor/github.com/spf13/pflag/uint64.go
diff --git a/Godeps/_workspace/src/github.com/spf13/pflag/uint8.go b/vendor/github.com/spf13/pflag/uint8.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/spf13/pflag/uint8.go
rename to vendor/github.com/spf13/pflag/uint8.go
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/appc/spec/LICENSE b/vendor/go4.org/LICENSE
similarity index 99%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/appc/spec/LICENSE
rename to vendor/go4.org/LICENSE
index e06d208..8f71f43 100644
--- a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/appc/spec/LICENSE
+++ b/vendor/go4.org/LICENSE
@@ -1,4 +1,4 @@
-Apache License
+ Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
diff --git a/Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/errorutil/highlight.go b/vendor/go4.org/errorutil/highlight.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/camlistore/camlistore/pkg/errorutil/highlight.go
rename to vendor/go4.org/errorutil/highlight.go
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/sortutil/LICENSE b/vendor/golang.org/x/net/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/github.com/cznic/sortutil/LICENSE
rename to vendor/golang.org/x/net/LICENSE
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/PATENTS b/vendor/golang.org/x/net/PATENTS
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/github.com/camlistore/camlistore/third_party/golang.org/x/image/PATENTS
rename to vendor/golang.org/x/net/PATENTS
diff --git a/vendor/golang.org/x/net/context/context.go b/vendor/golang.org/x/net/context/context.go
new file mode 100644
index 0000000..ea1a7cd
--- /dev/null
+++ b/vendor/golang.org/x/net/context/context.go
@@ -0,0 +1,156 @@
+// Copyright 2014 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 context defines the Context type, which carries deadlines,
+// cancelation signals, and other request-scoped values across API boundaries
+// and between processes.
+//
+// Incoming requests to a server should create a Context, and outgoing calls to
+// servers should accept a Context. The chain of function calls between must
+// propagate the Context, optionally replacing it with a modified copy created
+// using WithDeadline, WithTimeout, WithCancel, or WithValue.
+//
+// Programs that use Contexts should follow these rules to keep interfaces
+// consistent across packages and enable static analysis tools to check context
+// propagation:
+//
+// Do not store Contexts inside a struct type; instead, pass a Context
+// explicitly to each function that needs it. The Context should be the first
+// parameter, typically named ctx:
+//
+// func DoSomething(ctx context.Context, arg Arg) error {
+// // ... use ctx ...
+// }
+//
+// Do not pass a nil Context, even if a function permits it. Pass context.TODO
+// if you are unsure about which Context to use.
+//
+// Use context Values only for request-scoped data that transits processes and
+// APIs, not for passing optional parameters to functions.
+//
+// The same Context may be passed to functions running in different goroutines;
+// Contexts are safe for simultaneous use by multiple goroutines.
+//
+// See http://blog.golang.org/context for example code for a server that uses
+// Contexts.
+package context
+
+import "time"
+
+// A Context carries a deadline, a cancelation signal, and other values across
+// API boundaries.
+//
+// Context's methods may be called by multiple goroutines simultaneously.
+type Context interface {
+ // Deadline returns the time when work done on behalf of this context
+ // should be canceled. Deadline returns ok==false when no deadline is
+ // set. Successive calls to Deadline return the same results.
+ Deadline() (deadline time.Time, ok bool)
+
+ // Done returns a channel that's closed when work done on behalf of this
+ // context should be canceled. Done may return nil if this context can
+ // never be canceled. Successive calls to Done return the same value.
+ //
+ // WithCancel arranges for Done to be closed when cancel is called;
+ // WithDeadline arranges for Done to be closed when the deadline
+ // expires; WithTimeout arranges for Done to be closed when the timeout
+ // elapses.
+ //
+ // Done is provided for use in select statements:
+ //
+ // // Stream generates values with DoSomething and sends them to out
+ // // until DoSomething returns an error or ctx.Done is closed.
+ // func Stream(ctx context.Context, out chan<- Value) error {
+ // for {
+ // v, err := DoSomething(ctx)
+ // if err != nil {
+ // return err
+ // }
+ // select {
+ // case <-ctx.Done():
+ // return ctx.Err()
+ // case out <- v:
+ // }
+ // }
+ // }
+ //
+ // See http://blog.golang.org/pipelines for more examples of how to use
+ // a Done channel for cancelation.
+ Done() <-chan struct{}
+
+ // Err returns a non-nil error value after Done is closed. Err returns
+ // Canceled if the context was canceled or DeadlineExceeded if the
+ // context's deadline passed. No other values for Err are defined.
+ // After Done is closed, successive calls to Err return the same value.
+ Err() error
+
+ // Value returns the value associated with this context for key, or nil
+ // if no value is associated with key. Successive calls to Value with
+ // the same key returns the same result.
+ //
+ // Use context values only for request-scoped data that transits
+ // processes and API boundaries, not for passing optional parameters to
+ // functions.
+ //
+ // A key identifies a specific value in a Context. Functions that wish
+ // to store values in Context typically allocate a key in a global
+ // variable then use that key as the argument to context.WithValue and
+ // Context.Value. A key can be any type that supports equality;
+ // packages should define keys as an unexported type to avoid
+ // collisions.
+ //
+ // Packages that define a Context key should provide type-safe accessors
+ // for the values stores using that key:
+ //
+ // // Package user defines a User type that's stored in Contexts.
+ // package user
+ //
+ // import "golang.org/x/net/context"
+ //
+ // // User is the type of value stored in the Contexts.
+ // type User struct {...}
+ //
+ // // key is an unexported type for keys defined in this package.
+ // // This prevents collisions with keys defined in other packages.
+ // type key int
+ //
+ // // userKey is the key for user.User values in Contexts. It is
+ // // unexported; clients use user.NewContext and user.FromContext
+ // // instead of using this key directly.
+ // var userKey key = 0
+ //
+ // // NewContext returns a new Context that carries value u.
+ // func NewContext(ctx context.Context, u *User) context.Context {
+ // return context.WithValue(ctx, userKey, u)
+ // }
+ //
+ // // FromContext returns the User value stored in ctx, if any.
+ // func FromContext(ctx context.Context) (*User, bool) {
+ // u, ok := ctx.Value(userKey).(*User)
+ // return u, ok
+ // }
+ Value(key interface{}) interface{}
+}
+
+// Background returns a non-nil, empty Context. It is never canceled, has no
+// values, and has no deadline. It is typically used by the main function,
+// initialization, and tests, and as the top-level Context for incoming
+// requests.
+func Background() Context {
+ return background
+}
+
+// TODO returns a non-nil, empty Context. Code should use context.TODO when
+// it's unclear which Context to use or it is not yet available (because the
+// surrounding function has not yet been extended to accept a Context
+// parameter). TODO is recognized by static analysis tools that determine
+// whether Contexts are propagated correctly in a program.
+func TODO() Context {
+ return todo
+}
+
+// A CancelFunc tells an operation to abandon its work.
+// A CancelFunc does not wait for the work to stop.
+// After the first call, subsequent calls to a CancelFunc do nothing.
+type CancelFunc func()
diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go
new file mode 100644
index 0000000..f8cda19
--- /dev/null
+++ b/vendor/golang.org/x/net/context/go17.go
@@ -0,0 +1,72 @@
+// Copyright 2016 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.7
+
+package context
+
+import (
+ "context" // standard library's context, as of Go 1.7
+ "time"
+)
+
+var (
+ todo = context.TODO()
+ background = context.Background()
+)
+
+// Canceled is the error returned by Context.Err when the context is canceled.
+var Canceled = context.Canceled
+
+// DeadlineExceeded is the error returned by Context.Err when the context's
+// deadline passes.
+var DeadlineExceeded = context.DeadlineExceeded
+
+// WithCancel returns a copy of parent with a new Done channel. The returned
+// context's Done channel is closed when the returned cancel function is called
+// or when the parent context's Done channel is closed, whichever happens first.
+//
+// Canceling this context releases resources associated with it, so code should
+// call cancel as soon as the operations running in this Context complete.
+func WithCancel(parent Context) (ctx Context, cancel CancelFunc) {
+ ctx, f := context.WithCancel(parent)
+ return ctx, CancelFunc(f)
+}
+
+// WithDeadline returns a copy of the parent context with the deadline adjusted
+// to be no later than d. If the parent's deadline is already earlier than d,
+// WithDeadline(parent, d) is semantically equivalent to parent. The returned
+// context's Done channel is closed when the deadline expires, when the returned
+// cancel function is called, or when the parent context's Done channel is
+// closed, whichever happens first.
+//
+// Canceling this context releases resources associated with it, so code should
+// call cancel as soon as the operations running in this Context complete.
+func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {
+ ctx, f := context.WithDeadline(parent, deadline)
+ return ctx, CancelFunc(f)
+}
+
+// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
+//
+// Canceling this context releases resources associated with it, so code should
+// call cancel as soon as the operations running in this Context complete:
+//
+// func slowOperationWithTimeout(ctx context.Context) (Result, error) {
+// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
+// defer cancel() // releases resources if slowOperation completes before timeout elapses
+// return slowOperation(ctx)
+// }
+func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {
+ return WithDeadline(parent, time.Now().Add(timeout))
+}
+
+// WithValue returns a copy of parent in which the value associated with key is
+// val.
+//
+// Use context Values only for request-scoped data that transits processes and
+// APIs, not for passing optional parameters to functions.
+func WithValue(parent Context, key interface{}, val interface{}) Context {
+ return context.WithValue(parent, key, val)
+}
diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go
new file mode 100644
index 0000000..5a30aca
--- /dev/null
+++ b/vendor/golang.org/x/net/context/pre_go17.go
@@ -0,0 +1,300 @@
+// Copyright 2014 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.7
+
+package context
+
+import (
+ "errors"
+ "fmt"
+ "sync"
+ "time"
+)
+
+// An emptyCtx is never canceled, has no values, and has no deadline. It is not
+// struct{}, since vars of this type must have distinct addresses.
+type emptyCtx int
+
+func (*emptyCtx) Deadline() (deadline time.Time, ok bool) {
+ return
+}
+
+func (*emptyCtx) Done() <-chan struct{} {
+ return nil
+}
+
+func (*emptyCtx) Err() error {
+ return nil
+}
+
+func (*emptyCtx) Value(key interface{}) interface{} {
+ return nil
+}
+
+func (e *emptyCtx) String() string {
+ switch e {
+ case background:
+ return "context.Background"
+ case todo:
+ return "context.TODO"
+ }
+ return "unknown empty Context"
+}
+
+var (
+ background = new(emptyCtx)
+ todo = new(emptyCtx)
+)
+
+// Canceled is the error returned by Context.Err when the context is canceled.
+var Canceled = errors.New("context canceled")
+
+// DeadlineExceeded is the error returned by Context.Err when the context's
+// deadline passes.
+var DeadlineExceeded = errors.New("context deadline exceeded")
+
+// WithCancel returns a copy of parent with a new Done channel. The returned
+// context's Done channel is closed when the returned cancel function is called
+// or when the parent context's Done channel is closed, whichever happens first.
+//
+// Canceling this context releases resources associated with it, so code should
+// call cancel as soon as the operations running in this Context complete.
+func WithCancel(parent Context) (ctx Context, cancel CancelFunc) {
+ c := newCancelCtx(parent)
+ propagateCancel(parent, c)
+ return c, func() { c.cancel(true, Canceled) }
+}
+
+// newCancelCtx returns an initialized cancelCtx.
+func newCancelCtx(parent Context) *cancelCtx {
+ return &cancelCtx{
+ Context: parent,
+ done: make(chan struct{}),
+ }
+}
+
+// propagateCancel arranges for child to be canceled when parent is.
+func propagateCancel(parent Context, child canceler) {
+ if parent.Done() == nil {
+ return // parent is never canceled
+ }
+ if p, ok := parentCancelCtx(parent); ok {
+ p.mu.Lock()
+ if p.err != nil {
+ // parent has already been canceled
+ child.cancel(false, p.err)
+ } else {
+ if p.children == nil {
+ p.children = make(map[canceler]bool)
+ }
+ p.children[child] = true
+ }
+ p.mu.Unlock()
+ } else {
+ go func() {
+ select {
+ case <-parent.Done():
+ child.cancel(false, parent.Err())
+ case <-child.Done():
+ }
+ }()
+ }
+}
+
+// parentCancelCtx follows a chain of parent references until it finds a
+// *cancelCtx. This function understands how each of the concrete types in this
+// package represents its parent.
+func parentCancelCtx(parent Context) (*cancelCtx, bool) {
+ for {
+ switch c := parent.(type) {
+ case *cancelCtx:
+ return c, true
+ case *timerCtx:
+ return c.cancelCtx, true
+ case *valueCtx:
+ parent = c.Context
+ default:
+ return nil, false
+ }
+ }
+}
+
+// removeChild removes a context from its parent.
+func removeChild(parent Context, child canceler) {
+ p, ok := parentCancelCtx(parent)
+ if !ok {
+ return
+ }
+ p.mu.Lock()
+ if p.children != nil {
+ delete(p.children, child)
+ }
+ p.mu.Unlock()
+}
+
+// A canceler is a context type that can be canceled directly. The
+// implementations are *cancelCtx and *timerCtx.
+type canceler interface {
+ cancel(removeFromParent bool, err error)
+ Done() <-chan struct{}
+}
+
+// A cancelCtx can be canceled. When canceled, it also cancels any children
+// that implement canceler.
+type cancelCtx struct {
+ Context
+
+ done chan struct{} // closed by the first cancel call.
+
+ mu sync.Mutex
+ children map[canceler]bool // set to nil by the first cancel call
+ err error // set to non-nil by the first cancel call
+}
+
+func (c *cancelCtx) Done() <-chan struct{} {
+ return c.done
+}
+
+func (c *cancelCtx) Err() error {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+ return c.err
+}
+
+func (c *cancelCtx) String() string {
+ return fmt.Sprintf("%v.WithCancel", c.Context)
+}
+
+// cancel closes c.done, cancels each of c's children, and, if
+// removeFromParent is true, removes c from its parent's children.
+func (c *cancelCtx) cancel(removeFromParent bool, err error) {
+ if err == nil {
+ panic("context: internal error: missing cancel error")
+ }
+ c.mu.Lock()
+ if c.err != nil {
+ c.mu.Unlock()
+ return // already canceled
+ }
+ c.err = err
+ close(c.done)
+ for child := range c.children {
+ // NOTE: acquiring the child's lock while holding parent's lock.
+ child.cancel(false, err)
+ }
+ c.children = nil
+ c.mu.Unlock()
+
+ if removeFromParent {
+ removeChild(c.Context, c)
+ }
+}
+
+// WithDeadline returns a copy of the parent context with the deadline adjusted
+// to be no later than d. If the parent's deadline is already earlier than d,
+// WithDeadline(parent, d) is semantically equivalent to parent. The returned
+// context's Done channel is closed when the deadline expires, when the returned
+// cancel function is called, or when the parent context's Done channel is
+// closed, whichever happens first.
+//
+// Canceling this context releases resources associated with it, so code should
+// call cancel as soon as the operations running in this Context complete.
+func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {
+ if cur, ok := parent.Deadline(); ok && cur.Before(deadline) {
+ // The current deadline is already sooner than the new one.
+ return WithCancel(parent)
+ }
+ c := &timerCtx{
+ cancelCtx: newCancelCtx(parent),
+ deadline: deadline,
+ }
+ propagateCancel(parent, c)
+ d := deadline.Sub(time.Now())
+ if d <= 0 {
+ c.cancel(true, DeadlineExceeded) // deadline has already passed
+ return c, func() { c.cancel(true, Canceled) }
+ }
+ c.mu.Lock()
+ defer c.mu.Unlock()
+ if c.err == nil {
+ c.timer = time.AfterFunc(d, func() {
+ c.cancel(true, DeadlineExceeded)
+ })
+ }
+ return c, func() { c.cancel(true, Canceled) }
+}
+
+// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to
+// implement Done and Err. It implements cancel by stopping its timer then
+// delegating to cancelCtx.cancel.
+type timerCtx struct {
+ *cancelCtx
+ timer *time.Timer // Under cancelCtx.mu.
+
+ deadline time.Time
+}
+
+func (c *timerCtx) Deadline() (deadline time.Time, ok bool) {
+ return c.deadline, true
+}
+
+func (c *timerCtx) String() string {
+ return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now()))
+}
+
+func (c *timerCtx) cancel(removeFromParent bool, err error) {
+ c.cancelCtx.cancel(false, err)
+ if removeFromParent {
+ // Remove this timerCtx from its parent cancelCtx's children.
+ removeChild(c.cancelCtx.Context, c)
+ }
+ c.mu.Lock()
+ if c.timer != nil {
+ c.timer.Stop()
+ c.timer = nil
+ }
+ c.mu.Unlock()
+}
+
+// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
+//
+// Canceling this context releases resources associated with it, so code should
+// call cancel as soon as the operations running in this Context complete:
+//
+// func slowOperationWithTimeout(ctx context.Context) (Result, error) {
+// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
+// defer cancel() // releases resources if slowOperation completes before timeout elapses
+// return slowOperation(ctx)
+// }
+func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {
+ return WithDeadline(parent, time.Now().Add(timeout))
+}
+
+// WithValue returns a copy of parent in which the value associated with key is
+// val.
+//
+// Use context Values only for request-scoped data that transits processes and
+// APIs, not for passing optional parameters to functions.
+func WithValue(parent Context, key interface{}, val interface{}) Context {
+ return &valueCtx{parent, key, val}
+}
+
+// A valueCtx carries a key-value pair. It implements Value for that key and
+// delegates all other calls to the embedded Context.
+type valueCtx struct {
+ Context
+ key, val interface{}
+}
+
+func (c *valueCtx) String() string {
+ return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val)
+}
+
+func (c *valueCtx) Value(key interface{}) interface{} {
+ if c.key == key {
+ return c.val
+ }
+ return c.Context.Value(key)
+}
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/atom/atom.go b/vendor/golang.org/x/net/html/atom/atom.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/atom/atom.go
rename to vendor/golang.org/x/net/html/atom/atom.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/atom/gen.go b/vendor/golang.org/x/net/html/atom/gen.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/atom/gen.go
rename to vendor/golang.org/x/net/html/atom/gen.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/atom/table.go b/vendor/golang.org/x/net/html/atom/table.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/atom/table.go
rename to vendor/golang.org/x/net/html/atom/table.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/const.go b/vendor/golang.org/x/net/html/const.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/const.go
rename to vendor/golang.org/x/net/html/const.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/doc.go
rename to vendor/golang.org/x/net/html/doc.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/doctype.go b/vendor/golang.org/x/net/html/doctype.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/doctype.go
rename to vendor/golang.org/x/net/html/doctype.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/entity.go b/vendor/golang.org/x/net/html/entity.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/entity.go
rename to vendor/golang.org/x/net/html/entity.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/escape.go b/vendor/golang.org/x/net/html/escape.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/escape.go
rename to vendor/golang.org/x/net/html/escape.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/foreign.go b/vendor/golang.org/x/net/html/foreign.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/foreign.go
rename to vendor/golang.org/x/net/html/foreign.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/node.go b/vendor/golang.org/x/net/html/node.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/node.go
rename to vendor/golang.org/x/net/html/node.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/parse.go
rename to vendor/golang.org/x/net/html/parse.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/render.go
rename to vendor/golang.org/x/net/html/render.go
diff --git a/Godeps/_workspace/src/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go
similarity index 100%
rename from Godeps/_workspace/src/golang.org/x/net/html/token.go
rename to vendor/golang.org/x/net/html/token.go
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE b/vendor/gopkg.in/yaml.v2/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE
rename to vendor/gopkg.in/yaml.v2/LICENSE
diff --git a/Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE.libyaml b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml
similarity index 100%
rename from Godeps/_workspace/src/github.com/blablacar/cnt/Godeps/_workspace/src/gopkg.in/yaml.v2/LICENSE.libyaml
rename to vendor/gopkg.in/yaml.v2/LICENSE.libyaml
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/README.md b/vendor/gopkg.in/yaml.v2/README.md
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/README.md
rename to vendor/gopkg.in/yaml.v2/README.md
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/apic.go b/vendor/gopkg.in/yaml.v2/apic.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/apic.go
rename to vendor/gopkg.in/yaml.v2/apic.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/decode.go b/vendor/gopkg.in/yaml.v2/decode.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/decode.go
rename to vendor/gopkg.in/yaml.v2/decode.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/emitterc.go b/vendor/gopkg.in/yaml.v2/emitterc.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/emitterc.go
rename to vendor/gopkg.in/yaml.v2/emitterc.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/encode.go b/vendor/gopkg.in/yaml.v2/encode.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/encode.go
rename to vendor/gopkg.in/yaml.v2/encode.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/parserc.go b/vendor/gopkg.in/yaml.v2/parserc.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/parserc.go
rename to vendor/gopkg.in/yaml.v2/parserc.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/readerc.go b/vendor/gopkg.in/yaml.v2/readerc.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/readerc.go
rename to vendor/gopkg.in/yaml.v2/readerc.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/resolve.go b/vendor/gopkg.in/yaml.v2/resolve.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/resolve.go
rename to vendor/gopkg.in/yaml.v2/resolve.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/scannerc.go b/vendor/gopkg.in/yaml.v2/scannerc.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/scannerc.go
rename to vendor/gopkg.in/yaml.v2/scannerc.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/sorter.go b/vendor/gopkg.in/yaml.v2/sorter.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/sorter.go
rename to vendor/gopkg.in/yaml.v2/sorter.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/writerc.go b/vendor/gopkg.in/yaml.v2/writerc.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/writerc.go
rename to vendor/gopkg.in/yaml.v2/writerc.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/yaml.go b/vendor/gopkg.in/yaml.v2/yaml.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/yaml.go
rename to vendor/gopkg.in/yaml.v2/yaml.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/yamlh.go b/vendor/gopkg.in/yaml.v2/yamlh.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/yamlh.go
rename to vendor/gopkg.in/yaml.v2/yamlh.go
diff --git a/Godeps/_workspace/src/gopkg.in/yaml.v2/yamlprivateh.go b/vendor/gopkg.in/yaml.v2/yamlprivateh.go
similarity index 100%
rename from Godeps/_workspace/src/gopkg.in/yaml.v2/yamlprivateh.go
rename to vendor/gopkg.in/yaml.v2/yamlprivateh.go
diff --git a/Godeps/_workspace/src/github.com/coreos/go-semver/LICENSE b/vendor/k8s.io/kubernetes/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/coreos/go-semver/LICENSE
rename to vendor/k8s.io/kubernetes/LICENSE
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/pkg/api/resource/quantity.go b/vendor/k8s.io/kubernetes/pkg/api/resource/quantity.go
similarity index 100%
rename from Godeps/_workspace/src/k8s.io/kubernetes/pkg/api/resource/quantity.go
rename to vendor/k8s.io/kubernetes/pkg/api/resource/quantity.go
diff --git a/Godeps/_workspace/src/k8s.io/kubernetes/pkg/api/resource/suffix.go b/vendor/k8s.io/kubernetes/pkg/api/resource/suffix.go
similarity index 100%
rename from Godeps/_workspace/src/k8s.io/kubernetes/pkg/api/resource/suffix.go
rename to vendor/k8s.io/kubernetes/pkg/api/resource/suffix.go
diff --git a/Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE b/vendor/speter.net/go/exp/math/dec/inf/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/appc/spec/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/LICENSE
rename to vendor/speter.net/go/exp/math/dec/inf/LICENSE
diff --git a/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/dec.go b/vendor/speter.net/go/exp/math/dec/inf/dec.go
similarity index 99%
rename from Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/dec.go
rename to vendor/speter.net/go/exp/math/dec/inf/dec.go
index ffaa4cd..d17ad94 100644
--- a/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/dec.go
+++ b/vendor/speter.net/go/exp/math/dec/inf/dec.go
@@ -104,7 +104,7 @@ var bigInt = [...]*big.Int{
var exp10cache [64]big.Int = func() [64]big.Int {
e10, e10i := [64]big.Int{}, bigInt[1]
- for i := range e10 {
+ for i, _ := range e10 {
e10[i].Set(e10i)
e10i = new(big.Int).Mul(e10i, bigInt[10])
}
diff --git a/Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/rounder.go b/vendor/speter.net/go/exp/math/dec/inf/rounder.go
similarity index 100%
rename from Godeps/_workspace/src/speter.net/go/exp/math/dec/inf/rounder.go
rename to vendor/speter.net/go/exp/math/dec/inf/rounder.go
diff --git a/work/build.go b/work/build.go
new file mode 100644
index 0000000..22f532f
--- /dev/null
+++ b/work/build.go
@@ -0,0 +1,11 @@
+package work
+
+type Flags struct {
+ All bool
+ Yes bool
+ Force bool
+ GenerateManifests []string
+ ManifestAttributes string
+}
+
+var BuildFlags = Flags{}
diff --git a/work/env-check.go b/work/env-check.go
index b40198e..09d35e1 100644
--- a/work/env-check.go
+++ b/work/env-check.go
@@ -1,35 +1,20 @@
package work
import (
- "github.com/blablacar/ggn/spec"
"sync"
+
+ "github.com/n0rad/go-erlog/logs"
)
func (e Env) Check() {
- e.log.Debug("Running check")
+ e.Generate()
+ logs.WithFields(e.fields).Debug("Running check")
- info := spec.HookInfo{Command: "env/check", Action: "env/check"}
- e.RunEarlyHook(info)
- defer e.RunLateHook(info)
+ info := HookInfo{Command: "env/check", Action: "env/check"}
+ e.RunEarlyHookFatal(info)
+ defer e.RunLateHookFatal(info)
e.concurrentChecker(e.ListServices())
-
- // e.Generate()
-
- // units, _, err := e.RunFleetCmdGetOutput("-strict-host-key-checking=false", "list-unit-files", "-no-legend", "-fields", "unit")
- // if err != nil {
- // e.log.WithError(err).Fatal("Cannot list unit files")
- // }
- //
- // for _, unitName := range strings.Split(units, "\n") {
- // unitInfo := strings.Split(unitName, "_")
- // if len(unitInfo) != 3 {
- // e.log.WithField("unit", unitName).Warn("Unknown unit format for GGN")
- // continue
- // }
- // split := strings.Split(unitInfo[2], ".")
- // e.LoadService(unitInfo[1]).LoadUnit(split[0]).Check("env/check")
- // }
}
func (e Env) concurrentChecker(services []string) {
@@ -39,7 +24,9 @@ func (e Env) concurrentChecker(services []string) {
wg.Add(1)
go func() {
for service := range aChan {
- e.LoadService(service).Check()
+ if err := e.LoadService(service).Check(); err != nil {
+ logs.WithE(err).WithField("service", service).Error("Check failed")
+ }
}
wg.Done()
}()
@@ -51,27 +38,3 @@ func (e Env) concurrentChecker(services []string) {
close(aChan)
wg.Wait()
}
-
-//import (
-// "strings"
-//)
-//
-//func (e Env) Check() {
-// e.log.Debug("Running command")
-//
-// e.Generate()
-//
-// units, _, err := e.RunFleetCmdGetOutput("-strict-host-key-checking=false", "list-unit-files", "-no-legend", "-fields", "unit")
-// if err != nil {
-// e.log.WithError(err).Fatal("Cannot list unit files")
-// }
-//
-// for _, unitName := range strings.Split(units, "\n") {
-// unitInfo := strings.Split(unitName, "_")
-// if len(unitInfo) != 3 {
-// e.log.WithField("unit", unitName).Warn("Unknown unit format for GGN")
-// continue
-// }
-// e.LoadService(unitInfo[1]).LoadUnit(unitName).Check()
-// }
-//}
diff --git a/work/env-fleetctl.go b/work/env-fleetctl.go
index 895a88d..3b2e1dc 100644
--- a/work/env-fleetctl.go
+++ b/work/env-fleetctl.go
@@ -1,9 +1,11 @@
package work
+import "github.com/n0rad/go-erlog/logs"
+
func (e Env) Fleetctl(args []string) {
- e.log.Debug("Running fleetctl")
+ logs.WithFields(e.fields).Debug("Running fleetctl")
err := e.RunFleetCmd(args...)
if err != nil {
- e.log.WithError(err).Error("Fleetctl command failed")
+ logs.WithEF(err, e.fields).Error("Fleetctl command failed")
}
}
diff --git a/work/env-generate.go b/work/env-generate.go
index 7aff07f..d0bac00 100644
--- a/work/env-generate.go
+++ b/work/env-generate.go
@@ -1,11 +1,15 @@
package work
+import "github.com/n0rad/go-erlog/logs"
+
func (e Env) Generate() {
- e.log.Debug("Generating units")
+ logs.WithFields(e.fields).Debug("Generating units")
services := e.ListServices()
for _, service := range services {
service := e.LoadService(service)
- service.Generate()
+ if err := service.Generate(); err != nil {
+ logs.WithE(err).Error("Generate failed")
+ }
}
}
diff --git a/work/env-list-units.go b/work/env-list-units.go
index 9c7d738..07ecdf4 100644
--- a/work/env-list-units.go
+++ b/work/env-list-units.go
@@ -2,15 +2,16 @@ package work
import (
"bufio"
- "github.com/blablacar/ggn/spec"
"strings"
"sync"
+
+ "github.com/n0rad/go-erlog/logs"
)
-var statusCache map[string]spec.UnitStatus
+var statusCache map[string]UnitStatus
var mutex = &sync.Mutex{}
-func (e Env) ListUnits() map[string]spec.UnitStatus {
+func (e Env) ListUnits() map[string]UnitStatus {
mutex.Lock()
defer mutex.Unlock()
@@ -20,7 +21,7 @@ func (e Env) ListUnits() map[string]spec.UnitStatus {
stdout, _, err := e.RunFleetCmdGetOutput("list-units", "-no-legend")
if err != nil {
- e.log.WithError(err).Fatal("Cannot list units")
+ logs.WithEF(err, e.fields).Debug("Cannot list units")
}
var lines []string
@@ -29,10 +30,10 @@ func (e Env) ListUnits() map[string]spec.UnitStatus {
lines = append(lines, scanner.Text())
}
- status := make(map[string]spec.UnitStatus)
+ status := make(map[string]UnitStatus)
for _, line := range lines {
split := strings.Fields(line)
- status[split[0]] = spec.UnitStatus{Unit: split[0], Machine: split[1], Active: split[2], Sub: split[3]}
+ status[split[0]] = UnitStatus{Unit: split[0], Machine: split[1], Active: split[2], Sub: split[3]}
}
statusCache = status
diff --git a/work/env.go b/work/env.go
index f5f2041..25cc956 100644
--- a/work/env.go
+++ b/work/env.go
@@ -2,22 +2,24 @@ package work
import (
"fmt"
- "github.com/Sirupsen/logrus"
- log "github.com/Sirupsen/logrus"
- "github.com/blablacar/attributes-merger/attributes"
- cntUtils "github.com/blablacar/cnt/utils"
- "github.com/blablacar/ggn/ggn"
- "github.com/blablacar/ggn/spec"
- "github.com/blablacar/ggn/utils"
- "github.com/blablacar/ggn/work/env"
- "github.com/coreos/etcd/client"
- "github.com/juju/errors"
- "gopkg.in/yaml.v2"
"io/ioutil"
+ "math/rand"
"os"
"strings"
"sync"
+ txttmpl "text/template"
"time"
+
+ "github.com/blablacar/dgr/bin-dgr/common"
+ "github.com/blablacar/dgr/bin-templater/template"
+ "github.com/blablacar/ggn/ggn"
+ "github.com/blablacar/ggn/utils"
+ "github.com/coreos/etcd/client"
+ "github.com/juju/errors"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/n0rad/go-erlog/logs"
+ "gopkg.in/yaml.v2"
)
const PATH_SERVICES = "/services"
@@ -29,46 +31,54 @@ type Config struct {
Password string `yaml:"password,omitempty"`
Strict_host_key_checking bool `yaml:"strict_host_key_checking,omitempty"`
Sudo bool `yaml:"sudo,omitempty"`
+ Driver string `yaml:"driver,omitempty"`
} `yaml:"fleet,omitempty"`
+ EnvName string `yaml:"envName,omitempty"`
}
type Env struct {
path string
- name string
- log logrus.Entry
+ dirName string
+ fields data.Fields
attributes map[string]interface{}
config Config
- services map[string]*env.Service
+ services map[string]*Service
servicesMutex *sync.Mutex
+ Partials *txttmpl.Template
}
func NewEnvironment(root string, name string) *Env {
- log := *log.WithField("env", name)
+ fields := data.WithField("env", name)
path := root + "/" + name
_, err := ioutil.ReadDir(path)
if err != nil {
- log.WithError(err).Error("Cannot read env directory")
+ logs.WithEF(err, fields).Fatal("Cannot read env directory")
}
env := &Env{
- services: map[string]*env.Service{},
+ services: map[string]*Service{},
servicesMutex: &sync.Mutex{},
path: path,
- name: name,
- log: log,
+ dirName: name,
+ fields: fields,
config: Config{},
}
env.loadAttributes()
env.loadConfig()
+ env.loadPartials()
return env
}
-func (e Env) GetName() string {
- return e.name
+func (e Env) GetDirName() string {
+ return e.dirName
+}
+
+func (e Env) GetEnvName() string {
+ return e.config.EnvName
}
-func (e Env) GetLog() logrus.Entry {
- return e.log
+func (e Env) GetFields() data.Fields {
+ return e.fields
}
func (e Env) GetAttributes() map[string]interface{} {
@@ -76,9 +86,9 @@ func (e Env) GetAttributes() map[string]interface{} {
}
func (e Env) FleetctlListUnits() {
- stdout, _, err := e.RunFleetCmdGetOutput("-strict-host-key-checking=false", "list-units", "--full", "--no-legend")
+ stdout, _, err := e.RunFleetCmdGetOutput("list-units", "--full", "--no-legend")
if err != nil {
- e.log.WithError(err).Fatal("Failed to list-units")
+ logs.WithEF(err, e.fields).Fatal("Failed to list-units")
}
unitStatuses := strings.Split(stdout, "\n")
@@ -87,7 +97,19 @@ func (e Env) FleetctlListUnits() {
}
}
-func (e Env) LoadService(name string) *env.Service {
+func (e Env) FleetctlListMachines() {
+ stdout, _, err := e.RunFleetCmdGetOutput("list-machines", "--full", "--no-legend")
+ if err != nil {
+ logs.WithEF(err, e.fields).Fatal("Failed to list-machines")
+ }
+
+ machines := strings.Split(stdout, "\n")
+ for _, machine := range machines {
+ fmt.Println(machine)
+ }
+}
+
+func (e Env) LoadService(name string) *Service {
e.servicesMutex.Lock()
defer e.servicesMutex.Unlock()
@@ -95,13 +117,13 @@ func (e Env) LoadService(name string) *env.Service {
return val
}
- service := env.NewService(e.path+"/services", name, e)
+ service := NewService(e.path+"/services", name, e)
e.services[name] = service
return service
}
func (e Env) attributesDir() string {
- return e.path + spec.PATH_ATTRIBUTES
+ return e.path + PATH_ATTRIBUTES
}
func (e *Env) loadConfig() {
@@ -111,15 +133,122 @@ func (e *Env) loadConfig() {
panic(err)
}
}
+
+ // backward compatibility with fleet < 1.0.0 : etcd as default driver
+ if e.config.Fleet.Driver == "" {
+ e.config.Fleet.Driver = "etcd"
+ }
+ if e.config.EnvName == "" {
+ e.config.EnvName = e.dirName
+ }
+
+ src := strings.Split(e.config.Fleet.Endpoint, ",")
+ dest := make([]string, len(src))
+ perm := rand.Perm(len(src))
+ for i, v := range perm {
+ dest[v] = src[i]
+ }
+ e.config.Fleet.Endpoint = strings.Join(dest, ",")
+
+ if _, ok := ggn.Home.Config.OverrideConfig[e.config.EnvName]; ok {
+ e.overrideFleetEnv()
+ }
+}
+
+func (e *Env) overrideFleetEnv() {
+ overridedEnv := ggn.Home.Config.OverrideConfig[e.config.EnvName]
+ if overridedEnv.Fleet.Endpoint != "" {
+ src := strings.Split(overridedEnv.Fleet.Endpoint, ",")
+ dest := make([]string, len(src))
+ perm := rand.Perm(len(src))
+ for i, v := range perm {
+ dest[v] = src[i]
+ }
+ e.config.Fleet.Endpoint = strings.Join(dest, ",")
+ }
+ if overridedEnv.Fleet.Username != "" {
+ e.config.Fleet.Username = overridedEnv.Fleet.Username
+ }
+ if overridedEnv.Fleet.Driver != "" {
+ e.config.Fleet.Driver = overridedEnv.Fleet.Driver
+ }
+ if overridedEnv.Fleet.Password != "" {
+ e.config.Fleet.Password = overridedEnv.Fleet.Password
+ }
+ if overridedEnv.Fleet.Strict_host_key_checking != nil {
+ e.config.Fleet.Strict_host_key_checking = *overridedEnv.Fleet.Strict_host_key_checking
+ }
+ if overridedEnv.Fleet.Sudo != nil {
+ e.config.Fleet.Sudo = *overridedEnv.Fleet.Sudo
+ }
+}
+
+func (e *Env) loadPartials() {
+ if ok, err := common.IsDirEmpty(e.path + PATH_TEMPLATES); ok || err != nil {
+ return
+ }
+ tmplDir, err := template.NewTemplateDir(e.path+PATH_TEMPLATES, "", false)
+ if err != nil {
+ logs.WithEF(err, e.fields).WithField("path", e.path+PATH_ATTRIBUTES).Fatal("Failed to load partial templating")
+ }
+ e.Partials = tmplDir.Partials
}
func (e *Env) loadAttributes() {
- files, err := utils.AttributeFiles(e.path + spec.PATH_ATTRIBUTES)
+ files, err := utils.AttributeFiles(e.path + PATH_ATTRIBUTES)
+ if err != nil {
+ logs.WithEF(err, e.fields).WithField("path", e.path+PATH_ATTRIBUTES).Fatal("Cannot load attribute files")
+ }
+ files, err = e.addIncludeFiles(files)
if err != nil {
- e.log.WithError(err).WithField("path", e.path+spec.PATH_ATTRIBUTES).Panic("Cannot load Attributes files")
+ logs.WithEF(err, e.fields).WithField("path", e.path+PATH_ATTRIBUTES).Fatal("Cannot load include files")
+ }
+
+ e.attributes, err = utils.MergeAttributesFiles(files)
+ if err != nil {
+ logs.WithEF(err, e.fields).WithField("path", e.path+PATH_ATTRIBUTES).Fatal("Failed to merge attributes")
+ }
+ logs.WithFields(e.fields).WithField("attributes", e.attributes).Debug("Attributes loaded")
+}
+
+func (e *Env) addIncludeFiles(files []string) ([]string, error) {
+ type includeFiles struct {
+ Include []string
+ }
+ for _, file := range files {
+ var f includeFiles
+ yml, err := ioutil.ReadFile(file)
+ if err != nil {
+ return nil, err
+ }
+ err = yaml.Unmarshal(yml, &f)
+ for _, inclusion := range f.Include {
+ sepCount := strings.Count(inclusion, ":")
+ if sepCount == 2 {
+ fields := strings.Split(inclusion, ":")
+ includeFile := strings.Replace(fields[2], ".", "/", -1) + ".yml"
+ if fields[1] == "" {
+ logs.WithField("include", inclusion).Fatal("Trying to include environment attributes from itself")
+ } else { // env:prod-dc1:some.include
+ includeFile = fmt.Sprintf("%v%v/%v%v/%v",
+ ggn.Home.Config.WorkPath,
+ PATH_ENV,
+ fields[1],
+ PATH_COMMON_ATTRIBUTES,
+ includeFile,
+ )
+ files = append(files, includeFile)
+ }
+ } else { // some.global.include
+ includeFile := strings.Replace(inclusion, ".", "/", -1) + ".yml"
+ includeFile = fmt.Sprintf("%v%v/%v", ggn.Home.Config.WorkPath, PATH_COMMON_ATTRIBUTES, includeFile)
+ files = append(files, includeFile)
+
+ }
+ }
}
- e.attributes = attributes.MergeAttributesFiles(files)
- e.log.WithField("attributes", e.attributes).Debug("Attributes loaded")
+ return files, nil
+
}
func (e Env) ListServices() []string {
@@ -134,7 +263,8 @@ func (e Env) ListServices() []string {
if !file.IsDir() {
continue
}
- if _, err := os.Stat(path + "/" + file.Name() + spec.PATH_SERVICE_MANIFEST); os.IsNotExist(err) {
+
+ if _, err := os.Stat(path + "/" + file.Name() + PATH_SERVICE_MANIFEST); os.IsNotExist(err) {
continue
}
@@ -146,20 +276,20 @@ func (e Env) ListServices() []string {
var inMemoryNames []string
func (e Env) ListMachineNames() ([]string, error) {
- e.log.Debug("list machines")
+ logs.WithFields(e.fields).Debug("list machines")
if inMemoryNames != nil {
return inMemoryNames, nil
}
- data, modification := ggn.Home.LoadMachinesCacheWithDate(e.name)
+ data, modification := ggn.Home.LoadMachinesCacheWithDate(e.dirName)
if data == "" || modification.Add(12*time.Hour).Before(time.Now()) {
- e.log.Debug("reloading list machines cache")
+ logs.WithFields(e.fields).Debug("reloading list machines cache")
datatmp, _, err := e.RunFleetCmdGetOutput("list-machines", "--fields=metadata", "--no-legend")
if err != nil {
return nil, errors.Annotate(err, "Cannot list-machines")
}
data = datatmp
- ggn.Home.SaveMachinesCache(e.name, data)
+ ggn.Home.SaveMachinesCache(e.dirName, data)
}
var names []string
@@ -169,7 +299,8 @@ func (e Env) ListMachineNames() ([]string, error) {
metas := strings.Split(machine, ",")
for _, meta := range metas {
elem := strings.Split(meta, "=")
- if elem[0] == "name" { // TODO this is specific to blablacar's metadata ??
+ if elem[0] == "dirName" {
+ // TODO this is specific to blablacar's metadata ??
names = append(names, elem[1])
}
}
@@ -180,24 +311,33 @@ func (e Env) ListMachineNames() ([]string, error) {
const PATH_HOOKS = "/hooks"
-func (e Env) RunEarlyHook(info spec.HookInfo) {
- e.runHook("/early", info)
+func (e Env) RunEarlyHookFatal(info HookInfo) {
+ if err := e.runHookAndGetNumRun("/early", info); err != nil {
+ logs.WithE(err).Fatal("hook failed")
+ }
+}
+
+func (e Env) RunLateHookFatal(info HookInfo) {
+ if err := e.runHookAndGetNumRun("/late", info); err != nil {
+ logs.WithE(err).Fatal("hook failed")
+ }
}
-func (e Env) RunLateHook(info spec.HookInfo) {
- e.runHook("/late", info)
+func (e Env) RunHook(info HookInfo) error {
+ return e.runHookAndGetNumRun("/command", info)
}
-func (e Env) runHook(path string, info spec.HookInfo) {
- e.log.WithField("path", path).WithField("info", info).Debug("Running hook")
+func (e Env) runHookAndGetNumRun(path string, info HookInfo) error {
+ logs.WithFields(e.fields).WithField("path", path).WithField("info", info).Debug("Running hook")
files, err := ioutil.ReadDir(e.path + PATH_HOOKS + path)
if err != nil {
- log.WithError(err).Debug("Cannot read hood directory")
- return
+ logs.WithEF(err, e.fields).Debug("Cannot read hook directory")
+ return nil
}
envs := map[string]string{}
- envs["ENV"] = e.name
+ envs["ENVDIR"] = e.dirName
+ envs["ENV"] = e.config.EnvName
envs["COMMAND"] = info.Command
if info.Unit != nil {
envs["UNIT"] = info.Unit.GetName()
@@ -209,28 +349,31 @@ func (e Env) runHook(path string, info spec.HookInfo) {
envs["ACTION"] = info.Action
envs["ATTRIBUTES"] = info.Attributes
envs["GGN_HOME_PATH"] = ggn.Home.Path
+ envs["LOG_LEVEL"] = logs.GetLevel().String()
for _, f := range files {
if !f.IsDir() {
- hookLog := log.WithField("name", f.Name())
+ hookFields := data.WithField("dirName", f.Name())
args := []string{e.path + PATH_HOOKS + path + "/" + f.Name()}
for key, val := range envs {
args = append([]string{key + "='" + strings.Replace(val, "'", "'\"'\"'", -1) + "'"}, args...)
}
- hookLog.Debug("Running Hook")
- if err := cntUtils.ExecCmd("bash", "-c", strings.Join(args, " ")); err != nil {
- hookLog.Fatal("Hook status is failed")
+ logs.WithFields(hookFields).Debug("Running Hook")
+ if err := common.ExecCmd("bash", "-c", strings.Join(args, " ")); err != nil {
+ return errs.WithF(hookFields, "Hook status is failed")
}
}
}
+ return nil
}
const FLEETCTL_ENDPOINT = "FLEETCTL_ENDPOINT"
const FLEETCTL_SSH_USERNAME = "FLEETCTL_SSH_USERNAME"
const FLEETCTL_STRICT_HOST_KEY_CHECKING = "FLEETCTL_STRICT_HOST_KEY_CHECKING"
const FLEETCTL_SUDO = "FLEETCTL_SUDO"
+const FLEETCTL_DRIVER = "FLEETCTL_DRIVER"
func (e Env) RunFleetCmd(args ...string) error {
_, _, err := e.runFleetCmdInternal(false, args)
@@ -251,19 +394,20 @@ func (e Env) EtcdClient() client.KeysAPI {
}
c, err := client.New(cfg)
if err != nil {
- e.log.WithError(err).Fatal("Failed to create etcd client")
+ logs.WithEF(err, e.fields).Fatal("Failed to create etcd client")
}
kapi := client.NewKeysAPI(c)
return kapi
}
func (e Env) runFleetCmdInternal(getOutput bool, args []string) (string, string, error) {
- e.log.WithField("command", strings.Join(args, " ")).Debug("Running command on fleet")
+ logs.WithF(e.fields).WithField("command", strings.Join(args, " ")).Debug("Running command on fleet")
if e.config.Fleet.Endpoint == "" {
return "", "", errors.New("Cannot find fleet.endpoint env config to call fleetctl")
}
envs := map[string]string{}
+ envs[FLEETCTL_DRIVER] = e.config.Fleet.Driver
envs[FLEETCTL_ENDPOINT] = e.config.Fleet.Endpoint
if e.config.Fleet.Username != "" {
envs[FLEETCTL_SSH_USERNAME] = e.config.Fleet.Username
@@ -280,9 +424,9 @@ func (e Env) runFleetCmdInternal(getOutput bool, args []string) (string, string,
var stderr string
var err error
if getOutput {
- stdout, stderr, err = cntUtils.ExecCmdGetStdoutAndStderr("bash", "-c", strings.Join(args, " "))
+ stdout, stderr, err = common.ExecCmdGetStdoutAndStderr("bash", "-c", strings.Join(args, " "))
} else {
- err = cntUtils.ExecCmd("bash", "-c", strings.Join(args, " "))
+ err = common.ExecCmd("bash", "-c", strings.Join(args, " "))
}
return stdout, stderr, err
}
diff --git a/work/env/service-generate.go b/work/env/service-generate.go
deleted file mode 100644
index 62b6b77..0000000
--- a/work/env/service-generate.go
+++ /dev/null
@@ -1,229 +0,0 @@
-package env
-
-import (
- "github.com/Sirupsen/logrus"
- "github.com/appc/spec/discovery"
- "github.com/appc/spec/schema"
- cntspec "github.com/blablacar/cnt/spec"
- "github.com/blablacar/ggn/builder"
- "github.com/blablacar/ggn/spec"
- "github.com/blablacar/ggn/utils"
- "io/ioutil"
- "net/http"
- "strings"
-)
-
-func (s *Service) Generate() {
- s.generatedMutex.Lock()
- defer s.generatedMutex.Unlock()
-
- if s.generated {
- return
- }
-
- s.log.Debug("Generating units")
-
- serviceTmpl, err := s.loadUnitTemplate(spec.PATH_UNIT_SERVICE_TEMPLATE)
- if err != nil {
- s.log.WithError(err).Fatal("Cannot load service template")
- }
-
- var timerTmpl *utils.Templating
- if s.hasTimer {
- timerTmpl, err = s.loadUnitTemplate(spec.PATH_UNIT_TIMER_TEMPLATE)
- if err != nil {
- s.log.WithError(err).Fatal("Cannot load timer template")
- }
- }
-
- if len(s.nodesAsJsonMap) == 0 {
- s.log.Fatal("No node to process in manifest")
- return
- }
-
- for _, unitName := range s.ListUnits() {
- unit := s.LoadUnit(unitName)
- if unit.GetType() == spec.TYPE_SERVICE {
- unit.Generate(serviceTmpl)
- } else if unit.GetType() == spec.TYPE_TIMER {
- unit.Generate(timerTmpl)
- } else {
- unit.Log.WithField("type", unit.GetType()).Fatal("Unknown unit type")
- }
- }
- s.generated = true
-}
-
-func (s Service) NodeAttributes(hostname string) map[string]interface{} {
- for _, node := range s.nodesAsJsonMap {
- host := node.(map[string]interface{})[spec.NODE_HOSTNAME].(string)
- if host == hostname {
- return node.(map[string]interface{})
- }
- }
- logrus.WithField("hostname", hostname).Panic("Cannot find host in service list")
- return nil
-}
-
-func (s Service) podManifestToMap(result map[string][]cntspec.ACFullname, contents []byte) error {
- pod := schema.BlankPodManifest()
- err := pod.UnmarshalJSON(contents)
- if err != nil {
- return err
- }
-
- var podname string
- var acis []cntspec.ACFullname
- for i, podAci := range pod.Apps {
- version, _ := podAci.Image.Labels.Get("version")
- fullname := cntspec.NewACFullName(podAci.Image.Name.String() + ":" + version)
- if i == 0 {
- nameSplit := strings.SplitN(fullname.ShortName(), "_", 2)
- podname = fullname.DomainName() + "/" + nameSplit[0]
- }
-
- // resolved, err := fullname.FullyResolved() // TODO should not be resolved for local test ??
- // if err != nil {
- // logrus.WithError(err).Fatal("Cannot fully resolve ACI")
- // }
- acis = append(acis, *fullname)
- }
-
- result[podname] = acis
- return nil
-}
-
-func (s Service) aciManifestToMap(result map[string][]cntspec.ACFullname, contents []byte) error {
- aci := schema.BlankImageManifest()
- err := aci.UnmarshalJSON(contents)
- if err != nil {
- return err
- }
-
- version, _ := aci.Labels.Get("version")
- fullname := cntspec.NewACFullName(aci.Name.String() + ":" + version)
- result[fullname.Name()] = []cntspec.ACFullname{*fullname}
- return nil
-}
-
-func (s Service) sources(sources []string) map[string][]cntspec.ACFullname {
- res := make(map[string][]cntspec.ACFullname)
- for _, source := range sources {
- content, err := ioutil.ReadFile(source)
- if err != nil {
- s.log.WithError(err).Warn("Cannot read source file")
- continue
- }
- if err := s.aciManifestToMap(res, content); err != nil {
- if err2 := s.podManifestToMap(res, content); err2 != nil {
- s.log.WithError(err).WithField("error2", err2).Error("Cannot read manifest file as aci nor pod")
- }
- }
- }
- return res
-}
-
-func (s Service) discoverPod(name cntspec.ACFullname) []cntspec.ACFullname {
- logAci := s.log.WithField("pod", name)
-
- app, err := discovery.NewAppFromString(name.String())
- if app.Labels["os"] == "" {
- app.Labels["os"] = "linux"
- }
- if app.Labels["arch"] == "" {
- app.Labels["arch"] = "amd64"
- }
-
- endpoint, _, err := discovery.DiscoverEndpoints(*app, nil, false)
- if err != nil {
- logAci.WithError(err).Fatal("pod discovery failed")
- }
-
- if len(endpoint.ACIEndpoints) == 0 {
- s.log.Panic("Discovery does not contain a url")
- }
- url := endpoint.ACIEndpoints[0].ACI
- url = strings.Replace(url, "=aci", "=pod", 1) // TODO this is nexus specific
-
- logUrl := logAci.WithField("url", url)
- response, err := http.Get(url)
- if err != nil {
- logUrl.WithError(err).Fatal("Cannot get pod manifest content")
- return nil
- } else {
- if response.StatusCode != 200 {
- logUrl.WithField("status_code", response.StatusCode).WithField("status_message", response.Status).
- Fatal("Receive response error for discovery")
- }
- defer response.Body.Close()
- content, err := ioutil.ReadAll(response.Body)
- if err != nil {
- logUrl.WithError(err).Fatal("Cannot read pod manifest content")
- }
- tmpMap := make(map[string][]cntspec.ACFullname, 1)
- if err := s.podManifestToMap(tmpMap, content); err != nil {
- logUrl.WithError(err).Fatal("Cannot read pod content")
- }
- acis := tmpMap[name.Name()]
- if acis == nil {
- logUrl.Fatal("Discovered pod name does not match requested")
- }
- return acis
- }
-}
-
-func (s *Service) PrepareAciList() string {
-
- if len(s.manifest.Containers) == 0 {
- return ""
- }
-
- s.aciListMutex.Lock()
- defer s.aciListMutex.Unlock()
-
- if s.aciList != "" {
- return s.aciList
- }
-
- override := s.sources(builder.BuildFlags.GenerateManifests)
- s.log.WithField("data", override).Debug("Local resolved sources")
-
- var acis string
- for _, aci := range s.manifest.Containers {
- containerLog := s.log.WithField("container", aci.String())
- containerLog.Debug("Processing container")
- if strings.HasPrefix(aci.ShortName(), "pod-") {
- var podAcis []cntspec.ACFullname
- if override[aci.Name()] != nil {
- containerLog.Debug("Using local source to resolve")
- podAcis = override[aci.Name()]
- } else {
- containerLog.Debug("Using remote source to resolve")
- podAcis = s.discoverPod(aci)
- }
- for _, aci := range podAcis {
- acis += aci.String() + " "
- }
- } else {
- var taci cntspec.ACFullname
- if override[aci.Name()] != nil {
- containerLog.Debug("Using local source to resolve")
- taci = override[aci.Name()][0]
- } else {
- containerLog.Debug("Using remote source to resolve")
- aciTmp, err := aci.FullyResolved()
- taci = *aciTmp
- if err != nil {
- containerLog.Fatal("Cannot resolve aci")
- return ""
- }
- }
- acis += taci.String() + " "
- }
- }
- if acis == "" {
- s.log.Error("Aci list is empty after discovery")
- }
- s.aciList = acis
- return acis
-}
diff --git a/work/env/service.go b/work/env/service.go
deleted file mode 100644
index 6a693d2..0000000
--- a/work/env/service.go
+++ /dev/null
@@ -1,294 +0,0 @@
-package env
-
-import (
- "encoding/json"
- "fmt"
- "github.com/Sirupsen/logrus"
- log "github.com/Sirupsen/logrus"
- "github.com/blablacar/attributes-merger/attributes"
- "github.com/blablacar/ggn/ggn"
- "github.com/blablacar/ggn/spec"
- "github.com/blablacar/ggn/utils"
- "github.com/blablacar/ggn/work/env/service"
- "github.com/coreos/etcd/client"
- "github.com/juju/errors"
- "golang.org/x/net/context"
- "gopkg.in/yaml.v2"
- "io/ioutil"
- "os"
- "strings"
- "sync"
- "time"
-)
-
-type Service struct {
- env spec.Env
- path string
- Name string
- hasTimer bool
- manifest spec.ServiceManifest
- nodesAsJsonMap []interface{}
- log log.Entry
- lockPath string
- attributes map[string]interface{}
- generated bool
- generatedMutex *sync.Mutex
- units map[string]*service.Unit
- unitsMutex *sync.Mutex
- aciList string
- aciListMutex *sync.Mutex
-}
-
-func NewService(path string, name string, env spec.Env) *Service {
- l := env.GetLog()
-
- hasTimer := false
- if _, err := os.Stat(path + "/" + name + spec.PATH_UNIT_TIMER_TEMPLATE); err == nil {
- hasTimer = true
- }
-
- service := &Service{
- units: map[string]*service.Unit{},
- unitsMutex: &sync.Mutex{},
- aciListMutex: &sync.Mutex{},
- generatedMutex: &sync.Mutex{},
- hasTimer: hasTimer,
- log: *l.WithField("service", name),
- path: path + "/" + name,
- Name: name,
- env: env,
- lockPath: "/ggn-lock/" + name + "/lock",
- }
-
- service.log.Debug("New Service")
-
- service.loadManifest()
- service.loadAttributes()
- service.prepareNodesAsJsonMap()
- return service
-}
-
-func (s *Service) prepareNodesAsJsonMap() {
- tmpRes, err := utils.TransformYamlToJson(s.manifest.Nodes)
- var res []interface{} = tmpRes.([]interface{})
- if err != nil {
- s.log.WithError(err).Fatal("Cannot transform yaml to json")
- }
-
- if res[0].(map[string]interface{})[spec.NODE_HOSTNAME].(string) == "*" {
- if len(res) > 1 {
- s.log.Fatal("You cannot mix all nodes with single node. Yet ?")
- }
-
- newNodes := *new([]interface{})
- machines, err := s.env.ListMachineNames()
- if err != nil {
- s.log.WithError(err).Fatal("Cannot list machines to generate units")
- }
- for _, machine := range machines {
- node := utils.CopyMap(res[0].(map[string]interface{}))
- node[spec.NODE_HOSTNAME] = machine
- newNodes = append(newNodes, node)
- }
- res = newNodes
- }
- s.nodesAsJsonMap = res
-}
-
-func (s *Service) HasTimer() bool {
- return s.hasTimer
-}
-
-func (s *Service) GetAttributes() map[string]interface{} {
- return s.attributes
-}
-
-func (s *Service) GetName() string {
- return s.Name
-}
-
-func (s *Service) GetEnv() spec.Env {
- return s.env
-}
-
-func (s *Service) GetLog() logrus.Entry {
- return s.log
-}
-
-func (s *Service) LoadUnit(name string) *service.Unit {
- s.unitsMutex.Lock()
- defer s.unitsMutex.Unlock()
-
- if val, ok := s.units[name]; ok {
- return val
- }
- var unit *service.Unit
- if strings.HasSuffix(name, spec.TYPE_TIMER.String()) {
- unit = service.NewUnit(s.path+"/units", name[:len(name)-len(spec.TYPE_TIMER.String())], spec.TYPE_TIMER, s)
- }
- unit = service.NewUnit(s.path+"/units", name, spec.TYPE_SERVICE, s)
- s.units[name] = unit
- return unit
-}
-
-func (s *Service) Diff() {
- s.Generate()
- for _, unitName := range s.ListUnits() {
- unit := s.LoadUnit(unitName)
- unit.Diff("service/diff")
- }
-}
-
-func (s *Service) ListUnits() []string {
- res := []string{}
- for _, node := range s.nodesAsJsonMap {
- res = append(res, node.(map[string]interface{})[spec.NODE_HOSTNAME].(string))
- if s.hasTimer {
- res = append(res, node.(map[string]interface{})[spec.NODE_HOSTNAME].(string)+".timer")
- }
- }
- return res
-}
-
-func (s *Service) GetFleetUnitContent(unit string) (string, error) { //TODO this method should be in unit
- stdout, stderr, err := s.env.RunFleetCmdGetOutput("-strict-host-key-checking=false", "cat", unit)
- if err != nil && stderr == "Unit "+unit+" not found" {
- return "", nil
- }
- return stdout, err
-}
-
-func (s *Service) FleetListUnits(command string) {
- stdout, _, err := s.env.RunFleetCmdGetOutput("-strict-host-key-checking=false", "list-units", "--full", "--no-legend")
- if err != nil {
- s.log.WithError(err).Fatal("Failed to list-units")
- }
-
- unitStatuses := strings.Split(stdout, "\n")
- prefix := s.env.GetName() + "_" + s.Name + "_"
- for _, unitStatus := range unitStatuses {
- if strings.HasPrefix(unitStatus, prefix) {
- fmt.Println(unitStatus)
- }
- }
-}
-
-func (s *Service) Unlock(command string) {
- s.log.Info("Unlocking")
- s.runHook(EARLY, command, "unlock")
- defer s.runHook(LATE, command, "unlock")
-
- kapi := s.env.EtcdClient()
- _, err := kapi.Delete(context.Background(), s.lockPath, nil)
- if cerr, ok := err.(*client.ClusterError); ok {
- s.log.WithError(cerr).Panic("Cannot unlock service")
- }
-}
-
-func (s *Service) Lock(command string, ttl time.Duration, message string) {
- userAndHost := "[" + ggn.GetUserAndHost() + "] "
- message = userAndHost + message
-
- s.log.WithField("ttl", ttl).WithField("message", message).Info("locking")
- s.runHook(EARLY, command, "lock")
- defer s.runHook(LATE, command, "lock")
-
- kapi := s.env.EtcdClient()
- resp, err := kapi.Get(context.Background(), s.lockPath, nil)
- if cerr, ok := err.(*client.ClusterError); ok {
- s.log.WithError(cerr).Fatal("Server error reading on fleet")
- } else if err != nil {
- _, err := kapi.Set(context.Background(), s.lockPath, message, &client.SetOptions{TTL: ttl})
- if err != nil {
- s.log.WithError(err).Fatal("Cannot write lock")
- }
- } else if strings.HasPrefix(resp.Node.Value, userAndHost) {
- _, err := kapi.Set(context.Background(), s.lockPath, message, &client.SetOptions{TTL: ttl})
- if err != nil {
- s.log.WithError(err).Fatal("Cannot write lock")
- }
- } else {
- s.log.WithField("message", resp.Node.Value).
- WithField("ttl", resp.Node.TTLDuration().String()).
- Fatal("Service is already locked")
- }
-}
-
-/////////////////////////////////////////////////
-
-type Action int
-
-const (
- ACTION_YES Action = iota
- ACTION_SKIP
- ACTION_DIFF
- ACTION_QUIT
-)
-
-const EARLY = true
-const LATE = false
-
-func (s *Service) runHook(isEarly bool, command string, action string) {
- out, err := json.Marshal(s.attributes)
- if err != nil {
- s.log.WithError(err).Panic("Cannot marshall attributes")
- }
-
- info := spec.HookInfo{
- Service: s,
- Action: "service/" + action,
- Command: command,
- Attributes: string(out),
- }
- if isEarly {
- s.GetEnv().RunEarlyHook(info)
- } else {
- s.GetEnv().RunLateHook(info)
- }
-
-}
-
-func (s *Service) loadAttributes() {
- attr := utils.CopyMap(s.env.GetAttributes())
- files, err := utils.AttributeFiles(s.path + spec.PATH_ATTRIBUTES)
- if err != nil {
- s.log.WithError(err).WithField("path", s.path+spec.PATH_ATTRIBUTES).Panic("Cannot load Attributes files")
- }
- attr = attributes.MergeAttributesFilesForMap(attr, files)
- s.attributes = attr
- s.log.WithField("attributes", s.attributes).Debug("Attributes loaded")
-}
-
-func (s *Service) loadUnitTemplate(filename string) (*utils.Templating, error) {
- path := s.path + filename
- source, err := ioutil.ReadFile(path)
- if err != nil {
- return nil, errors.Annotate(err, "Cannot read unit template file")
- }
- template := utils.NewTemplating(s.Name, string(source))
- return template, template.Parse()
-}
-
-func (s *Service) manifestPath() string {
- return s.path + spec.PATH_SERVICE_MANIFEST
-}
-
-func (s *Service) loadManifest() {
- manifest := spec.ServiceManifest{}
- path := s.manifestPath()
- source, err := ioutil.ReadFile(path)
- if err != nil {
- s.log.WithError(err).WithField("path", path).Warn("Cannot find manifest for service")
- }
- err = yaml.Unmarshal([]byte(source), &manifest)
- if err != nil {
- s.log.WithError(err).Fatal("Cannot Read service manifest")
- }
-
- if manifest.ConcurrentUpdater == 0 {
- manifest.ConcurrentUpdater = 1
- }
-
- s.log.WithField("manifest", manifest).Debug("Manifest loaded")
- s.manifest = manifest
-}
diff --git a/work/env/service/unit-generate.go b/work/env/service/unit-generate.go
deleted file mode 100644
index 276ed05..0000000
--- a/work/env/service/unit-generate.go
+++ /dev/null
@@ -1,82 +0,0 @@
-package service
-
-import (
- "bytes"
- "encoding/json"
- "github.com/blablacar/ggn/utils"
- "github.com/peterbourgon/mergemap"
- "io/ioutil"
- "os"
- "strconv"
- "strings"
-)
-
-func (u *Unit) Generate(tmpl *utils.Templating) {
- u.generatedMutex.Lock()
- defer u.generatedMutex.Unlock()
-
- if u.generated {
- return
- }
-
- u.Log.Debug("Generate")
- data := u.GenerateAttributes()
- data["acis"] = u.Service.PrepareAciList()
-
- out, err := json.Marshal(data)
- if err != nil {
- u.Log.WithError(err).Panic("Cannot marshall attributes")
- }
- res := strings.Replace(string(out), "\\\"", "\\\\\\\"", -1)
- res = strings.Replace(res, "'", "\\'", -1)
- data["attributes"] = res
-
- u.prepareEnvironmentAttributes(data)
-
- var b bytes.Buffer
- err = tmpl.Execute(&b, data)
- if err != nil {
- u.Log.Error("Failed to run templating", err)
- }
- ok, err := utils.Exists(u.path)
- if !ok || err != nil {
- os.Mkdir(u.path, 0755)
- }
- err = ioutil.WriteFile(u.path+"/"+u.Filename, b.Bytes(), 0644)
- if err != nil {
- u.Log.WithError(err).WithField("path", u.path+"/"+u.Filename).Error("Cannot writer unit")
- }
-
- u.generated = true
-}
-
-func (u Unit) GenerateAttributes() map[string]interface{} {
- data := utils.CopyMap(u.Service.GetAttributes())
- data = mergemap.Merge(data, u.Service.NodeAttributes(u.hostname))
- return data
-}
-
-func (u Unit) prepareEnvironmentAttributes(data map[string]interface{}) {
- var envAttr bytes.Buffer
- var envAttrVars bytes.Buffer
- num := 0
- for i, c := range data["attributes"].(string) {
- if i%1950 == 0 {
- if num != 0 {
- envAttr.WriteString("'\n")
- }
- envAttr.WriteString("Environment='ATTR_")
- envAttr.WriteString(strconv.Itoa(num))
- envAttr.WriteString("=")
- envAttrVars.WriteString("${ATTR_")
- envAttrVars.WriteString(strconv.Itoa(num))
- envAttrVars.WriteString("}")
- num++
- }
- envAttr.WriteRune(c)
- }
- envAttr.WriteString("'\n")
-
- data["environmentAttributes"] = envAttr.String()
- data["environmentAttributesVars"] = envAttrVars.String()
-}
diff --git a/work/env_test.go b/work/env_test.go
new file mode 100644
index 0000000..9e78e6f
--- /dev/null
+++ b/work/env_test.go
@@ -0,0 +1,39 @@
+package work
+
+import (
+ "testing"
+
+ "github.com/blablacar/ggn/ggn"
+)
+
+func itemInSlice(a string, s []string) bool {
+ for _, x := range s {
+ if a == x {
+ return true
+ }
+ }
+ return false
+}
+
+func TestAddEnvIncludeFiles(t *testing.T) {
+ ggn.Home.Config.WorkPath = "../examples"
+ env := Env{}
+ files := []string{"../examples/env/prod-dc1/attributes/test.yml"}
+ files, err := env.addIncludeFiles(files)
+ if err != nil {
+ t.Logf("addIncludeFiles returned an error : %v", err)
+ t.Fail()
+ }
+ for _, includeFile := range []string{
+ "../examples/common-attributes/test/includeFile.yml",
+ "../examples/env/prod-dc2/common-attributes/test/includeFile.yml",
+ } {
+ if !itemInSlice(includeFile, files) {
+ t.Logf("File not included : %v", includeFile)
+ for _, f := range files {
+ t.Log(f)
+ }
+ t.Fail()
+ }
+ }
+}
diff --git a/work/env/service-check.go b/work/service-check.go
similarity index 74%
rename from work/env/service-check.go
rename to work/service-check.go
index 0ec47dd..c9110a8 100644
--- a/work/env/service-check.go
+++ b/work/service-check.go
@@ -1,16 +1,22 @@
-package env
+package work
import (
"sync"
+
+ "github.com/n0rad/go-erlog/logs"
)
-func (s *Service) Check() {
- s.log.Debug("Running check")
+func (s *Service) Check() error {
+ if err := s.Generate(); err != nil {
+ return err
+ }
+ logs.WithFields(s.fields).Debug("Running check")
s.runHook(EARLY, "service/check", "check")
defer s.runHook(LATE, "service/check", "check")
s.concurrentChecker(s.ListUnits())
+ return nil
// for _, unitName := range s.ListUnits() {
// s.LoadUnit(unitName).Check("service/check")
// }
diff --git a/work/service-generate.go b/work/service-generate.go
new file mode 100644
index 0000000..b6adddd
--- /dev/null
+++ b/work/service-generate.go
@@ -0,0 +1,259 @@
+package work
+
+import (
+ "io/ioutil"
+ "net/http"
+ "strings"
+
+ "github.com/appc/spec/discovery"
+ "github.com/appc/spec/schema"
+ "github.com/blablacar/dgr/bin-dgr/common"
+ "github.com/blablacar/dgr/bin-templater/template"
+ "github.com/blablacar/ggn/ggn"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/n0rad/go-erlog/logs"
+)
+
+func (s *Service) Generate() error {
+ s.generatedMutex.Lock()
+ defer s.generatedMutex.Unlock()
+
+ if s.generated {
+ return nil
+ }
+
+ if err := s.LoadManifestAttributes(BuildFlags.ManifestAttributes); err != nil {
+ logs.WithE(err).Fatal("Loading manifest attributes failed")
+ }
+
+ logs.WithFields(s.fields).Debug("Templating service manifest")
+ err := s.reloadService()
+ if err != nil {
+ return errs.WithEF(err, s.fields, "Cannot render service template")
+ }
+
+ logs.WithFields(s.fields).Debug("Generating units")
+
+ serviceTmpl, err := s.loadUnitTemplate(PATH_UNIT_SERVICE_TEMPLATE)
+ if err != nil {
+ return errs.WithEF(err, s.fields, "Cannot load service template")
+ }
+
+ var timerTmpl *template.Templating
+ if s.hasTimer {
+ timerTmpl, err = s.loadUnitTemplate(PATH_UNIT_TIMER_TEMPLATE)
+ if err != nil {
+ logs.WithEF(err, s.fields).Fatal("Cannot load timer template")
+ }
+ }
+
+ if len(s.manifest.GgnMinimalVersion) > 0 {
+ var currentVersion = common.Version(ggn.GgnVersion)
+ logs.WithField("version", s.manifest.GgnMinimalVersion).Debug("Found ggn minimal version")
+ if s.manifest.GgnMinimalVersion.GreaterThan(currentVersion) {
+ logs.WithFields(s.fields).
+ WithField("minimalversion", s.manifest.GgnMinimalVersion).
+ WithField("version", currentVersion).
+ Fatal("You don't use the minimal required version of ggn for this service")
+ }
+ }
+ if len(s.nodesAsJsonMap) == 0 {
+ logs.WithFields(s.fields).Fatal("No node to process in manifest")
+ return nil
+ }
+
+ for _, unitName := range s.ListUnits() {
+ unit := s.LoadUnit(unitName)
+ if unit.GetType() == TYPE_SERVICE {
+ if err := unit.Generate(serviceTmpl); err != nil {
+ return err
+ }
+ } else if unit.GetType() == TYPE_TIMER {
+ if err := unit.Generate(timerTmpl); err != nil {
+ return err
+ }
+ } else {
+ logs.WithFields(s.fields).WithField("type", unit.GetType()).Fatal("Unknown unit type")
+ }
+ }
+ s.generated = true
+ return nil
+}
+
+func (s Service) NodeAttributes(hostname string) map[string]interface{} {
+ for _, node := range s.nodesAsJsonMap {
+ host := node.(map[string]interface{})[NODE_HOSTNAME].(string)
+ if host == hostname {
+ return node.(map[string]interface{})
+ }
+ }
+ logs.WithFields(s.fields).WithField("hostname", hostname).Fatal("Cannot find host in service list")
+ return nil
+}
+
+func (s Service) podManifestToMap(result map[string][]common.ACFullname, contents []byte) error {
+ pod := schema.BlankPodManifest()
+ err := pod.UnmarshalJSON(contents)
+ if err != nil {
+ return err
+ }
+
+ var podname string
+ var acis []common.ACFullname
+ for i, podAci := range pod.Apps {
+ version, _ := podAci.Image.Labels.Get("version")
+ fullname := common.NewACFullName(podAci.Image.Name.String() + ":" + version)
+ if i == 0 {
+ nameSplit := strings.SplitN(fullname.ShortName(), "_", 2)
+ podname = fullname.DomainName() + "/" + nameSplit[0]
+ }
+
+ // resolved, err := fullname.FullyResolved() // TODO should not be resolved for local test ??
+ // if err != nil {
+ // logs.WithEF(err, s.fields).Fatal("Cannot fully resolve ACI")
+ // }
+ acis = append(acis, *fullname)
+ }
+
+ result[podname] = acis
+ return nil
+}
+
+func (s Service) aciManifestToMap(result map[string][]common.ACFullname, contents []byte) error {
+ aci := schema.BlankImageManifest()
+ err := aci.UnmarshalJSON(contents)
+ if err != nil {
+ return err
+ }
+
+ version, _ := aci.Labels.Get("version")
+ fullname := common.NewACFullName(aci.Name.String() + ":" + version)
+ result[fullname.Name()] = []common.ACFullname{*fullname}
+ return nil
+}
+
+func (s Service) sources(sources []string) map[string][]common.ACFullname {
+ res := make(map[string][]common.ACFullname)
+ for _, source := range sources {
+ content, err := ioutil.ReadFile(source)
+ if err != nil {
+ logs.WithEF(err, s.fields).Warn("Cannot read source file")
+ continue
+ }
+ if err := s.aciManifestToMap(res, content); err != nil {
+ if err2 := s.podManifestToMap(res, content); err2 != nil {
+ logs.WithEF(err, s.fields).WithField("error2", err2).Error("Cannot read manifest file as aci nor pod")
+ }
+ }
+ }
+ return res
+}
+
+func (s Service) discoverPod(name common.ACFullname) ([]common.ACFullname, error) {
+ podFields := s.fields.WithField("pod", name)
+
+ app, err := discovery.NewAppFromString(name.String())
+ if app.Labels["os"] == "" {
+ app.Labels["os"] = "linux"
+ }
+ if app.Labels["arch"] == "" {
+ app.Labels["arch"] = "amd64"
+ }
+
+ insecure := discovery.InsecureTLS | discovery.InsecureHTTP
+ endpoint, _, err := discovery.DiscoverACIEndpoints(*app, nil, insecure)
+ if err != nil {
+ logs.WithEF(err, podFields).Fatal("pod discovery failed")
+ }
+
+ if len(endpoint) == 0 {
+ logs.WithF(podFields).Fatal("Discovery does not contain a url")
+ }
+ url := endpoint[0].ACI
+ url = strings.Replace(url, "=aci", "=pod", 1) // TODO this is nexus specific
+
+ logUrl := podFields.WithField("url", url)
+ response, err := http.Get(url)
+ if err != nil {
+ return nil, errs.WithEF(err, logUrl, "Cannot get pod manifest content")
+ } else {
+ if response.StatusCode != 200 {
+ return nil, errs.WithF(logUrl.WithField("status_code", response.StatusCode).
+ WithField("status_message", response.Status), "Receive response error for discovery")
+ }
+ defer response.Body.Close()
+ content, err := ioutil.ReadAll(response.Body)
+ if err != nil {
+ logs.WithEF(err, logUrl).Fatal("Cannot read pod manifest content")
+ }
+ tmpMap := make(map[string][]common.ACFullname, 1)
+ if err := s.podManifestToMap(tmpMap, content); err != nil {
+ logs.WithEF(err, logUrl).Fatal("Cannot read pod content")
+ }
+ acis := tmpMap[name.Name()]
+ if acis == nil {
+ logs.WithFields(logUrl).Fatal("Discovered pod name does not match requested")
+ }
+ return acis, nil
+ }
+}
+
+func (s *Service) PrepareAcis() ([]string, error) {
+
+ if len(s.manifest.Containers) == 0 {
+ return []string{}, nil
+ }
+
+ s.aciListMutex.Lock()
+ defer s.aciListMutex.Unlock()
+
+ if len(s.aciList) > 0 {
+ return s.aciList, nil
+ }
+
+ override := s.sources(BuildFlags.GenerateManifests)
+ logs.WithFields(s.fields).WithField("data", override).Debug("Local resolved sources")
+
+ var acis []string
+ for _, aci := range s.manifest.Containers {
+ containerLog := s.fields.WithField("container", aci.String())
+ logs.WithFields(containerLog).Debug("Processing container")
+ if strings.HasPrefix(aci.ShortName(), "pod-") && !strings.Contains(aci.ShortName(), "_") { // TODO this is CNT specific
+ var podAcis []common.ACFullname
+ if override[aci.Name()] != nil {
+ logs.WithFields(containerLog).Debug("Using local source to resolve")
+ podAcis = override[aci.Name()]
+ } else {
+ logs.WithFields(containerLog).Debug("Using remote source to resolve")
+ pAcis, err := s.discoverPod(aci)
+ if err != nil {
+ return []string{}, err
+ }
+ podAcis = pAcis
+ }
+ for _, aci := range podAcis {
+ acis = append(acis, aci.String())
+ }
+ } else {
+ var taci common.ACFullname
+ if override[aci.Name()] != nil {
+ logs.WithFields(containerLog).Debug("Using local source to resolve")
+ taci = override[aci.Name()][0]
+ } else {
+ logs.WithFields(containerLog).Debug("Using remote source to resolve")
+ aciTmp, err := aci.FullyResolved()
+ taci = *aciTmp
+ if err != nil {
+ logs.WithEF(err, containerLog).Fatal("Cannot resolve aci")
+ return []string{}, nil
+ }
+ }
+ acis = append(acis, taci.String())
+ }
+ }
+ if len(acis) == 0 {
+ logs.WithFields(s.fields).Error("Cannot resolve aci")
+ }
+ s.aciList = acis
+ return acis, nil
+}
diff --git a/work/env/service-update.go b/work/service-update.go
similarity index 65%
rename from work/env/service-update.go
rename to work/service-update.go
index 2ed08c3..5c21d3e 100644
--- a/work/env/service-update.go
+++ b/work/service-update.go
@@ -1,50 +1,56 @@
-package env
+package work
import (
"bufio"
"fmt"
- "github.com/blablacar/ggn/builder"
- "github.com/blablacar/ggn/work/env/service"
- "github.com/mgutz/ansi"
"os"
"strings"
"sync"
"sync/atomic"
"time"
+
+ "github.com/mgutz/ansi"
+ "github.com/n0rad/go-erlog/logs"
)
func (s *Service) Update() error {
- s.log.Info("Updating service")
- s.Generate()
+ if err := s.Generate(); err != nil {
+ return err
+ }
+ logs.WithFields(s.fields).Info("Updating service")
s.Lock("service/update", 1*time.Hour, "Updating")
defer s.Unlock("service/update")
- if s.manifest.ConcurrentUpdater > 1 && !builder.BuildFlags.Yes {
- s.log.Fatal("Update concurrently require -y")
+ if s.manifest.ConcurrentUpdater > 1 && !BuildFlags.Yes {
+ logs.WithFields(s.fields).Fatal("Update concurrently require -y")
}
s.concurrentUpdater(s.ListUnits())
return nil
}
-func (s *Service) updateUnit(u service.Unit) {
+func (s *Service) updateUnit(u Unit) {
+ uField := s.fields.WithField("unit", u.Name)
ask:
for {
same, err := u.IsLocalContentSameAsRemote()
if err != nil {
- u.Log.WithError(err).Warn("Cannot compare local and remote service")
+ logs.WithEF(err, uField).Warn("Cannot compare local and remote service")
}
if same {
- u.Log.Info("Remote service is already up to date")
+ logs.WithFields(uField).Info("Remote service is already up to date")
if !u.IsRunning() {
- u.Log.Info("But service is not running")
- } else if !builder.BuildFlags.All {
+ logs.WithFields(uField).Warn("But service is not running")
+ } else if !u.IsAvailable("service/update") {
+ logs.WithFields(uField).Warn("But service is not available")
+ } else if !BuildFlags.All {
return
}
+
}
- if builder.BuildFlags.Yes {
+ if BuildFlags.Yes {
break ask
}
action := askToProcessService(u)
@@ -52,18 +58,18 @@ ask:
case ACTION_DIFF:
u.DisplayDiff()
case ACTION_QUIT:
- u.Log.Debug("User want to quit")
+ logs.WithFields(uField).Debug("User want to quit")
if globalUpdater == 0 {
s.Unlock("service/update")
}
os.Exit(1)
case ACTION_SKIP:
- u.Log.Debug("User skip this service")
+ logs.WithFields(uField).Debug("User skip this service")
return
case ACTION_YES:
break ask
default:
- u.Log.Fatal("Should not be here")
+ logs.WithFields(uField).Fatal("Should not be here")
}
}
@@ -75,7 +81,7 @@ ask:
atomic.AddUint32(&globalUpdater, 1)
}
- u.Log.Info("Updating unit")
+ logs.WithFields(uField).Info("Updating unit")
u.UpdateInside("service/update")
time.Sleep(time.Second * 2)
@@ -85,7 +91,7 @@ var globalUpdater uint32 = 0
func (s *Service) concurrentUpdater(units []string) {
wg := &sync.WaitGroup{}
- updateChan := make(chan service.Unit)
+ updateChan := make(chan Unit)
for i := 0; i < s.manifest.ConcurrentUpdater; i++ {
wg.Add(1)
go func() {
@@ -105,7 +111,7 @@ func (s *Service) concurrentUpdater(units []string) {
}
//////////////////////////////////////////////////////////
-func askToProcessService(unit service.Unit) Action {
+func askToProcessService(unit Unit) Action {
reader := bufio.NewReader(os.Stdin)
for {
fmt.Print("Update unit " + ansi.LightGreen + unit.Name + ansi.Reset + " ? : (yes,skip,diff,quit) ")
diff --git a/work/service.go b/work/service.go
new file mode 100644
index 0000000..080c713
--- /dev/null
+++ b/work/service.go
@@ -0,0 +1,398 @@
+package work
+
+import (
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "strings"
+ "sync"
+ "time"
+
+ "context"
+
+ "github.com/blablacar/dgr/bin-templater/template"
+ "github.com/blablacar/ggn/ggn"
+ "github.com/blablacar/ggn/utils"
+ "github.com/coreos/etcd/client"
+ "github.com/juju/errors"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/errs"
+ "github.com/n0rad/go-erlog/logs"
+ "github.com/peterbourgon/mergemap"
+ "gopkg.in/yaml.v2"
+)
+
+type Service struct {
+ fields data.Fields
+ env Env
+ path string
+ Name string
+ hasTimer bool
+ manifest ServiceManifest
+ nodesAsJsonMap []interface{}
+ lockPath string
+ attributes map[string]interface{}
+ generated bool
+ generatedMutex *sync.Mutex
+ units map[string]*Unit
+ unitsMutex *sync.Mutex
+ aciList []string
+ aciListMutex *sync.Mutex
+ manifestAttributes map[string]interface{}
+}
+
+func NewService(path string, name string, env Env) *Service {
+ l := env.GetFields()
+
+ hasTimer := false
+ if _, err := os.Stat(path + "/" + name + PATH_UNIT_TIMER_TEMPLATE); err == nil {
+ hasTimer = true
+ }
+
+ service := &Service{
+ units: map[string]*Unit{},
+ unitsMutex: &sync.Mutex{},
+ aciListMutex: &sync.Mutex{},
+ generatedMutex: &sync.Mutex{},
+ hasTimer: hasTimer,
+ fields: l.WithField("service", name),
+ path: path + "/" + name,
+ Name: name,
+ env: env,
+ lockPath: "/ggn-lock/" + name + "/lock",
+ }
+
+ logs.WithFields(service.fields).Debug("New service")
+
+ service.loadManifest(false)
+ service.loadAttributes()
+ service.prepareNodesAsJsonMap()
+ return service
+}
+
+func (s *Service) reloadService() error {
+ if err := s.loadManifest(true); err != nil {
+ return err
+ }
+ s.loadAttributes()
+ s.prepareNodesAsJsonMap()
+ return nil
+}
+
+func (s *Service) prepareNodesAsJsonMap() {
+ if s.manifest.Nodes == nil || len(s.manifest.Nodes.([]interface{})) == 0 {
+ logs.WithFields(s.fields).Warn("No nodes defined in service")
+ return
+ }
+ tmpRes, err := utils.TransformYamlToJson(s.manifest.Nodes)
+ var res []interface{} = tmpRes.([]interface{})
+ if err != nil {
+ logs.WithEF(err, s.fields).Fatal("Cannot transformYampToJson yaml to json")
+ }
+
+ if res[0].(map[string]interface{})[NODE_HOSTNAME].(string) == "*" {
+ if len(res) > 1 {
+ logs.WithFields(s.fields).Fatal("You cannot mix all nodes with single node. Yet ?")
+ }
+
+ newNodes := *new([]interface{})
+ machines, err := s.env.ListMachineNames()
+ if err != nil {
+ logs.WithEF(err, s.fields).Fatal("Cannot list machines to generate units")
+ }
+ for _, machine := range machines {
+ node := utils.CopyMap(res[0].(map[string]interface{}))
+ node[NODE_HOSTNAME] = machine
+ newNodes = append(newNodes, node)
+ }
+ res = newNodes
+ }
+ s.nodesAsJsonMap = res
+}
+
+func (s *Service) HasTimer() bool {
+ return s.hasTimer
+}
+
+func (s *Service) GetAttributes() map[string]interface{} {
+ return s.attributes
+}
+
+func (s *Service) GetName() string {
+ return s.Name
+}
+
+func (s *Service) GetEnv() Env {
+ return s.env
+}
+
+func (s *Service) GetFields() data.Fields {
+ return s.fields
+}
+
+func (s *Service) LoadUnit(name string) *Unit {
+ s.unitsMutex.Lock()
+ defer s.unitsMutex.Unlock()
+
+ if val, ok := s.units[name]; ok {
+ return val
+ }
+ var unit *Unit
+ if strings.HasSuffix(name, TYPE_TIMER.String()) {
+ unit = NewUnit(s.path+"/units", name[:len(name)-len(TYPE_TIMER.String())], TYPE_TIMER, s)
+ } else {
+ unit = NewUnit(s.path+"/units", name, TYPE_SERVICE, s)
+ }
+ s.units[name] = unit
+ return unit
+}
+
+func (s *Service) Diff() {
+ if err := s.Generate(); err != nil {
+ logs.WithEF(err, s.fields).Fatal("Generate failed")
+ }
+ for _, unitName := range s.ListUnits() {
+ unit := s.LoadUnit(unitName)
+ unit.Diff("service/diff")
+ }
+}
+
+func (s *Service) ListUnits() []string {
+ res := []string{}
+ for _, node := range s.nodesAsJsonMap {
+ res = append(res, node.(map[string]interface{})[NODE_HOSTNAME].(string))
+ if s.hasTimer {
+ res = append(res, node.(map[string]interface{})[NODE_HOSTNAME].(string)+".timer")
+ }
+ }
+ return res
+}
+
+func (s *Service) GetFleetUnitContent(unit string) (string, error) { //TODO this method should be in unit
+ stdout, stderr, err := s.env.RunFleetCmdGetOutput("cat", unit)
+ if err != nil && stderr == "Unit "+unit+" not found" {
+ return "", nil
+ }
+ return stdout, err
+}
+
+func (s *Service) FleetListUnits(command string) {
+ stdout, _, err := s.env.RunFleetCmdGetOutput("list-units", "--full", "--no-legend")
+ if err != nil {
+ logs.WithEF(err, s.fields).Fatal("Failed to list-units")
+ }
+
+ unitStatuses := strings.Split(stdout, "\n")
+ prefix := s.env.GetEnvName() + "_" + s.Name + "_"
+ for _, unitStatus := range unitStatuses {
+ if strings.HasPrefix(unitStatus, prefix) {
+ fmt.Println(unitStatus)
+ }
+ }
+}
+
+func (s *Service) Unlock(command string) {
+ logs.WithFields(s.fields).Info("Unlocking")
+ s.runHook(EARLY, command, "unlock")
+ defer s.runHook(LATE, command, "unlock")
+
+ kapi := s.env.EtcdClient()
+ _, err := kapi.Delete(context.Background(), s.lockPath, nil)
+ if cerr, ok := err.(*client.ClusterError); ok {
+ logs.WithEF(cerr, s.fields).Fatal("Cannot unlock service")
+ }
+}
+
+func (s *Service) Lock(command string, ttl time.Duration, message string) {
+ userAndHost := "[" + ggn.GetUserAndHost() + "] "
+ message = userAndHost + message
+
+ logs.WithFields(s.fields).WithField("ttl", ttl).WithField("message", message).Info("Locking")
+ s.runHook(EARLY, command, "lock")
+ defer s.runHook(LATE, command, "lock")
+
+ kapi := s.env.EtcdClient()
+ resp, err := kapi.Get(context.Background(), s.lockPath, nil)
+ if cerr, ok := err.(*client.ClusterError); ok {
+ logs.WithEF(cerr, s.fields).Fatal("Server error reading on fleet")
+ } else if err != nil {
+ _, err := kapi.Set(context.Background(), s.lockPath, message, &client.SetOptions{TTL: ttl})
+ if err != nil {
+ logs.WithEF(cerr, s.fields).Fatal("Cannot write lock")
+ }
+ } else if strings.HasPrefix(resp.Node.Value, userAndHost) {
+ _, err := kapi.Set(context.Background(), s.lockPath, message, &client.SetOptions{TTL: ttl})
+ if err != nil {
+ logs.WithEF(cerr, s.fields).Fatal("Cannot write lock")
+ }
+ } else {
+ logs.WithFields(s.fields).WithField("message", resp.Node.Value).
+ WithField("ttl", resp.Node.TTLDuration().String()).
+ Fatal("Service is already locked")
+ }
+}
+
+/////////////////////////////////////////////////
+
+func (s *Service) runHook(isEarly bool, command string, action string) {
+ out, err := json.Marshal(s.attributes)
+ if err != nil {
+ logs.WithEF(err, s.fields).Fatal("Cannot marshall attributes")
+ }
+
+ info := HookInfo{
+ Service: s,
+ Action: "service/" + action,
+ Command: command,
+ Attributes: string(out),
+ }
+ if isEarly {
+ s.GetEnv().RunEarlyHookFatal(info)
+ } else {
+ s.GetEnv().RunLateHookFatal(info)
+ }
+
+}
+
+func (s *Service) loadAttributes() {
+ attr := utils.CopyMap(s.env.GetAttributes())
+ files, err := utils.AttributeFiles(s.path + PATH_ATTRIBUTES)
+ if err != nil {
+ logs.WithEF(err, s.fields).WithField("path", s.path+PATH_ATTRIBUTES).Fatal("Cannot load Attributes files")
+ }
+ files, err = s.addIncludeFiles(files)
+ if err != nil {
+ logs.WithEF(err, s.fields).WithField("path", s.path+PATH_ATTRIBUTES).Fatal("Cannot load include files")
+ }
+ attr, err = utils.MergeAttributesFilesForMap(attr, files)
+ if err != nil {
+ logs.WithEF(err, s.fields).WithField("path", s.path+PATH_ATTRIBUTES).Fatal("Failed to merge attributes")
+ }
+ s.attributes = attr
+ logs.WithFields(s.fields).WithField("attributes", s.attributes).Debug("Attributes loaded")
+}
+
+func (s *Service) addIncludeFiles(files []string) ([]string, error) {
+ type includeFiles struct {
+ Include []string
+ }
+ for _, file := range files {
+ var f includeFiles
+ yml, err := ioutil.ReadFile(file)
+ if err != nil {
+ return nil, err
+ }
+ err = yaml.Unmarshal(yml, &f)
+ for _, inclusion := range f.Include {
+ sepCount := strings.Count(inclusion, ":")
+ if sepCount == 2 {
+ fields := strings.Split(inclusion, ":")
+ includeFile := strings.Replace(fields[2], ".", "/", -1) + ".yml"
+ if fields[1] == "" { // env::some.include
+ includeFile = fmt.Sprintf("%v%v/%v",
+ s.env.path,
+ PATH_COMMON_ATTRIBUTES,
+ includeFile,
+ )
+ files = append(files, includeFile)
+ } else { // env:prod-dc1:some.include
+ includeFile = fmt.Sprintf("%v%v/%v%v/%v",
+ ggn.Home.Config.WorkPath,
+ PATH_ENV,
+ fields[1],
+ PATH_COMMON_ATTRIBUTES,
+ includeFile,
+ )
+ files = append(files, includeFile)
+ }
+
+ } else { // some.global.include
+ includeFile := strings.Replace(inclusion, ".", "/", -1) + ".yml"
+ includeFile = fmt.Sprintf("%v%v/%v", ggn.Home.Config.WorkPath, PATH_COMMON_ATTRIBUTES, includeFile)
+ files = append(files, includeFile)
+
+ }
+ }
+ }
+ return files, nil
+}
+
+func (s *Service) loadUnitTemplate(filename string) (*template.Templating, error) {
+ path := s.path + filename
+ source, err := ioutil.ReadFile(path)
+ if err != nil {
+ return nil, errors.Annotate(err, "Cannot read unit template file")
+ }
+ template, err := template.NewTemplating(s.GetEnv().Partials, path, string(source))
+ if err != nil {
+ return nil, errs.WithEF(err, s.fields, "Failed to load unit template")
+ }
+ return template, nil
+}
+
+func (s *Service) renderManifest() ([]byte, error) {
+ path := s.path + PATH_SERVICE_MANIFEST
+ fstat, err := os.Stat(path)
+ if err != nil {
+ return nil, err
+ }
+ t, err := template.NewTemplateFile(nil, path, fstat.Mode())
+ if err != nil {
+ return nil, err
+ }
+
+ manifest, err := ioutil.TempFile(os.TempDir(), "prefix")
+ defer os.Remove(manifest.Name())
+
+ err = t.RunTemplate(manifest.Name(), mergemap.Merge(s.manifestAttributes, s.attributes), true)
+ if err != nil {
+ return nil, err
+ }
+ return ioutil.ReadFile(manifest.Name())
+}
+
+func (s *Service) readManifest(renderManifest bool) ([]byte, error) {
+ var err error
+ var manifest []byte
+
+ manifestPath := s.path + PATH_SERVICE_MANIFEST
+
+ if renderManifest {
+ manifest, err = s.renderManifest()
+ } else {
+ manifest, err = ioutil.ReadFile(manifestPath)
+ }
+
+ return manifest, err
+}
+
+func (s *Service) loadManifest(renderManifest bool) error {
+ manifest := ServiceManifest{}
+
+ source, err := s.readManifest(renderManifest)
+ if err != nil {
+ return errs.WithEF(err, s.fields, "Cannot find manifest for service")
+ }
+
+ err = yaml.Unmarshal([]byte(source), &manifest)
+ if err != nil {
+ return errs.WithEF(err, s.fields, "Cannot Read service manifest")
+ }
+
+ if manifest.ConcurrentUpdater == 0 {
+ manifest.ConcurrentUpdater = 1
+ }
+
+ logs.WithFields(s.fields).WithField("manifest", manifest).Debug("Manifest loaded")
+ s.manifest = manifest
+ return nil
+}
+
+func (s *Service) LoadManifestAttributes(attr string) error {
+ s.manifestAttributes = make(map[string]interface{})
+ if err := json.Unmarshal([]byte(attr), &s.manifestAttributes); err != nil {
+ return err
+ }
+ return nil
+}
diff --git a/work/service_test.go b/work/service_test.go
new file mode 100644
index 0000000..ae7e870
--- /dev/null
+++ b/work/service_test.go
@@ -0,0 +1,85 @@
+package work
+
+import (
+ "os"
+ "regexp"
+ "testing"
+)
+
+func TestAddServiceIncludeFiles(t *testing.T) {
+ service := Service{}
+ service.env.path = "../examples/env/prod-dc1"
+ files := []string{"../examples/env/prod-dc1/services/test-service/attributes/test.yml"}
+ files, err := service.addIncludeFiles(files)
+ if err != nil {
+ t.Logf("addIncludeFiles returned an error : %v", err)
+ t.Fail()
+ }
+ for _, includeFile := range []string{
+ "../examples/common-attributes/test/includeFile.yml",
+ "../examples/env/prod-dc2/common-attributes/test/includeFile.yml",
+ "../examples/env/prod-dc1/common-attributes/test/includeFile.yml",
+ } {
+ if !itemInSlice(includeFile, files) {
+ t.Logf("File not included : %v", includeFile)
+ for _, f := range files {
+ t.Log(f)
+ }
+ t.Fail()
+ }
+ }
+}
+
+func TestRenderManifest(t *testing.T) {
+ attr := make(map[string]interface{})
+ attr["version"] = 123
+ service := Service{
+ path: "./testdata/cassandra-tmpl",
+ manifestAttributes: attr,
+ }
+
+ template, err := service.renderManifest()
+ if err != nil {
+ t.Fatalf("Unexpected error : %q", err)
+ }
+
+ foundVersion, _ := regexp.Match("pod-cassandra:123", template)
+ if !foundVersion {
+ t.Errorf("Unexpected template rendering : %q", template)
+ }
+}
+
+func TestReadManifest(t *testing.T) {
+ attr := make(map[string]interface{})
+ attr["version"] = 123
+ service := Service{
+ path: "./testdata/cassandra-tmpl",
+ manifestAttributes: attr,
+ }
+
+ nowhere := Service{path: "/nowhere"}
+ _, err := nowhere.readManifest(false)
+ if !os.IsNotExist(err) {
+ t.Errorf("Unexpected error on non-existant manifest : %q", err)
+ }
+
+ manifest, _ := service.readManifest(false)
+ foundTag, _ := regexp.Match("pod-cassandra:{{.version}}", manifest)
+ if !foundTag {
+ t.Errorf("Unexpected manifest content : %q", manifest)
+ }
+}
+
+func TestReloadService(t *testing.T) {
+ attr := make(map[string]interface{})
+ attr["version"] = 123
+ service := Service{
+ path: "./testdata/cassandra-tmpl",
+ manifestAttributes: attr,
+ }
+ service.reloadService()
+ if service.manifest.Containers[0] != "aci.blbl.cr/pod-cassandra:123" {
+ t.Errorf("Unexpected manifest content : %q", service.manifest.Containers[0])
+ }
+
+}
diff --git a/work/spec.go b/work/spec.go
new file mode 100644
index 0000000..2e3dd29
--- /dev/null
+++ b/work/spec.go
@@ -0,0 +1,69 @@
+package work
+
+import (
+ "github.com/blablacar/dgr/bin-dgr/common"
+)
+
+const PATH_ATTRIBUTES = "/attributes"
+const PATH_TEMPLATES = "/templates"
+const PATH_COMMON_ATTRIBUTES = "/common-attributes"
+
+const ACTIVE_ACTIVE = "active"
+const SUB_RUNNING = "running"
+const PATH_SERVICE_MANIFEST = "/service-manifest.yml"
+const NODE_HOSTNAME = "hostname"
+const PATH_UNIT_SERVICE_TEMPLATE = "/unit.tmpl"
+const PATH_UNIT_TIMER_TEMPLATE = "/unit.timer.tmpl"
+const EARLY = true
+const LATE = false
+
+type Action int
+
+const (
+ ACTION_YES Action = iota
+ ACTION_SKIP
+ ACTION_DIFF
+ ACTION_QUIT
+)
+
+type UnitStatus struct {
+ Unit string
+ Machine string
+ Active string
+ Sub string
+}
+
+type HookInfo struct {
+ Command string
+ Service *Service
+ Unit *Unit
+ Action string
+ Attributes string
+}
+
+type ServiceManifest struct {
+ ExposeNodesInUnitEnv bool `yaml:"exposeNodesInUnitEnv"`
+ GgnMinimalVersion common.Version `yaml:"ggnMinimalVersion"`
+ ConcurrentUpdater int `yaml:"concurrentUpdater"`
+ Containers []common.ACFullname `yaml:"containers"`
+ ExecStartPre []string `yaml:"execStartPre"`
+ ExecStart []string `yaml:"execStart"`
+ Nodes interface{} `yaml:"nodes"`
+}
+
+type UnitType int
+
+const (
+ TYPE_SERVICE UnitType = iota
+ TYPE_TIMER
+)
+
+func (u UnitType) String() string {
+ switch u {
+ case TYPE_SERVICE:
+ return ".service"
+ case TYPE_TIMER:
+ return ".timer"
+ }
+ return ""
+}
diff --git a/work/testdata/cassandra-tmpl/service-manifest.yml b/work/testdata/cassandra-tmpl/service-manifest.yml
new file mode 100644
index 0000000..8366862
--- /dev/null
+++ b/work/testdata/cassandra-tmpl/service-manifest.yml
@@ -0,0 +1,5 @@
+containers:
+ - aci.blbl.cr/pod-cassandra:{{.version}}
+
+nodes:
+ - hostname: cassandra1
diff --git a/work/env/service/unit-command.go b/work/unit-command.go
similarity index 62%
rename from work/env/service/unit-command.go
rename to work/unit-command.go
index aef4ae4..6dcc51d 100644
--- a/work/env/service/unit-command.go
+++ b/work/unit-command.go
@@ -1,25 +1,27 @@
-package service
+package work
import (
- "github.com/Sirupsen/logrus"
- "github.com/blablacar/ggn/builder"
- "github.com/blablacar/ggn/spec"
"os"
"strconv"
"time"
+
+ "github.com/n0rad/go-erlog/logs"
)
func (u *Unit) Start(command string) error {
if u.IsRunning() {
- u.Log.Info("Service is already running")
+ logs.WithFields(u.Fields).Info("Service is already running")
return nil
}
if !u.IsLoaded() {
- u.Log.Debug("unit is not loaded yet")
- u.Service.Generate()
+ logs.WithFields(u.Fields).Debug("unit is not loaded yet")
+ if err := u.Service.Generate(); err != nil {
+ logs.WithEF(err, u.Fields).Fatal("Generate failed")
+ return err
+ }
u.Load(command)
} else {
- u.Log.Debug("unit is already loaded")
+ logs.WithFields(u.Fields).Debug("unit is already loaded")
}
return u.runAction(command, "start")
}
@@ -29,7 +31,9 @@ func (u *Unit) Unload(command string) error {
}
func (u *Unit) Load(command string) error {
- u.Service.Generate()
+ if err := u.Service.Generate(); err != nil {
+ logs.WithEF(err, u.Fields).Fatal("Generate failed")
+ }
return u.runAction(command, "load")
}
@@ -42,9 +46,9 @@ func (u *Unit) Destroy(command string) error {
}
func (u *Unit) Restart(command string) error {
- u.Log.Debug("restart")
- if u.Type == spec.TYPE_SERVICE && u.Service.HasTimer() {
- u.Log.Fatal("You cannot restart a service associated to a time")
+ logs.WithFields(u.Fields).Debug("restart")
+ if u.Type == TYPE_SERVICE && u.Service.HasTimer() {
+ logs.WithFields(u.Fields).Fatal("You cannot restart a service associated to a time")
}
u.runHook(EARLY, command, "restart")
@@ -61,8 +65,10 @@ func (u *Unit) Restart(command string) error {
}
func (u *Unit) Update(command string) error {
- u.Service.Generate()
- u.Log.Debug("Update")
+ if err := u.Service.Generate(); err != nil {
+ logs.WithEF(err, u.Fields).Fatal("Generate failed")
+ }
+ logs.WithFields(u.Fields).Debug("Update")
u.runHook(EARLY, command, "update")
defer u.runHook(LATE, command, "update")
@@ -71,13 +77,13 @@ func (u *Unit) Update(command string) error {
same, err := u.IsLocalContentSameAsRemote()
if err != nil {
- u.Log.WithError(err).Warn("Cannot compare local and remote service")
+ logs.WithEF(err, u.Fields).Warn("Cannot compare local and remote service")
}
if same {
- u.Log.Info("Remote service is already up to date")
+ logs.WithFields(u.Fields).Info("Remote service is already up to date")
if !u.IsRunning() {
- u.Log.Info("But service is not running")
- } else if !builder.BuildFlags.Force {
+ logs.WithFields(u.Fields).Info("But service is not running")
+ } else if !BuildFlags.Force {
return nil
}
}
@@ -88,7 +94,7 @@ func (u *Unit) Update(command string) error {
}
func (u *Unit) Journal(command string, follow bool, lines int) {
- u.Log.Debug("journal")
+ logs.WithFields(u.Fields).Debug("journal")
u.runHook(EARLY, command, "journal")
defer u.runHook(LATE, command, "journal")
@@ -101,30 +107,32 @@ func (u *Unit) Journal(command string, follow bool, lines int) {
err := u.Service.GetEnv().RunFleetCmd(args...)
if err != nil && !follow {
- logrus.WithError(err).Fatal("Failed to run journal")
+ logs.WithEF(err, u.Fields).Fatal("Failed to run journal")
}
}
func (u *Unit) Ssh(command string) {
- u.Log.Debug("ssh")
+ logs.WithFields(u.Fields).Debug("ssh")
u.runHook(EARLY, command, "ssh")
defer u.runHook(LATE, command, "ssh")
err := u.Service.GetEnv().RunFleetCmd("ssh", u.Filename)
if err != nil {
- logrus.WithError(err).Fatal("Failed to run status")
+ logs.WithEF(err, u.Fields).Fatal("Failed to run status")
}
}
func (u *Unit) Diff(command string) {
- u.Log.Debug("diff")
- u.Service.Generate()
+ logs.WithFields(u.Fields).Debug("diff")
+ if err := u.Service.Generate(); err != nil {
+ logs.WithEF(err, u.Fields).Fatal("Generate failed")
+ }
u.runHook(EARLY, command, "diff")
defer u.runHook(LATE, command, "diff")
same, err := u.IsLocalContentSameAsRemote()
if err != nil {
- u.Log.Warn("Cannot read unit")
+ logs.WithFields(u.Fields).Warn("Cannot read unit")
}
if !same {
u.DisplayDiff()
@@ -132,7 +140,7 @@ func (u *Unit) Diff(command string) {
}
func (u *Unit) Status(command string) {
- u.Log.Debug("status")
+ logs.WithFields(u.Fields).Debug("status")
u.runHook(EARLY, command, "status")
defer u.runHook(LATE, command, "status")
@@ -150,13 +158,13 @@ func (u *Unit) runAction(command string, action string) error {
defer u.Service.Unlock(command)
}
- u.Log.Debug(action)
+ logs.WithFields(u.Fields).Debug(action)
u.runHook(EARLY, command, action)
defer u.runHook(LATE, command, action)
_, _, err := u.Service.GetEnv().RunFleetCmdGetOutput(action, u.unitPath)
if err != nil {
- logrus.WithError(err).Error("Cannot " + action + " unit")
+ logs.WithEF(err, u.Fields).Error("Cannot " + action + " unit")
return err
}
return nil
diff --git a/work/unit-generate.go b/work/unit-generate.go
new file mode 100644
index 0000000..167574a
--- /dev/null
+++ b/work/unit-generate.go
@@ -0,0 +1,124 @@
+package work
+
+import (
+ "bytes"
+ "encoding/base64"
+ "encoding/json"
+ "io/ioutil"
+ "os"
+ "strconv"
+ "strings"
+
+ "github.com/blablacar/dgr/bin-templater/template"
+ "github.com/blablacar/ggn/utils"
+ "github.com/n0rad/go-erlog/logs"
+ "github.com/peterbourgon/mergemap"
+)
+
+func (u *Unit) Generate(tmpl *template.Templating) error {
+ u.generatedMutex.Lock()
+ defer u.generatedMutex.Unlock()
+
+ if u.generated {
+ return nil
+ }
+
+ logs.WithFields(u.Fields).Debug("Generate")
+ data := u.GenerateAttributes()
+ aciList, err := u.Service.PrepareAcis()
+ if err != nil {
+ return err
+ }
+ acis := ""
+ for _, aci := range aciList {
+ acis += aci + " "
+ }
+ data["aciList"] = aciList
+ data["acis"] = acis
+ if u.Service.manifest.ExposeNodesInUnitEnv {
+ data["service_nodes"] = u.Service.nodesAsJsonMap
+ }
+
+ out, err := json.Marshal(data)
+ if err != nil {
+ logs.WithEF(err, u.Fields).Panic("Cannot marshall attributes")
+ }
+ res := strings.Replace(string(out), "\\\"", "\\\\\\\"", -1)
+ res = strings.Replace(res, "'", `\'`, -1)
+ data["attributes"] = res
+ data["attributesBase64"] = "base64," + base64.StdEncoding.EncodeToString([]byte(out))
+
+ data["environmentAttributes"], data["environmentAttributesVars"] = u.prepareEnvironmentAttributes(data["attributes"].(string), "ATTR_")
+ data["environmentAttributesBase64"], data["environmentAttributesVarsBase64"] = u.prepareEnvironmentAttributes(data["attributesBase64"].(string), "ATTR_BASE64_")
+
+ var b bytes.Buffer
+ err = tmpl.Execute(&b, data)
+ if err != nil {
+ logs.WithEF(err, u.Fields).Error("Failed to run templating")
+ }
+ ok, err := utils.Exists(u.path)
+ if !ok || err != nil {
+ os.Mkdir(u.path, 0755)
+ }
+ err = ioutil.WriteFile(u.path+"/"+u.Filename, b.Bytes(), 0644)
+ if err != nil {
+ logs.WithEF(err, u.Fields).WithField("path", u.path+"/"+u.Filename).Error("Cannot writer unit")
+ }
+
+ u.generated = true
+ return nil
+}
+
+func (u Unit) GenerateAttributes() map[string]interface{} {
+ data := utils.CopyMap(u.Service.GetAttributes())
+ data = mergemap.Merge(data, u.Service.NodeAttributes(u.hostname))
+ return data
+}
+
+func (u Unit) prepareEnvironmentAttributes(data string, attrName string) (string, string) {
+ var envAttr bytes.Buffer
+ var envAttrVars bytes.Buffer
+ var forbiddenSplitChar = []string{`:`, `.`, `"`, `,`, `'`, `*`, `=`, `\`}
+ var shouldSplit bool
+
+ num := 0
+ for i, c := range data {
+ y := i
+ charBuffer := string(c)
+
+ if i%1950 == 0 {
+ shouldSplit = true
+ }
+ for y > 1 && (stringInSlice(string(data[y]), forbiddenSplitChar) || stringInSlice(string(data[y-1]), forbiddenSplitChar)) && shouldSplit {
+ envAttr.Truncate(envAttr.Len() - 1)
+ charBuffer = string(data[y-1]) + charBuffer
+ y--
+ }
+ if shouldSplit {
+ if num != 0 {
+ envAttr.WriteString("'\n")
+ }
+ attrIndex := strconv.Itoa(num)
+ envAttr.WriteString("Environment='" + attrName)
+ envAttr.WriteString(attrIndex)
+ envAttr.WriteString("=")
+ envAttrVars.WriteString("${" + attrName)
+ envAttrVars.WriteString(attrIndex)
+ envAttrVars.WriteString("}")
+ shouldSplit = false
+ num++
+ }
+ envAttr.WriteString(charBuffer)
+ }
+ envAttr.WriteString("'\n")
+ return envAttr.String(), envAttrVars.String()
+}
+
+func stringInSlice(a string, list []string) bool {
+ for _, b := range list {
+ if b == a {
+ return true
+ }
+ }
+ return false
+}
diff --git a/work/env/service/unit.go b/work/unit.go
similarity index 62%
rename from work/env/service/unit.go
rename to work/unit.go
index 92d4d31..db31e5f 100644
--- a/work/env/service/unit.go
+++ b/work/unit.go
@@ -1,46 +1,49 @@
-package service
+package work
import (
"bufio"
"encoding/json"
- "github.com/Sirupsen/logrus"
- "github.com/blablacar/cnt/utils"
- "github.com/blablacar/ggn/spec"
+
"github.com/coreos/fleet/unit"
"github.com/juju/errors"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/logs"
+
"io/ioutil"
"os"
"strings"
"sync"
"time"
+
+ "github.com/blablacar/dgr/bin-dgr/common"
)
type Unit struct {
- Log logrus.Entry
- Type spec.UnitType
+ Fields data.Fields
+ Type UnitType
path string
Name string
hostname string
Filename string
unitPath string
- Service spec.Service
+ Service *Service
generated bool
generatedMutex *sync.Mutex
}
-func NewUnit(path string, hostname string, utype spec.UnitType, service spec.Service) *Unit {
- l := service.GetLog()
+func NewUnit(path string, hostname string, utype UnitType, service *Service) *Unit {
+ l := service.GetFields()
- filename := service.GetEnv().GetName() + "_" + service.GetName() + "_" + hostname + utype.String()
+ filename := service.GetEnv().GetEnvName() + "_" + service.GetName() + "_" + hostname + utype.String()
name := hostname
- if utype != spec.TYPE_SERVICE {
+ if utype != TYPE_SERVICE {
name += utype.String()
}
unit := &Unit{
generatedMutex: &sync.Mutex{},
Type: utype,
- Log: *l.WithField("unit", hostname),
+ Fields: l.WithField("unit", name),
Service: service,
path: path,
hostname: hostname,
@@ -48,12 +51,12 @@ func NewUnit(path string, hostname string, utype spec.UnitType, service spec.Ser
Filename: filename,
unitPath: path + "/" + filename,
}
- unit.Log.Debug("New unit")
+ logs.WithFields(unit.Fields).WithField("hostname", hostname).Debug("New unit")
return unit
}
-func (u *Unit) GetType() spec.UnitType {
+func (u *Unit) GetType() UnitType {
return u.Type
}
@@ -61,48 +64,54 @@ func (u *Unit) GetName() string {
return u.Name
}
-func (u *Unit) GetService() spec.Service {
+func (u *Unit) GetService() *Service {
return u.Service
}
func (u *Unit) Check(command string) {
- u.Log.Debug("Check")
+ if err := u.Service.Generate(); err != nil {
+ logs.WithEF(err, u.Fields).Fatal("Generate failed")
+ }
+ logs.WithFields(u.Fields).Debug("Check")
- info := spec.HookInfo{
+ info := HookInfo{
Service: u.Service,
Unit: u,
Action: "check",
Command: command,
}
- u.Service.GetEnv().RunEarlyHook(info)
- defer u.Service.GetEnv().RunLateHook(info)
+ u.Service.GetEnv().RunEarlyHookFatal(info)
+ defer u.Service.GetEnv().RunLateHookFatal(info)
statuses := u.Service.GetEnv().ListUnits()
- var status spec.UnitStatus
+ var status UnitStatus
if _, ok := statuses[u.Filename]; !ok {
- u.Log.Warn("cannot find unit on fleet")
+ logs.WithFields(u.Fields).Warn("cannot find unit on fleet")
return
}
status = statuses[u.Filename]
- logrus.WithField("status", status).Debug("status")
+ logs.WithField("status", status).Debug("status")
- if status.Active != spec.ACTIVE_ACTIVE {
- u.Log.WithField("active", status.Active).Warn("unit status is not active")
+ if status.Active != ACTIVE_ACTIVE {
+ logs.WithFields(u.Fields).WithField("active", status.Active).Warn("unit status is not active")
return
}
- if status.Sub != spec.SUB_RUNNING {
- u.Log.WithField("sub", status.Sub).Warn("unit sub is not running")
+ if status.Sub != SUB_RUNNING {
+ logs.WithFields(u.Fields).WithField("sub", status.Sub).Warn("unit sub is not running")
return
}
same, err := u.IsLocalContentSameAsRemote()
if err != nil {
- u.Log.Error("Cannot read unit")
+ logs.WithFields(u.Fields).Error("Cannot read unit")
return
}
if !same {
- u.Log.Warn("Unit is not up to date")
- return
+ logs.WithFields(u.Fields).Warn("Unit is not up to date")
+ }
+
+ if !u.IsAvailable(command) {
+ logs.WithFields(u.Fields).Warn("Unit is not available")
}
}
@@ -122,7 +131,7 @@ func (u *Unit) GetUnitContentAsFleeted() (string, error) {
func (u *Unit) UpdateInside(command string) {
u.Destroy(command)
time.Sleep(time.Second * 2)
- if u.Type == spec.TYPE_SERVICE && u.Service.HasTimer() {
+ if u.Type == TYPE_SERVICE && u.Service.HasTimer() {
u.Load(command)
} else {
u.Start(command)
@@ -142,7 +151,7 @@ func (u *Unit) DisplayDiff() error {
defer os.Remove(localPath)
ioutil.WriteFile(remotePath, []byte(remote), 0644)
defer os.Remove(remotePath)
- return utils.ExecCmd("git", "diff", "--word-diff", remotePath, localPath)
+ return common.ExecCmd("git", "diff", "--word-diff", remotePath, localPath)
}
func (u *Unit) IsLocalContentSameAsRemote() (bool, error) {
@@ -158,16 +167,13 @@ func (u *Unit) IsLocalContentSameAsRemote() (bool, error) {
///////////////////////////////////////////
-const EARLY = true
-const LATE = false
-
func (u *Unit) runHook(isEarly bool, command string, action string) {
out, err := json.Marshal(u.GenerateAttributes())
if err != nil {
- u.Log.WithError(err).Panic("Cannot marshall attributes")
+ logs.WithEF(err, u.Fields).Fatal("Cannot marshall attributes")
}
- info := spec.HookInfo{
+ info := HookInfo{
Service: u.Service,
Unit: u,
Action: "unit/" + action,
@@ -175,9 +181,9 @@ func (u *Unit) runHook(isEarly bool, command string, action string) {
Attributes: string(out),
}
if isEarly {
- u.Service.GetEnv().RunEarlyHook(info)
+ u.Service.GetEnv().RunEarlyHookFatal(info)
} else {
- u.Service.GetEnv().RunLateHook(info)
+ u.Service.GetEnv().RunLateHookFatal(info)
}
}
@@ -185,7 +191,7 @@ func (u *Unit) runHook(isEarly bool, command string, action string) {
func (u *Unit) serviceLocalAndRemoteContent() (string, string, error) {
localContent, err := u.GetUnitContentAsFleeted()
if err != nil {
- u.Log.WithError(err).Debug("Cannot get local unit content")
+ logs.WithEF(err, u.Fields).Debug("Cannot get local unit content")
return "", "", errors.Annotate(err, "Cannot read local unit file")
}
@@ -231,3 +237,23 @@ func (u *Unit) IsLoaded() bool {
}
return false
}
+
+func (u *Unit) IsAvailable(command string) bool {
+ out, err := json.Marshal(u.GenerateAttributes())
+ if err != nil {
+ logs.WithEF(err, u.Fields).Fatal("Cannot marshall attributes")
+ }
+ info := HookInfo{
+ Service: u.Service,
+ Unit: u,
+ Action: "unit/isAvailable",
+ Command: command,
+ Attributes: string(out),
+ }
+
+ if err = u.Service.GetEnv().RunHook(info); err != nil {
+ logs.WithEF(err, u.Fields).Debug("isAvailable hook failed")
+ return false
+ }
+ return true
+}
diff --git a/work/work.go b/work/work.go
index a1716c9..be131b9 100644
--- a/work/work.go
+++ b/work/work.go
@@ -1,23 +1,25 @@
package work
import (
- "github.com/Sirupsen/logrus"
- "github.com/blablacar/ggn/ggn"
"io/ioutil"
"os"
+
+ "github.com/blablacar/ggn/ggn"
+ "github.com/n0rad/go-erlog/data"
+ "github.com/n0rad/go-erlog/logs"
)
const PATH_ENV = "/env"
type Work struct {
- path string
- log logrus.Entry
+ path string
+ fields data.Fields
}
func NewWork(path string) *Work {
return &Work{
- path: path,
- log: *logrus.WithField("path", path),
+ path: path,
+ fields: data.WithField("path", path),
}
}
@@ -28,18 +30,31 @@ func (w Work) LoadEnv(name string) *Env {
func (w Work) ListEnvs() []string {
path := ggn.Home.Config.WorkPath + PATH_ENV
if _, err := os.Stat(path); os.IsNotExist(err) {
- w.log.Error("env directory not found" + ggn.Home.Config.WorkPath)
- os.Exit(1)
+ logs.WithEF(err, w.fields).WithField("path", path).Fatal("env directory not found")
}
files, err := ioutil.ReadDir(path)
if err != nil {
- w.log.Error("Cannot read env directory : "+path, err)
- os.Exit(1)
+ logs.WithEF(err, w.fields).WithField("path", path).Fatal("Cannot read env directory")
}
var envs []string
for _, file := range files {
+ if file.Mode()&os.ModeSymlink == os.ModeSymlink {
+ followed_file, err := os.Readlink(path + "/" + file.Name())
+ if err != nil {
+ continue
+ }
+ if followed_file[0] != '/' {
+ followed_file = path + "/" + followed_file
+ }
+ file, err = os.Lstat(followed_file)
+ if err != nil {
+ continue
+ }
+ logs.WithField("followed_link", file.Name()).Trace("Followed Link")
+ }
+
if !file.IsDir() {
continue
}