@@ -12,6 +12,7 @@ import (
1212 "github.com/redhat-developer/mapt/pkg/provider/aws"
1313 awsConstants "github.com/redhat-developer/mapt/pkg/provider/aws/constants"
1414 "github.com/redhat-developer/mapt/pkg/provider/aws/data"
15+ "github.com/redhat-developer/mapt/pkg/provider/aws/services/ec2/compute"
1516 "github.com/redhat-developer/mapt/pkg/provider/util/output"
1617 "github.com/redhat-developer/mapt/pkg/util/logging"
1718 resourcesUtil "github.com/redhat-developer/mapt/pkg/util/resources"
@@ -72,13 +73,50 @@ func Destroy(prefix *string) (err error) {
7273 if prefix == nil {
7374 prefix = & defaultPrefix
7475 }
75- return aws .DestroyStack (
76+ // Get stack first and export host-id and region
77+ regionId , dhId , err := getDedicatedHostData (prefix )
78+ if err != nil {
79+ return err
80+ }
81+ err = aws .DestroyStack (
7682 aws.DestroyStackRequest {
7783 ProjectName : fmt .Sprintf ("%s-%s" ,
7884 * prefix ,
7985 maptContext .ProjectName ()),
8086 Stackname : maptContext .StackNameByProject (maptDHDefaultPrefix ),
8187 })
88+ if err != nil {
89+ return err
90+ }
91+ return compute .DedicatedHostRelease (regionId , dhId )
92+ }
93+
94+ func getDedicatedHostData (prefix * string ) (region * string , hostId * string , err error ) {
95+ s , err := manager .CheckStack (
96+ manager.Stack {
97+ ProjectName : fmt .Sprintf ("%s-%s" ,
98+ * prefix ,
99+ maptContext .ProjectName ()),
100+ StackName : maptContext .StackNameByProject (maptDHDefaultPrefix ),
101+ BackedURL : maptContext .BackedURL (),
102+ ProviderCredentials : aws .DefaultCredentials ,
103+ })
104+ if err != nil {
105+ return nil , nil , err
106+ }
107+ outputs , err := manager .GetOutputs (s )
108+ if err != nil {
109+ return nil , nil , err
110+ }
111+ if value , exists := outputs [fmt .Sprintf ("%s-%s" , * prefix , outputRegion )]; exists {
112+ regionV := value .Value .(string )
113+ region = & regionV
114+ }
115+ if value , exists := outputs [fmt .Sprintf ("%s-%s" , * prefix , outputDedicatedHostID )]; exists {
116+ dhIdV := value .Value .(string )
117+ hostId = & dhIdV
118+ }
119+ return
82120}
83121
84122// this function will create the dedicated host resource
0 commit comments