Skip to content

Commit 246e90f

Browse files
FedeDPpoiana
authored andcommitted
chore(pkg): added RepoImagesLister tests.
Dropped default values for Arch and Tag for FileImagesLister to be more coherent with RepoImagesLister. Signed-off-by: Federico Di Pierro <nierro92@gmail.com>
1 parent 80be7cd commit 246e90f

File tree

2 files changed

+127
-82
lines changed

2 files changed

+127
-82
lines changed

pkg/driverbuilder/builder/image.go

+10-16
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,12 @@ type FileImagesLister struct {
3939
FilePath string
4040
Arch string
4141
Tag string
42+
Target string
4243
}
4344

4445
type RepoImagesLister struct {
45-
repo string
46+
repo string
47+
httpOnly bool // set to true for mocking tests
4648
}
4749

4850
type ImageKey string
@@ -74,9 +76,8 @@ func (im ImagesMap) findImage(target Type, gccVers semver.Version) (Image, bool)
7476
}
7577

7678
func NewFileImagesLister(filePath string, build *Build) *FileImagesLister {
77-
// Create the proper regexes to load "any" and target-specific images for requested arch
7879
arch := kernelrelease.Architecture(build.Architecture).ToNonDeb()
79-
return &FileImagesLister{FilePath: filePath, Arch: arch, Tag: build.builderImageTag()}
80+
return &FileImagesLister{FilePath: filePath, Arch: arch, Tag: build.builderImageTag(), Target: build.TargetType.String()}
8081
}
8182

8283
func (f *FileImagesLister) LoadImages() []Image {
@@ -103,14 +104,6 @@ func (f *FileImagesLister) LoadImages() []Image {
103104
}
104105

105106
for _, image := range imageList.Images {
106-
// Fixup empty fields using default values
107-
if image.Arch == "" {
108-
image.Arch = f.Arch
109-
}
110-
if image.Tag == "" {
111-
image.Tag = f.Tag
112-
}
113-
114107
// Values checks
115108
if image.Arch != f.Arch {
116109
logger.WithField("FilePath", f.FilePath).WithField("image", image).Debug("Skipping wrong-arch image")
@@ -120,8 +113,8 @@ func (f *FileImagesLister) LoadImages() []Image {
120113
logger.WithField("FilePath", f.FilePath).WithField("image", image).Debug("Skipping wrong-tag image")
121114
continue
122115
}
123-
if image.Target != "any" && BuilderByTarget[Type(image.Target)] == nil {
124-
logger.WithField("FilePath", f.FilePath).WithField("image", image).Debug("Skipping unexistent target image")
116+
if image.Target != "any" && image.Target != f.Target {
117+
logger.WithField("FilePath", f.FilePath).WithField("image", image).Debug("Skipping wrong-target image")
125118
continue
126119
}
127120
if image.Name == "" {
@@ -154,25 +147,26 @@ func NewRepoImagesLister(repo string, build *Build) *RepoImagesLister {
154147
targetFmt := fmt.Sprintf("^(?P<target>%s|any)-%s(?P<gccVers>(_gcc[0-9]+.[0-9]+.[0-9]+)+)-%s$", build.TargetType.String(), arch, imageTag)
155148
tagReg = regexp.MustCompile(targetFmt)
156149
}
157-
return &RepoImagesLister{repo: repo}
150+
return &RepoImagesLister{repo: repo, httpOnly: false}
158151
}
159152

160153
func (repo *RepoImagesLister) LoadImages() []Image {
161154
noCredentials := func(r *repository.Repository) {
162155
// The default client will be used by oras.
163156
// TODO: we don't support private repositories for now.
164157
r.Client = nil
158+
r.PlainHTTP = repo.httpOnly
165159
}
166160

167161
repoOCI, err := repository.NewRepository(repo.repo, noCredentials)
168162
if err != nil {
169-
logger.WithField("Repo", repo.repo).Warnf("Skipping repo %s: %s\n", repo, err.Error())
163+
logger.WithField("Repo", repo.repo).Warnf("Skipping repo %s: %s\n", repo.repo, err.Error())
170164
return nil
171165
}
172166

173167
tags, err := repoOCI.Tags(context.Background())
174168
if err != nil {
175-
logger.WithField("Repo", repo.repo).Warnf("Skipping repo %s: %s\n", repo, err.Error())
169+
logger.WithField("Repo", repo.repo).Warnf("Skipping repo %s: %s\n", repo.repo, err.Error())
176170
return nil
177171
}
178172

0 commit comments

Comments
 (0)