/
autoscaling.go
68 lines (56 loc) · 1.97 KB
/
autoscaling.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package resources
import (
"github.com/aws/aws-sdk-go/service/autoscaling"
"github.com/fatih/structs"
)
var (
AutoScalingService = Service{
Name: "autoscaling",
Reports: map[string]Report{
"groups": AutoScalingListGroups,
"launch-configurations": AutoScalingListLaunchConfigurations,
},
}
)
func AutoScalingListGroups(session *Session) *ReportResult {
client := autoscaling.New(session.Session, session.Config)
resources := []Resource{}
err := client.DescribeAutoScalingGroupsPages(&autoscaling.DescribeAutoScalingGroupsInput{},
func(page *autoscaling.DescribeAutoScalingGroupsOutput, lastPage bool) bool {
for _, autoScalingGroup := range page.AutoScalingGroups {
resource := Resource{
ID: *autoScalingGroup.AutoScalingGroupName,
ARN: *autoScalingGroup.AutoScalingGroupARN,
AccountID: session.AccountID,
Service: "autoscaling",
Type: "group",
Region: *session.Config.Region,
Metadata: structs.Map(autoScalingGroup),
}
resources = append(resources, resource)
}
return true
})
return &ReportResult{resources, err}
}
func AutoScalingListLaunchConfigurations(session *Session) *ReportResult {
client := autoscaling.New(session.Session, session.Config)
resources := []Resource{}
err := client.DescribeLaunchConfigurationsPages(&autoscaling.DescribeLaunchConfigurationsInput{},
func(page *autoscaling.DescribeLaunchConfigurationsOutput, lastPage bool) bool {
for _, launchConfiguration := range page.LaunchConfigurations {
resource := Resource{
ID: *launchConfiguration.LaunchConfigurationName,
ARN: *launchConfiguration.LaunchConfigurationARN,
AccountID: session.AccountID,
Service: "autoscaling",
Type: "launch-configuration",
Region: *session.Config.Region,
Metadata: structs.Map(launchConfiguration),
}
resources = append(resources, resource)
}
return true
})
return &ReportResult{resources, err}
}