Skip to content

Commit c38c61c

Browse files
committed
aws-dump: Added RDS resources
1 parent afa9192 commit c38c61c

File tree

3 files changed

+342
-2
lines changed

3 files changed

+342
-2
lines changed

aws/dump/go.sum

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ github.com/aws/aws-sdk-go v1.16.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi
6161
github.com/aws/aws-sdk-go v1.21.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
6262
github.com/aws/aws-sdk-go v1.21.9 h1:+HXP97l4IbJvccwwNoweEknroEcX8QLwExcnc+Kxobg=
6363
github.com/aws/aws-sdk-go v1.21.9/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
64+
github.com/aws/aws-sdk-go v1.21.10 h1:lTRdgyxraKbnNhx7kWeoW/Uow1TKnSNDpQGTtEXJQgk=
6465
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
6566
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
6667
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=

aws/dump/resources/rds.go

+338
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,338 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/service/rds"
5+
"github.com/fatih/structs"
6+
)
7+
8+
var (
9+
RDSService = Service{
10+
Name: "rds",
11+
Reports: map[string]Report{
12+
"db-clusters": RDSListDBClusters,
13+
"db-instance-automated-backups": RDSListDBInstanceAutomatedBackups,
14+
"db-instances": RDSListDBInstances,
15+
"db-parameter-groups": RDSListDBParameterGroups,
16+
"db-security-groups": RDSListDBSecurityGroups,
17+
"db-snapshots": RDSListDBSnapshots,
18+
"db-subnet-groups": RDSListDBSubnetGroups,
19+
"event-subscriptions": RDSListEventSubscriptions,
20+
"events": RDSListEvents,
21+
"global-clusters": RDSListGlobalClusters,
22+
"option-groups": RDSListOptionGroups,
23+
"reserved-db-instances": RDSListReservedDBInstances,
24+
},
25+
}
26+
)
27+
28+
func RDSListDBClusters(session *Session) *ReportResult {
29+
30+
client := rds.New(session.Session, session.Config)
31+
32+
resources := []Resource{}
33+
err := client.DescribeDBClustersPages(&rds.DescribeDBClustersInput{},
34+
func(page *rds.DescribeDBClustersOutput, lastPage bool) bool {
35+
for _, resource := range page.DBClusters {
36+
r := Resource{
37+
ID: *resource.DBClusterIdentifier,
38+
ARN: *resource.DBClusterArn,
39+
AccountID: session.AccountID,
40+
Service: "rds",
41+
Type: "db-cluster",
42+
Region: *session.Config.Region,
43+
Metadata: structs.Map(resource),
44+
}
45+
resources = append(resources, r)
46+
}
47+
48+
return true
49+
})
50+
51+
return &ReportResult{resources, err}
52+
}
53+
54+
func RDSListDBInstanceAutomatedBackups(session *Session) *ReportResult {
55+
56+
client := rds.New(session.Session, session.Config)
57+
58+
resources := []Resource{}
59+
err := client.DescribeDBInstanceAutomatedBackupsPages(&rds.DescribeDBInstanceAutomatedBackupsInput{},
60+
func(page *rds.DescribeDBInstanceAutomatedBackupsOutput, lastPage bool) bool {
61+
for _, resource := range page.DBInstanceAutomatedBackups {
62+
r := Resource{
63+
ID: *resource.DBInstanceArn,
64+
ARN: *resource.DBInstanceArn,
65+
AccountID: session.AccountID,
66+
Service: "rds",
67+
Type: "db-instance-automated-backup",
68+
Region: *session.Config.Region,
69+
Metadata: structs.Map(resource),
70+
}
71+
resources = append(resources, r)
72+
}
73+
74+
return true
75+
})
76+
77+
return &ReportResult{resources, err}
78+
}
79+
80+
func RDSListDBInstances(session *Session) *ReportResult {
81+
82+
client := rds.New(session.Session, session.Config)
83+
84+
resources := []Resource{}
85+
err := client.DescribeDBInstancesPages(&rds.DescribeDBInstancesInput{},
86+
func(page *rds.DescribeDBInstancesOutput, lastPage bool) bool {
87+
for _, resource := range page.DBInstances {
88+
r := Resource{
89+
ID: *resource.DBInstanceIdentifier,
90+
ARN: *resource.DBInstanceArn,
91+
AccountID: session.AccountID,
92+
Service: "rds",
93+
Type: "db-instance",
94+
Region: *session.Config.Region,
95+
Metadata: structs.Map(resource),
96+
}
97+
resources = append(resources, r)
98+
}
99+
100+
return true
101+
})
102+
103+
return &ReportResult{resources, err}
104+
}
105+
106+
func RDSListDBParameterGroups(session *Session) *ReportResult {
107+
108+
client := rds.New(session.Session, session.Config)
109+
110+
resources := []Resource{}
111+
err := client.DescribeDBParameterGroupsPages(&rds.DescribeDBParameterGroupsInput{},
112+
func(page *rds.DescribeDBParameterGroupsOutput, lastPage bool) bool {
113+
for _, resource := range page.DBParameterGroups {
114+
r := Resource{
115+
ID: *resource.DBParameterGroupArn,
116+
ARN: *resource.DBParameterGroupArn,
117+
AccountID: session.AccountID,
118+
Service: "rds",
119+
Type: "db-parameter-group",
120+
Region: *session.Config.Region,
121+
Metadata: structs.Map(resource),
122+
}
123+
resources = append(resources, r)
124+
}
125+
126+
return true
127+
})
128+
129+
return &ReportResult{resources, err}
130+
}
131+
132+
func RDSListDBSecurityGroups(session *Session) *ReportResult {
133+
134+
client := rds.New(session.Session, session.Config)
135+
136+
resources := []Resource{}
137+
err := client.DescribeDBSecurityGroupsPages(&rds.DescribeDBSecurityGroupsInput{},
138+
func(page *rds.DescribeDBSecurityGroupsOutput, lastPage bool) bool {
139+
for _, resource := range page.DBSecurityGroups {
140+
r := Resource{
141+
ID: *resource.DBSecurityGroupArn,
142+
ARN: *resource.DBSecurityGroupArn,
143+
AccountID: session.AccountID,
144+
Service: "rds",
145+
Type: "db-security-group",
146+
Region: *session.Config.Region,
147+
Metadata: structs.Map(resource),
148+
}
149+
resources = append(resources, r)
150+
}
151+
152+
return true
153+
})
154+
155+
return &ReportResult{resources, err}
156+
}
157+
158+
func RDSListDBSnapshots(session *Session) *ReportResult {
159+
160+
client := rds.New(session.Session, session.Config)
161+
162+
resources := []Resource{}
163+
err := client.DescribeDBSnapshotsPages(&rds.DescribeDBSnapshotsInput{},
164+
func(page *rds.DescribeDBSnapshotsOutput, lastPage bool) bool {
165+
for _, resource := range page.DBSnapshots {
166+
r := Resource{
167+
ID: *resource.DBSnapshotIdentifier,
168+
ARN: *resource.DBSnapshotArn,
169+
AccountID: session.AccountID,
170+
Service: "rds",
171+
Type: "db-snapshot",
172+
Region: *session.Config.Region,
173+
Metadata: structs.Map(resource),
174+
}
175+
resources = append(resources, r)
176+
}
177+
178+
return true
179+
})
180+
181+
return &ReportResult{resources, err}
182+
}
183+
184+
func RDSListDBSubnetGroups(session *Session) *ReportResult {
185+
186+
client := rds.New(session.Session, session.Config)
187+
188+
resources := []Resource{}
189+
err := client.DescribeDBSubnetGroupsPages(&rds.DescribeDBSubnetGroupsInput{},
190+
func(page *rds.DescribeDBSubnetGroupsOutput, lastPage bool) bool {
191+
for _, resource := range page.DBSubnetGroups {
192+
r := Resource{
193+
ID: *resource.DBSubnetGroupArn,
194+
ARN: *resource.DBSubnetGroupArn,
195+
AccountID: session.AccountID,
196+
Service: "rds",
197+
Type: "db-subnet-group",
198+
Region: *session.Config.Region,
199+
Metadata: structs.Map(resource),
200+
}
201+
resources = append(resources, r)
202+
}
203+
204+
return true
205+
})
206+
207+
return &ReportResult{resources, err}
208+
}
209+
210+
func RDSListEventSubscriptions(session *Session) *ReportResult {
211+
212+
client := rds.New(session.Session, session.Config)
213+
214+
resources := []Resource{}
215+
err := client.DescribeEventSubscriptionsPages(&rds.DescribeEventSubscriptionsInput{},
216+
func(page *rds.DescribeEventSubscriptionsOutput, lastPage bool) bool {
217+
for _, resource := range page.EventSubscriptionsList {
218+
r := Resource{
219+
ID: *resource.EventSubscriptionArn,
220+
ARN: *resource.EventSubscriptionArn,
221+
AccountID: session.AccountID,
222+
Service: "rds",
223+
Type: "event-subscription",
224+
Region: *session.Config.Region,
225+
Metadata: structs.Map(resource),
226+
}
227+
resources = append(resources, r)
228+
}
229+
230+
return true
231+
})
232+
233+
return &ReportResult{resources, err}
234+
}
235+
236+
func RDSListEvents(session *Session) *ReportResult {
237+
238+
client := rds.New(session.Session, session.Config)
239+
240+
resources := []Resource{}
241+
err := client.DescribeEventsPages(&rds.DescribeEventsInput{},
242+
func(page *rds.DescribeEventsOutput, lastPage bool) bool {
243+
for _, resource := range page.Events {
244+
r := Resource{
245+
ID: *resource.SourceArn,
246+
ARN: *resource.SourceArn,
247+
AccountID: session.AccountID,
248+
Service: "rds",
249+
Type: "event",
250+
Region: *session.Config.Region,
251+
Metadata: structs.Map(resource),
252+
}
253+
resources = append(resources, r)
254+
}
255+
256+
return true
257+
})
258+
259+
return &ReportResult{resources, err}
260+
}
261+
262+
func RDSListGlobalClusters(session *Session) *ReportResult {
263+
264+
client := rds.New(session.Session, session.Config)
265+
266+
resources := []Resource{}
267+
err := client.DescribeGlobalClustersPages(&rds.DescribeGlobalClustersInput{},
268+
func(page *rds.DescribeGlobalClustersOutput, lastPage bool) bool {
269+
for _, resource := range page.GlobalClusters {
270+
r := Resource{
271+
ID: *resource.GlobalClusterIdentifier,
272+
ARN: *resource.GlobalClusterArn,
273+
AccountID: session.AccountID,
274+
Service: "rds",
275+
Type: "global-cluster",
276+
Region: *session.Config.Region,
277+
Metadata: structs.Map(resource),
278+
}
279+
resources = append(resources, r)
280+
}
281+
282+
return true
283+
})
284+
285+
return &ReportResult{resources, err}
286+
}
287+
288+
func RDSListOptionGroups(session *Session) *ReportResult {
289+
290+
client := rds.New(session.Session, session.Config)
291+
292+
resources := []Resource{}
293+
err := client.DescribeOptionGroupsPages(&rds.DescribeOptionGroupsInput{},
294+
func(page *rds.DescribeOptionGroupsOutput, lastPage bool) bool {
295+
for _, resource := range page.OptionGroupsList {
296+
r := Resource{
297+
ID: *resource.OptionGroupArn,
298+
ARN: *resource.OptionGroupArn,
299+
AccountID: session.AccountID,
300+
Service: "rds",
301+
Type: "option-group",
302+
Region: *session.Config.Region,
303+
Metadata: structs.Map(resource),
304+
}
305+
resources = append(resources, r)
306+
}
307+
308+
return true
309+
})
310+
311+
return &ReportResult{resources, err}
312+
}
313+
314+
func RDSListReservedDBInstances(session *Session) *ReportResult {
315+
316+
client := rds.New(session.Session, session.Config)
317+
318+
resources := []Resource{}
319+
err := client.DescribeReservedDBInstancesPages(&rds.DescribeReservedDBInstancesInput{},
320+
func(page *rds.DescribeReservedDBInstancesOutput, lastPage bool) bool {
321+
for _, resource := range page.ReservedDBInstances {
322+
r := Resource{
323+
ID: *resource.ReservedDBInstanceArn,
324+
ARN: *resource.ReservedDBInstanceArn,
325+
AccountID: session.AccountID,
326+
Service: "rds",
327+
Type: "reserved-db-instance",
328+
Region: *session.Config.Region,
329+
Metadata: structs.Map(resource),
330+
}
331+
resources = append(resources, r)
332+
}
333+
334+
return true
335+
})
336+
337+
return &ReportResult{resources, err}
338+
}

aws/dump/resources/services.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ func AllServices() map[string]Service {
1111
"lambda": LambdaService,
1212
"route53": Route53Service,
1313
"s3": S3Service,
14-
}
15-
}
14+
"rds": RDSService,
15+
}
16+
}

0 commit comments

Comments
 (0)