From cc552908471b38a917633cd2ff5666473c3b5c09 Mon Sep 17 00:00:00 2001 From: Yang Date: Thu, 18 Jan 2024 15:42:35 +0800 Subject: [PATCH 1/4] =?UTF-8?q?correctly=20empty=20repos=20when=20deleting?= =?UTF-8?q?=20app=20regional=20resources=20=F0=9F=A4=A6=E2=80=8D=E2=99=80?= =?UTF-8?q?=EF=B8=8F"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/pkg/deploy/cloudformation/app.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/pkg/deploy/cloudformation/app.go b/internal/pkg/deploy/cloudformation/app.go index fa8eab7dd29..47b9b84aa65 100644 --- a/internal/pkg/deploy/cloudformation/app.go +++ b/internal/pkg/deploy/cloudformation/app.go @@ -456,9 +456,12 @@ func (cf CloudFormation) cleanUpRegionalResources(app *config.Application, regio if err := s3.EmptyBucket(resources.S3Bucket); err != nil { return err } + ecrRepoName := func(app, workload string) string { + return fmt.Sprintf("%s/%s", app, workload) + } ecr := cf.regionalECRClient(region) - for repo := range resources.RepositoryURLs { - if err := ecr.ClearRepository(repo); err != nil { + for svcName := range resources.RepositoryURLs { + if err := ecr.ClearRepository(ecrRepoName(app.Name, svcName)); err != nil { return err } } From 1c75c2f5c4e50d9d85c50080e9023a8f6d88156b Mon Sep 17 00:00:00 2001 From: Yang Date: Thu, 18 Jan 2024 17:03:19 +0800 Subject: [PATCH 2/4] update unit test --- internal/pkg/deploy/cloudformation/app_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/pkg/deploy/cloudformation/app_test.go b/internal/pkg/deploy/cloudformation/app_test.go index 3b97d0ac103..ab0565f3d48 100644 --- a/internal/pkg/deploy/cloudformation/app_test.go +++ b/internal/pkg/deploy/cloudformation/app_test.go @@ -1343,7 +1343,7 @@ func TestCloudFormation_RemoveEnvFromApp(t *testing.T) { }, nil) regionalCfn.EXPECT().Describe("some-stack").Return(mockValidAppResourceStack(), nil) s3.EXPECT().EmptyBucket("tests3-bucket-us-west-2").Return(nil) - ecr.EXPECT().ClearRepository("phonetool-svc").Return(nil) + ecr.EXPECT().ClearRepository("phonetool/phonetool-svc").Return(nil) appStackSet.EXPECT().DeleteInstance("phonetool-infrastructure", "1234", "us-west-2").Return("123", nil) appStackSet.EXPECT().WaitForOperation("phonetool-infrastructure", "123").Return(nil) cfn.EXPECT().Describe(stack.NameForAppStack("phonetool")).Return(&cloudformation.StackDescription{ @@ -1432,7 +1432,7 @@ func TestCloudFormation_RemoveEnvFromApp(t *testing.T) { }, nil) regionalCfn.EXPECT().Describe("some-stack").Return(mockValidAppResourceStack(), nil) s3.EXPECT().EmptyBucket("tests3-bucket-us-west-2").Return(nil) - ecr.EXPECT().ClearRepository("phonetool-svc").Return(nil) + ecr.EXPECT().ClearRepository("phonetool/phonetool-svc").Return(nil) appStackSet.EXPECT().DeleteInstance("phonetool-infrastructure", "1234", "us-west-2").Return("123", nil) appStackSet.EXPECT().WaitForOperation("phonetool-infrastructure", "123").Return(nil) cfn.EXPECT().Describe(gomock.Any()).Times(0) @@ -1583,7 +1583,7 @@ func TestCloudFormation_RemoveEnvFromApp(t *testing.T) { }, nil) regionalCfn.EXPECT().Describe("some-stack").Return(mockValidAppResourceStack(), nil) s3.EXPECT().EmptyBucket("tests3-bucket-us-west-2").Return(nil) - ecr.EXPECT().ClearRepository("phonetool-svc").Return(nil) + ecr.EXPECT().ClearRepository("phonetool/phonetool-svc").Return(nil) // Delete stackset instance appStackSet.EXPECT().DeleteInstance("phonetool-infrastructure", "1234", "us-west-2").Return("", errors.New("some error")) appStackSet.EXPECT().WaitForOperation(gomock.Any(), gomock.Any()).Times(0) @@ -1652,7 +1652,7 @@ func TestCloudFormation_RemoveEnvFromApp(t *testing.T) { }, nil) regionalCfn.EXPECT().Describe("some-stack").Return(mockValidAppResourceStack(), nil) s3.EXPECT().EmptyBucket("tests3-bucket-us-west-2").Return(nil) - ecr.EXPECT().ClearRepository("phonetool-svc").Return(nil) + ecr.EXPECT().ClearRepository("phonetool/phonetool-svc").Return(nil) appStackSet.EXPECT().DeleteInstance("phonetool-infrastructure", "1234", "us-west-2").Return("123", nil) appStackSet.EXPECT().WaitForOperation("phonetool-infrastructure", "123").Return(nil) cfn.EXPECT().Describe(stack.NameForAppStack("phonetool")).Return(&cloudformation.StackDescription{ From 25d06a31b423bac9c46cf3be28adf0d5a2745190 Mon Sep 17 00:00:00 2001 From: Wanxian Yang <79273084+Lou1415926@users.noreply.github.com> Date: Thu, 18 Jan 2024 17:03:36 +0800 Subject: [PATCH 3/4] Update internal/pkg/deploy/cloudformation/app.go Co-authored-by: Efe Karakus --- internal/pkg/deploy/cloudformation/app.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/deploy/cloudformation/app.go b/internal/pkg/deploy/cloudformation/app.go index 47b9b84aa65..90c9632897d 100644 --- a/internal/pkg/deploy/cloudformation/app.go +++ b/internal/pkg/deploy/cloudformation/app.go @@ -460,7 +460,7 @@ func (cf CloudFormation) cleanUpRegionalResources(app *config.Application, regio return fmt.Sprintf("%s/%s", app, workload) } ecr := cf.regionalECRClient(region) - for svcName := range resources.RepositoryURLs { + for svcName, _ := range resources.RepositoryURLs { if err := ecr.ClearRepository(ecrRepoName(app.Name, svcName)); err != nil { return err } From a5d9462208fc00c839a0f8eeff399da6512b1bce Mon Sep 17 00:00:00 2001 From: Yang Date: Thu, 18 Jan 2024 17:20:50 +0800 Subject: [PATCH 4/4] linter is complaining --- internal/pkg/deploy/cloudformation/app.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/deploy/cloudformation/app.go b/internal/pkg/deploy/cloudformation/app.go index 90c9632897d..47b9b84aa65 100644 --- a/internal/pkg/deploy/cloudformation/app.go +++ b/internal/pkg/deploy/cloudformation/app.go @@ -460,7 +460,7 @@ func (cf CloudFormation) cleanUpRegionalResources(app *config.Application, regio return fmt.Sprintf("%s/%s", app, workload) } ecr := cf.regionalECRClient(region) - for svcName, _ := range resources.RepositoryURLs { + for svcName := range resources.RepositoryURLs { if err := ecr.ClearRepository(ecrRepoName(app.Name, svcName)); err != nil { return err }