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