mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge pull request #3683 from mtanda/cloudwatch_reuse_credentials
(cloudwatch) reuse credentials
This commit is contained in:
commit
183f32390c
@ -43,18 +43,29 @@ func init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleGetMetricStatistics(req *cwRequest, c *middleware.Context) {
|
var awsCredentials map[string]*credentials.Credentials = make(map[string]*credentials.Credentials)
|
||||||
|
|
||||||
|
func getCredentials(profile string) *credentials.Credentials {
|
||||||
|
if _, ok := awsCredentials[profile]; ok {
|
||||||
|
return awsCredentials[profile]
|
||||||
|
}
|
||||||
|
|
||||||
sess := session.New()
|
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: profile},
|
||||||
&ec2rolecreds.EC2RoleProvider{Client: ec2metadata.New(sess), ExpiryWindow: 5 * time.Minute},
|
&ec2rolecreds.EC2RoleProvider{Client: ec2metadata.New(sess), ExpiryWindow: 5 * time.Minute},
|
||||||
})
|
})
|
||||||
|
awsCredentials[profile] = creds
|
||||||
|
|
||||||
|
return creds
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleGetMetricStatistics(req *cwRequest, c *middleware.Context) {
|
||||||
cfg := &aws.Config{
|
cfg := &aws.Config{
|
||||||
Region: aws.String(req.Region),
|
Region: aws.String(req.Region),
|
||||||
Credentials: creds,
|
Credentials: getCredentials(req.DataSource.Database),
|
||||||
}
|
}
|
||||||
|
|
||||||
svc := cloudwatch.New(session.New(cfg), cfg)
|
svc := cloudwatch.New(session.New(cfg), cfg)
|
||||||
@ -92,17 +103,9 @@ 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(
|
|
||||||
[]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,
|
Credentials: getCredentials(req.DataSource.Database),
|
||||||
}
|
}
|
||||||
|
|
||||||
svc := cloudwatch.New(session.New(cfg), cfg)
|
svc := cloudwatch.New(session.New(cfg), cfg)
|
||||||
@ -140,17 +143,9 @@ func handleListMetrics(req *cwRequest, c *middleware.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func handleDescribeAlarmsForMetric(req *cwRequest, c *middleware.Context) {
|
func handleDescribeAlarmsForMetric(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,
|
Credentials: getCredentials(req.DataSource.Database),
|
||||||
}
|
}
|
||||||
|
|
||||||
svc := cloudwatch.New(session.New(cfg), cfg)
|
svc := cloudwatch.New(session.New(cfg), cfg)
|
||||||
@ -188,17 +183,9 @@ func handleDescribeAlarmsForMetric(req *cwRequest, c *middleware.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func handleDescribeAlarmHistory(req *cwRequest, c *middleware.Context) {
|
func handleDescribeAlarmHistory(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,
|
Credentials: getCredentials(req.DataSource.Database),
|
||||||
}
|
}
|
||||||
|
|
||||||
svc := cloudwatch.New(session.New(cfg), cfg)
|
svc := cloudwatch.New(session.New(cfg), cfg)
|
||||||
@ -232,17 +219,9 @@ func handleDescribeAlarmHistory(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,
|
Credentials: getCredentials(req.DataSource.Database),
|
||||||
}
|
}
|
||||||
|
|
||||||
svc := ec2.New(session.New(cfg), cfg)
|
svc := ec2.New(session.New(cfg), cfg)
|
||||||
|
Loading…
Reference in New Issue
Block a user