use klog dependency

Signed-off-by: tariqibrahim <tariq181290@gmail.com>
pull/4927/head
tariqibrahim 2019-01-03 13:44:29 -08:00
parent aa94efe4b5
commit 9b4a25e7b0
23 changed files with 385 additions and 1813 deletions

View File

@ -34,7 +34,6 @@ import (
"github.com/go-kit/kit/log" "github.com/go-kit/kit/log"
"github.com/go-kit/kit/log/level" "github.com/go-kit/kit/log/level"
"github.com/golang/glog"
"github.com/oklog/oklog/pkg/group" "github.com/oklog/oklog/pkg/group"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
@ -42,6 +41,7 @@ import (
"github.com/prometheus/common/version" "github.com/prometheus/common/version"
prom_runtime "github.com/prometheus/prometheus/pkg/runtime" prom_runtime "github.com/prometheus/prometheus/pkg/runtime"
"gopkg.in/alecthomas/kingpin.v2" "gopkg.in/alecthomas/kingpin.v2"
"k8s.io/klog"
"github.com/mwitkow/go-conntrack" "github.com/mwitkow/go-conntrack"
"github.com/prometheus/common/promlog" "github.com/prometheus/common/promlog"
@ -242,8 +242,8 @@ func main() {
logger := promlog.New(&cfg.promlogConfig) logger := promlog.New(&cfg.promlogConfig)
// Above level 6, the k8s client would log bearer tokens in clear-text. // Above level 6, the k8s client would log bearer tokens in clear-text.
glog.ClampLevel(6) klog.ClampLevel(6)
glog.SetLogger(log.With(logger, "component", "k8s_client_runtime")) klog.SetLogger(log.With(logger, "component", "k8s_client_runtime"))
level.Info(logger).Log("msg", "Starting Prometheus", "version", version.Info()) level.Info(logger).Log("msg", "Starting Prometheus", "version", version.Info())
level.Info(logger).Log("build_context", version.BuildContext()) level.Info(logger).Log("build_context", version.BuildContext())

5
go.mod
View File

@ -31,7 +31,6 @@ require (
github.com/go-ole/go-ole v1.2.1 // indirect github.com/go-ole/go-ole v1.2.1 // indirect
github.com/go-sql-driver/mysql v1.4.0 // indirect github.com/go-sql-driver/mysql v1.4.0 // indirect
github.com/gogo/protobuf v1.1.1 github.com/gogo/protobuf v1.1.1
github.com/golang/glog v0.0.0-20141105023935-44145f04b68c
github.com/golang/groupcache v0.0.0-20180924190550-6f2cf27854a4 // indirect github.com/golang/groupcache v0.0.0-20180924190550-6f2cf27854a4 // indirect
github.com/golang/snappy v0.0.0-20160529050041-d9eb7a3d35ec github.com/golang/snappy v0.0.0-20160529050041-d9eb7a3d35ec
github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a // indirect github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a // indirect
@ -125,11 +124,11 @@ require (
k8s.io/api v0.0.0-20181213150558-05914d821849 k8s.io/api v0.0.0-20181213150558-05914d821849
k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93 k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93
k8s.io/client-go v2.0.0-alpha.0.0.20181121191925-a47917edff34+incompatible k8s.io/client-go v2.0.0-alpha.0.0.20181121191925-a47917edff34+incompatible
k8s.io/klog v0.1.0 // indirect k8s.io/klog v0.1.0
k8s.io/kube-openapi v0.0.0-20180629012420-d83b052f768a // indirect k8s.io/kube-openapi v0.0.0-20180629012420-d83b052f768a // indirect
labix.org/v2/mgo v0.0.0-20140701140051-000000000287 // indirect labix.org/v2/mgo v0.0.0-20140701140051-000000000287 // indirect
launchpad.net/gocheck v0.0.0-20140225173054-000000000087 // indirect launchpad.net/gocheck v0.0.0-20140225173054-000000000087 // indirect
sigs.k8s.io/yaml v1.1.0 // indirect sigs.k8s.io/yaml v1.1.0 // indirect
) )
replace github.com/golang/glog => github.com/kubermatic/glog-gokit v0.0.0-20181129151237-8ab7e4c2d352 replace k8s.io/klog => github.com/simonpasquier/klog-gokit v0.1.0

6
go.sum
View File

@ -63,6 +63,8 @@ github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0 h1:8HUsc87TaSWLKwrnumgC8/YconD2fJQsRJAsWaPg2ic= github.com/go-logfmt/logfmt v0.3.0 h1:8HUsc87TaSWLKwrnumgC8/YconD2fJQsRJAsWaPg2ic=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E= github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E=
github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
github.com/go-sql-driver/mysql v1.4.0 h1:7LxgVwFb2hIQtMm87NdgAVfXjnt4OePseqT1tKx+opk= github.com/go-sql-driver/mysql v1.4.0 h1:7LxgVwFb2hIQtMm87NdgAVfXjnt4OePseqT1tKx+opk=
@ -146,8 +148,6 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kubermatic/glog-gokit v0.0.0-20181129151237-8ab7e4c2d352 h1:IwAUUBomA7q2TedTHQ3ebjwXVp8aHwi453m7AFn0vCk=
github.com/kubermatic/glog-gokit v0.0.0-20181129151237-8ab7e4c2d352/go.mod h1:WUD00rCUd6ntFOOuzJbT/MRrM+6X0Zufa6wWYBcf4zY=
github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A= github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lightstep/lightstep-tracer-go v0.15.6 h1:D0GGa7afJ7GcQvu5as6ssLEEKYXvRgKI5d5cevtz8r4= github.com/lightstep/lightstep-tracer-go v0.15.6 h1:D0GGa7afJ7GcQvu5as6ssLEEKYXvRgKI5d5cevtz8r4=
@ -231,6 +231,8 @@ github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371 h1:SWV2fHctRpRrp49
github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
github.com/shurcooL/vfsgen v0.0.0-20180711163814-62bca832be04 h1:y0cMJ0qjii33BnD6tMGcF/+gHYsoKQ6tbwQpy233OII= github.com/shurcooL/vfsgen v0.0.0-20180711163814-62bca832be04 h1:y0cMJ0qjii33BnD6tMGcF/+gHYsoKQ6tbwQpy233OII=
github.com/shurcooL/vfsgen v0.0.0-20180711163814-62bca832be04/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/shurcooL/vfsgen v0.0.0-20180711163814-62bca832be04/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
github.com/simonpasquier/klog-gokit v0.1.0 h1:l3GGzgwlUF4vC1ApCOEsMsV+6nJPM01VoVCUCZgOIUw=
github.com/simonpasquier/klog-gokit v0.1.0/go.mod h1:4lorAA0CyDox4KO34BrvNAJk8J2Ma/M9Q2BDkR38vSI=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a h1:JSvGDIbmil4Ui/dDdFBExb7/cmkNjyX5F97oglmvCDo= github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a h1:JSvGDIbmil4Ui/dDdFBExb7/cmkNjyX5F97oglmvCDo=

View File

@ -1,11 +1,12 @@
language: go language: go
sudo: false sudo: false
go: go:
- 1.3 - "1.7.x"
- 1.4 - "1.8.x"
- 1.5 - "1.9.x"
- 1.6 - "1.10.x"
- tip - "1.11.x"
- "tip"
before_install: before_install:
- go get github.com/mattn/goveralls - go get github.com/mattn/goveralls

41
vendor/github.com/go-logfmt/logfmt/CHANGELOG.md generated vendored Normal file
View File

@ -0,0 +1,41 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.4.0] - 2018-11-21
### Added
- Go module support by [@ChrisHines]
- CHANGELOG by [@ChrisHines]
### Changed
- Drop invalid runes from keys instead of returning ErrInvalidKey by [@ChrisHines]
- On panic while printing, attempt to print panic value by [@bboreham]
## [0.3.0] - 2016-11-15
### Added
- Pool buffers for quoted strings and byte slices by [@nussjustin]
### Fixed
- Fuzz fix, quote invalid UTF-8 values by [@judwhite]
## [0.2.0] - 2016-05-08
### Added
- Encoder.EncodeKeyvals by [@ChrisHines]
## [0.1.0] - 2016-03-28
### Added
- Encoder by [@ChrisHines]
- Decoder by [@ChrisHines]
- MarshalKeyvals by [@ChrisHines]
[0.4.0]: https://github.com/go-logfmt/logfmt/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/go-logfmt/logfmt/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/go-logfmt/logfmt/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/go-logfmt/logfmt/commits/v0.1.0
[@ChrisHines]: https://github.com/ChrisHines
[@bboreham]: https://github.com/bboreham
[@judwhite]: https://github.com/judwhite
[@nussjustin]: https://github.com/nussjustin

View File

@ -110,8 +110,8 @@ func (e *MarshalerError) Error() string {
// a nil interface or pointer value. // a nil interface or pointer value.
var ErrNilKey = errors.New("nil key") var ErrNilKey = errors.New("nil key")
// ErrInvalidKey is returned by Marshal functions and Encoder methods if a key // ErrInvalidKey is returned by Marshal functions and Encoder methods if, after
// contains an invalid character. // dropping invalid runes, a key is empty.
var ErrInvalidKey = errors.New("invalid key") var ErrInvalidKey = errors.New("invalid key")
// ErrUnsupportedKeyType is returned by Encoder methods if a key has an // ErrUnsupportedKeyType is returned by Encoder methods if a key has an
@ -165,31 +165,32 @@ func writeKey(w io.Writer, key interface{}) error {
} }
} }
func invalidKeyRune(r rune) bool { // keyRuneFilter returns r for all valid key runes, and -1 for all invalid key
return r <= ' ' || r == '=' || r == '"' || r == utf8.RuneError // runes. When used as the mapping function for strings.Map and bytes.Map
} // functions it causes them to remove invalid key runes from strings or byte
// slices respectively.
func invalidKeyString(key string) bool { func keyRuneFilter(r rune) rune {
return len(key) == 0 || strings.IndexFunc(key, invalidKeyRune) != -1 if r <= ' ' || r == '=' || r == '"' || r == utf8.RuneError {
} return -1
}
func invalidKey(key []byte) bool { return r
return len(key) == 0 || bytes.IndexFunc(key, invalidKeyRune) != -1
} }
func writeStringKey(w io.Writer, key string) error { func writeStringKey(w io.Writer, key string) error {
if invalidKeyString(key) { k := strings.Map(keyRuneFilter, key)
if k == "" {
return ErrInvalidKey return ErrInvalidKey
} }
_, err := io.WriteString(w, key) _, err := io.WriteString(w, k)
return err return err
} }
func writeBytesKey(w io.Writer, key []byte) error { func writeBytesKey(w io.Writer, key []byte) error {
if invalidKey(key) { k := bytes.Map(keyRuneFilter, key)
if len(k) == 0 {
return ErrInvalidKey return ErrInvalidKey
} }
_, err := w.Write(key) _, err := w.Write(k)
return err return err
} }
@ -278,7 +279,7 @@ func safeError(err error) (s string, ok bool) {
if v := reflect.ValueOf(err); v.Kind() == reflect.Ptr && v.IsNil() { if v := reflect.ValueOf(err); v.Kind() == reflect.Ptr && v.IsNil() {
s, ok = "null", false s, ok = "null", false
} else { } else {
panic(panicVal) s, ok = fmt.Sprintf("PANIC:%v", panicVal), false
} }
} }
}() }()
@ -292,7 +293,7 @@ func safeString(str fmt.Stringer) (s string, ok bool) {
if v := reflect.ValueOf(str); v.Kind() == reflect.Ptr && v.IsNil() { if v := reflect.ValueOf(str); v.Kind() == reflect.Ptr && v.IsNil() {
s, ok = "null", false s, ok = "null", false
} else { } else {
panic(panicVal) s, ok = fmt.Sprintf("PANIC:%v", panicVal), true
} }
} }
}() }()
@ -306,7 +307,7 @@ func safeMarshal(tm encoding.TextMarshaler) (b []byte, err error) {
if v := reflect.ValueOf(tm); v.Kind() == reflect.Ptr && v.IsNil() { if v := reflect.ValueOf(tm); v.Kind() == reflect.Ptr && v.IsNil() {
b, err = nil, nil b, err = nil, nil
} else { } else {
panic(panicVal) b, err = nil, fmt.Errorf("panic when marshalling: %s", panicVal)
} }
} }
}() }()

