1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #21293 from cpuguy83/wtf_gcp

Do not call out to Google on init
This commit is contained in:
Michael Crosby 2016-03-17 10:32:21 -07:00
commit 2b9ceea896

View file

@ -2,6 +2,7 @@ package gcplogs
import (
"fmt"
"sync"
"sync/atomic"
"time"
@ -26,7 +27,7 @@ var (
// The number of logs the gcplogs driver has dropped.
droppedLogs uint64
onGCE = metadata.OnGCE()
onGCE bool
// instance metadata populated from the metadata server if available
projectID string
@ -36,16 +37,6 @@ var (
)
func init() {
if onGCE {
// These will fail on instances if the metadata service is
// down or the client is compiled with an API version that
// has been removed. Since these are not vital, let's ignore
// them and make their fields in the dockeLogEntry ,omitempty
projectID, _ = metadata.ProjectID()
zone, _ = metadata.Zone()
instanceName, _ = metadata.InstanceName()
instanceID, _ = metadata.InstanceID()
}
if err := logger.RegisterLogDriver(name, New); err != nil {
logrus.Fatal(err)
@ -84,11 +75,30 @@ type containerInfo struct {
Metadata map[string]string `json:"metadata,omitempty"`
}
var initGCPOnce sync.Once
func initGCP() {
initGCPOnce.Do(func() {
onGCE = metadata.OnGCE()
if onGCE {
// These will fail on instances if the metadata service is
// down or the client is compiled with an API version that
// has been removed. Since these are not vital, let's ignore
// them and make their fields in the dockeLogEntry ,omitempty
projectID, _ = metadata.ProjectID()
zone, _ = metadata.Zone()
instanceName, _ = metadata.InstanceName()
instanceID, _ = metadata.InstanceID()
}
})
}
// New creates a new logger that logs to Google Cloud Logging using the application
// default credentials.
//
// See https://developers.google.com/identity/protocols/application-default-credentials
func New(ctx logger.Context) (logger.Logger, error) {
initGCP()
var project string
if projectID != "" {