mirror of https://github.com/docker/docs.git
Fix build errors caused by update aws-sdk-go to v1.1.30
This fix tries to fix build errors caused by updating aws-sdk-go to v1.1.30. This fix fixes #22961. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
parent
51f0a04223
commit
46ea8ff75d
|
@ -14,9 +14,9 @@ import (
|
||||||
"github.com/Sirupsen/logrus"
|
"github.com/Sirupsen/logrus"
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
"github.com/aws/aws-sdk-go/aws/awserr"
|
"github.com/aws/aws-sdk-go/aws/awserr"
|
||||||
"github.com/aws/aws-sdk-go/aws/defaults"
|
|
||||||
"github.com/aws/aws-sdk-go/aws/ec2metadata"
|
"github.com/aws/aws-sdk-go/aws/ec2metadata"
|
||||||
"github.com/aws/aws-sdk-go/aws/request"
|
"github.com/aws/aws-sdk-go/aws/request"
|
||||||
|
"github.com/aws/aws-sdk-go/aws/session"
|
||||||
"github.com/aws/aws-sdk-go/service/cloudwatchlogs"
|
"github.com/aws/aws-sdk-go/service/cloudwatchlogs"
|
||||||
"github.com/docker/docker/daemon/logger"
|
"github.com/docker/docker/daemon/logger"
|
||||||
"github.com/docker/docker/dockerversion"
|
"github.com/docker/docker/dockerversion"
|
||||||
|
@ -66,11 +66,8 @@ type regionFinder interface {
|
||||||
|
|
||||||
type byTimestamp []*cloudwatchlogs.InputLogEvent
|
type byTimestamp []*cloudwatchlogs.InputLogEvent
|
||||||
|
|
||||||
// init registers the awslogs driver and sets the default region, if provided
|
// init registers the awslogs driver
|
||||||
func init() {
|
func init() {
|
||||||
if os.Getenv(regionEnvKey) != "" {
|
|
||||||
defaults.DefaultConfig.Region = aws.String(os.Getenv(regionEnvKey))
|
|
||||||
}
|
|
||||||
if err := logger.RegisterLogDriver(name, New); err != nil {
|
if err := logger.RegisterLogDriver(name, New); err != nil {
|
||||||
logrus.Fatal(err)
|
logrus.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -113,7 +110,7 @@ func New(ctx logger.Context) (logger.Logger, error) {
|
||||||
// newRegionFinder is a variable such that the implementation
|
// newRegionFinder is a variable such that the implementation
|
||||||
// can be swapped out for unit tests.
|
// can be swapped out for unit tests.
|
||||||
var newRegionFinder = func() regionFinder {
|
var newRegionFinder = func() regionFinder {
|
||||||
return ec2metadata.New(nil)
|
return ec2metadata.New(session.New())
|
||||||
}
|
}
|
||||||
|
|
||||||
// newAWSLogsClient creates the service client for Amazon CloudWatch Logs.
|
// newAWSLogsClient creates the service client for Amazon CloudWatch Logs.
|
||||||
|
@ -121,28 +118,30 @@ var newRegionFinder = func() regionFinder {
|
||||||
// User-Agent string and automatic region detection using the EC2 Instance
|
// User-Agent string and automatic region detection using the EC2 Instance
|
||||||
// Metadata Service when region is otherwise unspecified.
|
// Metadata Service when region is otherwise unspecified.
|
||||||
func newAWSLogsClient(ctx logger.Context) (api, error) {
|
func newAWSLogsClient(ctx logger.Context) (api, error) {
|
||||||
config := defaults.DefaultConfig
|
var region *string
|
||||||
if ctx.Config[regionKey] != "" {
|
if os.Getenv(regionEnvKey) != "" {
|
||||||
config = defaults.DefaultConfig.Merge(&aws.Config{
|
region = aws.String(os.Getenv(regionEnvKey))
|
||||||
Region: aws.String(ctx.Config[regionKey]),
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
if config.Region == nil || *config.Region == "" {
|
if ctx.Config[regionKey] != "" {
|
||||||
|
region = aws.String(ctx.Config[regionKey])
|
||||||
|
}
|
||||||
|
if region == nil || *region == "" {
|
||||||
logrus.Info("Trying to get region from EC2 Metadata")
|
logrus.Info("Trying to get region from EC2 Metadata")
|
||||||
ec2MetadataClient := newRegionFinder()
|
ec2MetadataClient := newRegionFinder()
|
||||||
region, err := ec2MetadataClient.Region()
|
r, err := ec2MetadataClient.Region()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.WithFields(logrus.Fields{
|
logrus.WithFields(logrus.Fields{
|
||||||
"error": err,
|
"error": err,
|
||||||
}).Error("Could not get region from EC2 metadata, environment, or log option")
|
}).Error("Could not get region from EC2 metadata, environment, or log option")
|
||||||
return nil, errors.New("Cannot determine region for awslogs driver")
|
return nil, errors.New("Cannot determine region for awslogs driver")
|
||||||
}
|
}
|
||||||
config.Region = ®ion
|
region = &r
|
||||||
}
|
}
|
||||||
logrus.WithFields(logrus.Fields{
|
logrus.WithFields(logrus.Fields{
|
||||||
"region": *config.Region,
|
"region": *region,
|
||||||
}).Debug("Created awslogs client")
|
}).Debug("Created awslogs client")
|
||||||
client := cloudwatchlogs.New(config)
|
|
||||||
|
client := cloudwatchlogs.New(session.New(), aws.NewConfig().WithRegion(*region))
|
||||||
|
|
||||||
client.Handlers.Build.PushBackNamed(request.NamedHandler{
|
client.Handlers.Build.PushBackNamed(request.NamedHandler{
|
||||||
Name: "DockerUserAgentHandler",
|
Name: "DockerUserAgentHandler",
|
||||||
|
|
|
@ -47,8 +47,8 @@ func TestNewAWSLogsClientUserAgentHandler(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
buildHandlerList.Run(request)
|
buildHandlerList.Run(request)
|
||||||
expectedUserAgentString := fmt.Sprintf("Docker %s (%s) %s/%s",
|
expectedUserAgentString := fmt.Sprintf("Docker %s (%s) %s/%s (%s; %s; %s)",
|
||||||
dockerversion.Version, runtime.GOOS, aws.SDKName, aws.SDKVersion)
|
dockerversion.Version, runtime.GOOS, aws.SDKName, aws.SDKVersion, runtime.Version(), runtime.GOOS, runtime.GOARCH)
|
||||||
userAgent := request.HTTPRequest.Header.Get("User-Agent")
|
userAgent := request.HTTPRequest.Header.Get("User-Agent")
|
||||||
if userAgent != expectedUserAgentString {
|
if userAgent != expectedUserAgentString {
|
||||||
t.Errorf("Wrong User-Agent string, expected \"%s\" but was \"%s\"",
|
t.Errorf("Wrong User-Agent string, expected \"%s\" but was \"%s\"",
|
||||||
|
|
Loading…
Reference in New Issue