3
vendor/github.com/go-logfmt/logfmt/go.mod generated vendored Normal file
View File

@ -0,0 +1,3 @@
module github.com/go-logfmt/logfmt
require github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515

2
vendor/github.com/go-logfmt/logfmt/go.sum generated vendored Normal file
View File

@ -0,0 +1,2 @@
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=

View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2018 Kubermatic
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.

View File

@ -1,65 +0,0 @@
# glog-gokit
This packages is a replacement for [glog](github.com/golang/glog)
in projects that use the [go-kit logger](https://godoc.org/github.com/go-kit/kit/log).
It is inspired by istio's glog package for zap:
https://github.com/istio/glog
## Usage
Override the official glog package with this one.
This simply replaces the code in `vendor/golang/glog` with the code of this package.
In your `Gopkg.toml`:
```toml
[[override]]
name = "github.com/golang/glog"
source = "github.com/kubermatic/glog-gokit"
```
In your `main.go`:
```go
// Import the package like it is original glog
import "github.com/golang/glog"
// Create go-kit logger in your main.go
logger := log.NewLogfmtLogger(log.NewSyncWriter(os.Stdout))
logger = log.With(logger, "ts", log.DefaultTimestampUTC)
logger = log.With(logger, "caller", log.DefaultCaller)
logger = level.NewFilter(logger, level.AllowAll())
// Overriding the default glog with our go-kit glog implementation.
// Thus we need to pass it our go-kit logger object.
glog.SetLogger(logger)
```
Setting the logger to the glog package **MUST** happen before using glog in any package.
## Function Levels
| glog | gokit |
| ------------ | ----- |
| Info | Debug |
| InfoDepth | Debug |
| Infof | Debug |
| Infoln | Debug |
| Warning | Warn |
| WarningDepth | Warn |
| Warningf | Warn |
| Warningln | Warn |
| Error | Error |
| ErrorDepth | Error |
| Errorf | Error |
| Errorln | Error |
| Exit | Error |
| ExitDepth | Error |
| Exitf | Error |
| Exitln | Error |
| Fatal | Error |
| FatalDepth | Error |
| Fatalf | Error |
| Fatalln | Error |
This table is rather opinionated and build for use with the Kubernetes' [Go client](https://github.com/kubernetes/client-go).

143
vendor/github.com/golang/glog/glog.go generated vendored
View File

@ -1,143 +0,0 @@
package glog
import (
"fmt"
"math"
"os"
"sync"
"github.com/go-kit/kit/log"
"github.com/go-kit/kit/log/level"
)
var maxLevel Level = math.MaxInt32
var logger = log.NewNopLogger()
var mu = sync.Mutex{}
// SetLogger redirects glog logging to the given logger.
// It must be called prior any call to glog.
func SetLogger(l log.Logger) {
mu.Lock()
logger = l
mu.Unlock()
}
// ClampLevel clamps the leveled logging at the specified value.
// It must be called prior any call to glog.
func ClampLevel(l Level) {
mu.Lock()
maxLevel = l
mu.Unlock()
}
type Level int32
type Verbose bool
func V(level Level) Verbose { return level <= maxLevel }
func (v Verbose) Info(args ...interface{}) {
if v {
level.Debug(logger).Log("func", "Verbose.Info", "msg", fmt.Sprint(args...))
}
}
func (v Verbose) Infoln(args ...interface{}) {
if v {
level.Debug(logger).Log("func", "Verbose.Infoln", "msg", fmt.Sprint(args...))
}
}
func (v Verbose) Infof(format string, args ...interface{}) {
if v {
level.Debug(logger).Log("func", "Verbose.Infof", "msg", fmt.Sprintf(format, args...))
}
}
func Info(args ...interface{}) {
level.Debug(logger).Log("func", "Info", "msg", fmt.Sprint(args...))
}
func InfoDepth(depth int, args ...interface{}) {
level.Debug(logger).Log("func", "InfoDepth", "msg", fmt.Sprint(args...))
}
func Infoln(args ...interface{}) {
level.Debug(logger).Log("func", "Infoln", "msg", fmt.Sprint(args...))
}
func Infof(format string, args ...interface{}) {
level.Debug(logger).Log("func", "Infof", "msg", fmt.Sprintf(format, args...))
}
func Warning(args ...interface{}) {
level.Warn(logger).Log("func", "Warning", "msg", fmt.Sprint(args...))
}
func WarningDepth(depth int, args ...interface{}) {
level.Warn(logger).Log("func", "WarningDepth", "msg", fmt.Sprint(args...))
}
func Warningln(args ...interface{}) {
level.Warn(logger).Log("func", "Warningln", "msg", fmt.Sprint(args...))
}
func Warningf(format string, args ...interface{}) {
level.Warn(logger).Log("func", "Warningf", "msg", fmt.Sprintf(format, args...))
}
func Error(args ...interface{}) {
level.Error(logger).Log("func", "Error", "msg", fmt.Sprint(args...))
}
func ErrorDepth(depth int, args ...interface{}) {
level.Error(logger).Log("func", "ErrorDepth", "msg", fmt.Sprint(args...))
}
func Errorln(args ...interface{}) {
level.Error(logger).Log("func", "Errorln", "msg", fmt.Sprint(args...))
}
func Errorf(format string, args ...interface{}) {
level.Error(logger).Log("func", "Errorf", "msg", fmt.Sprintf(format, args...))
}
func Fatal(args ...interface{}) {
level.Error(logger).Log("func", "Fatal", "msg", fmt.Sprint(args...))
os.Exit(255)
}
func FatalDepth(depth int, args ...interface{}) {
level.Error(logger).Log("func", "FatalDepth", "msg", fmt.Sprint(args...))
os.Exit(255)
}
func Fatalln(args ...interface{}) {
level.Error(logger).Log("func", "Fatalln", "msg", fmt.Sprint(args...))
os.Exit(255)
}
func Fatalf(format string, args ...interface{}) {
level.Error(logger).Log("func", "Fatalf", "msg", fmt.Sprintf(format, args...))
os.Exit(255)
}
func Exit(args ...interface{}) {
level.Error(logger).Log("func", "Exit", "msg", fmt.Sprint(args...))
os.Exit(1)
}
func ExitDepth(depth int, args ...interface{}) {
level.Error(logger).Log("func", "ExitDepth", "msg", fmt.Sprint(args...))
os.Exit(1)
}
func Exitln(args ...interface{}) {
level.Error(logger).Log("func", "Exitln", "msg", fmt.Sprint(args...))
os.Exit(1)
}
func Exitf(format string, args ...interface{}) {
level.Error(logger).Log("func", "Exitf", "msg", fmt.Sprintf(format, args...))
os.Exit(1)
}

14
vendor/k8s.io/klog/.travis.yml generated vendored
View File

@ -1,14 +0,0 @@
language: go
dist: xenial
go:
- 1.9.x
- 1.10.x
- 1.11.x
script:
- go get -t -v ./...
- diff -u <(echo -n) <(gofmt -d .)
- diff -u <(echo -n) <(golint $(go list -e ./...))
- go tool vet .
- go test -v -race ./...
install:
- go get golang.org/x/lint/golint

31
vendor/k8s.io/klog/CONTRIBUTING.md generated vendored
View File

@ -1,31 +0,0 @@
# Contributing Guidelines
Welcome to Kubernetes. We are excited about the prospect of you joining our [community](https://github.com/kubernetes/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt:
_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._
## Getting Started
We have full documentation on how to get started contributing here:
<!---
If your repo has certain guidelines for contribution, put them here ahead of the general k8s resources
-->
- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests
- [Kubernetes Contributor Guide](http://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](http://git.k8s.io/community/contributors/guide#contributing)
- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet.md) - Common resources for existing developers
## Mentorship
- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!
<!---
Custom Information - if you're copying this template for the first time you can add custom content here, for example:
## Contact Information
- [Slack channel](https://kubernetes.slack.com/messages/kubernetes-users) - Replace `kubernetes-users` with your slack channel string, this will send users directly to your channel.
- [Mailing list](URL)
-->

310
vendor/k8s.io/klog/LICENSE generated vendored
View File

@ -1,180 +1,190 @@
Apache License Apache License
Version 2.0, January 2004 Version 2.0, January 2004
http://www.apache.org/licenses/ http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions. 1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and "License" shall mean the terms and conditions for use, reproduction,
distribution as defined by Sections 1 through 9 of this document. and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright "Licensor" shall mean the copyright owner or entity authorized by
owner that is granting the License. the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities "Legal Entity" shall mean the union of the acting entity and all
that control, are controlled by, or are under common control with that entity. other entities that control, are controlled by, or are under common
For the purposes of this definition, "control" means (i) the power, direct or control with that entity. For the purposes of this definition,
indirect, to cause the direction or management of such entity, whether by "control" means (i) the power, direct or indirect, to cause the
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the direction or management of such entity, whether by contract or
outstanding shares, or (iii) beneficial ownership of such entity. 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 "You" (or "Your") shall mean an individual or Legal Entity
permissions granted by this License. exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including "Source" form shall mean the preferred form for making modifications,
but not limited to software source code, documentation source, and configuration including but not limited to software source code, documentation
files. source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or "Object" form shall mean any form resulting from mechanical
translation of a Source form, including but not limited to compiled object code, transformation or translation of a Source form, including but
generated documentation, and conversions to other media types. 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 "Work" shall mean the work of authorship, whether in Source or
available under the License, as indicated by a copyright notice that is included Object form, made available under the License, as indicated by a
in or attached to the work (an example is provided in the Appendix below). 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 "Derivative Works" shall mean any work, whether in Source or Object
is based on (or derived from) the Work and for which the editorial revisions, form, that is based on (or derived from) the Work and for which the
annotations, elaborations, or other modifications represent, as a whole, an editorial revisions, annotations, elaborations, or other modifications
original work of authorship. For the purposes of this License, Derivative Works represent, as a whole, an original work of authorship. For the purposes
shall not include works that remain separable from, or merely link (or bind by of this License, Derivative Works shall not include works that remain
name) to the interfaces of, the Work and Derivative Works thereof. 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 "Contribution" shall mean any work of authorship, including
of the Work and any modifications or additions to that Work or Derivative Works the original version of the Work and any modifications or additions
thereof, that is intentionally submitted to Licensor for inclusion in the Work to that Work or Derivative Works thereof, that is intentionally
by the copyright owner or by an individual or Legal Entity authorized to submit submitted to Licensor for inclusion in the Work by the copyright owner
on behalf of the copyright owner. For the purposes of this definition, or by an individual or Legal Entity authorized to submit on behalf of
"submitted" means any form of electronic, verbal, or written communication sent the copyright owner. For the purposes of this definition, "submitted"
to the Licensor or its representatives, including but not limited to means any form of electronic, verbal, or written communication sent
communication on electronic mailing lists, source code control systems, and to the Licensor or its representatives, including but not limited to
issue tracking systems that are managed by, or on behalf of, the Licensor for communication on electronic mailing lists, source code control systems,
the purpose of discussing and improving the Work, but excluding communication and issue tracking systems that are managed by, or on behalf of, the
that is conspicuously marked or otherwise designated in writing by the copyright Licensor for the purpose of discussing and improving the Work, but
owner as "Not a Contribution." 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 "Contributor" shall mean Licensor and any individual or Legal Entity
of whom a Contribution has been received by Licensor and subsequently on behalf of whom a Contribution has been received by Licensor and
incorporated within the Work. subsequently incorporated within the Work.
2. Grant of Copyright License. 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.
Subject to the terms and conditions of this License, each Contributor hereby 3. Grant of Patent License. Subject to the terms and conditions of
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, this License, each Contributor hereby grants to You a perpetual,
irrevocable copyright license to reproduce, prepare Derivative Works of, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
publicly display, publicly perform, sublicense, and distribute the Work and such (except as stated in this section) patent license to make, have made,
Derivative Works in Source or Object form. 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.
3. Grant of Patent License. 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:
Subject to the terms and conditions of this License, each Contributor hereby (a) You must give any other recipients of the Work or
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, Derivative Works a copy of this License; and
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. (b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
You may reproduce and distribute copies of the Work or Derivative Works thereof (c) You must retain, in the Source form of any Derivative Works
in any medium, with or without modifications, and in Source or Object form, that You distribute, all copyright, patent, trademark, and
provided that You meet the following conditions: attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
You must give any other recipients of the Work or Derivative Works a copy of (d) If the Work includes a "NOTICE" text file as part of its
this License; and distribution, then any Derivative Works that You distribute must
You must cause any modified files to carry prominent notices stating that You include a readable copy of the attribution notices contained
changed the files; and within such NOTICE file, excluding those notices that do not
You must retain, in the Source form of any Derivative Works that You distribute, pertain to any part of the Derivative Works, in at least one
all copyright, patent, trademark, and attribution notices from the Source form of the following places: within a NOTICE text file distributed
of the Work, excluding those notices that do not pertain to any part of the as part of the Derivative Works; within the Source form or
Derivative Works; and documentation, if provided along with the Derivative Works; or,
If the Work includes a "NOTICE" text file as part of its distribution, then any within a display generated by the Derivative Works, if and
Derivative Works that You distribute must include a readable copy of the wherever such third-party notices normally appear. The contents
attribution notices contained within such NOTICE file, excluding those notices of the NOTICE file are for informational purposes only and
that do not pertain to any part of the Derivative Works, in at least one of the do not modify the License. You may add Your own attribution
following places: within a NOTICE text file distributed as part of the notices within Derivative Works that You distribute, alongside
Derivative Works; within the Source form or documentation, if provided along or as an addendum to the NOTICE text from the Work, provided
with the Derivative Works; or, within a display generated by the Derivative that such additional attribution notices cannot be construed
Works, if and wherever such third-party notices normally appear. The contents of as modifying the License.
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. 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.
Unless You explicitly state otherwise, any Contribution intentionally submitted 5. Submission of Contributions. Unless You explicitly state otherwise,
for inclusion in the Work by You to the Licensor shall be under the terms and any Contribution intentionally submitted for inclusion in the Work
conditions of this License, without any additional terms or conditions. by You to the Licensor shall be under the terms and conditions of
Notwithstanding the above, nothing herein shall supersede or modify the terms of this License, without any additional terms or conditions.
any separate license agreement you may have executed with Licensor regarding Notwithstanding the above, nothing herein shall supersede or modify
such Contributions. the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. 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.
This License does not grant permission to use the trade names, trademarks, 7. Disclaimer of Warranty. Unless required by applicable law or
service marks, or product names of the Licensor, except as required for agreed to in writing, Licensor provides the Work (and each
reasonable and customary use in describing the origin of the Work and Contributor provides its Contributions) on an "AS IS" BASIS,
reproducing the content of the NOTICE file. 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.
7. Disclaimer of Warranty. 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.
Unless required by applicable law or agreed to in writing, Licensor provides the 9. Accepting Warranty or Additional Liability. While redistributing
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, the Work or Derivative Works thereof, You may choose to offer,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, and charge a fee for, acceptance of support, warranty, indemnity,
including, without limitation, any warranties or conditions of TITLE, or other liability obligations and/or rights consistent with this
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are License. However, in accepting such obligations, You may act only
solely responsible for determining the appropriateness of using or on Your own behalf and on Your sole responsibility, not on behalf
redistributing the Work and assume any risks associated with Your exercise of of any other Contributor, and only if You agree to indemnify,
permissions under this License. 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.
8. Limitation of Liability. END OF TERMS AND CONDITIONS
In no event and under no legal theory, whether in tort (including negligence), APPENDIX: How to apply the Apache License to your work.
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. To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
While redistributing the Work or Derivative Works thereof, You may choose to replaced with your own identifying information. (Don't include
offer, and charge a fee for, acceptance of support, warranty, indemnity, or the brackets!) The text should be enclosed in the appropriate
other liability obligations and/or rights consistent with this License. However, comment syntax for the file format. We also recommend that a
in accepting such obligations, You may act only on Your own behalf and on Your file or class name and description of purpose be included on the
sole responsibility, not on behalf of any other Contributor, and only if You same "printed page" as the copyright notice for easier
agree to indemnify, defend, and hold each Contributor harmless for any liability identification within third-party archives.
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] Copyright [yyyy] [name of copyright owner]
@ -182,7 +192,7 @@ third-party archives.
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
You may obtain a copy of the License at You may obtain a copy of the License at
http://www.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 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, distributed under the License is distributed on an "AS IS" BASIS,

11
vendor/k8s.io/klog/OWNERS generated vendored
View File

@ -1,11 +0,0 @@
# See the OWNERS docs: https://git.k8s.io/community/contributors/guide/owners.md
approvers:
- dims
- thockin
- justinsb
- tallclair
- piosz
- brancz
- DirectXMan12
- lavalamp

103
vendor/k8s.io/klog/README.md generated vendored
View File

@ -1,51 +1,78 @@
klog # klog-gokit
====
klog is a permanant fork of https://github.com/golang/glog. original README from glog is below This packages is a replacement for [klog](https://github.com/kubernetes/klog)
in projects that use the [go-kit logger](https://godoc.org/github.com/go-kit/kit/log).
---- It is heavily inspired by the [`github.com/kubermatic/glog-gokit`](https://github.com/kubermatic/glog-gokit) package.
glog ## Usage
====
Leveled execution logs for Go. Override the official klog package with this one.
This simply replaces the code in `vendor/k8s.io/klog` with the code of this package.
This is an efficient pure Go implementation of leveled logs in the **With dep**
manner of the open source C++ package
https://github.com/google/glog
By binding methods to booleans it is possible to use the log package In your `Gopkg.toml`:
without paying the expense of evaluating the arguments to the log. ```toml
Through the -vmodule flag, the package also provides fine-grained [[override]]
control over logging at the file level. name = "k8s.io/klog"
source = "github.com/simonpasquier/klog-gokit"
```
The comment from glog.go introduces the ideas: **With Go modules**
Package glog implements logging analogous to the Google-internal Add this line to your `go.mod` file:
C++ INFO/ERROR/V setup. It provides functions Info, Warning,
Error, Fatal, plus formatting variants such as Infof. It
also provides V-style logging controlled by the -v and
-vmodule=file=2 flags.
Basic examples: ```
replace k8s.io/klog => github.com/kubermatic/klog-gokit master
```
glog.Info("Prepare to repel boarders") In your `main.go`:
```go
glog.Fatalf("Initialization failed: %s", err) // Import the package like it is original klog
import "k8s.io/klog"
See the documentation for the V function for an explanation
of these examples:
if glog.V(2) {
glog.Info("Starting transaction...")
}
glog.V(2).Infoln("Processed", nItems, "elements")
The repository contains an open source version of the log package // Create go-kit logger in your main.go
used inside Google. The master copy of the source lives inside logger := log.NewLogfmtLogger(log.NewSyncWriter(os.Stdout))
Google, not here. The code in this repo is for export only and is not itself logger = log.With(logger, "ts", log.DefaultTimestampUTC)
under development. Feature requests will be ignored. logger = log.With(logger, "caller", log.DefaultCaller)
logger = level.NewFilter(logger, level.AllowAll())
Send bug reports to golang-nuts@googlegroups.com. // Overriding the default klog with our go-kit klog implementation.
// Thus we need to pass it our go-kit logger object.
klog.SetLogger(logger)
```
Setting the logger to the klog package **MUST** happen before using klog in any package.
## Function Levels
| klog | gokit |
| ------------ | ----- |
| Info | Debug |
| InfoDepth | Debug |
| Infof | Debug |
| Infoln | Debug |
| Warning | Warn |
| WarningDepth | Warn |
| Warningf | Warn |
| Warningln | Warn |
| Error | Error |
| ErrorDepth | Error |
| Errorf | Error |
| Errorln | Error |
| Exit | Error |
| ExitDepth | Error |
| Exitf | Error |
| Exitln | Error |
| Fatal | Error |
| FatalDepth | Error |
| Fatalf | Error |
| Fatalln | Error |
This table is rather opinionated and build for use with the Kubernetes' [Go client](https://github.com/kubernetes/client-go).
## License
Apache License 2.0, see [LICENSE](https://github.com/simonpasquier/klog-gokit/blob/master/LICENSE).

9
vendor/k8s.io/klog/RELEASE.md generated vendored
View File

@ -1,9 +0,0 @@
# Release Process
The `klog` is released on an as-needed basis. The process is as follows:
1. An issue is proposing a new release with a changelog since the last release
1. All [OWNERS](OWNERS) must LGTM this release
1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`
1. The release issue is closed
1. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] kubernetes-template-project $VERSION is released`

20
vendor/k8s.io/klog/SECURITY_CONTACTS generated vendored
View File

@ -1,20 +0,0 @@
# Defined below are the security contacts for this repo.
#
# They are the contact point for the Product Security Team to reach out
# to for triaging and handling of incoming issues.
#
# The below names agree to abide by the
# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)
# and will be removed and replaced if they violate that agreement.
#
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
# INSTRUCTIONS AT https://kubernetes.io/security/
dims
thockin
justinsb
tallclair
piosz
brancz
DirectXMan12
lavalamp

10
vendor/k8s.io/klog/go.mod generated vendored Normal file
View File

@ -0,0 +1,10 @@
module github.com/simonpasquier/klog-gokit
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/go-kit/kit v0.8.0
github.com/go-logfmt/logfmt v0.4.0 // indirect
github.com/go-stack/stack v1.8.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/stretchr/testify v1.2.2
)

14
vendor/k8s.io/klog/go.sum generated vendored Normal file
View File

@ -0,0 +1,14 @@
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=

1198
vendor/k8s.io/klog/klog.go generated vendored

File diff suppressed because it is too large Load Diff

126
vendor/k8s.io/klog/klog_file.go generated vendored
View File

@ -1,126 +0,0 @@
// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/
//
// Copyright 2013 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.
// File I/O for logs.
package klog
import (
"errors"
"fmt"
"os"
"os/user"
"path/filepath"
"strings"
"sync"
"time"
)
// MaxSize is the maximum size of a log file in bytes.
var MaxSize uint64 = 1024 * 1024 * 1800
// logDirs lists the candidate directories for new log files.
var logDirs []string
func createLogDirs() {
if logging.logDir != "" {
logDirs = append(logDirs, logging.logDir)
}
logDirs = append(logDirs, os.TempDir())
}
var (
pid = os.Getpid()
program = filepath.Base(os.Args[0])
host = "unknownhost"
userName = "unknownuser"
)
func init() {
h, err := os.Hostname()
if err == nil {
host = shortHostname(h)
}
current, err := user.Current()
if err == nil {
userName = current.Username
}
// Sanitize userName since it may contain filepath separators on Windows.
userName = strings.Replace(userName, `\`, "_", -1)
}
// shortHostname returns its argument, truncating at the first period.
// For instance, given "www.google.com" it returns "www".
func shortHostname(hostname string) string {
if i := strings.Index(hostname, "."); i >= 0 {
return hostname[:i]
}
return hostname
}
// logName returns a new log file name containing tag, with start time t, and
// the name for the symlink for tag.
func logName(tag string, t time.Time) (name, link string) {
name = fmt.Sprintf("%s.%s.%s.log.%s.%04d%02d%02d-%02d%02d%02d.%d",
program,
host,
userName,
tag,
t.Year(),
t.Month(),
t.Day(),
t.Hour(),
t.Minute(),
t.Second(),
pid)
return name, program + "." + tag
}
var onceLogDirs sync.Once
// create creates a new log file and returns the file and its filename, which
// contains tag ("INFO", "FATAL", etc.) and t. If the file is created
// successfully, create also attempts to update the symlink for that tag, ignoring
// errors.
func create(tag string, t time.Time) (f *os.File, filename string, err error) {
if logging.logFile != "" {
f, err := os.Create(logging.logFile)
if err == nil {
return f, logging.logFile, nil
}
return nil, "", fmt.Errorf("log: unable to create log: %v", err)
}
onceLogDirs.Do(createLogDirs)
if len(logDirs) == 0 {
return nil, "", errors.New("log: no log dirs")
}
name, link := logName(tag, t)
var lastErr error
for _, dir := range logDirs {
fname := filepath.Join(dir, name)
f, err := os.Create(fname)
if err == nil {
symlink := filepath.Join(dir, link)
os.Remove(symlink) // ignore err
os.Symlink(name, symlink) // ignore err
return f, fname, nil
}
lastErr = err
}
return nil, "", fmt.Errorf("log: cannot create log: %v", lastErr)
}

6
vendor/modules.txt vendored
View File

@ -62,15 +62,13 @@ github.com/go-ini/ini
# github.com/go-kit/kit v0.8.0 # github.com/go-kit/kit v0.8.0
github.com/go-kit/kit/log github.com/go-kit/kit/log
github.com/go-kit/kit/log/level github.com/go-kit/kit/log/level
# github.com/go-logfmt/logfmt v0.3.0 # github.com/go-logfmt/logfmt v0.4.0
github.com/go-logfmt/logfmt github.com/go-logfmt/logfmt
# github.com/gogo/protobuf v1.1.1 # github.com/gogo/protobuf v1.1.1
github.com/gogo/protobuf/proto github.com/gogo/protobuf/proto
github.com/gogo/protobuf/types github.com/gogo/protobuf/types
github.com/gogo/protobuf/sortkeys github.com/gogo/protobuf/sortkeys
github.com/gogo/protobuf/jsonpb github.com/gogo/protobuf/jsonpb
# github.com/golang/glog v0.0.0-20141105023935-44145f04b68c => github.com/kubermatic/glog-gokit v0.0.0-20181129151237-8ab7e4c2d352
github.com/golang/glog
# github.com/golang/protobuf v1.2.0 # github.com/golang/protobuf v1.2.0
github.com/golang/protobuf/proto github.com/golang/protobuf/proto
github.com/golang/protobuf/jsonpb github.com/golang/protobuf/jsonpb
@ -457,7 +455,7 @@ k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake
k8s.io/client-go/kubernetes/typed/storage/v1/fake k8s.io/client-go/kubernetes/typed/storage/v1/fake
k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake
k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake
# k8s.io/klog v0.1.0 # k8s.io/klog v0.1.0 => github.com/simonpasquier/klog-gokit v0.1.0
k8s.io/klog k8s.io/klog
# k8s.io/kube-openapi v0.0.0-20180629012420-d83b052f768a # k8s.io/kube-openapi v0.0.0-20180629012420-d83b052f768a
k8s.io/kube-openapi/pkg/util/proto k8s.io/kube-openapi/pkg/util/proto