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

Commit c52f63f

Browse files
authored
Merge pull request #168 from tomvachon/feature/storagegateway
Add StorageGateway Coverage
2 parents f8c2ed5 + cfe7a90 commit c52f63f

4 files changed

+244
-0
lines changed
+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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/storagegateway"
7+
)
8+
9+
type StorageGatewayFileShare struct {
10+
svc *storagegateway.StorageGateway
11+
ARN *string
12+
}
13+
14+
func init() {
15+
register("StorageGatewayFileShare", ListStorageGatewayFileShares)
16+
}
17+
18+
func ListStorageGatewayFileShares(sess *session.Session) ([]Resource, error) {
19+
svc := storagegateway.New(sess)
20+
resources := []Resource{}
21+
22+
params := &storagegateway.ListFileSharesInput{
23+
Limit: aws.Int64(25),
24+
}
25+
26+
for {
27+
output, err := svc.ListFileShares(params)
28+
if err != nil {
29+
return nil, err
30+
}
31+
32+
for _, fileShareInfo := range output.FileShareInfoList {
33+
resources = append(resources, &StorageGatewayFileShare{
34+
svc: svc,
35+
ARN: fileShareInfo.FileShareARN,
36+
})
37+
}
38+
39+
if output.Marker == nil {
40+
break
41+
}
42+
43+
params.Marker = output.Marker
44+
}
45+
46+
return resources, nil
47+
}
48+
49+
func (f *StorageGatewayFileShare) Remove() error {
50+
51+
_, err := f.svc.DeleteFileShare(&storagegateway.DeleteFileShareInput{
52+
FileShareARN: f.ARN,
53+
ForceDelete: aws.Bool(true),
54+
})
55+
56+
return err
57+
}
58+
59+
func (f *StorageGatewayFileShare) String() string {
60+
return *f.ARN
61+
}

resources/storagegateway-gateways.go

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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/storagegateway"
7+
)
8+
9+
type StorageGatewayGateway struct {
10+
svc *storagegateway.StorageGateway
11+
ARN *string
12+
}
13+
14+
func init() {
15+
register("StorageGatewayGateway", ListStorageGatewayGateways)
16+
}
17+
18+
func ListStorageGatewayGateways(sess *session.Session) ([]Resource, error) {
19+
svc := storagegateway.New(sess)
20+
resources := []Resource{}
21+
22+
params := &storagegateway.ListGatewaysInput{
23+
Limit: aws.Int64(25),
24+
}
25+
26+
for {
27+
output, err := svc.ListGateways(params)
28+
if err != nil {
29+
return nil, err
30+
}
31+
32+
for _, gateway := range output.Gateways {
33+
resources = append(resources, &StorageGatewayGateway{
34+
svc: svc,
35+
ARN: gateway.GatewayARN,
36+
})
37+
}
38+
39+
if output.Marker == nil {
40+
break
41+
}
42+
43+
params.Marker = output.Marker
44+
}
45+
46+
return resources, nil
47+
}
48+
49+
func (f *StorageGatewayGateway) Remove() error {
50+
51+
_, err := f.svc.DeleteGateway(&storagegateway.DeleteGatewayInput{
52+
GatewayARN: f.ARN,
53+
})
54+
55+
return err
56+
}
57+
58+
func (f *StorageGatewayGateway) String() string {
59+
return *f.ARN
60+
}

resources/storagegateway-tapes.go

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
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/storagegateway"
7+
)
8+
9+
type StorageGatewayTape struct {
10+
svc *storagegateway.StorageGateway
11+
tapeARN *string
12+
gatewayARN *string
13+
}
14+
15+
func init() {
16+
register("StorageGatewayTape", ListStorageGatewayTapes)
17+
}
18+
19+
func ListStorageGatewayTapes(sess *session.Session) ([]Resource, error) {
20+
svc := storagegateway.New(sess)
21+
resources := []Resource{}
22+
23+
params := &storagegateway.ListTapesInput{
24+
Limit: aws.Int64(25),
25+
}
26+
27+
for {
28+
output, err := svc.ListTapes(params)
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
for _, tapeInfo := range output.TapeInfos {
34+
resources = append(resources, &StorageGatewayTape{
35+
svc: svc,
36+
tapeARN: tapeInfo.TapeARN,
37+
gatewayARN: tapeInfo.GatewayARN,
38+
})
39+
}
40+
41+
if output.Marker == nil {
42+
break
43+
}
44+
45+
params.Marker = output.Marker
46+
}
47+
48+
return resources, nil
49+
}
50+
51+
func (f *StorageGatewayTape) Remove() error {
52+
53+
_, err := f.svc.DeleteTape(&storagegateway.DeleteTapeInput{
54+
TapeARN: f.tapeARN,
55+
GatewayARN: f.gatewayARN,
56+
})
57+
58+
return err
59+
}
60+
61+
func (f *StorageGatewayTape) String() string {
62+
return *f.tapeARN
63+
}

resources/storagegateway-volumes.go

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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/storagegateway"
7+
)
8+
9+
type StorageGatewayVolume struct {
10+
svc *storagegateway.StorageGateway
11+
ARN *string
12+
}
13+
14+
func init() {
15+
register("StorageGatewayVolume", ListStorageGatewayVolumes)
16+
}
17+
18+
func ListStorageGatewayVolumes(sess *session.Session) ([]Resource, error) {
19+
svc := storagegateway.New(sess)
20+
resources := []Resource{}
21+
22+
params := &storagegateway.ListVolumesInput{
23+
Limit: aws.Int64(25),
24+
}
25+
26+
for {
27+
output, err := svc.ListVolumes(params)
28+
if err != nil {
29+
return nil, err
30+
}
31+
32+
for _, volumeInfo := range output.VolumeInfos {
33+
resources = append(resources, &StorageGatewayVolume{
34+
svc: svc,
35+
ARN: volumeInfo.VolumeARN,
36+
})
37+
}
38+
39+
if output.Marker == nil {
40+
break
41+
}
42+
43+
params.Marker = output.Marker
44+
}
45+
46+
return resources, nil
47+
}
48+
49+
func (f *StorageGatewayVolume) Remove() error {
50+
51+
_, err := f.svc.DeleteVolume(&storagegateway.DeleteVolumeInput{
52+
VolumeARN: f.ARN,
53+
})
54+
55+
return err
56+
}
57+
58+
func (f *StorageGatewayVolume) String() string {
59+
return *f.ARN
60+
}

0 commit comments

Comments
 (0)