Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Commit 8a42607

Browse files
authored
Merge pull request #28 from rebuy-de/nuke-spot-fleet
nuke spot fleet requests
2 parents c2f318f + 61009a6 commit 8a42607

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

resources/ec2-spot-fleet-requests.go

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package resources
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/aws/aws-sdk-go/aws"
7+
"github.com/aws/aws-sdk-go/service/ec2"
8+
)
9+
10+
type EC2SpotFleetRequest struct {
11+
svc *ec2.EC2
12+
id string
13+
state string
14+
}
15+
16+
func (n *EC2Nuke) ListSpotFleetRequests() ([]Resource, error) {
17+
resp, err := n.Service.DescribeSpotFleetRequests(nil)
18+
if err != nil {
19+
return nil, err
20+
}
21+
22+
resources := make([]Resource, 0)
23+
for _, config := range resp.SpotFleetRequestConfigs {
24+
resources = append(resources, &EC2SpotFleetRequest{
25+
svc: n.Service,
26+
id: *config.SpotFleetRequestId,
27+
state: *config.SpotFleetRequestState,
28+
})
29+
}
30+
31+
return resources, nil
32+
}
33+
34+
func (i *EC2SpotFleetRequest) Filter() error {
35+
if i.state == "cancelled" {
36+
return fmt.Errorf("already cancelled")
37+
}
38+
return nil
39+
}
40+
41+
func (i *EC2SpotFleetRequest) Remove() error {
42+
params := &ec2.CancelSpotFleetRequestsInput{
43+
TerminateInstances: aws.Bool(true),
44+
SpotFleetRequestIds: []*string{
45+
&i.id,
46+
},
47+
}
48+
49+
_, err := i.svc.CancelSpotFleetRequests(params)
50+
if err != nil {
51+
return err
52+
}
53+
54+
return nil
55+
}
56+
57+
func (i *EC2SpotFleetRequest) String() string {
58+
return i.id
59+
}

resources/listers.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,11 @@ func GetListers(sess *session.Session) []ResourceLister {
5858
ec2.ListNetworkACLs,
5959
ec2.ListRouteTables,
6060
ec2.ListSecurityGroups,
61+
ec2.ListSpotFleetRequests,
6162
ec2.ListSubnets,
6263
ec2.ListVolumes,
63-
ec2.ListVpcs,
6464
ec2.ListVpcEndpoints,
65+
ec2.ListVpcs,
6566
ec2.ListVpnConnections,
6667
ec2.ListVpnGatewayAttachements,
6768
ec2.ListVpnGateways,

0 commit comments

Comments
 (0)