diff options
| author | Taras Madan <tarasmadan@google.com> | 2022-09-05 14:27:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-05 12:27:54 +0000 |
| commit | b2f2446b46bf02821d90ebedadae2bf7ae0e880e (patch) | |
| tree | 923cf42842918d6bebca1d6bbdc08abed54d274d /vendor/cloud.google.com/go/logging/internal | |
| parent | e6654faff4bcca4be92e9a8596fd4b77f747c39e (diff) | |
go.mod, vendor: update (#3358)
* go.mod, vendor: remove unnecessary dependencies
Commands:
1. go mod tidy
2. go mod vendor
* go.mod, vendor: update cloud.google.com/go
Commands:
1. go get -u cloud.google.com/go
2. go mod tidy
3. go mod vendor
* go.mod, vendor: update cloud.google.com/*
Commands:
1. go get -u cloud.google.com/storage cloud.google.com/logging
2. go mod tidy
3. go mod vendor
* go.mod, .golangci.yml, vendor: update *lint*
Commands:
1. go get -u golang.org/x/tools github.com/golangci/golangci-lint@v1.47.0
2. go mod tidy
3. go mod vendor
4. edit .golangci.yml to suppress new errors (resolved in the same PR later)
* all: fix lint errors
hash.go: copy() recommended by gosimple
parse.go: ent is never nil
verifier.go: signal.Notify() with unbuffered channel is bad. Have no idea why.
* .golangci.yml: adjust godot rules
check-all is deprecated, but still work
if you're hesitating too - I'll remove this commit
Diffstat (limited to 'vendor/cloud.google.com/go/logging/internal')
3 files changed, 136 insertions, 0 deletions
diff --git a/vendor/cloud.google.com/go/logging/internal/common.go b/vendor/cloud.google.com/go/logging/internal/common.go index c5788feb0..28801ac86 100644 --- a/vendor/cloud.google.com/go/logging/internal/common.go +++ b/vendor/cloud.google.com/go/logging/internal/common.go @@ -16,7 +16,10 @@ package internal import ( "fmt" + "runtime" "strings" + "sync" + "unicode" ) const ( @@ -24,6 +27,9 @@ const ( ProdAddr = "logging.googleapis.com:443" ) +// InstrumentOnce guards instrumenting logs one time +var InstrumentOnce = new(sync.Once) + // LogPath creates a formatted path from a parent and a logID. func LogPath(parent, logID string) string { logID = strings.Replace(logID, "/", "%2F", -1) @@ -39,3 +45,40 @@ func LogIDFromPath(parent, path string) string { logID := path[start:] return strings.Replace(logID, "%2F", "/", -1) } + +// VersionGo returns the Go runtime version. The returned string +// has no whitespace, suitable for reporting in header. +func VersionGo() string { + const develPrefix = "devel +" + + s := runtime.Version() + if strings.HasPrefix(s, develPrefix) { + s = s[len(develPrefix):] + if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 { + s = s[:p] + } + return s + } + + notSemverRune := func(r rune) bool { + return !strings.ContainsRune("0123456789.", r) + } + + if strings.HasPrefix(s, "go1") { + s = s[2:] + var prerelease string + if p := strings.IndexFunc(s, notSemverRune); p >= 0 { + s, prerelease = s[:p], s[p:] + } + if strings.HasSuffix(s, ".") { + s += "0" + } else if strings.Count(s, ".") < 2 { + s += ".0" + } + if prerelease != "" { + s += "-" + prerelease + } + return s + } + return "UNKNOWN" +} diff --git a/vendor/cloud.google.com/go/logging/internal/environment.go b/vendor/cloud.google.com/go/logging/internal/environment.go new file mode 100644 index 000000000..d56d49685 --- /dev/null +++ b/vendor/cloud.google.com/go/logging/internal/environment.go @@ -0,0 +1,75 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package internal + +import ( + "io/ioutil" + "net" + "net/http" + "os" + "strings" + "time" + + "cloud.google.com/go/compute/metadata" +) + +// ResourceAttributesGetter abstracts environment lookup methods to query for environment variables, metadata attributes and file content. +type ResourceAttributesGetter interface { + EnvVar(name string) string + Metadata(path string) string + ReadAll(path string) string +} + +var getter ResourceAttributesGetter = &defaultResourceGetter{ + metaClient: metadata.NewClient(&http.Client{ + Transport: &http.Transport{ + Dial: (&net.Dialer{ + Timeout: 1 * time.Second, + KeepAlive: 10 * time.Second, + }).Dial, + }, + })} + +// ResourceAttributes provides read-only access to the ResourceAtttributesGetter interface implementation. +func ResourceAttributes() ResourceAttributesGetter { + return getter +} + +type defaultResourceGetter struct { + metaClient *metadata.Client +} + +// EnvVar uses os.LookupEnv() to lookup for environment variable by name. +func (g *defaultResourceGetter) EnvVar(name string) string { + return os.Getenv(name) +} + +// Metadata uses metadata package Client.Get() to lookup for metadata attributes by path. +func (g *defaultResourceGetter) Metadata(path string) string { + val, err := g.metaClient.Get(path) + if err != nil { + return "" + } + return strings.TrimSpace(val) +} + +// ReadAll reads all content of the file as a string. +func (g *defaultResourceGetter) ReadAll(path string) string { + bytes, err := ioutil.ReadFile(path) + if err != nil { + return "" + } + return string(bytes) +} diff --git a/vendor/cloud.google.com/go/logging/internal/version.go b/vendor/cloud.google.com/go/logging/internal/version.go new file mode 100644 index 000000000..e93235c20 --- /dev/null +++ b/vendor/cloud.google.com/go/logging/internal/version.go @@ -0,0 +1,18 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package internal + +// Version is the current tagged release of the library. +const Version = "1.5.0" |
