aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/cloud.google.com/go/logging/internal
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2022-09-05 14:27:54 +0200
committerGitHub <noreply@github.com>2022-09-05 12:27:54 +0000
commitb2f2446b46bf02821d90ebedadae2bf7ae0e880e (patch)
tree923cf42842918d6bebca1d6bbdc08abed54d274d /vendor/cloud.google.com/go/logging/internal
parente6654faff4bcca4be92e9a8596fd4b77f747c39e (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')
-rw-r--r--vendor/cloud.google.com/go/logging/internal/common.go43
-rw-r--r--vendor/cloud.google.com/go/logging/internal/environment.go75
-rw-r--r--vendor/cloud.google.com/go/logging/internal/version.go18
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"