github.com/mweagle/Sparta@v1.15.0/delete.go (about) 1 // +build !lambdabinary 2 3 package sparta 4 5 import ( 6 "github.com/aws/aws-sdk-go/aws" 7 "github.com/aws/aws-sdk-go/service/cloudformation" 8 spartaAWS "github.com/mweagle/Sparta/aws" 9 spartaCF "github.com/mweagle/Sparta/aws/cloudformation" 10 "github.com/sirupsen/logrus" 11 ) 12 13 // Delete ensures that the provided serviceName is deleted. 14 // Failing to delete a non-existent service is considered a success. 15 func Delete(serviceName string, logger *logrus.Logger) error { 16 session := spartaAWS.NewSession(logger) 17 awsCloudFormation := cloudformation.New(session) 18 19 exists, err := spartaCF.StackExists(serviceName, session, logger) 20 if nil != err { 21 return err 22 } 23 logger.WithFields(logrus.Fields{ 24 "Exists": exists, 25 "Name": serviceName, 26 }).Info("Stack existence check") 27 28 if exists { 29 30 params := &cloudformation.DeleteStackInput{ 31 StackName: aws.String(serviceName), 32 } 33 resp, err := awsCloudFormation.DeleteStack(params) 34 if nil != resp { 35 logger.WithFields(logrus.Fields{ 36 "Response": resp, 37 }).Info("Delete request submitted") 38 } 39 return err 40 } 41 logger.Info("Stack does not exist") 42 return nil 43 }