mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-03 23:40:03 +00:00 
			
		
		
		
	Update dependency google.golang.org/api to v0.15.1
Steps: ./hack/pin-dependency.sh google.golang.org/api v0.15.1 ./hack/update-vendor.sh ./hack/verify-vendor.sh ./hack/pin-dependency.sh github.com/googleapis/gax-go/v2 v2.0.5 ./hack/update-vendor.sh ./hack/verify-vendor.sh ./hack/lint-dependencies.sh
This commit is contained in:
		
							
								
								
									
										33
									
								
								vendor/github.com/googleapis/gax-go/v2/BUILD
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								vendor/github.com/googleapis/gax-go/v2/BUILD
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
load("@io_bazel_rules_go//go:def.bzl", "go_library")
 | 
			
		||||
 | 
			
		||||
go_library(
 | 
			
		||||
    name = "go_default_library",
 | 
			
		||||
    srcs = [
 | 
			
		||||
        "call_option.go",
 | 
			
		||||
        "gax.go",
 | 
			
		||||
        "header.go",
 | 
			
		||||
        "invoke.go",
 | 
			
		||||
    ],
 | 
			
		||||
    importmap = "k8s.io/kubernetes/vendor/github.com/googleapis/gax-go/v2",
 | 
			
		||||
    importpath = "github.com/googleapis/gax-go/v2",
 | 
			
		||||
    visibility = ["//visibility:public"],
 | 
			
		||||
    deps = [
 | 
			
		||||
        "//vendor/google.golang.org/grpc:go_default_library",
 | 
			
		||||
        "//vendor/google.golang.org/grpc/codes:go_default_library",
 | 
			
		||||
        "//vendor/google.golang.org/grpc/status:go_default_library",
 | 
			
		||||
    ],
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
filegroup(
 | 
			
		||||
    name = "package-srcs",
 | 
			
		||||
    srcs = glob(["**"]),
 | 
			
		||||
    tags = ["automanaged"],
 | 
			
		||||
    visibility = ["//visibility:private"],
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
filegroup(
 | 
			
		||||
    name = "all-srcs",
 | 
			
		||||
    srcs = [":package-srcs"],
 | 
			
		||||
    tags = ["automanaged"],
 | 
			
		||||
    visibility = ["//visibility:public"],
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										27
									
								
								vendor/github.com/googleapis/gax-go/v2/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/googleapis/gax-go/v2/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
Copyright 2016, Google Inc.
 | 
			
		||||
All rights reserved.
 | 
			
		||||
Redistribution and use in source and binary forms, with or without
 | 
			
		||||
modification, are permitted provided that the following conditions are
 | 
			
		||||
met:
 | 
			
		||||
 | 
			
		||||
   * Redistributions of source code must retain the above copyright
 | 
			
		||||
notice, this list of conditions and the following disclaimer.
 | 
			
		||||
   * Redistributions in binary form must reproduce the above
 | 
			
		||||
copyright notice, this list of conditions and the following disclaimer
 | 
			
		||||
in the documentation and/or other materials provided with the
 | 
			
		||||
distribution.
 | 
			
		||||
   * Neither the name of Google Inc. nor the names of its
 | 
			
		||||
contributors may be used to endorse or promote products derived from
 | 
			
		||||
this software without specific prior written permission.
 | 
			
		||||
 | 
			
		||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
			
		||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
			
		||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
			
		||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
			
		||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
			
		||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
			
		||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
							
								
								
									
										161
									
								
								vendor/github.com/googleapis/gax-go/v2/call_option.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								vendor/github.com/googleapis/gax-go/v2/call_option.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,161 @@
 | 
			
		||||
// Copyright 2016, Google Inc.
 | 
			
		||||
// All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
// Redistribution and use in source and binary forms, with or without
 | 
			
		||||
// modification, are permitted provided that the following conditions are
 | 
			
		||||
// met:
 | 
			
		||||
//
 | 
			
		||||
//     * Redistributions of source code must retain the above copyright
 | 
			
		||||
// notice, this list of conditions and the following disclaimer.
 | 
			
		||||
//     * Redistributions in binary form must reproduce the above
 | 
			
		||||
// copyright notice, this list of conditions and the following disclaimer
 | 
			
		||||
// in the documentation and/or other materials provided with the
 | 
			
		||||
// distribution.
 | 
			
		||||
//     * Neither the name of Google Inc. nor the names of its
 | 
			
		||||
// contributors may be used to endorse or promote products derived from
 | 
			
		||||
// this software without specific prior written permission.
 | 
			
		||||
//
 | 
			
		||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
			
		||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
			
		||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
			
		||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
			
		||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
			
		||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
package gax
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"math/rand"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"google.golang.org/grpc"
 | 
			
		||||
	"google.golang.org/grpc/codes"
 | 
			
		||||
	"google.golang.org/grpc/status"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// CallOption is an option used by Invoke to control behaviors of RPC calls.
 | 
			
		||||
// CallOption works by modifying relevant fields of CallSettings.
 | 
			
		||||
type CallOption interface {
 | 
			
		||||
	// Resolve applies the option by modifying cs.
 | 
			
		||||
	Resolve(cs *CallSettings)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Retryer is used by Invoke to determine retry behavior.
 | 
			
		||||
type Retryer interface {
 | 
			
		||||
	// Retry reports whether a request should be retriedand how long to pause before retrying
 | 
			
		||||
	// if the previous attempt returned with err. Invoke never calls Retry with nil error.
 | 
			
		||||
	Retry(err error) (pause time.Duration, shouldRetry bool)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type retryerOption func() Retryer
 | 
			
		||||
 | 
			
		||||
func (o retryerOption) Resolve(s *CallSettings) {
 | 
			
		||||
	s.Retry = o
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WithRetry sets CallSettings.Retry to fn.
 | 
			
		||||
func WithRetry(fn func() Retryer) CallOption {
 | 
			
		||||
	return retryerOption(fn)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// OnCodes returns a Retryer that retries if and only if
 | 
			
		||||
// the previous attempt returns a GRPC error whose error code is stored in cc.
 | 
			
		||||
// Pause times between retries are specified by bo.
 | 
			
		||||
//
 | 
			
		||||
// bo is only used for its parameters; each Retryer has its own copy.
 | 
			
		||||
func OnCodes(cc []codes.Code, bo Backoff) Retryer {
 | 
			
		||||
	return &boRetryer{
 | 
			
		||||
		backoff: bo,
 | 
			
		||||
		codes:   append([]codes.Code(nil), cc...),
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type boRetryer struct {
 | 
			
		||||
	backoff Backoff
 | 
			
		||||
	codes   []codes.Code
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *boRetryer) Retry(err error) (time.Duration, bool) {
 | 
			
		||||
	st, ok := status.FromError(err)
 | 
			
		||||
	if !ok {
 | 
			
		||||
		return 0, false
 | 
			
		||||
	}
 | 
			
		||||
	c := st.Code()
 | 
			
		||||
	for _, rc := range r.codes {
 | 
			
		||||
		if c == rc {
 | 
			
		||||
			return r.backoff.Pause(), true
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return 0, false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Backoff implements exponential backoff.
 | 
			
		||||
// The wait time between retries is a random value between 0 and the "retry envelope".
 | 
			
		||||
// The envelope starts at Initial and increases by the factor of Multiplier every retry,
 | 
			
		||||
// but is capped at Max.
 | 
			
		||||
type Backoff struct {
 | 
			
		||||
	// Initial is the initial value of the retry envelope, defaults to 1 second.
 | 
			
		||||
	Initial time.Duration
 | 
			
		||||
 | 
			
		||||
	// Max is the maximum value of the retry envelope, defaults to 30 seconds.
 | 
			
		||||
	Max time.Duration
 | 
			
		||||
 | 
			
		||||
	// Multiplier is the factor by which the retry envelope increases.
 | 
			
		||||
	// It should be greater than 1 and defaults to 2.
 | 
			
		||||
	Multiplier float64
 | 
			
		||||
 | 
			
		||||
	// cur is the current retry envelope
 | 
			
		||||
	cur time.Duration
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Pause returns the next time.Duration that the caller should use to backoff.
 | 
			
		||||
func (bo *Backoff) Pause() time.Duration {
 | 
			
		||||
	if bo.Initial == 0 {
 | 
			
		||||
		bo.Initial = time.Second
 | 
			
		||||
	}
 | 
			
		||||
	if bo.cur == 0 {
 | 
			
		||||
		bo.cur = bo.Initial
 | 
			
		||||
	}
 | 
			
		||||
	if bo.Max == 0 {
 | 
			
		||||
		bo.Max = 30 * time.Second
 | 
			
		||||
	}
 | 
			
		||||
	if bo.Multiplier < 1 {
 | 
			
		||||
		bo.Multiplier = 2
 | 
			
		||||
	}
 | 
			
		||||
	// Select a duration between 1ns and the current max. It might seem
 | 
			
		||||
	// counterintuitive to have so much jitter, but
 | 
			
		||||
	// https://www.awsarchitectureblog.com/2015/03/backoff.html argues that
 | 
			
		||||
	// that is the best strategy.
 | 
			
		||||
	d := time.Duration(1 + rand.Int63n(int64(bo.cur)))
 | 
			
		||||
	bo.cur = time.Duration(float64(bo.cur) * bo.Multiplier)
 | 
			
		||||
	if bo.cur > bo.Max {
 | 
			
		||||
		bo.cur = bo.Max
 | 
			
		||||
	}
 | 
			
		||||
	return d
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type grpcOpt []grpc.CallOption
 | 
			
		||||
 | 
			
		||||
func (o grpcOpt) Resolve(s *CallSettings) {
 | 
			
		||||
	s.GRPC = o
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WithGRPCOptions allows passing gRPC call options during client creation.
 | 
			
		||||
func WithGRPCOptions(opt ...grpc.CallOption) CallOption {
 | 
			
		||||
	return grpcOpt(append([]grpc.CallOption(nil), opt...))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CallSettings allow fine-grained control over how calls are made.
 | 
			
		||||
type CallSettings struct {
 | 
			
		||||
	// Retry returns a Retryer to be used to control retry logic of a method call.
 | 
			
		||||
	// If Retry is nil or the returned Retryer is nil, the call will not be retried.
 | 
			
		||||
	Retry func() Retryer
 | 
			
		||||
 | 
			
		||||
	// CallOptions to be forwarded to GRPC.
 | 
			
		||||
	GRPC []grpc.CallOption
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								vendor/github.com/googleapis/gax-go/v2/gax.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								vendor/github.com/googleapis/gax-go/v2/gax.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
// Copyright 2016, Google Inc.
 | 
			
		||||
// All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
// Redistribution and use in source and binary forms, with or without
 | 
			
		||||
// modification, are permitted provided that the following conditions are
 | 
			
		||||
// met:
 | 
			
		||||
//
 | 
			
		||||
//     * Redistributions of source code must retain the above copyright
 | 
			
		||||
// notice, this list of conditions and the following disclaimer.
 | 
			
		||||
//     * Redistributions in binary form must reproduce the above
 | 
			
		||||
// copyright notice, this list of conditions and the following disclaimer
 | 
			
		||||
// in the documentation and/or other materials provided with the
 | 
			
		||||
// distribution.
 | 
			
		||||
//     * Neither the name of Google Inc. nor the names of its
 | 
			
		||||
// contributors may be used to endorse or promote products derived from
 | 
			
		||||
// this software without specific prior written permission.
 | 
			
		||||
//
 | 
			
		||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
			
		||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
			
		||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
			
		||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
			
		||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
			
		||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
// Package gax contains a set of modules which aid the development of APIs
 | 
			
		||||
// for clients and servers based on gRPC and Google API conventions.
 | 
			
		||||
//
 | 
			
		||||
// Application code will rarely need to use this library directly.
 | 
			
		||||
// However, code generated automatically from API definition files can use it
 | 
			
		||||
// to simplify code generation and to provide more convenient and idiomatic API surfaces.
 | 
			
		||||
package gax
 | 
			
		||||
 | 
			
		||||
// Version specifies the gax-go version being used.
 | 
			
		||||
const Version = "2.0.4"
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/googleapis/gax-go/v2/go.mod
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/googleapis/gax-go/v2/go.mod
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
module github.com/googleapis/gax-go/v2
 | 
			
		||||
 | 
			
		||||
require google.golang.org/grpc v1.19.0
 | 
			
		||||
							
								
								
									
										25
									
								
								vendor/github.com/googleapis/gax-go/v2/go.sum
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/googleapis/gax-go/v2/go.sum
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 | 
			
		||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 | 
			
		||||
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/mock v1.1.1/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=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d h1:g9qWBGx4puODJTMVyoPrpoxPFgVGd+z1DZwjfRu4d0I=
 | 
			
		||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 | 
			
		||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA=
 | 
			
		||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522 h1:Ve1ORMCxvRmSXBwJK+t3Oy+V2vRW2OetUQBq4rJIkZE=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 | 
			
		||||
google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8=
 | 
			
		||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 | 
			
		||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
			
		||||
							
								
								
									
										53
									
								
								vendor/github.com/googleapis/gax-go/v2/header.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								vendor/github.com/googleapis/gax-go/v2/header.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
// Copyright 2018, Google Inc.
 | 
			
		||||
// All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
// Redistribution and use in source and binary forms, with or without
 | 
			
		||||
// modification, are permitted provided that the following conditions are
 | 
			
		||||
// met:
 | 
			
		||||
//
 | 
			
		||||
//     * Redistributions of source code must retain the above copyright
 | 
			
		||||
// notice, this list of conditions and the following disclaimer.
 | 
			
		||||
//     * Redistributions in binary form must reproduce the above
 | 
			
		||||
// copyright notice, this list of conditions and the following disclaimer
 | 
			
		||||
// in the documentation and/or other materials provided with the
 | 
			
		||||
// distribution.
 | 
			
		||||
//     * Neither the name of Google Inc. nor the names of its
 | 
			
		||||
// contributors may be used to endorse or promote products derived from
 | 
			
		||||
// this software without specific prior written permission.
 | 
			
		||||
//
 | 
			
		||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
			
		||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
			
		||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
			
		||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
			
		||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
			
		||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
package gax
 | 
			
		||||
 | 
			
		||||
import "bytes"
 | 
			
		||||
 | 
			
		||||
// XGoogHeader is for use by the Google Cloud Libraries only.
 | 
			
		||||
//
 | 
			
		||||
// XGoogHeader formats key-value pairs.
 | 
			
		||||
// The resulting string is suitable for x-goog-api-client header.
 | 
			
		||||
func XGoogHeader(keyval ...string) string {
 | 
			
		||||
	if len(keyval) == 0 {
 | 
			
		||||
		return ""
 | 
			
		||||
	}
 | 
			
		||||
	if len(keyval)%2 != 0 {
 | 
			
		||||
		panic("gax.Header: odd argument count")
 | 
			
		||||
	}
 | 
			
		||||
	var buf bytes.Buffer
 | 
			
		||||
	for i := 0; i < len(keyval); i += 2 {
 | 
			
		||||
		buf.WriteByte(' ')
 | 
			
		||||
		buf.WriteString(keyval[i])
 | 
			
		||||
		buf.WriteByte('/')
 | 
			
		||||
		buf.WriteString(keyval[i+1])
 | 
			
		||||
	}
 | 
			
		||||
	return buf.String()[1:]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										99
									
								
								vendor/github.com/googleapis/gax-go/v2/invoke.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								vendor/github.com/googleapis/gax-go/v2/invoke.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
			
		||||
// Copyright 2016, Google Inc.
 | 
			
		||||
// All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
// Redistribution and use in source and binary forms, with or without
 | 
			
		||||
// modification, are permitted provided that the following conditions are
 | 
			
		||||
// met:
 | 
			
		||||
//
 | 
			
		||||
//     * Redistributions of source code must retain the above copyright
 | 
			
		||||
// notice, this list of conditions and the following disclaimer.
 | 
			
		||||
//     * Redistributions in binary form must reproduce the above
 | 
			
		||||
// copyright notice, this list of conditions and the following disclaimer
 | 
			
		||||
// in the documentation and/or other materials provided with the
 | 
			
		||||
// distribution.
 | 
			
		||||
//     * Neither the name of Google Inc. nor the names of its
 | 
			
		||||
// contributors may be used to endorse or promote products derived from
 | 
			
		||||
// this software without specific prior written permission.
 | 
			
		||||
//
 | 
			
		||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
			
		||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
			
		||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
			
		||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
			
		||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
			
		||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
package gax
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// APICall is a user defined call stub.
 | 
			
		||||
type APICall func(context.Context, CallSettings) error
 | 
			
		||||
 | 
			
		||||
// Invoke calls the given APICall,
 | 
			
		||||
// performing retries as specified by opts, if any.
 | 
			
		||||
func Invoke(ctx context.Context, call APICall, opts ...CallOption) error {
 | 
			
		||||
	var settings CallSettings
 | 
			
		||||
	for _, opt := range opts {
 | 
			
		||||
		opt.Resolve(&settings)
 | 
			
		||||
	}
 | 
			
		||||
	return invoke(ctx, call, settings, Sleep)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Sleep is similar to time.Sleep, but it can be interrupted by ctx.Done() closing.
 | 
			
		||||
// If interrupted, Sleep returns ctx.Err().
 | 
			
		||||
func Sleep(ctx context.Context, d time.Duration) error {
 | 
			
		||||
	t := time.NewTimer(d)
 | 
			
		||||
	select {
 | 
			
		||||
	case <-ctx.Done():
 | 
			
		||||
		t.Stop()
 | 
			
		||||
		return ctx.Err()
 | 
			
		||||
	case <-t.C:
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type sleeper func(ctx context.Context, d time.Duration) error
 | 
			
		||||
 | 
			
		||||
// invoke implements Invoke, taking an additional sleeper argument for testing.
 | 
			
		||||
func invoke(ctx context.Context, call APICall, settings CallSettings, sp sleeper) error {
 | 
			
		||||
	var retryer Retryer
 | 
			
		||||
	for {
 | 
			
		||||
		err := call(ctx, settings)
 | 
			
		||||
		if err == nil {
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		if settings.Retry == nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		// Never retry permanent certificate errors. (e.x. if ca-certificates
 | 
			
		||||
		// are not installed). We should only make very few, targeted
 | 
			
		||||
		// exceptions: many (other) status=Unavailable should be retried, such
 | 
			
		||||
		// as if there's a network hiccup, or the internet goes out for a
 | 
			
		||||
		// minute. This is also why here we are doing string parsing instead of
 | 
			
		||||
		// simply making Unavailable a non-retried code elsewhere.
 | 
			
		||||
		if strings.Contains(err.Error(), "x509: certificate signed by unknown authority") {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		if retryer == nil {
 | 
			
		||||
			if r := settings.Retry(); r != nil {
 | 
			
		||||
				retryer = r
 | 
			
		||||
			} else {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if d, ok := retryer.Retry(err); !ok {
 | 
			
		||||
			return err
 | 
			
		||||
		} else if err = sp(ctx, d); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user