Skip to content

Commit aada788

Browse files
Adding support for Glue blueprints, ml transforms, sessions, and workflows.
1 parent 8294c3a commit aada788

File tree

4 files changed

+268
-0
lines changed

4 files changed

+268
-0
lines changed

resources/glue-blueprints.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws"
5+
"github.com/aws/aws-sdk-go/aws/session"
6+
"github.com/aws/aws-sdk-go/service/glue"
7+
"github.com/rebuy-de/aws-nuke/v2/pkg/types"
8+
)
9+
10+
type GlueBlueprint struct {
11+
svc *glue.Glue
12+
name *string
13+
}
14+
15+
func init() {
16+
register("GlueBlueprint", ListGlueBlueprints)
17+
}
18+
19+
func ListGlueBlueprints(sess *session.Session) ([]Resource, error) {
20+
svc := glue.New(sess)
21+
resources := []Resource{}
22+
23+
params := &glue.ListBlueprintsInput{
24+
MaxResults: aws.Int64(25),
25+
}
26+
27+
for {
28+
output, err := svc.ListBlueprints(params)
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
for _, blueprint := range output.Blueprints {
34+
resources = append(resources, &GlueBlueprint{
35+
svc: svc,
36+
name: blueprint,
37+
})
38+
}
39+
40+
if output.NextToken == nil {
41+
break
42+
}
43+
44+
params.NextToken = output.NextToken
45+
}
46+
47+
return resources, nil
48+
}
49+
50+
func (f *GlueBlueprint) Remove() error {
51+
_, err := f.svc.DeleteBlueprint(&glue.DeleteBlueprintInput{
52+
Name: f.name,
53+
})
54+
55+
return err
56+
}
57+
58+
func (f *GlueBlueprint) Properties() types.Properties {
59+
properties := types.NewProperties()
60+
properties.Set("Name", f.name)
61+
62+
return properties
63+
}
64+
65+
func (f *GlueBlueprint) String() string {
66+
return *f.name
67+
}

resources/glue-ml-transforms.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws"
5+
"github.com/aws/aws-sdk-go/aws/session"
6+
"github.com/aws/aws-sdk-go/service/glue"
7+
"github.com/rebuy-de/aws-nuke/v2/pkg/types"
8+
)
9+
10+
type GlueMLTransform struct {
11+
svc *glue.Glue
12+
id *string
13+
}
14+
15+
func init() {
16+
register("GlueMLTransform", ListGlueMLTransforms)
17+
}
18+
19+
func ListGlueMLTransforms(sess *session.Session) ([]Resource, error) {
20+
svc := glue.New(sess)
21+
resources := []Resource{}
22+
23+
params := &glue.ListMLTransformsInput{
24+
MaxResults: aws.Int64(100),
25+
}
26+
27+
for {
28+
output, err := svc.ListMLTransforms(params)
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
for _, transformId := range output.TransformIds {
34+
resources = append(resources, &GlueMLTransform{
35+
svc: svc,
36+
id: transformId,
37+
})
38+
}
39+
40+
if output.NextToken == nil {
41+
break
42+
}
43+
44+
params.NextToken = output.NextToken
45+
}
46+
47+
return resources, nil
48+
}
49+
50+
func (f *GlueMLTransform) Remove() error {
51+
_, err := f.svc.DeleteMLTransform(&glue.DeleteMLTransformInput{
52+
TransformId: f.id,
53+
})
54+
55+
return err
56+
}
57+
58+
func (f *GlueMLTransform) Properties() types.Properties {
59+
properties := types.NewProperties()
60+
properties.Set("Id", f.id)
61+
62+
return properties
63+
}
64+
65+
func (f *GlueMLTransform) String() string {
66+
return *f.id
67+
}

resources/glue-sessions.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws"
5+
"github.com/aws/aws-sdk-go/aws/session"
6+
"github.com/aws/aws-sdk-go/service/glue"
7+
"github.com/rebuy-de/aws-nuke/v2/pkg/types"
8+
)
9+
10+
type GlueSession struct {
11+
svc *glue.Glue
12+
id *string
13+
}
14+
15+
func init() {
16+
register("GlueSession", ListGlueSessions)
17+
}
18+
19+
func ListGlueSessions(sess *session.Session) ([]Resource, error) {
20+
svc := glue.New(sess)
21+
resources := []Resource{}
22+
23+
params := &glue.ListSessionsInput{
24+
MaxResults: aws.Int64(25),
25+
}
26+
27+
for {
28+
output, err := svc.ListSessions(params)
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
for _, session := range output.Sessions {
34+
resources = append(resources, &GlueSession{
35+
svc: svc,
36+
id: session.Id,
37+
})
38+
}
39+
40+
if output.NextToken == nil {
41+
break
42+
}
43+
44+
params.NextToken = output.NextToken
45+
}
46+
47+
return resources, nil
48+
}
49+
50+
func (f *GlueSession) Remove() error {
51+
_, err := f.svc.DeleteSession(&glue.DeleteSessionInput{
52+
Id: f.id,
53+
})
54+
55+
return err
56+
}
57+
58+
func (f *GlueSession) Properties() types.Properties {
59+
properties := types.NewProperties()
60+
properties.Set("Id", f.id)
61+
62+
return properties
63+
}
64+
65+
func (f *GlueSession) String() string {
66+
return *f.id
67+
}

resources/glue-workflows.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws"
5+
"github.com/aws/aws-sdk-go/aws/session"
6+
"github.com/aws/aws-sdk-go/service/glue"
7+
"github.com/rebuy-de/aws-nuke/v2/pkg/types"
8+
)
9+
10+
type GlueWorkflow struct {
11+
svc *glue.Glue
12+
name *string
13+
}
14+
15+
func init() {
16+
register("GlueWorkflow", ListGlueWorkflows)
17+
}
18+
19+
func ListGlueWorkflows(sess *session.Session) ([]Resource, error) {
20+
svc := glue.New(sess)
21+
resources := []Resource{}
22+
23+
params := &glue.ListWorkflowsInput{
24+
MaxResults: aws.Int64(25),
25+
}
26+
27+
for {
28+
output, err := svc.ListWorkflows(params)
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
for _, workflowName := range output.Workflows {
34+
resources = append(resources, &GlueWorkflow{
35+
svc: svc,
36+
name: workflowName,
37+
})
38+
}
39+
40+
if output.NextToken == nil {
41+
break
42+
}
43+
44+
params.NextToken = output.NextToken
45+
}
46+
47+
return resources, nil
48+
}
49+
50+
func (f *GlueWorkflow) Remove() error {
51+
_, err := f.svc.DeleteWorkflow(&glue.DeleteWorkflowInput{
52+
Name: f.name,
53+
})
54+
55+
return err
56+
}
57+
58+
func (f *GlueWorkflow) Properties() types.Properties {
59+
properties := types.NewProperties()
60+
properties.Set("Name", f.name)
61+
62+
return properties
63+
}
64+
65+
func (f *GlueWorkflow) String() string {
66+
return *f.name
67+
}

0 commit comments

Comments
 (0)