From 93d4f2c77a1e4e754e57805acd5fe1173c9d9def Mon Sep 17 00:00:00 2001 From: Ta-Ching Chen Date: Sun, 2 Jun 2019 14:29:38 +0800 Subject: [PATCH] Add static code analysis to CI test (#1197) --- .travis.yml | 8 +-- go.mod | 16 ------ go.sum | 52 +++++++++---------- hack/travis-kube-setup.sh | 19 +++++-- hack/verify-staticcheck.sh | 17 ++++++ pkg/buildermgr/envwatcher.go | 35 ------------- pkg/buildermgr/pkgwatcher.go | 2 - pkg/error/httperror.go | 18 +++++-- pkg/fission-cli/environment.go | 15 ------ pkg/fission-cli/function.go | 6 +-- pkg/fission-cli/httptrigger.go | 6 ++- pkg/fission-cli/logdb/influxdb.go | 2 +- pkg/fission-cli/package.go | 5 +- pkg/fission-cli/recorder.go | 11 +++- pkg/fission-cli/spec.go | 20 ++++--- pkg/fission-cli/support/dump.go | 2 +- .../support/resources/fissionversion.go | 3 +- .../support/resources/kubernetes.go | 2 - pkg/fission-cli/watch.go | 6 --- pkg/logger/logger.go | 24 ++++----- test/utils.sh | 7 ++- .../port-forward-nats.sh | 0 .../port-forward-router.sh | 0 23 files changed, 130 insertions(+), 146 deletions(-) create mode 100755 hack/verify-staticcheck.sh rename port-forward-nats.sh => tools/port-forward-nats.sh (100%) rename port-forward-router.sh => tools/port-forward-router.sh (100%) diff --git a/.travis.yml b/.travis.yml index adfa0d63..49f2e4bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,7 @@ cache: directories: - $HOME/google-cloud-sdk/ - $HOME/k8scli + - $HOME/tool services: - docker @@ -29,15 +30,16 @@ install: - hack/travis-kube-setup.sh env: - - KUBECONFIG=${HOME}/.kube/config PATH=$HOME/k8scli:${PATH} GO111MODULE=on + - KUBECONFIG=${HOME}/.kube/config PATH=$HOME/k8scli:$HOME/tool:$HOME/google-cloud-sdk/bin:${PATH} GO111MODULE=on before_script: - cd ${TRAVIS_BUILD_DIR} + - go mod download + - go mod vendor + - hack/verify-staticcheck.sh - hack/verify-gofmt.sh - hack/verify-govet.sh - helm lint charts/fission-all/ charts/fission-core/ - - go mod download - - go mod vendor - go build -o cmd/fission-cli/fission ./cmd/fission-cli/ - hack/runtests.sh diff --git a/go.mod b/go.mod index 4e3b0697..5e1f85cf 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,6 @@ require ( github.com/Azure/azure-sdk-for-go v12.4.0-beta+incompatible github.com/Azure/go-autorest v9.9.0+incompatible // indirect github.com/Shopify/sarama v1.21.0 - github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc // indirect - github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da // indirect github.com/blend/go-sdk v1.1.1 // indirect github.com/bsm/sarama-cluster v2.1.15+incompatible @@ -21,15 +19,11 @@ require ( github.com/elazarl/goproxy v0.0.0-20181111060418-2ce16c963a8a // indirect github.com/fsnotify/fsnotify v1.4.7 github.com/ghodss/yaml v1.0.0 - github.com/go-kit/kit v0.8.0 // indirect - github.com/go-logfmt/logfmt v0.3.0 // indirect github.com/go-sql-driver/mysql v1.4.1 // indirect - github.com/go-stack/stack v1.8.0 // indirect github.com/gogo/protobuf v1.1.1 // indirect github.com/golang/example v0.0.0-20170904185048-46695d81d1fa github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect - github.com/golang/mock v1.2.0 // indirect github.com/golang/protobuf v1.2.0 github.com/gomodule/redigo v0.0.0-20180627144507-2cd21d9966bf github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367 // indirect @@ -38,7 +32,6 @@ require ( github.com/gorilla/handlers v1.4.0 github.com/gorilla/mux v1.7.0 github.com/graymeta/stow v0.0.0-20180719215413-7b5498c561bb - github.com/grpc-ecosystem/grpc-gateway v1.6.2 // indirect github.com/hashicorp/errwrap v0.0.0-20180715044906-d6c0cd880357 // indirect github.com/hashicorp/go-immutable-radix v1.0.0 // indirect github.com/hashicorp/go-msgpack v0.5.3 // indirect @@ -48,14 +41,11 @@ require ( github.com/imdario/mergo v0.3.3 github.com/influxdata/influxdb v1.2.0 github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3 // indirect - github.com/julienschmidt/httprouter v1.2.0 // indirect - github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 // indirect github.com/kr/pretty v0.1.0 // indirect github.com/marstr/guid v0.0.0-20170427235115-8bdf7d1a087c // indirect github.com/mholt/archiver v0.0.0-20180417220235-e4ef56d48eb0 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da // indirect - github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223 // indirect github.com/nats-io/gnatsd v1.4.1 // indirect github.com/nats-io/go-nats v1.6.0 // indirect github.com/nats-io/go-nats-streaming v0.4.0 @@ -64,7 +54,6 @@ require ( github.com/nwaples/rardecode v0.0.0-20171029023500-e06696f847ae // indirect github.com/onsi/ginkgo v1.8.0 // indirect github.com/onsi/gomega v1.5.0 // indirect - github.com/openzipkin/zipkin-go v0.1.3 // indirect github.com/pascaldekloe/goe v0.1.0 // indirect github.com/pkg/errors v0.8.0 github.com/prometheus/client_golang v0.8.0 @@ -85,19 +74,14 @@ require ( go.uber.org/multierr v1.1.0 // indirect go.uber.org/zap v1.9.1 golang.org/x/image v0.0.0-20190321063152-3fc05d484e9f // indirect - golang.org/x/lint v0.0.0-20181217174547-8f45f776aaf1 // indirect golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 // indirect golang.org/x/sys v0.0.0-20181218192612-074acd46bca6 // indirect golang.org/x/time v0.0.0-20161028155119-f51c12702a4d // indirect - golang.org/x/tools v0.0.0-20181219222714-6e267b5cc78e // indirect google.golang.org/api v0.0.0-20190123234818-8001663557ac // indirect - google.golang.org/genproto v0.0.0-20181219182458-5a97ab628bfb // indirect - gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect gopkg.in/inf.v0 v0.9.0 // indirect gopkg.in/yaml.v2 v2.2.2 - honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3 // indirect k8s.io/api v0.0.0-20190116205037-c89978d5f86d k8s.io/apiextensions-apiserver v0.0.0-20190116211702-f0729a5940c5 k8s.io/apimachinery v0.0.0-20190116203031-d49e237a2683 diff --git a/go.sum b/go.sum index 418f62e8..83f3ab2a 100644 --- a/go.sum +++ b/go.sum @@ -2,7 +2,6 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -git.apache.org/thrift.git v0.0.0-20181218151757-9b75e4fe745a/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= git.apache.org/thrift.git v0.12.0 h1:CMxsZlAmxKs+VAZMlDDL0wXciMblJcutQbEe3A9CYUM= git.apache.org/thrift.git v0.12.0/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= github.com/Azure/azure-sdk-for-go v12.4.0-beta+incompatible h1:juJmt2g5DmkAPI7vIOMBmDyt4LNX65gyh9sJpQrhXN0= @@ -14,10 +13,10 @@ github.com/DataDog/zstd v1.3.5 h1:DtpNbljikUepEPD16hD4LvIcmhnhdLTiW/5pHgbmp14= github.com/DataDog/zstd v1.3.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/Shopify/sarama v1.21.0 h1:0GKs+e8mn1RRUzfg9oUXv3v7ZieQLmOZF/bfnmmGhM8= github.com/Shopify/sarama v1.21.0/go.mod h1:yuqtN/pe8cXRWG5zPaO7hCfNJp5MwmkoJEoLjkm5tCQ= +github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/airbrake/gobrake v3.6.1+incompatible/go.mod h1:wM4gu3Cn0W0K7GUuVWnlXZU11AGBXMILnrdOU8Kn00o= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -25,6 +24,7 @@ github.com/blend/go-sdk v1.1.1 h1:R7PcwuIxYvrGc/r9TLLfMpajIboTjqs/HyQouzgJ7mQ= github.com/blend/go-sdk v1.1.1/go.mod h1:IP1XHXFveOXHRnojRJO7XvqWGqyzevtXND9AdSztAe8= github.com/bsm/sarama-cluster v2.1.15+incompatible h1:RkV6WiNRnqEEbp81druK8zYhmnIgdOjqSVi0+9Cnl2A= github.com/bsm/sarama-cluster v2.1.15+incompatible/go.mod h1:r7ao+4tTNXvWm+VRpRJchr2kQhqxgmAp2iEX5W96gMM= +github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927 h1:SKI1/fuSdodxmNNyVBR8d7X/HuLnRpvvFO0AgyQk764= github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -33,6 +33,7 @@ github.com/dchest/uniuri v0.0.0-20160212164326-8902c56451e9 h1:74lLNRzvsdIlkTgfD github.com/dchest/uniuri v0.0.0-20160212164326-8902c56451e9/go.mod h1:GgB8SF9nRG+GqaDtLcwJZsQFhcogVCJ79j4EdT0c2V4= github.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda h1:NyywMz59neOoVRFDz+ccfKWxn784fiHMDnZSy6T+JXY= github.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= @@ -48,15 +49,14 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8 github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/elazarl/goproxy v0.0.0-20181111060418-2ce16c963a8a h1:A4wNiqeKqU56ZhtnzJCTyPZ1+cyu8jKtIchQ3TtxHgw= github.com/elazarl/goproxy v0.0.0-20181111060418-2ce16c963a8a/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/example v0.0.0-20170904185048-46695d81d1fa h1:iqCQC2Z53KkwGgTN9szyL4q0OQHmuNjeoNnMT6lk66k= @@ -65,16 +65,17 @@ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF0 github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef h1:veQD95Isof8w9/WXiA+pa3tz3fJXkt5B7QaRBrM62gk= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v0.0.0-20180627144507-2cd21d9966bf h1:QiyWcEIeOkPTyeLwN4mguSULP/PWjmejPsU9elZAOeY= github.com/gomodule/redigo v0.0.0-20180627144507-2cd21d9966bf/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367 h1:ScAXWS+TR6MZKex+7Z8rneuSJH+FSDqd6ocQyl+ZHo4= github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= @@ -89,19 +90,23 @@ github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/graymeta/stow v0.0.0-20180719215413-7b5498c561bb h1:3xqdE5SXbWWtvGFJ4GQIOp9iokcfNyOa2ZMGlbe7QJo= github.com/graymeta/stow v0.0.0-20180719215413-7b5498c561bb/go.mod h1:B24dekNjtWVeREK+dyMHtI22d85VzCT+sX5bVWDtjoA= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= -github.com/grpc-ecosystem/grpc-gateway v1.6.2/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/hashicorp/errwrap v0.0.0-20180715044906-d6c0cd880357 h1:Rem2+U35z1QtPQc6r+WolF7yXiefXqDKyk+lN2pE164= github.com/hashicorp/errwrap v0.0.0-20180715044906-d6c0cd880357/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v0.0.0-20180717150148-3d5d8f294aa0 h1:j30noezaCfvNLcdMYSvHLv81DxYRSt1grlpseG67vhU= github.com/hashicorp/go-multierror v0.0.0-20180717150148-3d5d8f294aa0/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= +github.com/hashicorp/go-uuid v1.0.0 h1:RS8zrF7PhGwyNPOtxSClXXj9HA8feRnJzgnI1RJCSnM= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/raft v1.0.0 h1:htBVktAOtGs4Le5Z7K8SF5H2+oWsQFYVmOgH5loro7Y= github.com/hashicorp/raft v1.0.0/go.mod h1:DVSAWItjLjTOkVbSpWQ0j0kUADIvDaCtBxIcbNAQLkI= github.com/howeyc/gopass v0.0.0-20170109162249-bf9dde6d0d2c h1:kQWxfPIHVLbgLzphqk3QUflDy9QdksZR4ygR807bpy0= github.com/howeyc/gopass v0.0.0-20170109162249-bf9dde6d0d2c/go.mod h1:lADxMC39cJJqL93Duh1xhAs4I2Zs8mKS89XWXFGp9cs= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/imdario/mergo v0.3.3 h1:ykJmnl1fiDtSWG6pvkGdccTS4PnsrCN9lPkuzSCA25w= github.com/imdario/mergo v0.3.3/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -109,14 +114,15 @@ github.com/influxdata/influxdb v1.2.0 h1:ZSB1cdZP9/8yyFzZhyaHimPL55Qo2kRDv2VhgnC github.com/influxdata/influxdb v1.2.0/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3 h1:/UewZcckqhvnnS0C6r3Sher2hSEbVmM6Ogpcjen08+Y= github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 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/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/marstr/guid v0.0.0-20170427235115-8bdf7d1a087c h1:N7uWGS2fTwH/4BwxbHiJZNAFTSJ5yPU0emHsQWvkxEY= github.com/marstr/guid v0.0.0-20170427235115-8bdf7d1a087c/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= @@ -128,7 +134,7 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da h1:ZQGIPjr1iTtUPXZFk8WShqb5G+Qg65VHFLtSvmHh+Mw= github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nats-io/gnatsd v1.4.1 h1:RconcfDeWpKCD6QIIwiVFcvForlXpWeJP7i5/lDLy44= github.com/nats-io/gnatsd v1.4.1/go.mod h1:nqco77VO78hLCJpIcVfygDP2rPGfsEHkGTUk94uh5DQ= github.com/nats-io/go-nats v1.6.0 h1:FznPwMfrVwGnSCh7JTXyJDRW0TIkD4Tr+M1LPJt9T70= github.com/nats-io/go-nats v1.6.0/go.mod h1:+t7RHT5ApZebkrQdnn6AhQJmhJJiKAvJUio1PiiCtj0= @@ -141,11 +147,13 @@ github.com/nats-io/nuid v0.0.0-20180712044959-3024a71c3cbe/go.mod h1:19wcPz3Ph3q github.com/nwaples/rardecode v0.0.0-20171029023500-e06696f847ae h1:UF9xsJn7AeQ72TCus3eRO1lh08Id3AoF37vl+qigL/w= github.com/nwaples/rardecode v0.0.0-20171029023500-e06696f847ae/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= -github.com/openzipkin/zipkin-go v0.1.3/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= +github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -155,18 +163,12 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.8.0 h1:1921Yw9Gc3iSc4VQh3PIoOqgPCZS7G/4xQNVUp8Mda8= github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.2 h1:awm861/B8OKDd2I/6o1dy3ra4BamzKhYOiGItCeZ740= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f h1:BVwpUVJDADN2ufcGik7W992pyps0wZ888b/y9GXcLTU= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e h1:n/3MEhJQjQxrOUCzh1Y3Re6aJUUWRp2M9+Oc3eVn/54= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.1.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1 h1:/K3IL0Z1quvmJ7X0A1AwNEK7CRkVK3YwfOU/QAL4WGg= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a h1:9ZKAASQSHhDYGoxY8uLVpewe1GDZ2vu2Tr/vTdVAkFQ= @@ -189,11 +191,10 @@ github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/wcharczuk/go-chart v2.0.1+incompatible h1:0pz39ZAycJFF7ju/1mepnk26RLVLBCWz1STcD3doU0A= github.com/wcharczuk/go-chart v2.0.1+incompatible/go.mod h1:PF5tmL4EIx/7Wf+hEkpCqYi5He4u90sw+0+6FhrryuE= +go.etcd.io/bbolt v1.3.2 h1:Z/90sZLPOeCy2PwprqkFa25PdkusRzaj9P8zm/KNyvk= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.18.0 h1:Mk5rgZcggtbvtAun5aJzAtjKKN/t0R3jJPlWILlv938= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= -go.opencensus.io v0.19.0/go.mod h1:AYeH0+ZxYyghG8diqaaIq/9P3VgCCt5GF2ldCY4dkFg= -go.opencensus.io v0.19.1/go.mod h1:gug0GbSHa8Pafr0d2urOSgoXHZ6x/RUlaiT0d9pqb4A= go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= @@ -206,12 +207,10 @@ golang.org/x/image v0.0.0-20190321063152-3fc05d484e9f h1:FO4MZ3N56GnxbqxGKqh+YTz golang.org/x/image v0.0.0-20190321063152-3fc05d484e9f/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3 h1:ulvT7fqt0yHWzpJwI57MezWnYDVpCAYBVuYst/L+fAY= golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -225,7 +224,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181218192612-074acd46bca6 h1:MXtOG7w2ND9qNCUZSDBGll/SpVIq7ftozR9I8/JGBHY= golang.org/x/sys v0.0.0-20181218192612-074acd46bca6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= @@ -234,9 +232,7 @@ golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wk golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181205014116-22934f0fdb62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181219222714-6e267b5cc78e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20190123234818-8001663557ac h1:cb/4gikrQnypAmwdJ80ZtUI2bY4iWg6PNxlMSW+iOoQ= google.golang.org/api v0.0.0-20190123234818-8001663557ac/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -245,22 +241,22 @@ google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= -google.golang.org/genproto v0.0.0-20181219182458-5a97ab628bfb/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o= gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/api v0.0.0-20190116205037-c89978d5f86d h1:uExNkigJxDBdOdIkSpNgySNGTVBRwGS7nW0yHTTg5K0= k8s.io/api v0.0.0-20190116205037-c89978d5f86d/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= k8s.io/apiextensions-apiserver v0.0.0-20190116211702-f0729a5940c5 h1:kxlCEjuAcjKozmChZ3dB2W8WP2B9egTOv1z3JoRWKx4= diff --git a/hack/travis-kube-setup.sh b/hack/travis-kube-setup.sh index 6adc2508..54308e05 100755 --- a/hack/travis-kube-setup.sh +++ b/hack/travis-kube-setup.sh @@ -6,6 +6,22 @@ set -e +TOOL_DIR=$HOME/tool + +if [ ! -d $TOOL_DIR ] +then + mkdir -p $TOOL_DIR +fi + +# Get staticcheck +STATICCHECK_VERSION=2019.1.1 +if [ ! -f $TOOL_DIR/staticcheck ] +then + curl -LO https://github.com/dominikh/go-tools/releases/download/${STATICCHECK_VERSION}/staticcheck_linux_amd64 + chmod +x staticcheck_linux_amd64 + mv staticcheck_linux_amd64 $TOOL_DIR/staticcheck +fi + K8SCLI_DIR=$HOME/k8scli if [ ! -d $K8SCLI_DIR ] @@ -52,9 +68,6 @@ then curl https://sdk.cloud.google.com | bash fi -# gcloud command -export PATH=${HOME}/google-cloud-sdk/bin:${PATH} - # ensure we have the gcloud binary gcloud version diff --git a/hack/verify-staticcheck.sh b/hack/verify-staticcheck.sh new file mode 100755 index 00000000..88cad13b --- /dev/null +++ b/hack/verify-staticcheck.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -o errexit +set -o nounset +set -o pipefail + +ROOT=`realpath $(dirname $0)/..` + +# Currently here only lists the packages that already addressed all warnings for gradual code repair. +# That means we don't allow adding new warnings to any of package in list. And eventually, the +# list will be replaced by find command. +declare -a pkgs=("pkg/builder" "pkg/builder" "pkg/crd" "pkg/logger" "pkg/buildermgr" "pkg/fission-cli" "cmd/fission-cli") + +for pkg in "${pkgs[@]}" +do + find ${ROOT}/${pkg} -type d |grep -v influxdb | xargs -I@ staticcheck @ +done diff --git a/pkg/buildermgr/envwatcher.go b/pkg/buildermgr/envwatcher.go index 0a12dff0..74ab4170 100644 --- a/pkg/buildermgr/envwatcher.go +++ b/pkg/buildermgr/envwatcher.go @@ -87,7 +87,6 @@ type ( fetcherConfig *fetcherConfig.Config builderImagePullPolicy apiv1.PullPolicy useIstio bool - collectorEndpoint string } ) @@ -389,40 +388,6 @@ func (envw *environmentWatcher) deleteBuilderDeploymentByName(name, namespace st return nil } -func (envw *environmentWatcher) deleteBuilderService(sel map[string]string, ns string) error { - svcList, err := envw.getBuilderServiceList(sel, ns) - if err != nil { - return err - } - for _, svc := range svcList { - envw.logger.Info("removing builder service", zap.String("service_name", svc.ObjectMeta.Name)) - err = envw.kubernetesClient.CoreV1(). - Services(ns). - Delete(svc.ObjectMeta.Name, &delOpt) - if err != nil { - return errors.Wrap(err, "error deleting builder service") - } - } - return nil -} - -func (envw *environmentWatcher) deleteBuilderDeployment(sel map[string]string, ns string) error { - deployList, err := envw.getBuilderDeploymentList(sel, ns) - if err != nil { - return err - } - for _, deploy := range deployList { - envw.logger.Info("removing builder deployment", zap.String("deployment_name", deploy.ObjectMeta.Name)) - err = envw.kubernetesClient.ExtensionsV1beta1(). - Deployments(ns). - Delete(deploy.ObjectMeta.Name, &delOpt) - if err != nil { - return errors.Wrap(err, "error deleteing builder deployment") - } - } - return nil -} - func (envw *environmentWatcher) getBuilderServiceList(sel map[string]string, ns string) ([]apiv1.Service, error) { svcList, err := envw.kubernetesClient.CoreV1().Services(ns).List( metav1.ListOptions{ diff --git a/pkg/buildermgr/pkgwatcher.go b/pkg/buildermgr/pkgwatcher.go index 88dbf738..df9af006 100644 --- a/pkg/buildermgr/pkgwatcher.go +++ b/pkg/buildermgr/pkgwatcher.go @@ -227,8 +227,6 @@ func (pkgw *packageWatcher) build(buildCache *cache.Cache, srcpkg *fv1.Package) pkgw.logger.Error("max retries exceeded in building source package, timeout due to environment builder not ready", zap.String("package", fmt.Sprintf("%s.%s", pkg.Metadata.Name, pkg.Metadata.Namespace))) - - return } func (pkgw *packageWatcher) watchPackages(fissionClient *crd.FissionClient, diff --git a/pkg/error/httperror.go b/pkg/error/httperror.go index a4c59ebb..d74301f9 100644 --- a/pkg/error/httperror.go +++ b/pkg/error/httperror.go @@ -87,6 +87,14 @@ func (err Error) HTTPStatus() int { return code } +func (err Error) Description() string { + idx := int(err.Code) + if idx < 0 || idx > len(errorDescriptions)-1 { + return "" + } + return errorDescriptions[idx] +} + func GetHTTPError(err error) (int, string) { var msg string var code int @@ -101,12 +109,12 @@ func GetHTTPError(err error) (int, string) { return code, msg } -func (err Error) Description() string { - idx := int(err.Code) - if idx < 0 || idx > len(errorDescriptions)-1 { - return "" +func IsNotFound(err error) bool { + fe, ok := err.(Error) + if !ok { + return false } - return errorDescriptions[idx] + return fe.Code == ErrorNotFound } const ( diff --git a/pkg/fission-cli/environment.go b/pkg/fission-cli/environment.go index d077d363..1490e0eb 100644 --- a/pkg/fission-cli/environment.go +++ b/pkg/fission-cli/environment.go @@ -28,25 +28,10 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" fv1 "github.com/fission/fission/pkg/apis/fission.io/v1" - "github.com/fission/fission/pkg/controller/client" "github.com/fission/fission/pkg/fission-cli/log" "github.com/fission/fission/pkg/fission-cli/util" ) -func getFunctionsByEnvironment(client *client.Client, envName, envNamespace string) ([]fv1.Function, error) { - fnList, err := client.FunctionList(metav1.NamespaceAll) - if err != nil { - return nil, err - } - fns := []fv1.Function{} - for _, fn := range fnList { - if fn.Spec.Environment.Name == envName && fn.Spec.Environment.Namespace == envNamespace { - fns = append(fns, fn) - } - } - return fns, nil -} - func envCreate(c *cli.Context) error { client := util.GetApiClient(c.GlobalString("server")) diff --git a/pkg/fission-cli/function.go b/pkg/fission-cli/function.go index d52968ba..09ad2193 100644 --- a/pkg/fission-cli/function.go +++ b/pkg/fission-cli/function.go @@ -87,7 +87,7 @@ func getInvokeStrategy(c *cli.Context, existingInvokeStrategy *fv1.InvokeStrateg case types.ExecutorTypeNewdeploy: newFnExecutor = types.ExecutorTypeNewdeploy default: - return nil, errors.New("Executor type must be one of 'poolmgr' or 'newdeploy', defaults to 'poolmgr'") + return nil, errors.New("executor type must be one of 'poolmgr' or 'newdeploy', defaults to 'poolmgr'") } if existingInvokeStrategy != nil { @@ -138,12 +138,12 @@ func getInvokeStrategy(c *cli.Context, existingInvokeStrategy *fv1.InvokeStrateg if c.IsSet("maxscale") { maxScale = c.Int("maxscale") if maxScale <= 0 { - return nil, errors.New("Maxscale must be greater than 0") + return nil, errors.New("maxscale must be greater than 0") } } if minScale > maxScale { - return nil, errors.New(fmt.Sprintf("Minscale provided: %v can not be greater than maxscale value %v", minScale, maxScale)) + return nil, fmt.Errorf("minscale provided: %v can not be greater than maxscale value %v", minScale, maxScale) } // Right now a simple single case strategy implementation diff --git a/pkg/fission-cli/httptrigger.go b/pkg/fission-cli/httptrigger.go index ff46755f..91c8f39d 100644 --- a/pkg/fission-cli/httptrigger.go +++ b/pkg/fission-cli/httptrigger.go @@ -28,6 +28,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" fv1 "github.com/fission/fission/pkg/apis/fission.io/v1" + ferror "github.com/fission/fission/pkg/error" "github.com/fission/fission/pkg/fission-cli/log" "github.com/fission/fission/pkg/fission-cli/util" ) @@ -74,7 +75,7 @@ func setHtFunctionRef(functionList []string, functionWeightsList []int) (*fv1.Fu log.Fatal("The function weights should add up to 100") } - functionWeights := make(map[string]int, 0) + functionWeights := make(map[string]int) for index := range functionList { functionWeights[functionList[index]] = functionWeightsList[index] } @@ -113,6 +114,9 @@ func htCreate(c *cli.Context) error { } htTrigger, err := client.HTTPTriggerGet(m) + if err != nil && !ferror.IsNotFound(err) { + log.Fatal(err.Error()) + } if htTrigger != nil { util.CheckErr(fmt.Errorf("duplicate trigger exists"), "choose a different name or leave it empty for fission to auto-generate it") } diff --git a/pkg/fission-cli/logdb/influxdb.go b/pkg/fission-cli/logdb/influxdb.go index b969e7e6..57a5d63a 100644 --- a/pkg/fission-cli/logdb/influxdb.go +++ b/pkg/fission-cli/logdb/influxdb.go @@ -178,7 +178,7 @@ func (influx InfluxDB) query(query influxdbClient.Query) (*influxdbClient.Respon decoder := json.NewDecoder(resp.Body) decoder.UseNumber() if decoder.Decode(&response) != nil { - return nil, fmt.Errorf("Failed to decode influxdb response: %v", err) + return nil, fmt.Errorf("failed to decode influxdb response: %v", err) } return &response, nil } diff --git a/pkg/fission-cli/package.go b/pkg/fission-cli/package.go index af873da4..a70f9aee 100644 --- a/pkg/fission-cli/package.go +++ b/pkg/fission-cli/package.go @@ -403,6 +403,9 @@ func pkgDelete(c *cli.Context) error { util.CheckErr(err, "find package") fnList, err := getFunctionsByPackage(client, pkgName, pkgNamespace) + if err != nil { + return err + } if !force && len(fnList) > 0 { log.Fatal("Package is used by at least one function, use -f to force delete") @@ -680,8 +683,8 @@ func writeArchiveToFile(fileName string, reader io.Reader) error { // and write it to temp file for further usage func downloadToTempFile(fileUrl string) string { reader, err := downloadURL(fileUrl) - defer reader.Close() util.CheckErr(err, fmt.Sprintf("download from url: %v", fileUrl)) + defer reader.Close() tmpDir, err := utils.GetTempDir() util.CheckErr(err, "create temp directory") diff --git a/pkg/fission-cli/recorder.go b/pkg/fission-cli/recorder.go index cfc7e17c..3c7ad968 100644 --- a/pkg/fission-cli/recorder.go +++ b/pkg/fission-cli/recorder.go @@ -55,7 +55,9 @@ func recorderCreate(c *cli.Context) error { if len(triggersOriginal) != 0 { ts := strings.Split(triggersOriginal[0], ",") for _, name := range ts { - triggers = append(triggers, name) + if len(name) > 0 { + triggers = append(triggers, name) + } } } // TODO: Define appropriate set of policies and defaults @@ -147,6 +149,9 @@ func recorderUpdate(c *cli.Context) error { Name: recName, Namespace: "default", }) + if err != nil { + util.CheckErr(err, "get recorder") + } updated := false @@ -174,7 +179,9 @@ func recorderUpdate(c *cli.Context) error { var newTriggers []string triggs := strings.Split(triggers[0], ",") for _, name := range triggs { - newTriggers = append(newTriggers, name) + if len(name) > 0 { + newTriggers = append(newTriggers, name) + } } recorder.Spec.Triggers = newTriggers updated = true diff --git a/pkg/fission-cli/spec.go b/pkg/fission-cli/spec.go index 46c3dac0..ff750b34 100644 --- a/pkg/fission-cli/spec.go +++ b/pkg/fission-cli/spec.go @@ -449,6 +449,10 @@ func (fr *FissionResources) parseYaml(b []byte, loc *location) error { // unmarshal again into the "real" struct once we know the type. var tm TypeMeta err := yaml.Unmarshal(b, &tm) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("Failed to decode yaml %v", string(b))) + } + switch tm.Kind { case "Package": var v fv1.Package @@ -578,6 +582,10 @@ func readSpecs(specDir string) (*FissionResources, error) { // Users can organize the specdir into subdirs if they want to. err := filepath.Walk(specDir, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + // For now just read YAML files. We'll add jsonnet at some point. Skip // unsupported files. if !(strings.HasSuffix(path, ".yaml") || strings.HasSuffix(path, ".yml")) { @@ -615,7 +623,7 @@ func readSpecs(specDir string) (*FissionResources, error) { if err != nil { return nil, err } - if err := result.ErrorOrNil(); err != nil { + if err = result.ErrorOrNil(); err != nil { return nil, err } @@ -634,7 +642,7 @@ func waitForFileWatcherToSettleDown(watcher *fsnotify.Watcher) error { time.Sleep(500 * time.Millisecond) for { select { - case _ = <-watcher.Events: + case <-watcher.Events: time.Sleep(200 * time.Millisecond) continue case err := <-watcher.Errors: @@ -878,7 +886,7 @@ func applyArchives(fclient *client.Client, specDir string, fr *FissionResources) if strings.HasPrefix(ar.URL, ARCHIVE_URL_PREFIX) { availableAr, ok := archiveFiles[ar.URL] if !ok { - return fmt.Errorf("Unknown archive name %v", strings.TrimPrefix(ar.URL, ARCHIVE_URL_PREFIX)) + return fmt.Errorf("unknown archive name %v", strings.TrimPrefix(ar.URL, ARCHIVE_URL_PREFIX)) } ar.Type = availableAr.Type ar.Literal = availableAr.Literal @@ -927,7 +935,7 @@ func applyResources(fclient *client.Client, specDir string, fr *FissionResources // spec. It may exist outside the spec, but we're going to treat // that as an error, so that we encourage self-contained specs. // Is there a good use case for non-self contained specs? - return nil, nil, fmt.Errorf("Function %v/%v references package %v/%v, which doesn't exist in the specs", + return nil, nil, fmt.Errorf("function %v/%v references package %v/%v, which doesn't exist in the specs", f.Metadata.Namespace, f.Metadata.Name, f.Spec.Package.PackageRef.Namespace, f.Spec.Package.PackageRef.Name) } fr.functions[i].Spec.Package.PackageRef.ResourceVersion = m.ResourceVersion @@ -998,7 +1006,7 @@ func localArchiveFromSpec(specDir string, aus *ArchiveUploadSpec) (*fv1.Archive, } if len(files) == 0 { - return nil, fmt.Errorf("Archive '%v' is empty", aus.Name) + return nil, fmt.Errorf("archive '%v' is empty", aus.Name) } // if it's just one file, use its path directly @@ -1092,7 +1100,7 @@ func waitForPackageBuild(fclient *client.Client, pkg *fv1.Package) (*fv1.Package return pkg, nil } if time.Since(start) > 5*time.Minute { - return nil, fmt.Errorf("Package %v has been building for a while. Giving up on waiting for it.", pkg.Metadata.Name) + return nil, fmt.Errorf("package %v has been building for a while, giving up on waiting for it", pkg.Metadata.Name) } // TODO watch instead diff --git a/pkg/fission-cli/support/dump.go b/pkg/fission-cli/support/dump.go index 54c535ff..828359ec 100644 --- a/pkg/fission-cli/support/dump.go +++ b/pkg/fission-cli/support/dump.go @@ -115,8 +115,8 @@ func DumpInfo(c *cli.Context) error { panic(err) } } + wg.Add(1) go func(res resources.Resource, dir string) { - wg.Add(1) defer wg.Done() res.Dump(dir) }(res, dir) diff --git a/pkg/fission-cli/support/resources/fissionversion.go b/pkg/fission-cli/support/resources/fissionversion.go index 534f7dd8..e92a1ca8 100644 --- a/pkg/fission-cli/support/resources/fissionversion.go +++ b/pkg/fission-cli/support/resources/fissionversion.go @@ -25,8 +25,7 @@ import ( ) type FissionVersion struct { - client *client.Client - namespace string + client *client.Client } func NewFissionVersion(client *client.Client) Resource { diff --git a/pkg/fission-cli/support/resources/kubernetes.go b/pkg/fission-cli/support/resources/kubernetes.go index c8c422f8..4863215f 100644 --- a/pkg/fission-cli/support/resources/kubernetes.go +++ b/pkg/fission-cli/support/resources/kubernetes.go @@ -244,6 +244,4 @@ func (res KubernetesPodLogDumper) Dump(dumpDir string) { } wg.Wait() - - return } diff --git a/pkg/fission-cli/watch.go b/pkg/fission-cli/watch.go index 673c98dd..b3c01c91 100644 --- a/pkg/fission-cli/watch.go +++ b/pkg/fission-cli/watch.go @@ -100,12 +100,6 @@ func wGet(c *cli.Context) error { return nil } -func wUpdate(c *cli.Context) error { - // TODO - log.Fatal("Not implemented") - return nil -} - func wDelete(c *cli.Context) error { client := util.GetApiClient(c.GlobalString("server")) diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go index 9687d9a9..569791b2 100644 --- a/pkg/logger/logger.go +++ b/pkg/logger/logger.go @@ -145,21 +145,19 @@ func getLogPath(pathPrefix, podName, podNamespace, containerName, containerID st // symlinkReaper periodically checks and removes symlink file if it's target container log file is no longer exists. func symlinkReaper(zapLogger *zap.Logger) { - for { - select { - case <-time.After(5 * time.Minute): - err := filepath.Walk(fissionSymlinkPath, func(path string, info os.FileInfo, err error) error { - if target, e := os.Readlink(path); e == nil { - if _, pathErr := os.Stat(target); os.IsNotExist(pathErr) { - zapLogger.Debug("remove symlink file", zap.String("filepath", path)) - os.Remove(path) - } + ticker := time.NewTicker(5 * time.Minute) + for range ticker.C { + err := filepath.Walk(fissionSymlinkPath, func(path string, info os.FileInfo, err error) error { + if target, e := os.Readlink(path); e == nil { + if _, pathErr := os.Stat(target); os.IsNotExist(pathErr) { + zapLogger.Debug("remove symlink file", zap.String("filepath", path)) + os.Remove(path) } - return nil - }) - if err != nil { - zapLogger.Error("error reaping symlink", zap.Error(err)) } + return nil + }) + if err != nil { + zapLogger.Error("error reaping symlink", zap.Error(err)) } } } diff --git a/test/utils.sh b/test/utils.sh index 67c89cd2..5424b40b 100755 --- a/test/utils.sh +++ b/test/utils.sh @@ -18,10 +18,15 @@ clean_resource_by_id() { KUBECTL="kubectl --namespace default" set +e + fn_list=$(fission function list | grep $test_id | awk '{print $1}') + for fn in $fn_list; do + fission fn delete --name $fn + done + pkg_list=$(fission package list | grep $test_id | awk '{print $1}') for pkg in $pkg_list; do fission pkg info --name $pkg - fission package delete --name $pkg + fission pkg delete -f --name $pkg done route_list=$(fission route list | grep $test_id | awk '{print $1}') diff --git a/port-forward-nats.sh b/tools/port-forward-nats.sh similarity index 100% rename from port-forward-nats.sh rename to tools/port-forward-nats.sh diff --git a/port-forward-router.sh b/tools/port-forward-router.sh similarity index 100% rename from port-forward-router.sh rename to tools/port-forward-router.sh