Bläddra i källkod

Merge pull request #3343 from mtanda/cloudwatch_fix_credential_check

(cloudwatch) fix EC2RoleProvider parameter
Torkel Ödegaard 10 år sedan
förälder
incheckning
9e2ef543ed
1 ändrade filer med 15 tillägg och 3 borttagningar
  1. 15 3
      pkg/api/cloudwatch/cloudwatch.go

+ 15 - 3
pkg/api/cloudwatch/cloudwatch.go

@@ -9,6 +9,7 @@ import (
 	"github.com/aws/aws-sdk-go/aws"
 	"github.com/aws/aws-sdk-go/aws"
 	"github.com/aws/aws-sdk-go/aws/credentials"
 	"github.com/aws/aws-sdk-go/aws/credentials"
 	"github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds"
 	"github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds"
+	"github.com/aws/aws-sdk-go/aws/ec2metadata"
 	"github.com/aws/aws-sdk-go/aws/session"
 	"github.com/aws/aws-sdk-go/aws/session"
 	"github.com/aws/aws-sdk-go/service/cloudwatch"
 	"github.com/aws/aws-sdk-go/service/cloudwatch"
 	"github.com/aws/aws-sdk-go/service/ec2"
 	"github.com/aws/aws-sdk-go/service/ec2"
@@ -40,11 +41,12 @@ func init() {
 }
 }
 
 
 func handleGetMetricStatistics(req *cwRequest, c *middleware.Context) {
 func handleGetMetricStatistics(req *cwRequest, c *middleware.Context) {
+	sess := session.New()
 	creds := credentials.NewChainCredentials(
 	creds := credentials.NewChainCredentials(
 		[]credentials.Provider{
 		[]credentials.Provider{
 			&credentials.EnvProvider{},
 			&credentials.EnvProvider{},
 			&credentials.SharedCredentialsProvider{Filename: "", Profile: req.DataSource.Database},
 			&credentials.SharedCredentialsProvider{Filename: "", Profile: req.DataSource.Database},
-			&ec2rolecreds.EC2RoleProvider{ExpiryWindow: 5 * time.Minute},
+			&ec2rolecreds.EC2RoleProvider{Client: ec2metadata.New(sess), ExpiryWindow: 5 * time.Minute},
 		})
 		})
 
 
 	cfg := &aws.Config{
 	cfg := &aws.Config{
@@ -87,11 +89,12 @@ func handleGetMetricStatistics(req *cwRequest, c *middleware.Context) {
 }
 }
 
 
 func handleListMetrics(req *cwRequest, c *middleware.Context) {
 func handleListMetrics(req *cwRequest, c *middleware.Context) {
+	sess := session.New()
 	creds := credentials.NewChainCredentials(
 	creds := credentials.NewChainCredentials(
 		[]credentials.Provider{
 		[]credentials.Provider{
 			&credentials.EnvProvider{},
 			&credentials.EnvProvider{},
 			&credentials.SharedCredentialsProvider{Filename: "", Profile: req.DataSource.Database},
 			&credentials.SharedCredentialsProvider{Filename: "", Profile: req.DataSource.Database},
-			&ec2rolecreds.EC2RoleProvider{ExpiryWindow: 5 * time.Minute},
+			&ec2rolecreds.EC2RoleProvider{Client: ec2metadata.New(sess), ExpiryWindow: 5 * time.Minute},
 		})
 		})
 
 
 	cfg := &aws.Config{
 	cfg := &aws.Config{
@@ -126,8 +129,17 @@ func handleListMetrics(req *cwRequest, c *middleware.Context) {
 }
 }
 
 
 func handleDescribeInstances(req *cwRequest, c *middleware.Context) {
 func handleDescribeInstances(req *cwRequest, c *middleware.Context) {
+	sess := session.New()
+	creds := credentials.NewChainCredentials(
+		[]credentials.Provider{
+			&credentials.EnvProvider{},
+			&credentials.SharedCredentialsProvider{Filename: "", Profile: req.DataSource.Database},
+			&ec2rolecreds.EC2RoleProvider{Client: ec2metadata.New(sess), ExpiryWindow: 5 * time.Minute},
+		})
+
 	cfg := &aws.Config{
 	cfg := &aws.Config{
-		Region: aws.String(req.Region),
+		Region:      aws.String(req.Region),
+		Credentials: creds,
 	}
 	}
 
 
 	svc := ec2.New(session.New(cfg), cfg)
 	svc := ec2.New(session.New(cfg), cfg)