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>
| ... | ... |
@@ -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 = ®ion |
|
| 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\"",
|