Skip to content

Commit 907c322

Browse files
yevgeny-shnaidmank8s-ci-robot
authored andcommitted
Adding GetImageStatus API to mbsc package
This API return the status of the an image in the MBSC object based on the image and the action. Is required by the MBSC controller
1 parent ef3e317 commit 907c322

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed

internal/mbsc/mbsc.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type MBSC interface {
2121
moduleImageSpec *kmmv1beta1.ModuleImageSpec, action kmmv1beta1.BuildOrSignAction) error
2222
GetImageSpec(mbscObj *kmmv1beta1.ModuleBuildSignConfig, image string) *kmmv1beta1.ModuleBuildSignSpec
2323
SetImageStatus(mbscObj *kmmv1beta1.ModuleBuildSignConfig, image string, action kmmv1beta1.BuildOrSignAction, status kmmv1beta1.BuildOrSignStatus)
24+
GetImageStatus(mbscObj *kmmv1beta1.ModuleBuildSignConfig, image string, action kmmv1beta1.BuildOrSignAction) kmmv1beta1.BuildOrSignStatus
2425
}
2526

2627
type mbsc struct {
@@ -85,6 +86,15 @@ func (m *mbsc) SetImageStatus(mbscObj *kmmv1beta1.ModuleBuildSignConfig, image s
8586
mbscObj.Status.Images = append(mbscObj.Status.Images, imageState)
8687
}
8788

89+
func (m *mbsc) GetImageStatus(mbscObj *kmmv1beta1.ModuleBuildSignConfig, image string, action kmmv1beta1.BuildOrSignAction) kmmv1beta1.BuildOrSignStatus {
90+
for _, imageState := range mbscObj.Status.Images {
91+
if imageState.Image == image && imageState.Action == action {
92+
return imageState.Status
93+
}
94+
}
95+
return kmmv1beta1.BuildOrSignStatus("")
96+
}
97+
8898
func setModuleImageSpec(mbscObj *kmmv1beta1.ModuleBuildSignConfig, moduleImageSpec *kmmv1beta1.ModuleImageSpec, action kmmv1beta1.BuildOrSignAction) {
8999
specEntry := kmmv1beta1.ModuleBuildSignSpec{
90100
ModuleImageSpec: *moduleImageSpec,

internal/mbsc/mbsc_test.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,3 +226,42 @@ var _ = Describe("SetImageSpec", func() {
226226
Expect(testMBSC.Status.Images[2].Action).To(Equal(kmmv1beta1.BuildImage))
227227
})
228228
})
229+
230+
var _ = Describe("GetImageStatus", func() {
231+
testMBSC := kmmv1beta1.ModuleBuildSignConfig{
232+
Status: kmmv1beta1.ModuleBuildSignConfigStatus{
233+
Images: []kmmv1beta1.BuildSignImageState{
234+
{
235+
Image: "image1",
236+
Status: kmmv1beta1.ActionSuccess,
237+
Action: kmmv1beta1.BuildImage,
238+
},
239+
{
240+
Image: "image2",
241+
Status: kmmv1beta1.ActionFailure,
242+
Action: kmmv1beta1.SignImage,
243+
},
244+
},
245+
},
246+
}
247+
248+
mbscAPI := New(nil, nil)
249+
250+
It("get images status for both present and not present statuses", func() {
251+
By("image and action are present")
252+
res := mbscAPI.GetImageStatus(&testMBSC, "image1", kmmv1beta1.BuildImage)
253+
Expect(res).To(Equal(kmmv1beta1.ActionSuccess))
254+
255+
By("image present, action missing")
256+
res = mbscAPI.GetImageStatus(&testMBSC, "image2", kmmv1beta1.BuildImage)
257+
Expect(res).To(Equal(kmmv1beta1.BuildOrSignStatus("")))
258+
259+
By("image missing, action present")
260+
res = mbscAPI.GetImageStatus(&testMBSC, "image3", kmmv1beta1.BuildImage)
261+
Expect(res).To(Equal(kmmv1beta1.BuildOrSignStatus("")))
262+
263+
By("image missing, action missing")
264+
res = mbscAPI.GetImageStatus(&testMBSC, "image3", kmmv1beta1.SignImage)
265+
Expect(res).To(Equal(kmmv1beta1.BuildOrSignStatus("")))
266+
})
267+
})

internal/mbsc/mock_mbsc.go

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)