diff --git a/sdk/go/x/auto/remove.go b/sdk/go/x/auto/remove.go new file mode 100644 index 000000000..1325ff59f --- /dev/null +++ b/sdk/go/x/auto/remove.go @@ -0,0 +1,19 @@ +package auto + +import "github.com/pkg/errors" + +func (s *Stack) Remove() error { + + // TODO figure out setup method lifecycle + _, err := s.initOrSelectStack() + if err != nil { + return errors.Wrap(err, "could not initialize or select stack") + } + + _, stderr, err := s.runCmd("pulumi", "stack", "rm", "--yes") + if err != nil { + return errors.Wrapf(err, "failed to remove stack: %s", stderr) + } + + return nil +} diff --git a/sdk/go/x/auto/up_test.go b/sdk/go/x/auto/up_test.go index 5709eb0fa..c4875e41d 100644 --- a/sdk/go/x/auto/up_test.go +++ b/sdk/go/x/auto/up_test.go @@ -42,4 +42,7 @@ func TestUpBasic(t *testing.T) { assert.Equal(t, "destroy", dRes.Summary.Kind) assert.Equal(t, "succeeded", dRes.Summary.Result) + + err = s.Remove() + assert.Nil(t, err, "failed to remove stack. Resources have leaked.") }