Browse code

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>

Yong Tang authored on 2016/05/28 01:29:37
Showing 2 changed files
... ...
@@ -14,9 +14,9 @@ import (
14 14
 	"github.com/Sirupsen/logrus"
15 15
 	"github.com/aws/aws-sdk-go/aws"
16 16
 	"github.com/aws/aws-sdk-go/aws/awserr"
17
-	"github.com/aws/aws-sdk-go/aws/defaults"
18 17
 	"github.com/aws/aws-sdk-go/aws/ec2metadata"
19 18
 	"github.com/aws/aws-sdk-go/aws/request"
19
+	"github.com/aws/aws-sdk-go/aws/session"
20 20
 	"github.com/aws/aws-sdk-go/service/cloudwatchlogs"
21 21
 	"github.com/docker/docker/daemon/logger"
22 22
 	"github.com/docker/docker/dockerversion"
... ...
@@ -66,11 +66,8 @@ type regionFinder interface {
66 66
 
67 67
 type byTimestamp []*cloudwatchlogs.InputLogEvent
68 68
 
69
-// init registers the awslogs driver and sets the default region, if provided
69
+// init registers the awslogs driver
70 70
 func init() {
71
-	if os.Getenv(regionEnvKey) != "" {
72
-		defaults.DefaultConfig.Region = aws.String(os.Getenv(regionEnvKey))
73
-	}
74 71
 	if err := logger.RegisterLogDriver(name, New); err != nil {
75 72
 		logrus.Fatal(err)
76 73
 	}
... ...
@@ -113,7 +110,7 @@ func New(ctx logger.Context) (logger.Logger, error) {
113 113
 // newRegionFinder is a variable such that the implementation
114 114
 // can be swapped out for unit tests.
115 115
 var newRegionFinder = func() regionFinder {
116
-	return ec2metadata.New(nil)
116
+	return ec2metadata.New(session.New())
117 117
 }
118 118
 
119 119
 // newAWSLogsClient creates the service client for Amazon CloudWatch Logs.
... ...
@@ -121,28 +118,30 @@ var newRegionFinder = func() regionFinder {
121 121
 // User-Agent string and automatic region detection using the EC2 Instance
122 122
 // Metadata Service when region is otherwise unspecified.
123 123
 func newAWSLogsClient(ctx logger.Context) (api, error) {
124
-	config := defaults.DefaultConfig
124
+	var region *string
125
+	if os.Getenv(regionEnvKey) != "" {
126
+		region = aws.String(os.Getenv(regionEnvKey))
127
+	}
125 128
 	if ctx.Config[regionKey] != "" {
126
-		config = defaults.DefaultConfig.Merge(&aws.Config{
127
-			Region: aws.String(ctx.Config[regionKey]),
128
-		})
129
+		region = aws.String(ctx.Config[regionKey])
129 130
 	}
130
-	if config.Region == nil || *config.Region == "" {
131
+	if region == nil || *region == "" {
131 132
 		logrus.Info("Trying to get region from EC2 Metadata")
132 133
 		ec2MetadataClient := newRegionFinder()
133
-		region, err := ec2MetadataClient.Region()
134
+		r, err := ec2MetadataClient.Region()
134 135
 		if err != nil {
135 136
 			logrus.WithFields(logrus.Fields{
136 137
 				"error": err,
137 138
 			}).Error("Could not get region from EC2 metadata, environment, or log option")
138 139
 			return nil, errors.New("Cannot determine region for awslogs driver")
139 140
 		}
140
-		config.Region = &region
141
+		region = &r
141 142
 	}
142 143
 	logrus.WithFields(logrus.Fields{
143
-		"region": *config.Region,
144
+		"region": *region,
144 145
 	}).Debug("Created awslogs client")
145
-	client := cloudwatchlogs.New(config)
146
+
147
+	client := cloudwatchlogs.New(session.New(), aws.NewConfig().WithRegion(*region))
146 148
 
147 149
 	client.Handlers.Build.PushBackNamed(request.NamedHandler{
148 150
 		Name: "DockerUserAgentHandler",
... ...
@@ -47,8 +47,8 @@ func TestNewAWSLogsClientUserAgentHandler(t *testing.T) {
47 47
 		},
48 48
 	}
49 49
 	buildHandlerList.Run(request)
50
-	expectedUserAgentString := fmt.Sprintf("Docker %s (%s) %s/%s",
51
-		dockerversion.Version, runtime.GOOS, aws.SDKName, aws.SDKVersion)
50
+	expectedUserAgentString := fmt.Sprintf("Docker %s (%s) %s/%s (%s; %s; %s)",
51
+		dockerversion.Version, runtime.GOOS, aws.SDKName, aws.SDKVersion, runtime.Version(), runtime.GOOS, runtime.GOARCH)
52 52
 	userAgent := request.HTTPRequest.Header.Get("User-Agent")
53 53
 	if userAgent != expectedUserAgentString {
54 54
 		t.Errorf("Wrong User-Agent string, expected \"%s\" but was \"%s\"",