Skip to content

Commit 80c7bae

Browse files
Create opensearchservice-packages.go
Adding working code for packages cleanup.
1 parent 67be0c0 commit 80c7bae

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws/session"
5+
"github.com/aws/aws-sdk-go/service/opensearchservice"
6+
"github.com/rebuy-de/aws-nuke/v2/pkg/types"
7+
)
8+
9+
type OSPackage struct {
10+
svc *opensearchservice.OpenSearchService
11+
domainName *string
12+
packageID *string
13+
}
14+
15+
func init() {
16+
register("OSPackage", ListOSPackages)
17+
}
18+
19+
func ListOSPackages(sess *session.Session) ([]Resource, error) {
20+
svc := opensearchservice.New(sess)
21+
22+
listResp, err := svc.DescribePackages(&opensearchservice.DescribePackagesInput{})
23+
if err != nil {
24+
return nil, err
25+
}
26+
27+
resources := make([]Resource, 0)
28+
29+
for _, pkg := range listResp.PackageDetailsList {
30+
domainResp, err := svc.ListDomainsForPackage(&opensearchservice.ListDomainsForPackageInput{
31+
PackageID: pkg.PackageID,
32+
})
33+
if err != nil {
34+
return nil, err
35+
}
36+
37+
for _, domain := range domainResp.DomainPackageDetailsList {
38+
resources = append(resources, &OSPackage{
39+
svc: svc,
40+
domainName: domain.DomainName,
41+
packageID: pkg.PackageID,
42+
})
43+
}
44+
}
45+
46+
return resources, nil
47+
}
48+
49+
func (o *OSPackage) Remove() error {
50+
_, err := o.svc.DeletePackage(&opensearchservice.DeletePackageInput{
51+
PackageID: o.packageID,
52+
})
53+
54+
return err
55+
}
56+
57+
func (o *OSPackage) Properties() types.Properties {
58+
properties := types.NewProperties()
59+
return properties
60+
}
61+
62+
func (o *OSPackage) String() string {
63+
return *o.packageID
64+
}

0 commit comments

Comments
 (0)