mirror of
https://github.com/docker/compose.git
synced 2025-10-16 04:48:49 +02:00
This prevent a race condition on `down` as stack is deleted and we still ask for stack events as we didn't recieved the DELETE_COMPLETE one Use WaitUntilStack* to detect stack operation completion Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
35 lines
652 B
Go
35 lines
652 B
Go
package amazon
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
)
|
|
|
|
func (c *client) ComposeDown(ctx context.Context, projectName string, deleteCluster bool) error {
|
|
err := c.api.DeleteStack(ctx, projectName)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = c.WaitStackCompletion(ctx, projectName, StackDelete)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if !deleteCluster {
|
|
return nil
|
|
}
|
|
|
|
fmt.Printf("Delete cluster %s", c.Cluster)
|
|
if err = c.api.DeleteCluster(ctx, c.Cluster); err != nil {
|
|
return err
|
|
}
|
|
fmt.Printf("... done. \n")
|
|
return nil
|
|
}
|
|
|
|
type downAPI interface {
|
|
DeleteStack(ctx context.Context, name string) error
|
|
DeleteCluster(ctx context.Context, name string) error
|
|
}
|