-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdelete.go
More file actions
47 lines (41 loc) · 991 Bytes
/
delete.go
File metadata and controls
47 lines (41 loc) · 991 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package ecsceed
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ecs"
"github.com/fatih/color"
)
type DeleteOption struct {
DryRun bool
}
func (a *App) Delete(ctx context.Context, opt DeleteOption) error {
err := a.ResolveConfigStack(Params{})
if err != nil {
return err
}
srvNames := []*string{}
for name := range a.def.nameToSrv {
srvNames = append(srvNames, aws.String(a.resolveFullName(name)))
}
a.Log(srvNames)
desc, err := a.DescribeServices(ctx, srvNames)
if err != nil {
return err
}
for _, s := range desc.Services {
if opt.DryRun {
color.Red("- service: %s", *s.ServiceName)
} else {
input := &ecs.DeleteServiceInput{
Cluster: s.ClusterArn,
Service: s.ServiceName,
}
if _, err := a.ecs.DeleteServiceWithContext(ctx, input); err != nil {
return fmt.Errorf("Failed to delete service %s: %w", LogTarget(*s.ServiceName), err)
}
a.Log("Service is deleted")
}
}
return nil
}