From c82452484a84d71a76b1dc09059863920bf33097 Mon Sep 17 00:00:00 2001 From: Thomas Vachon Date: Fri, 2 Mar 2018 14:18:11 -0500 Subject: [PATCH] Add DataPipeline Pipeline cleanup --- resources/datapipeline-pipelines.go | 57 +++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 resources/datapipeline-pipelines.go diff --git a/resources/datapipeline-pipelines.go b/resources/datapipeline-pipelines.go new file mode 100644 index 000000000..ef7d3b0ed --- /dev/null +++ b/resources/datapipeline-pipelines.go @@ -0,0 +1,57 @@ +package resources + +import ( + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/datapipeline" +) + +type DataPipelinePipeline struct { + svc *datapipeline.DataPipeline + pipelineID *string +} + +func init() { + register("DataPipelinePipeline", ListDataPipelinePipelines) +} + +func ListDataPipelinePipelines(sess *session.Session) ([]Resource, error) { + svc := datapipeline.New(sess) + resources := []Resource{} + + params := &datapipeline.ListPipelinesInput{} + + for { + resp, err := svc.ListPipelines(params) + if err != nil { + return nil, err + } + + for _, pipeline := range resp.PipelineIdList { + resources = append(resources, &DataPipelinePipeline{ + svc: svc, + pipelineID: pipeline.Id, + }) + } + + if resp.Marker == nil { + break + } + + params.Marker = resp.Marker + } + + return resources, nil +} + +func (f *DataPipelinePipeline) Remove() error { + + _, err := f.svc.DeletePipeline(&datapipeline.DeletePipelineInput{ + PipelineId: f.pipelineID, + }) + + return err +} + +func (f *DataPipelinePipeline) String() string { + return *f.pipelineID +}