VOL-381 add unum container to support ONOS cluster formation under swarm
Change-Id: Ic260edda19bb199ed040f05164ab605f28c919d0
diff --git a/unum/vendor/github.com/dimiro1/banner/LICENSE b/unum/vendor/github.com/dimiro1/banner/LICENSE
new file mode 100644
index 0000000..a37ef5e
--- /dev/null
+++ b/unum/vendor/github.com/dimiro1/banner/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Claudemiro
+
+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/unum/vendor/github.com/dimiro1/banner/README.md b/unum/vendor/github.com/dimiro1/banner/README.md
new file mode 100644
index 0000000..3cf5417
--- /dev/null
+++ b/unum/vendor/github.com/dimiro1/banner/README.md
@@ -0,0 +1,239 @@
+[![Build Status](https://travis-ci.org/dimiro1/banner.svg?branch=master)](https://travis-ci.org/dimiro1/banner)
+[![Go Report Card](https://goreportcard.com/badge/github.com/dimiro1/banner)](https://goreportcard.com/report/github.com/dimiro1/banner)
+[![GoDoc](https://godoc.org/github.com/dimiro1/banner?status.svg)](https://godoc.org/github.com/dimiro1/banner)
+
+Try browsing [the code on Sourcegraph](https://sourcegraph.com/github.com/dimiro1/banner)!
+
+# Banner
+
+Add beautiful banners into your Go applications
+
+**Table of Contents**
+
+- [Motivation](#motivation)
+- [Usage](#usage)
+- [API](#api)
+- [Command line flags](#command-line-flags)
+- [Template](#template)
+- [Log](#log)
+- [ASCII Banners](#ascii-banners)
+- [LICENSE](#license)
+
+# Motivation
+
+I Like to add these startup banners on all my applications, I think it give personality to the application.
+
+# Usage
+
+Import the package. Thats it.
+
+```go
+package main
+
+import _ "github.com/dimiro1/banner/autoload"
+
+func main() {}
+```
+
+By default it look at the file **banner.txt** in the same directory. You can customize with the command line flags.
+
+If you do not want to use the autoload package you can always fallback to the banner API
+
+```go
+package main
+
+import (
+ "bytes"
+ "os"
+
+ "github.com/dimiro1/banner"
+)
+
+func main() {
+ isEnabled := true
+ isColorEnabled := true
+ banner.Init(os.Stdout, isEnabled, isColorEnabled, bytes.NewBufferString("My Custom Banner"))
+}
+```
+
+If using windows, use go-colorable. This works in all-platforms.
+
+```go
+package main
+
+import (
+ "bytes"
+ "os"
+
+ "github.com/dimiro1/banner"
+ "github.com/mattn/go-colorable"
+)
+
+func main() {
+ isEnabled := true
+ isColorEnabled := true
+ banner.Init(colorable.NewColorableStdout(), isEnabled, isColorEnabled, bytes.NewBufferString("My Custom Banner"))
+}
+```
+
+# API
+
+I recommend you to vendor this dependency in your project, as it is a good practice.
+
+# Command line flags
+
+```sh
+$ go run main.go -h
+```
+
+should output
+```
+Usage of main:
+ -ansi
+ ansi colors enabled? (default true)
+ -banner string
+ banner.txt file (default "banner.txt")
+ -show-banner
+ print the banner? (default true)
+```
+
+# Template
+
+You can use the following variables in the template.
+
+| Variable | Value |
+|----------------------------------------|-----------------------------------------------|
+| ```{{ .GoVersion }}``` | ```runtime.Version()``` |
+| ```{{ .GOOS }}``` | ```runtime.GOOS``` |
+| ```{{ .GOARCH }}``` | ```runtime.GOARCH``` |
+| ```{{ .NumCPU }}``` | ```runtime.NumCPU()``` |
+| ```{{ .GOPATH }}``` | ```os.Getenv("GOPATH")``` |
+| ```{{ .GOROOT }}``` | ```runtime.GOROOT()``` |
+| ```{{ .Compiler }}``` | ```runtime.Compiler``` |
+| ```{{ .Env "GOPATH" }}``` | ```os.Getenv("GOPATH")``` |
+| ```{{ .Now "Monday, 2 Jan 2006" }}``` | ```time.Now().Format("Monday, 2 Jan 2006")``` |
+
+Please see the layout of the function **.Now** in https://github.com/golang/go/blob/f06795d9b742cf3292a0f254646c23603fc6419b/src/time/format.go#L9-L41
+
+## Colors
+
+There are support for ANSI colors :)
+
+| Variable |
+|-------------------------------------------|
+| ```{{ .AnsiColor.Default }}``` |
+| ```{{ .AnsiColor.Black }}``` |
+| ```{{ .AnsiColor.Red }}``` |
+| ```{{ .AnsiColor.Green }}``` |
+| ```{{ .AnsiColor.Yellow }}``` |
+| ```{{ .AnsiColor.Blue }}``` |
+| ```{{ .AnsiColor.Magenta }}``` |
+| ```{{ .AnsiColor.Cyan }}``` |
+| ```{{ .AnsiColor.White }}``` |
+| ```{{ .AnsiColor.BrightBlack }}``` |
+| ```{{ .AnsiColor.BrightRed }}``` |
+| ```{{ .AnsiColor.BrightGreen }}``` |
+| ```{{ .AnsiColor.BrightYellow }}``` |
+| ```{{ .AnsiColor.BrightBlue }}``` |
+| ```{{ .AnsiColor.BrightMagenta }}``` |
+| ```{{ .AnsiColor.BrightCyan }}``` |
+| ```{{ .AnsiColor.BrightWhite }}``` |
+| ```{{ .AnsiBackground.Default }}``` |
+| ```{{ .AnsiBackground.Black }}``` |
+| ```{{ .AnsiBackground.Red }}``` |
+| ```{{ .AnsiBackground.Green }}``` |
+| ```{{ .AnsiBackground.Yellow }}``` |
+| ```{{ .AnsiBackground.Blue }}``` |
+| ```{{ .AnsiBackground.Magenta }}``` |
+| ```{{ .AnsiBackground.Cyan }}``` |
+| ```{{ .AnsiBackground.White }}``` |
+| ```{{ .AnsiBackground.BrightBlack }}``` |
+| ```{{ .AnsiBackground.BrightRed }}``` |
+| ```{{ .AnsiBackground.BrightGreen }}``` |
+| ```{{ .AnsiBackground.BrightYellow }}``` |
+| ```{{ .AnsiBackground.BrightBlue }}``` |
+| ```{{ .AnsiBackground.BrightMagenta }}``` |
+| ```{{ .AnsiBackground.BrightCyan }}``` |
+| ```{{ .AnsiBackground.BrightWhite }}``` |
+
+Want to see a nyancat?
+
+```sh
+$ go run example/main.go -banner example/nyancat.txt
+```
+
+![NyanCat Banner](banner-nyan.png?raw=true "NyanCat Banner")
+
+## Example
+
+```
+ ____
+ | _ \
+ | |_) | __ _ _ __ _ __ ___ _ __
+ | _ < / _` | '_ \| '_ \ / _ \ '__|
+ | |_) | (_| | | | | | | | __/ |
+ |____/ \__,_|_| |_|_| |_|\___|_|
+
+GoVersion: {{ .GoVersion }}
+GOOS: {{ .GOOS }}
+GOARCH: {{ .GOARCH }}
+NumCPU: {{ .NumCPU }}
+GOPATH: {{ .GOPATH }}
+GOROOT: {{ .GOROOT }}
+Compiler: {{ .Compiler }}
+ENV: {{ .Env "GOPATH" }}
+Now: {{ .Now "Monday, 2 Jan 2006" }}
+```
+
+will output something like this
+
+```
+ ____
+ | _ \
+ | |_) | __ _ _ __ _ __ ___ _ __
+ | _ < / _` | '_ \| '_ \ / _ \ '__|
+ | |_) | (_| | | | | | | | __/ |
+ |____/ \__,_|_| |_|_| |_|\___|_|
+
+GoVersion: go1.6
+GOOS: darwin
+GOARCH: amd64
+NumCPU: 4
+GOPATH: /Users/claudemiro/go
+GOROOT: /usr/local/Cellar/go/1.6/libexec
+Compiler: gc
+ENV: /Users/claudemiro/go
+Now: Friday, 26 Mar 2016
+```
+
+# Log
+
+I am using the standard golang log, but there is a function SetLog that accepts a custom log, so you can customize the way you want.
+
+# ASCII Banners
+
+Access http://patorjk.com/software/taag/#p=display&f=Big&t=Banner to generate ASCII banners.
+
+# LICENSE
+
+The MIT License (MIT)
+
+Copyright (c) 2016 Claudemiro
+
+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/unum/vendor/github.com/dimiro1/banner/autoload/autoload.go b/unum/vendor/github.com/dimiro1/banner/autoload/autoload.go
new file mode 100644
index 0000000..3d02b54
--- /dev/null
+++ b/unum/vendor/github.com/dimiro1/banner/autoload/autoload.go
@@ -0,0 +1,41 @@
+// Copyright 2016 Claudemiro Alves Feitosa Neto. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+// Package autoload configure the banner loader with defaults
+// Import the package. Thats it.
+package autoload
+
+import (
+ "flag"
+ "os"
+
+ "github.com/dimiro1/banner"
+ "github.com/mattn/go-colorable"
+)
+
+func init() {
+ var (
+ filename string
+ isEnabled bool
+ isColorEnabled bool
+ )
+
+ flag.StringVar(&filename, "banner", "banner.txt", "banner.txt file")
+ flag.BoolVar(&isEnabled, "show-banner", true, "print the banner?")
+ flag.BoolVar(&isColorEnabled, "ansi", true, "ansi colors enabled?")
+
+ flag.Parse()
+
+ in, err := os.Open(filename)
+
+ if in != nil {
+ defer in.Close()
+ }
+
+ if err != nil {
+ return
+ }
+
+ banner.Init(colorable.NewColorableStdout(), isEnabled, isColorEnabled, in)
+}
diff --git a/unum/vendor/github.com/dimiro1/banner/banner-nyan.png b/unum/vendor/github.com/dimiro1/banner/banner-nyan.png
new file mode 100644
index 0000000..cd58c78
--- /dev/null
+++ b/unum/vendor/github.com/dimiro1/banner/banner-nyan.png
Binary files differ
diff --git a/unum/vendor/github.com/dimiro1/banner/banner.go b/unum/vendor/github.com/dimiro1/banner/banner.go
new file mode 100644
index 0000000..24b0685
--- /dev/null
+++ b/unum/vendor/github.com/dimiro1/banner/banner.go
@@ -0,0 +1,90 @@
+// Copyright 2016 Claudemiro Alves Feitosa Neto. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package banner
+
+import (
+ "io"
+ "io/ioutil"
+ "log"
+ "os"
+ "runtime"
+ "text/template"
+ "time"
+)
+
+var logger = log.New(os.Stderr, "", log.Ldate|log.Ltime|log.Lshortfile)
+
+// SetLog permits the user change the default logger instance
+func SetLog(l *log.Logger) {
+ if l == nil {
+ return
+ }
+ logger = l
+}
+
+type vars struct {
+ GoVersion string
+ GOOS string
+ GOARCH string
+ NumCPU int
+ GOPATH string
+ GOROOT string
+ Compiler string
+ AnsiColor ansiColor
+ AnsiBackground ansiBackground
+}
+
+func (v vars) Env(env string) string {
+ return os.Getenv(env)
+}
+
+// See https://github.com/golang/go/blob/f06795d9b742cf3292a0f254646c23603fc6419b/src/time/format.go#L9-L41
+func (v vars) Now(layout string) string {
+ return time.Now().Format(layout)
+}
+
+// Init load the banner and prints it to output
+// All errors are ignored, the application will not print the banner in case of error.
+func Init(out io.Writer, isEnabled, isColorEnabled bool, in io.Reader) {
+ if !isEnabled {
+ logger.Println("The banner is not enabled.")
+ return
+ }
+
+ if in == nil {
+ logger.Println("The input is nil")
+ return
+ }
+
+ banner, err := ioutil.ReadAll(in)
+
+ if err != nil {
+ logger.Printf("Error trying to read the banner, err: %v", err)
+ return
+ }
+
+ show(out, isColorEnabled, string(banner))
+}
+
+func show(out io.Writer, isColorEnabled bool, content string) {
+ t, err := template.New("banner").Parse(content)
+
+ if err != nil {
+ logger.Printf("Error trying to parse the banner file, err: %v", err)
+ return
+ }
+
+ t.Execute(out, vars{
+ runtime.Version(),
+ runtime.GOOS,
+ runtime.GOARCH,
+ runtime.NumCPU(),
+ os.Getenv("GOPATH"),
+ runtime.GOROOT(),
+ runtime.Compiler,
+ ansiColor{isColorEnabled},
+ ansiBackground{isColorEnabled},
+ })
+}
diff --git a/unum/vendor/github.com/dimiro1/banner/color.go b/unum/vendor/github.com/dimiro1/banner/color.go
new file mode 100644
index 0000000..a76f8eb
--- /dev/null
+++ b/unum/vendor/github.com/dimiro1/banner/color.go
@@ -0,0 +1,178 @@
+// Copyright 2016 Claudemiro Alves Feitosa Neto. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package banner
+
+import (
+ "os"
+
+ "github.com/mattn/go-isatty"
+)
+
+const (
+ encodeStart = "\033["
+ encodeEnd = "m"
+ encodeReset = "0;39"
+)
+
+type ansiBackground struct {
+ isColorEnabled bool
+}
+
+func (a ansiBackground) Default() string {
+ return outputANSI(a.isColorEnabled, "49")
+}
+
+func (a ansiBackground) Black() string {
+ return outputANSI(a.isColorEnabled, "40")
+}
+
+func (a ansiBackground) Red() string {
+ return outputANSI(a.isColorEnabled, "41")
+}
+
+func (a ansiBackground) Green() string {
+ return outputANSI(a.isColorEnabled, "42")
+}
+
+func (a ansiBackground) Yellow() string {
+ return outputANSI(a.isColorEnabled, "43")
+}
+
+func (a ansiBackground) Blue() string {
+ return outputANSI(a.isColorEnabled, "44")
+}
+
+func (a ansiBackground) Magenta() string {
+ return outputANSI(a.isColorEnabled, "45")
+}
+
+func (a ansiBackground) Cyan() string {
+ return outputANSI(a.isColorEnabled, "46")
+}
+
+func (a ansiBackground) White() string {
+ return outputANSI(a.isColorEnabled, "47")
+}
+
+func (a ansiBackground) BrightBlack() string {
+ return outputANSI(a.isColorEnabled, "100")
+}
+
+func (a ansiBackground) BrightRed() string {
+ return outputANSI(a.isColorEnabled, "101")
+}
+
+func (a ansiBackground) BrightGreen() string {
+ return outputANSI(a.isColorEnabled, "102")
+}
+
+func (a ansiBackground) BrightYellow() string {
+ return outputANSI(a.isColorEnabled, "103")
+}
+
+func (a ansiBackground) BrightBlue() string {
+ return outputANSI(a.isColorEnabled, "104")
+}
+
+func (a ansiBackground) BrightMagenta() string {
+ return outputANSI(a.isColorEnabled, "105")
+}
+
+func (a ansiBackground) BrightCyan() string {
+ return outputANSI(a.isColorEnabled, "106")
+}
+
+func (a ansiBackground) BrightWhite() string {
+ return outputANSI(a.isColorEnabled, "107")
+}
+
+type ansiColor struct {
+ isColorEnabled bool
+}
+
+func (a ansiColor) Default() string {
+ return outputANSI(a.isColorEnabled, "39")
+}
+
+func (a ansiColor) Black() string {
+ return outputANSI(a.isColorEnabled, "30")
+}
+
+func (a ansiColor) Red() string {
+ return outputANSI(a.isColorEnabled, "31")
+}
+
+func (a ansiColor) Green() string {
+ return outputANSI(a.isColorEnabled, "32")
+}
+
+func (a ansiColor) Yellow() string {
+ return outputANSI(a.isColorEnabled, "33")
+}
+
+func (a ansiColor) Blue() string {
+ return outputANSI(a.isColorEnabled, "34")
+}
+
+func (a ansiColor) Magenta() string {
+ return outputANSI(a.isColorEnabled, "35")
+}
+
+func (a ansiColor) Cyan() string {
+ return outputANSI(a.isColorEnabled, "36")
+}
+
+func (a ansiColor) White() string {
+ return outputANSI(a.isColorEnabled, "37")
+}
+
+func (a ansiColor) BrightBlack() string {
+ return outputANSI(a.isColorEnabled, "90")
+}
+
+func (a ansiColor) BrightRed() string {
+ return outputANSI(a.isColorEnabled, "91")
+}
+
+func (a ansiColor) BrightGreen() string {
+ return outputANSI(a.isColorEnabled, "92")
+}
+
+func (a ansiColor) BrightYellow() string {
+ return outputANSI(a.isColorEnabled, "93")
+}
+
+func (a ansiColor) BrightBlue() string {
+ return outputANSI(a.isColorEnabled, "94")
+}
+
+func (a ansiColor) BrightMagenta() string {
+ return outputANSI(a.isColorEnabled, "95")
+}
+
+func (a ansiColor) BrightCyan() string {
+ return outputANSI(a.isColorEnabled, "96")
+}
+
+func (a ansiColor) BrightWhite() string {
+ return outputANSI(a.isColorEnabled, "97")
+}
+
+func (a ansiBackground) Reset() string {
+ return outputANSI(a.isColorEnabled, encodeReset)
+}
+
+func outputANSI(isColorEnabled bool, code string) string {
+ if isColorEnabled && isANSIEnabled() {
+ return encodeStart + code + encodeEnd
+ }
+
+ return ""
+
+}
+
+func isANSIEnabled() bool {
+ return isatty.IsTerminal(os.Stdout.Fd())
+}
diff --git a/unum/vendor/github.com/dimiro1/banner/glide.lock b/unum/vendor/github.com/dimiro1/banner/glide.lock
new file mode 100644
index 0000000..0b7d96a
--- /dev/null
+++ b/unum/vendor/github.com/dimiro1/banner/glide.lock
@@ -0,0 +1,12 @@
+hash: aca82a95d61978cd9802a19ad466f807e595d4194b43cbd023dc3148625cdb93
+updated: 2016-03-27T23:21:24.405471273-03:00
+imports:
+- name: github.com/mattn/go-colorable
+ version: 9cbef7c35391cca05f15f8181dc0b18bc9736dbb
+- name: github.com/mattn/go-isatty
+ version: 56b76bdf51f7708750eac80fa38b952bb9f32639
+- name: golang.org/x/sys
+ version: 320cb01ddbbf0473674c2585f9b6e245721de355
+ subpackages:
+ - unix
+devImports: []
diff --git a/unum/vendor/github.com/dimiro1/banner/glide.yaml b/unum/vendor/github.com/dimiro1/banner/glide.yaml
new file mode 100644
index 0000000..26e3220
--- /dev/null
+++ b/unum/vendor/github.com/dimiro1/banner/glide.yaml
@@ -0,0 +1,4 @@
+package: github.com/dimiro1/banner
+import:
+- package: github.com/mattn/go-colorable
+- package: github.com/mattn/go-isatty
diff --git a/unum/vendor/github.com/dimiro1/banner/test-banner.txt b/unum/vendor/github.com/dimiro1/banner/test-banner.txt
new file mode 100644
index 0000000..1034bef
--- /dev/null
+++ b/unum/vendor/github.com/dimiro1/banner/test-banner.txt
@@ -0,0 +1 @@
+Test Banner
\ No newline at end of file