Skip to content

Commit

Permalink
MGMT-17764: Update the latest image search functionality in the RestA…
Browse files Browse the repository at this point in the history
…PI flow to correctly compare pre-release versions (#6276)
  • Loading branch information
danmanor committed May 7, 2024
1 parent 84315b0 commit 9a4ece9
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 13 deletions.
5 changes: 4 additions & 1 deletion internal/versions/rest_api_versions.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,10 @@ func getLatestReleaseImage(releaseImages models.ReleaseImages, ignoredOpenshiftV
continue
}

isLatest, err := common.BaseVersionLessThan(*releaseImage.Version, *latestReleaseImage.Version)
isLatest, err := common.VersionGreaterOrEqual(
strings.TrimSuffix(*releaseImage.Version, "-multi"),
strings.TrimSuffix(*latestReleaseImage.Version, "-multi"),
)
if err != nil {
return nil, err
}
Expand Down
42 changes: 30 additions & 12 deletions internal/versions/rest_api_versions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,29 +197,47 @@ var _ = Describe("GetReleaseImage", func() {
It("gets the latest matching release image with major.minor openshiftVersion - all beta support level", func() {
releaseImages := models.ReleaseImages{
{
OpenshiftVersion: swag.String("4.16-multi"),
Version: swag.String("4.16.1-multi"),
CPUArchitecture: swag.String(common.MultiCPUArchitecture),
CPUArchitectures: []string{common.X86CPUArchitecture, common.ARM64CPUArchitecture},
URL: swag.String("quay.io/openshift-release-dev/ocp-release:4.16.1-multi"),
OpenshiftVersion: swag.String("4.16"),
Version: swag.String("4.16.0-ec.2"),
CPUArchitecture: swag.String(common.X86CPUArchitecture),
CPUArchitectures: []string{common.X86CPUArchitecture},
URL: swag.String("quay.io/openshift-release-dev/ocp-release:4.16.0-ec.2-x86_64"),
SupportLevel: models.OpenshiftVersionSupportLevelBeta,
Default: false,
},
{
OpenshiftVersion: swag.String("4.16"),
Version: swag.String("4.16.1"),
Version: swag.String("4.16.0-ec.3"),
CPUArchitecture: swag.String(common.X86CPUArchitecture),
CPUArchitectures: []string{common.X86CPUArchitecture},
URL: swag.String("quay.io/openshift-release-dev/ocp-release:4.16.1-x86_64"),
URL: swag.String("quay.io/openshift-release-dev/ocp-release:4.16.0-ec.3-x86_64"),
SupportLevel: models.OpenshiftVersionSupportLevelBeta,
Default: false,
},
{
OpenshiftVersion: swag.String("4.16-multi"),
Version: swag.String("4.16.0-ec.3-multi"),
CPUArchitecture: swag.String(common.MultiCPUArchitecture),
CPUArchitectures: []string{common.X86CPUArchitecture, common.ARM64CPUArchitecture},
URL: swag.String("quay.io/openshift-release-dev/ocp-release:4.16.0-ec.3-multi"),
SupportLevel: models.OpenshiftVersionSupportLevelBeta,
Default: false,
},
{
OpenshiftVersion: swag.String("4.16-multi"),
Version: swag.String("4.16.0-ec.1-multi"),
CPUArchitecture: swag.String(common.MultiCPUArchitecture),
CPUArchitectures: []string{common.X86CPUArchitecture, common.ARM64CPUArchitecture},
URL: swag.String("quay.io/openshift-release-dev/ocp-release:4.16.0-ec.1-multi"),
SupportLevel: models.OpenshiftVersionSupportLevelBeta,
Default: false,
},
{
OpenshiftVersion: swag.String("4.16"),
Version: swag.String("4.16.2"),
Version: swag.String("4.16.0-ec.1"),
CPUArchitecture: swag.String(common.X86CPUArchitecture),
CPUArchitectures: []string{common.X86CPUArchitecture},
URL: swag.String("quay.io/openshift-release-dev/ocp-release:4.16.2-x86_64"),
URL: swag.String("quay.io/openshift-release-dev/ocp-release:4.16.0-ec.1-x86_64"),
SupportLevel: models.OpenshiftVersionSupportLevelBeta,
Default: false,
},
Expand All @@ -230,15 +248,15 @@ var _ = Describe("GetReleaseImage", func() {

releaseImage, err := handler.GetReleaseImage(ctx, "4.16", common.X86CPUArchitecture, pullSecret)
Expect(err).ShouldNot(HaveOccurred())
Expect(*releaseImage.Version).Should(Equal("4.16.2"))
Expect(*releaseImage.Version).Should(Equal("4.16.0-ec.3"))

releaseImage, err = handler.GetReleaseImage(ctx, "4.16-multi", common.X86CPUArchitecture, pullSecret)
Expect(err).ShouldNot(HaveOccurred())
Expect(*releaseImage.Version).Should(Equal("4.16.1-multi"))
Expect(*releaseImage.Version).Should(Equal("4.16.0-ec.3-multi"))

releaseImage, err = handler.GetReleaseImage(ctx, "4.16-multi", common.MultiCPUArchitecture, pullSecret)
Expect(err).ShouldNot(HaveOccurred())
Expect(*releaseImage.Version).Should(Equal("4.16.1-multi"))
Expect(*releaseImage.Version).Should(Equal("4.16.0-ec.3-multi"))
})

It("gets the exact matching release image with major.minor.patch / prerelease openshiftVersion", func() {
Expand Down

0 comments on commit 9a4ece9

Please sign in to comment.