Skip to content

Commit

Permalink
update for bosh.io release source leveraging checksum from API when p…
Browse files Browse the repository at this point in the history
…ossible
  • Loading branch information
dlinsley committed Jul 2, 2024
1 parent 0383e3c commit c212c84
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
15 changes: 8 additions & 7 deletions internal/component/bosh_io_release_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,14 @@ func (src BOSHIOReleaseSource) GetMatchedRelease(requirement cargo.BOSHReleaseTa
for _, repo := range repos {
for _, suf := range suffixes {
fullName := repo + "/" + requirement.Name + suf
exists, err := src.releaseExistOnBoshio(fullName, requirement.Version)
exists, remoteSha, err := src.releaseExistOnBoshio(fullName, requirement.Version)
if err != nil {
return cargo.BOSHReleaseTarballLock{}, err
}

if exists {
builtRelease := src.createReleaseRemote(requirement, fullName)
builtRelease.SHA1 = remoteSha
return builtRelease, nil
}
}
Expand Down Expand Up @@ -132,7 +133,7 @@ func (src BOSHIOReleaseSource) FindReleaseVersion(spec cargo.BOSHReleaseTarballS
}
spec.Version = validReleases[0].Version
lock := src.createReleaseRemote(spec, fullName)
lock.SHA1 = validReleases[0].SHA
lock.SHA1 = validReleases[0].SHA1
return lock, nil
}
}
Expand Down Expand Up @@ -229,18 +230,18 @@ func (src BOSHIOReleaseSource) getReleases(name string) ([]releaseResponse, erro

type releaseResponse struct {
Version string `json:"version"`
SHA string `json:"sha1"`
SHA1 string `json:"sha1"`
}

func (src BOSHIOReleaseSource) releaseExistOnBoshio(name, version string) (bool, error) {
func (src BOSHIOReleaseSource) releaseExistOnBoshio(name, version string) (bool, string, error) {
releaseResponses, err := src.getReleases(name)
if err != nil {
return false, err
return false, "", err
}
for _, rel := range releaseResponses {
if rel.Version == version {
return true, nil
return true, rel.SHA1, nil
}
}
return false, nil
return false, "", nil
}
5 changes: 3 additions & 2 deletions internal/component/bosh_io_release_source_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ var _ = Describe("BOSHIOReleaseSource", func() {
testServer.RouteToHandler("GET", path, ghttp.RespondWith(http.StatusOK, `null`))

path, _ = regexp.Compile(`/api/v1/releases/github.com/\S+/uaa.*`)
testServer.RouteToHandler("GET", path, ghttp.RespondWith(http.StatusOK, `[{"version": "73.3.0"}]`))
testServer.RouteToHandler("GET", path, ghttp.RespondWith(http.StatusOK, `[{"version": "73.3.0", "sha1":"b6e8a9cbc8724edcecb8658fa9459ee6c8fc259e"}]`))

path, _ = regexp.Compile(`/api/v1/releases/github.com/\S+/metrics.*`)
testServer.RouteToHandler("GET", path, ghttp.RespondWith(http.StatusOK, `[{"version": "2.3.0"}]`))
Expand All @@ -74,6 +74,7 @@ var _ = Describe("BOSHIOReleaseSource", func() {
Version: "73.3.0",
RemotePath: uaaURL,
RemoteSource: component.ReleaseSourceTypeBOSHIO,
SHA1: "b6e8a9cbc8724edcecb8658fa9459ee6c8fc259e",
}))

foundRelease, err = releaseSource.GetMatchedRelease(rabbitmqRequirement)
Expand Down Expand Up @@ -299,7 +300,7 @@ var _ = Describe("BOSHIOReleaseSource", func() {
testServer = ghttp.NewServer()

path, _ := regexp.Compile(`/api/v1/releases/github.com/\S+/cf-rabbitmq.*`)
testServer.RouteToHandler("GET", path, ghttp.RespondWith(http.StatusOK, `[{"name":"github.com/cloudfoundry/cf-rabbitmq-release","version":"309.0.5","url":"https://bosh.io/d/github.com/cloudfoundry/cf-rabbitmq-release?v=309.0.0","sha1":"5df538657c2cc830bda679420a9b162682018ded"},{"name":"github.com/cloudfoundry/cf-rabbitmq-release","version":"308.0.0","url":"https://bosh.io/d/github.com/cloudfoundry/cf-rabbitmq-release?v=308.0.0","sha1":"56202c9a466a8394683ae432ee2dea21ef6ef865"}]`))
testServer.RouteToHandler("GET", path, ghttp.RespondWith(http.StatusOK, `[{"name":"github.com/cloudfoundry/cf-rabbitmq-release","version":"309.0.5","url":"https://bosh.io/d/github.com/cloudfoundry/cf-rabbitmq-release?v=309.0.0","sha1":"5df538657c2cc830bda679420a9b162682018ded","sha256": "49cad4a9758026cbae7a26f77921300595459dfa6bc0ca5332fc6ba52bd336b8"},{"name":"github.com/cloudfoundry/cf-rabbitmq-release","version":"308.0.0","url":"https://bosh.io/d/github.com/cloudfoundry/cf-rabbitmq-release?v=308.0.0","sha1":"56202c9a466a8394683ae432ee2dea21ef6ef865","sha256":"5970d4211d236896d9366b150a66e38cbbd757fed31895962e499bb5458e0937"}]`))

releaseSource = component.NewBOSHIOReleaseSource(cargo.ReleaseSourceConfig{ID: ID, Publishable: false}, testServer.URL(), logger)
})
Expand Down

0 comments on commit c212c84

Please sign in to comment.