diff --git a/go.mod b/go.mod index 9ffda71f04..ce669acc31 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/russross/blackfriday/v2 v2.0.1 github.com/spf13/afero v1.2.2 - github.com/spf13/cobra v1.0.0 + github.com/spf13/cobra v1.1.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.6.1 github.com/tidwall/gjson v1.6.3 diff --git a/go.sum b/go.sum index 33ea6e226b..5b0eb356c7 100644 --- a/go.sum +++ b/go.sum @@ -5,9 +5,17 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.44.3 h1:0sMegbmn/8uTwpNkB0q9cLEpZ2W5a6kl+wtBQgPWBJQ= cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3 h1:AVXDdKsrtX33oR9fbCMu/+c1o8Ofjq6Ku/MInaLVg5Y= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= code.gitea.io/sdk/gitea v0.12.0 h1:hvDCz4wtFvo7rf5Ebj8tGd4aJ4wLPKX3BKFX9Dk1Pgs= code.gitea.io/sdk/gitea v0.12.0/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY= contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= @@ -16,6 +24,7 @@ contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrL contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU= github.com/Azure/azure-pipeline-go v0.2.1 h1:OLBdZJ3yvOn2MezlWvbrBMTEUQC72zAftRZOMdj5HYo= github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= @@ -106,6 +115,8 @@ github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= @@ -136,7 +147,9 @@ github.com/benjamintf1/unmarshalledmatchers v0.0.0-20190408201839-bb1c1f34eaea/g github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb h1:m935MPodAbYS46DG4pJSv7WO+VECIWUQ7OJYSoTrMh4= github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= @@ -282,6 +295,7 @@ github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy github.com/go-critic/go-critic v0.3.5-0.20190526074819-1df300866540/go.mod h1:+sE8vrLDS2M0pZkBk0wy6+nLdKexVDrl/jBqQOTDThA= github.com/go-critic/go-critic v0.4.1 h1:4DTQfT1wWwLg/hzxwD9bkdhDQrdJtxe6DUTadPlrIeE= github.com/go-critic/go-critic v0.4.1/go.mod h1:7/14rZGnZbY6E38VEGk2kVhoq6itzc1E68facVDK23g= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-ini/ini v1.25.4 h1:Mujh4R/dH6YL8bxuISne3xX2+qcQ9p0IxKAP6ExWoUo= github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -502,6 +516,7 @@ github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/gostaticanalysis/analysisutil v0.0.3 h1:iwp+5/UAyzQSFgQ4uR2sni99sJ8Eo9DEacKWM5pekIg= github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= @@ -518,19 +533,32 @@ github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.2 h1:S+ef0492XaIknb8LMjcwgW2i3cNTzDYMmDrOThOJNWc= github.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= 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/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +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-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-retryablehttp v0.6.4 h1:BbgctKO892xEyOXnGiaAwIoSq1QZ/SS4AhjoAh9DnfY= github.com/hashicorp/go-retryablehttp v0.6.4/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0 h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= @@ -539,6 +567,10 @@ github.com/hashicorp/hcl v0.0.0-20160711231752-d8c773c4cba1/go.mod h1:oZtUIOe8dh github.com/hashicorp/hcl v0.0.0-20180404174102-ef8a98b0bbce/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= @@ -690,17 +722,23 @@ github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPx github.com/miekg/coredns v0.0.0-20161111164017-20e25559d5ea h1:ClxQqQsf07a0/3NsMYizr/dMxQoeSpNWDge0v3iHEcU= github.com/miekg/coredns v0.0.0-20161111164017-20e25559d5ea/go.mod h1:ulj34RFTnjlzXt4MMq5AcKBIiXNiru0D2fe3enowwU4= github.com/miekg/dns v0.0.0-20160614162101-5d001d020961/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.4 h1:rCMZsU2ScVSYcAsOXgmC6+AKOK+6pmQTOcw03nfwYV0= github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mindprince/gonvml v0.0.0-20171110221305-fee913ce8fb2/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= github.com/mistifyio/go-zfs v2.1.1+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk= github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v0.0.0-20180715050151-f15292f7a699/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= @@ -766,6 +804,7 @@ github.com/opencontainers/runc v1.0.0-rc2.0.20190611121236-6cc515888830/go.mod h github.com/opencontainers/runtime-spec v1.0.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.2.2/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v0.0.0-20180724185102-c2dbbc24a979/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.1.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= @@ -784,6 +823,7 @@ github.com/pkg/sftp v0.0.0-20160930220758-4d0e916071f6/go.mod h1:NxmoDg/QLVWluQD github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 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/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M= github.com/prometheus/client_golang v0.9.4 h1:Y8E/JaaPbmFSW2V81Ab/d8yZFYQQGbni1b1jPcG9Y6A= @@ -816,6 +856,7 @@ github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryancurrah/gomodguard v1.0.4 h1:oCreMAt9GuFXDe9jW4HBpc3GjdX3R/sUEcLAGh1zPx8= github.com/ryancurrah/gomodguard v1.0.4/go.mod h1:9T/Cfuxs5StfsocWr4WzDL36HqnX0fVb9d5fSEaLhoE= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/sanathkr/go-yaml v0.0.0-20170819195128-ed9d249f429b h1:jUK33OXuZP/l6babJtnLo1qsGvq6G9so9KMflGAm4YA= github.com/sanathkr/go-yaml v0.0.0-20170819195128-ed9d249f429b/go.mod h1:8458kAagoME2+LN5//WxE71ysZ3B7r22fdgb7qVmXSY= @@ -824,6 +865,7 @@ github.com/sanathkr/yaml v0.0.0-20170819201035-0056894fa522/go.mod h1:tQTYKOQgxo github.com/sassoftware/go-rpmutils v0.0.0-20190420191620-a8f1baeba37b h1:+gCnWOZV8Z/8jehJ2CdqB47Z3S+SREmQcuXkRFLNsiI= github.com/sassoftware/go-rpmutils v0.0.0-20190420191620-a8f1baeba37b/go.mod h1:am+Fp8Bt506lA3Rk3QCmSqmYmLMnPDhdDUcosQCAx+I= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec v0.0.0-20200103095621-79fbf3af8d83 h1:AtnWoOvTioyDXFvu96MWEeE8qj4COSQnJogzLy/u41A= github.com/securego/gosec v0.0.0-20200103095621-79fbf3af8d83/go.mod h1:vvbZ2Ae7AzSq3/kywjUDxSNq2SJ27RxCz2un0H3ePqE= @@ -877,6 +919,10 @@ github.com/spf13/cobra v0.0.2/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/cobra v1.1.0 h1:aq3wCKjTPmzcNWLVGnsFVN4rflK7Uzn10F8/aw8MhdQ= +github.com/spf13/cobra v1.1.0/go.mod h1:yk5b0mALVusDL5fMM6Rd1wgnoO5jUPhwsQ6LQAJTidQ= +github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4= +github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v0.0.0-20180814060501-14d3d4c51834/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= @@ -895,6 +941,7 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk= github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= +github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spotinst/spotinst-sdk-go v0.0.0-20190505130751-eb52d7ac273c h1:u9JpOjbHpxOmQg0iKQu/diAQPXp0DTOspAU4wtOIG3Q= github.com/spotinst/spotinst-sdk-go v0.0.0-20190505130751-eb52d7ac273c/go.mod h1:hl5jnGvawJ84YGUk0ogthSWRO886F4f8CoGbHsuwcm4= github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= @@ -1027,6 +1074,7 @@ gocloud.dev v0.19.0/go.mod h1:SmKwiR8YwIMMJvQBKLsC3fHNyMwXLw3PMDO+VVteJMI= golang.org/x/build v0.0.0-20190927031335-2835ba2e683f/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM= golang.org/x/crypto v0.0.0-20180426230345-b49d69b5da94/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1049,16 +1097,24 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnk golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -1070,9 +1126,11 @@ golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181108082009-03003ca0c849/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-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1120,9 +1178,11 @@ golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20171026204733-164713f0dfce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180224232135-f6cff0780e54/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180821044426-4ea2f632f6e9/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 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-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/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-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1204,10 +1264,14 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190719005602-e377ae9d6386/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190812233024-afc3694995b6/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190909030654-5b82db07426d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113232020-e2727e816f5a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1237,6 +1301,8 @@ google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0 h1:jbyannxz0XFD3zdjgrSUsaJbgpH4eTrkdhRChkHPfO8= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0 h1:Q3Ui3V3/CVinFWFiW39Iw0kMuVrRzYX0wN6OPFp0lTA= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.0.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1255,6 +1321,10 @@ google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dT google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64 h1:iKtrH9Y8mcbADOP0YFaEMth7OfuHY9xHOwNj4znpM1A= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a h1:Ob5/580gVHBJZgXnff1cZDbG+xLtMVE5mDRTe+nIsX4= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= diff --git a/pkg/ctl/completion/completion_test.go b/pkg/ctl/completion/completion_test.go index f055cec445..d9e8b87bfe 100644 --- a/pkg/ctl/completion/completion_test.go +++ b/pkg/ctl/completion/completion_test.go @@ -2,6 +2,7 @@ package completion import ( "bytes" + "errors" "fmt" . "github.com/onsi/ginkgo" @@ -38,10 +39,10 @@ var _ = Describe("completion", func() { It("with invalid shell", func() { cmd := newMockCmd("invalid-shell") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring("unknown command \"invalid-shell\" for \"completion\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-shell\" for \"completion\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with no shell", func() { @@ -73,8 +74,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/create/cluster_test.go b/pkg/ctl/create/cluster_test.go index 7f88f3de2e..597f51b72e 100644 --- a/pkg/ctl/create/cluster_test.go +++ b/pkg/ctl/create/cluster_test.go @@ -89,15 +89,15 @@ var _ = Describe("create cluster", func() { cmd := newDefaultCmd(commandArgs...) _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal(c.error.Error())) + Expect(err.Error()).To(ContainSubstring(c.error.Error())) }, Entry("with cluster name as argument and flag", invalidParamsCase{ args: []string{"clusterName", "--name", "clusterName"}, - error: fmt.Errorf("--name=clusterName and argument clusterName cannot be used at the same time"), + error: fmt.Errorf("Error: --name=clusterName and argument clusterName cannot be used at the same time"), }), Entry("with invalid flags", invalidParamsCase{ args: []string{"cluster", "--invalid", "dummy"}, - error: fmt.Errorf("unknown flag: --invalid"), + error: fmt.Errorf("Error: unknown flag: --invalid"), }), ) }) @@ -159,7 +159,7 @@ var _ = Describe("create cluster", func() { cmd := newDefaultCmd(commandArgs...) _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err).To(Equal(fmt.Errorf("%s is not supported for Managed Nodegroups (--managed=true)", args[0]))) + Expect(err.Error()).To(ContainSubstring(fmt.Errorf("Error: %s is not supported for Managed Nodegroups (--managed=true)", args[0]).Error())) }, Entry("node-volume-type", "--node-volume-type", "gp2"), Entry("max-pods-per-node", "--max-pods-per-node", "2"), @@ -173,15 +173,15 @@ var _ = Describe("create cluster", func() { cmd := newDefaultCmd(commandArgs...) _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal(c.error.Error())) + Expect(err.Error()).To(ContainSubstring(c.error.Error())) }, Entry("with cluster name as argument and flag", invalidParamsCase{ args: []string{"clusterName", "--name", "clusterName"}, - error: fmt.Errorf("--name=clusterName and argument clusterName cannot be used at the same time"), + error: fmt.Errorf("Error: --name=clusterName and argument clusterName cannot be used at the same time"), }), Entry("with invalid flags", invalidParamsCase{ args: []string{"cluster", "--invalid", "dummy"}, - error: fmt.Errorf("unknown flag: --invalid"), + error: fmt.Errorf("Error: unknown flag: --invalid"), }), ) }) diff --git a/pkg/ctl/create/create_test.go b/pkg/ctl/create/create_test.go index c33305b4b4..7e9a21e6f5 100644 --- a/pkg/ctl/create/create_test.go +++ b/pkg/ctl/create/create_test.go @@ -5,6 +5,7 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" + "github.com/pkg/errors" "github.com/spf13/cobra" "github.com/weaveworks/eksctl/pkg/ctl/cmdutils" ) @@ -13,24 +14,24 @@ var _ = Describe("create", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newDefaultCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"create\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"create\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newDefaultCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"create\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"create\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newDefaultCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"create\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"create\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -61,8 +62,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/create/fargate_test.go b/pkg/ctl/create/fargate_test.go index 86ec40028f..7c75b2e1a2 100644 --- a/pkg/ctl/create/fargate_test.go +++ b/pkg/ctl/create/fargate_test.go @@ -5,6 +5,7 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" + "github.com/pkg/errors" "github.com/spf13/cobra" "github.com/weaveworks/eksctl/pkg/ctl/cmdutils" ) @@ -15,8 +16,7 @@ var _ = Describe("create", func() { cmd := newMockCreateFargateProfileCmd("fargateprofile") out, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("--cluster must be set")) - Expect(out).To(ContainSubstring("Error: --cluster must be set")) + Expect(err.Error()).To(ContainSubstring("Error: --cluster must be set")) Expect(out).To(ContainSubstring("Usage:")) }) @@ -24,8 +24,7 @@ var _ = Describe("create", func() { cmd := newMockCreateFargateProfileCmd("fargateprofile", "--cluster", "foo") out, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("invalid Fargate profile: empty selector namespace")) - Expect(out).To(ContainSubstring("Error: invalid Fargate profile: empty selector namespace")) + Expect(err.Error()).To(ContainSubstring("Error: invalid Fargate profile: empty selector namespace")) Expect(out).To(ContainSubstring("Usage:")) }) @@ -133,8 +132,13 @@ type mockCreateFargateProfileCmd struct { } func (c mockCreateFargateProfileCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/create/iamserviceaccount_test.go b/pkg/ctl/create/iamserviceaccount_test.go index 80cafb6b3e..3586db108e 100644 --- a/pkg/ctl/create/iamserviceaccount_test.go +++ b/pkg/ctl/create/iamserviceaccount_test.go @@ -39,23 +39,23 @@ var _ = Describe("create iamserviceaccount", func() { cmd := newDefaultCmd(c.args...) _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal(c.error.Error())) + Expect(err.Error()).To(ContainSubstring(c.error.Error())) }, Entry("without cluster name", invalidParamsCase{ args: []string{"iamserviceaccount", "--name", "serviceAccountName"}, - error: fmt.Errorf("--cluster must be set"), + error: fmt.Errorf("Error: --cluster must be set"), }), Entry("with iamserviceaccount name as argument and flag", invalidParamsCase{ args: []string{"iamserviceaccount", "--cluster", "clusterName", "--name", "serviceAccountName", "serviceAccountName"}, - error: fmt.Errorf("--name=serviceAccountName and argument serviceAccountName cannot be used at the same time"), + error: fmt.Errorf("Error: --name=serviceAccountName and argument serviceAccountName cannot be used at the same time"), }), Entry("without required flag --attach-policy-arn", invalidParamsCase{ args: []string{"iamserviceaccount", "--cluster", "clusterName", "serviceAccountName"}, - error: fmt.Errorf("--attach-policy-arn must be set"), + error: fmt.Errorf("Error: --attach-policy-arn must be set"), }), Entry("with invalid flags", invalidParamsCase{ args: []string{"iamserviceaccount", "--invalid", "dummy"}, - error: fmt.Errorf("unknown flag: --invalid"), + error: fmt.Errorf("Error: unknown flag: --invalid"), }), ) }) diff --git a/pkg/ctl/delete/delete_test.go b/pkg/ctl/delete/delete_test.go index e3f8ecb018..ae7fd6f889 100644 --- a/pkg/ctl/delete/delete_test.go +++ b/pkg/ctl/delete/delete_test.go @@ -2,6 +2,7 @@ package delete import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -13,24 +14,24 @@ var _ = Describe("delete", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newDefaultCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"delete\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"delete\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newDefaultCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"delete\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"delete\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newDefaultCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"delete\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"delete\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -57,8 +58,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/delete/fargate_test.go b/pkg/ctl/delete/fargate_test.go index 117e5b1d14..ecc910be57 100644 --- a/pkg/ctl/delete/fargate_test.go +++ b/pkg/ctl/delete/fargate_test.go @@ -2,6 +2,7 @@ package delete import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -16,8 +17,7 @@ var _ = Describe("delete", func() { cmd := newMockDeleteFargateProfileCmd("fargateprofile") out, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("--cluster must be set")) - Expect(out).To(ContainSubstring("Error: --cluster must be set")) + Expect(err.Error()).To(ContainSubstring("Error: --cluster must be set")) Expect(out).To(ContainSubstring("Usage:")) }) @@ -25,8 +25,7 @@ var _ = Describe("delete", func() { cmd := newMockDeleteFargateProfileCmd("fargateprofile", "--cluster", "foo") out, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("invalid Fargate profile: empty name")) - Expect(out).To(ContainSubstring("Error: invalid Fargate profile: empty name")) + Expect(err.Error()).To(ContainSubstring("Error: invalid Fargate profile: empty name")) Expect(out).To(ContainSubstring("Usage:")) }) @@ -50,8 +49,7 @@ var _ = Describe("delete", func() { cmd := newMockDeleteFargateProfileCmd("fargateprofile", "-f", "../../../examples/01-simple-cluster.yaml") out, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("invalid Fargate profile: empty name")) - Expect(out).To(ContainSubstring("Error: invalid Fargate profile: empty name")) + Expect(err.Error()).To(ContainSubstring("Error: invalid Fargate profile: empty name")) Expect(out).To(ContainSubstring("Usage:")) }) @@ -88,8 +86,13 @@ type mockDeleteFargateProfileCmd struct { } func (c mockDeleteFargateProfileCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/delete/iamserviceaccount_test.go b/pkg/ctl/delete/iamserviceaccount_test.go index 21a6b6bd89..8d19ea1702 100644 --- a/pkg/ctl/delete/iamserviceaccount_test.go +++ b/pkg/ctl/delete/iamserviceaccount_test.go @@ -45,19 +45,19 @@ var _ = Describe("delete iamserviceaccount", func() { cmd := newDefaultCmd(commandArgs...) _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal(c.error.Error())) + Expect(err.Error()).To(ContainSubstring(c.error.Error())) }, Entry("without cluster name", invalidParamsCase{ args: []string{"--name", "serviceAccountName"}, - error: fmt.Errorf("--cluster must be set"), + error: fmt.Errorf("Error: --cluster must be set"), }), Entry("with iamserviceaccount name as argument and flag", invalidParamsCase{ args: []string{"--cluster", "clusterName", "--name", "serviceAccountName", "serviceAccountName"}, - error: fmt.Errorf("--name=serviceAccountName and argument serviceAccountName cannot be used at the same time"), + error: fmt.Errorf("Error: --name=serviceAccountName and argument serviceAccountName cannot be used at the same time"), }), Entry("with invalid flags", invalidParamsCase{ args: []string{"iamserviceaccount", "--invalid", "dummy"}, - error: fmt.Errorf("unknown flag: --invalid"), + error: fmt.Errorf("Error: unknown flag: --invalid"), }), ) }) diff --git a/pkg/ctl/delete/nodegroup_test.go b/pkg/ctl/delete/nodegroup_test.go index ffd895318d..32b37d00ee 100644 --- a/pkg/ctl/delete/nodegroup_test.go +++ b/pkg/ctl/delete/nodegroup_test.go @@ -42,15 +42,15 @@ var _ = Describe("delete", func() { cmd := newDefaultCmd(c.args...) _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal(c.error.Error())) + Expect(err.Error()).To(ContainSubstring(c.error.Error())) }, Entry("missing required flag --cluster", invalidParamsCase{ args: []string{"nodegroup"}, - error: fmt.Errorf("--cluster must be set"), + error: fmt.Errorf("Error: --cluster must be set"), }), Entry("setting --name and argument at the same time", invalidParamsCase{ args: []string{"nodegroup", "ng", "--cluster", "dummy", "--name", "ng"}, - error: fmt.Errorf("--name=ng and argument ng cannot be used at the same time"), + error: fmt.Errorf("Error: --name=ng and argument ng cannot be used at the same time"), }), ) }) diff --git a/pkg/ctl/drain/drain_test.go b/pkg/ctl/drain/drain_test.go index 52ece4e663..71dbead837 100644 --- a/pkg/ctl/drain/drain_test.go +++ b/pkg/ctl/drain/drain_test.go @@ -2,6 +2,7 @@ package drain import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -13,24 +14,24 @@ var _ = Describe("drain", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newDefaultCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"drain\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"drain\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newDefaultCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"drain\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"drain\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newDefaultCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"drain\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"drain\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -57,8 +58,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/drain/nodegroup_test.go b/pkg/ctl/drain/nodegroup_test.go index 14143ff54f..f784190a14 100644 --- a/pkg/ctl/drain/nodegroup_test.go +++ b/pkg/ctl/drain/nodegroup_test.go @@ -44,15 +44,15 @@ var _ = Describe("drain node group", func() { cmd := newDefaultCmd(c.args...) _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal(c.error.Error())) + Expect(err.Error()).To(ContainSubstring(c.error.Error())) }, Entry("missing required flag --cluster", invalidParamsCase{ args: []string{"nodegroup"}, - error: fmt.Errorf("--cluster must be set"), + error: fmt.Errorf("Error: --cluster must be set"), }), Entry("setting --name and argument at the same time", invalidParamsCase{ args: []string{"nodegroup", "ng", "--cluster", "dummy", "--name", "ng"}, - error: fmt.Errorf("--name=ng and argument ng cannot be used at the same time"), + error: fmt.Errorf("Error: --name=ng and argument ng cannot be used at the same time"), }), ) }) diff --git a/pkg/ctl/enable/enable_test.go b/pkg/ctl/enable/enable_test.go index 1ee478765e..abdbaf05ab 100644 --- a/pkg/ctl/enable/enable_test.go +++ b/pkg/ctl/enable/enable_test.go @@ -2,6 +2,7 @@ package enable import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -13,24 +14,24 @@ var _ = Describe("enable", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newMockCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"enable\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"enable\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newMockCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"enable\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"enable\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newMockCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"enable\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"enable\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -49,8 +50,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/generate/generate_test.go b/pkg/ctl/generate/generate_test.go index 58f8ed4a03..8d507f5735 100644 --- a/pkg/ctl/generate/generate_test.go +++ b/pkg/ctl/generate/generate_test.go @@ -2,6 +2,7 @@ package generate import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -13,24 +14,24 @@ var _ = Describe("generate", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newMockCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"generate\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"generate\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newMockCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"generate\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"generate\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newMockCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"generate\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"generate\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -48,8 +49,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/get/cluster_test.go b/pkg/ctl/get/cluster_test.go index 6fcc9119fa..2286010455 100644 --- a/pkg/ctl/get/cluster_test.go +++ b/pkg/ctl/get/cluster_test.go @@ -11,7 +11,7 @@ var _ = Describe("get", func() { cmd := newMockCmd("cluster", "--invalid", "dummy") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown flag: --invalid")) + Expect(err.Error()).To(ContainSubstring("Error: unknown flag: --invalid")) }) }) }) diff --git a/pkg/ctl/get/fargate_test.go b/pkg/ctl/get/fargate_test.go index 2bb4c89064..fe987ccf51 100644 --- a/pkg/ctl/get/fargate_test.go +++ b/pkg/ctl/get/fargate_test.go @@ -2,6 +2,7 @@ package get import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -15,8 +16,7 @@ var _ = Describe("get", func() { cmd := newMockGetFargateProfileCmd("fargateprofile") out, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("--cluster must be set")) - Expect(out).To(ContainSubstring("Error: --cluster must be set")) + Expect(err.Error()).To(ContainSubstring("Error: --cluster must be set")) Expect(out).To(ContainSubstring("Usage:")) }) @@ -85,8 +85,13 @@ type mockGetFargateProfileCmd struct { } func (c mockGetFargateProfileCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/get/get_test.go b/pkg/ctl/get/get_test.go index 95e345466c..bce91b4d6f 100644 --- a/pkg/ctl/get/get_test.go +++ b/pkg/ctl/get/get_test.go @@ -2,6 +2,7 @@ package get import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -13,24 +14,24 @@ var _ = Describe("get", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newMockCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"get\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"get\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newMockCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"get\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"get\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newMockCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"get\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"get\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -48,8 +49,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/get/iamidentitymapping_test.go b/pkg/ctl/get/iamidentitymapping_test.go index 62149a1749..bbc6899619 100644 --- a/pkg/ctl/get/iamidentitymapping_test.go +++ b/pkg/ctl/get/iamidentitymapping_test.go @@ -11,14 +11,14 @@ var _ = Describe("get", func() { cmd := newMockCmd("iamidentitymapping") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("--cluster must be set")) + Expect(err.Error()).To(ContainSubstring("Error: --cluster must be set")) }) It("invalid flag --dummy", func() { cmd := newMockCmd("iamidentitymapping", "--invalid", "dummy") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown flag: --invalid")) + Expect(err.Error()).To(ContainSubstring("Error: unknown flag: --invalid")) }) }) }) diff --git a/pkg/ctl/get/iamserviceaccount_test.go b/pkg/ctl/get/iamserviceaccount_test.go index ef4f375fab..cbd22dc7aa 100644 --- a/pkg/ctl/get/iamserviceaccount_test.go +++ b/pkg/ctl/get/iamserviceaccount_test.go @@ -11,14 +11,14 @@ var _ = Describe("get", func() { cmd := newMockCmd("iamserviceaccount") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("--cluster must be set")) + Expect(err.Error()).To(ContainSubstring("Error: --cluster must be set")) }) It("invalid flag --dummy", func() { cmd := newMockCmd("iamserviceaccount", "--invalid", "dummy") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown flag: --invalid")) + Expect(err.Error()).To(ContainSubstring("Error: unknown flag: --invalid")) }) }) }) diff --git a/pkg/ctl/get/labels_test.go b/pkg/ctl/get/labels_test.go index bbbc64762c..da77ec08c7 100644 --- a/pkg/ctl/get/labels_test.go +++ b/pkg/ctl/get/labels_test.go @@ -11,21 +11,21 @@ var _ = Describe("get", func() { cmd := newMockCmd("labels") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("--cluster must be set")) + Expect(err.Error()).To(ContainSubstring("Error: --cluster must be set")) }) It("missing required flag --cluster, but with --nodegroup", func() { cmd := newMockCmd("labels", "--nodegroup", "dummyNodeGroup") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("--cluster must be set")) + Expect(err.Error()).To(ContainSubstring("Error: --cluster must be set")) }) It("setting name argument", func() { cmd := newMockCmd("labels", "--cluster", "dummy", "dummyName") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("name argument is not supported")) + Expect(err.Error()).To(ContainSubstring("Error: name argument is not supported")) }) }) }) diff --git a/pkg/ctl/get/nodegroup_test.go b/pkg/ctl/get/nodegroup_test.go index 9924b92636..1259f542a9 100644 --- a/pkg/ctl/get/nodegroup_test.go +++ b/pkg/ctl/get/nodegroup_test.go @@ -11,21 +11,21 @@ var _ = Describe("get", func() { cmd := newMockCmd("nodegroup") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("--cluster must be set")) + Expect(err.Error()).To(ContainSubstring("Error: --cluster must be set")) }) It("setting --name and argument at the same time", func() { cmd := newMockCmd("nodegroup", "ng", "--cluster", "dummy", "--name", "ng") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("--name=ng and argument ng cannot be used at the same time")) + Expect(err.Error()).To(ContainSubstring("Error: --name=ng and argument ng cannot be used at the same time")) }) It("invalid flag", func() { cmd := newMockCmd("nodegroup", "--invalid", "dummy") _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown flag: --invalid")) + Expect(err.Error()).To(ContainSubstring("Error: unknown flag: --invalid")) }) }) }) diff --git a/pkg/ctl/scale/nodegroup_test.go b/pkg/ctl/scale/nodegroup_test.go index 163817410d..8b9d101a94 100644 --- a/pkg/ctl/scale/nodegroup_test.go +++ b/pkg/ctl/scale/nodegroup_test.go @@ -51,60 +51,60 @@ var _ = Describe("scale", func() { _, err := cmd.execute() fmt.Println(err) Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal(c.error.Error())) + Expect(err.Error()).To(ContainSubstring(c.error.Error())) }, Entry("missing required flag --cluster", invalidParamsCase{ args: []string{"nodegroup", "ng"}, - error: fmt.Errorf("--cluster must be set"), + error: fmt.Errorf("Error: --cluster must be set"), }), Entry("setting --name and argument at the same time", invalidParamsCase{ args: []string{"nodegroup", "ng", "--cluster", "dummy", "--name", "ng"}, - error: fmt.Errorf("--name=ng and argument ng cannot be used at the same time"), + error: fmt.Errorf("Error: --name=ng and argument ng cannot be used at the same time"), }), Entry("missing required nodes flag --nodes", invalidParamsCase{ args: []string{"nodegroup", "ng", "--cluster", "dummy"}, - error: fmt.Errorf("number of nodes must be 0 or greater"), + error: fmt.Errorf("Error: number of nodes must be 0 or greater"), }), Entry("invalid flag", invalidParamsCase{ args: []string{"nodegroup", "--invalid", "dummy"}, - error: fmt.Errorf("unknown flag: --invalid"), + error: fmt.Errorf("Error: unknown flag: --invalid"), }), Entry("desired node less than min nodes", invalidParamsCase{ args: []string{"nodegroup", "ng", "--cluster", "dummy", "--nodes", "2", "--nodes-min", "3"}, - error: fmt.Errorf("minimum number of nodes must be less than or equal to number of nodes"), + error: fmt.Errorf("Error: minimum number of nodes must be less than or equal to number of nodes"), }), Entry("desired node greater than max nodes", invalidParamsCase{ args: []string{"nodegroup", "ng", "--cluster", "dummy", "--nodes", "2", "--nodes-max", "1"}, - error: fmt.Errorf("maximum number of nodes must be greater than or equal to number of nodes"), + error: fmt.Errorf("Error: maximum number of nodes must be greater than or equal to number of nodes"), }), Entry("desired node less than min nodes", invalidParamsCase{ args: []string{"nodegroup", "ng", "--cluster", "dummy", "--nodes", "2", "--nodes-min", "3"}, - error: fmt.Errorf("minimum number of nodes must be less than or equal to number of nodes"), + error: fmt.Errorf("Error: minimum number of nodes must be less than or equal to number of nodes"), }), Entry("desired node outside the range [min, max]", invalidParamsCase{ args: []string{"nodegroup", "ng", "--cluster", "dummy", "--nodes", "2", "--nodes-min", "1", "--nodes-max", "1"}, - error: fmt.Errorf("number of nodes must be within range of min nodes and max nodes"), + error: fmt.Errorf("Error: number of nodes must be within range of min nodes and max nodes"), }), Entry("with config file and no name flags", invalidParamsCase{ args: []string{"nodegroup", "-f", "../cmdutils/test_data/scale-ng-test.yaml"}, - error: fmt.Errorf("--name must be set"), + error: fmt.Errorf("Error: --name must be set"), }), Entry("with config file and nodes flags", invalidParamsCase{ args: []string{"nodegroup", "-f", "../cmdutils/test_data/scale-ng-test.yaml", "--nodes", "2"}, - error: fmt.Errorf("cannot use --nodes when --config-file/-f is set"), + error: fmt.Errorf("Error: cannot use --nodes when --config-file/-f is set"), }), Entry("with config file and nodes-max flags", invalidParamsCase{ args: []string{"nodegroup", "-f", "../cmdutils/test_data/scale-ng-test.yaml", "--nodes-max", "2"}, - error: fmt.Errorf("cannot use --nodes-max when --config-file/-f is set"), + error: fmt.Errorf("Error: cannot use --nodes-max when --config-file/-f is set"), }), Entry("with config file and nodes-min flags", invalidParamsCase{ args: []string{"nodegroup", "-f", "../cmdutils/test_data/scale-ng-test.yaml", "--nodes-min", "2"}, - error: fmt.Errorf("cannot use --nodes-min when --config-file/-f is set"), + error: fmt.Errorf("Error: cannot use --nodes-min when --config-file/-f is set"), }), Entry("with config file and cluster flags", invalidParamsCase{ args: []string{"nodegroup", "-f", "../cmdutils/test_data/scale-ng-test.yaml", "--cluster", "dummyCluster"}, - error: fmt.Errorf("cannot use --cluster when --config-file/-f is set"), + error: fmt.Errorf("Error: cannot use --cluster when --config-file/-f is set"), }), ) }) diff --git a/pkg/ctl/scale/scale_test.go b/pkg/ctl/scale/scale_test.go index b339a39065..b8c380ec7e 100644 --- a/pkg/ctl/scale/scale_test.go +++ b/pkg/ctl/scale/scale_test.go @@ -2,6 +2,7 @@ package scale import ( "bytes" + "errors" "fmt" . "github.com/onsi/ginkgo" @@ -22,24 +23,24 @@ var _ = Describe("generate", func() { DescribeTable("invalid flags or arguments", func(c invalidParamsCase) { cmd := newDefaultCmd(c.args...) - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal(c.error.Error())) - Expect(out).To(ContainSubstring(c.output)) + Expect(err.Error()).To(ContainSubstring(c.error.Error())) + Expect(err.Error()).To(ContainSubstring(c.output)) }, Entry("missing required flag --cluster", invalidParamsCase{ args: []string{"invalid-resource"}, - error: fmt.Errorf("unknown command \"invalid-resource\" for \"scale\""), + error: fmt.Errorf("Error: unknown command \"invalid-resource\" for \"scale\""), output: "usage", }), Entry("with invalid-resource and some flag", invalidParamsCase{ args: []string{"invalid-resource", "--invalid-flag", "foo"}, - error: fmt.Errorf("unknown command \"invalid-resource\" for \"scale\""), + error: fmt.Errorf("Error: unknown command \"invalid-resource\" for \"scale\""), output: "usage", }), Entry("with invalid-resource and additional argument", invalidParamsCase{ args: []string{"invalid-resource", "foo"}, - error: fmt.Errorf("unknown command \"invalid-resource\" for \"scale\""), + error: fmt.Errorf("Error: unknown command \"invalid-resource\" for \"scale\""), output: "usage", }), ) @@ -68,8 +69,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/set/set_test.go b/pkg/ctl/set/set_test.go index 886bbd627d..9915e58869 100644 --- a/pkg/ctl/set/set_test.go +++ b/pkg/ctl/set/set_test.go @@ -2,6 +2,7 @@ package set import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -13,24 +14,24 @@ var _ = Describe("set", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newMockCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"set\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"set\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newMockCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"set\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"set\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newMockCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"set\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"set\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -49,8 +50,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/unset/unset_test.go b/pkg/ctl/unset/unset_test.go index 716d075be8..3c2ca72cb8 100644 --- a/pkg/ctl/unset/unset_test.go +++ b/pkg/ctl/unset/unset_test.go @@ -2,6 +2,7 @@ package unset import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -13,24 +14,24 @@ var _ = Describe("unset", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newMockCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"unset\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"unset\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newMockCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"unset\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"unset\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newMockCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"unset\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"unset\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -49,8 +50,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/update/update_test.go b/pkg/ctl/update/update_test.go index d6e35a5ce1..ea85aa9480 100644 --- a/pkg/ctl/update/update_test.go +++ b/pkg/ctl/update/update_test.go @@ -2,6 +2,7 @@ package update import ( "bytes" + "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -13,24 +14,24 @@ var _ = Describe("update", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newMockCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"update\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"update\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newMockCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"update\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"update\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newMockCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"update\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"update\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -49,8 +50,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/upgrade/upgrade_test.go b/pkg/ctl/upgrade/upgrade_test.go index 94bba34eaf..4d4a18fe7c 100644 --- a/pkg/ctl/upgrade/upgrade_test.go +++ b/pkg/ctl/upgrade/upgrade_test.go @@ -5,6 +5,7 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" + "github.com/pkg/errors" "github.com/spf13/cobra" "github.com/weaveworks/eksctl/pkg/ctl/cmdutils" ) @@ -13,24 +14,24 @@ var _ = Describe("upgrade", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newMockCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"upgrade\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"upgrade\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newMockCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"upgrade\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"upgrade\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newMockCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"upgrade\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"upgrade\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -49,8 +50,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err } diff --git a/pkg/ctl/utils/utils_test.go b/pkg/ctl/utils/utils_test.go index 3f22ee0c0e..b0f803bba7 100644 --- a/pkg/ctl/utils/utils_test.go +++ b/pkg/ctl/utils/utils_test.go @@ -2,6 +2,7 @@ package utils import ( "bytes" + "errors" "strconv" "strings" "testing" @@ -109,24 +110,24 @@ var _ = Describe("utils", func() { Describe("invalid-resource", func() { It("with no flag", func() { cmd := newMockCmd("invalid-resource") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"utils\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"utils\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and some flag", func() { cmd := newMockCmd("invalid-resource", "--invalid-flag", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"utils\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"utils\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) It("with invalid-resource and additional argument", func() { cmd := newMockCmd("invalid-resource", "foo") - out, err := cmd.execute() + _, err := cmd.execute() Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("unknown command \"invalid-resource\" for \"utils\"")) - Expect(out).To(ContainSubstring("usage")) + Expect(err.Error()).To(ContainSubstring("Error: unknown command \"invalid-resource\" for \"utils\"")) + Expect(err.Error()).To(ContainSubstring("usage")) }) }) }) @@ -145,8 +146,13 @@ type mockVerbCmd struct { } func (c mockVerbCmd) execute() (string, error) { - buf := new(bytes.Buffer) - c.parentCmd.SetOut(buf) + outBuf := new(bytes.Buffer) + errBuf := new(bytes.Buffer) + c.parentCmd.SetOut(outBuf) + c.parentCmd.SetErr(errBuf) err := c.parentCmd.Execute() - return buf.String(), err + if err != nil { + err = errors.New(errBuf.String()) + } + return outBuf.String(), err }