Skip to content

Commit c4e411a

Browse files
authored
fix: integration tests should not fail (#5669)
* fix: integration tests should not fail - RepoDigest is always `repo@sha256:digest` - Use GetDigest() when `sha256:digest` is needed. - Fix DeleteImage method for default implementation, Selectel, AWS, and Gitlab. Signed-off-by: Ivan Mikheykin <ivan.mikheykin@flant.com>
1 parent fb707aa commit c4e411a

File tree

5 files changed

+7
-5
lines changed

5 files changed

+7
-5
lines changed

pkg/docker_registry/aws_ecr.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,14 @@ func (r *awsEcr) DeleteRepoImage(_ context.Context, repoImage *image.Info) error
4444
if err != nil {
4545
return err
4646
}
47+
digest := repoImage.GetDigest()
4748

4849
mySession := session.Must(session.NewSession())
4950
service := ecr.New(mySession, aws.NewConfig().WithRegion(region))
5051
_, err = service.BatchDeleteImage(&ecr.BatchDeleteImageInput{
5152
ImageIds: []*ecr.ImageIdentifier{
5253
{
53-
ImageDigest: &repoImage.RepoDigest,
54+
ImageDigest: &digest,
5455
},
5556
},
5657
RepositoryName: &repository,

pkg/docker_registry/default.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func (r *defaultImplementation) TagRepoImage(ctx context.Context, repoImage *ima
6767
}
6868

6969
func (r *defaultImplementation) DeleteRepoImage(ctx context.Context, repoImage *image.Info) error {
70-
return r.api.deleteImageByReference(ctx, strings.Join([]string{repoImage.Repository, repoImage.RepoDigest}, "@"))
70+
return r.api.deleteImageByReference(ctx, repoImage.RepoDigest)
7171
}
7272

7373
func (r *defaultImplementation) String() string {

pkg/docker_registry/gitlab_registry.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,7 @@ func (r *gitLabRegistry) deleteRepoImageTagWithCustomScope(repoImage *image.Info
128128
}
129129

130130
func (r *gitLabRegistry) deleteRepoImageWithCustomScope(repoImage *image.Info, scopeFunc func(ref name.Reference) []string) error {
131-
reference := strings.Join([]string{repoImage.Repository, repoImage.RepoDigest}, "@")
132-
return r.customDeleteRepoImage("/v2/%s/manifests/%s", reference, scopeFunc)
131+
return r.customDeleteRepoImage("/v2/%s/manifests/%s", repoImage.RepoDigest, scopeFunc)
133132
}
134133

135134
func (r *gitLabRegistry) customDeleteRepoImage(endpointFormat, reference string, scopeFunc func(ref name.Reference) []string) error {

pkg/docker_registry/selectel.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ func (r *selectel) deleteRepoImage(ctx context.Context, repoImage *image.Info) e
112112

113113
//nolint:bodyclose
114114
// TODO: close response body
115-
resp, err := r.selectelApi.deleteReference(ctx, hostname, registryID, repository, repoImage.RepoDigest, token)
115+
resp, err := r.selectelApi.deleteReference(ctx, hostname, registryID, repository, repoImage.GetDigest(), token)
116116
if err != nil {
117117
return r.handleFailedApiResponse(resp, err)
118118
}

pkg/image/info.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ type Info struct {
1717
Name string `json:"name"`
1818
Repository string `json:"repository"`
1919
Tag string `json:"tag"`
20+
// repo@sha256:digest
2021
RepoDigest string `json:"repoDigest"`
2122

2223
OnBuild []string `json:"onBuild"`
@@ -104,6 +105,7 @@ func NormalizeRepository(repository string) (res string) {
104105
return
105106
}
106107

108+
// ExtractRepoDigest return repo@digest from the list.
107109
func ExtractRepoDigest(inspectRepoDigests []string, repository string) string {
108110
for _, inspectRepoDigest := range inspectRepoDigests {
109111
repoAndDigest := strings.SplitN(inspectRepoDigest, "@sha256:", 2)

0 commit comments

Comments
 (0)