Skip to content

Commit

Permalink
refactor: add "Tarball" to BOSHReleaseTarballLock and BOSHReleaseTarb…
Browse files Browse the repository at this point in the history
…allSpecification
  • Loading branch information
crhntr committed Jun 28, 2023
1 parent a67fdfd commit f0f1656
Show file tree
Hide file tree
Showing 48 changed files with 621 additions and 621 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func iSetAVersionConstraintForRelease(ctx context.Context, versionConstraint, re
if err != nil {
return err
}
specIndex := slices.IndexFunc(spec.Releases, func(release cargo.BOSHReleaseSpecification) bool {
specIndex := slices.IndexFunc(spec.Releases, func(release cargo.BOSHReleaseTarballSpecification) bool {
return release.Name == releaseName
})
if specIndex == indexNotFound {
Expand Down
28 changes: 14 additions & 14 deletions internal/commands/cache_compiled_releases.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ type (

ReleaseStorage interface {
component.ReleaseSource
UploadRelease(spec cargo.BOSHReleaseSpecification, file io.Reader) (cargo.BOSHReleaseLock, error)
UploadRelease(spec cargo.BOSHReleaseTarballSpecification, file io.Reader) (cargo.BOSHReleaseTarballLock, error)
}
)

Expand Down Expand Up @@ -118,11 +118,11 @@ func (cmd *CacheCompiledReleases) Execute(args []string) error {
}

var (
releasesToExport []cargo.BOSHReleaseLock
releasesToExport []cargo.BOSHReleaseTarballLock
releasesUpdatedFromCache = false
)
for _, rel := range lock.Releases {
remote, err := releaseStore.GetMatchedRelease(cargo.BOSHReleaseSpecification{
remote, err := releaseStore.GetMatchedRelease(cargo.BOSHReleaseTarballSpecification{
Name: rel.Name,
Version: rel.Version,
StemcellOS: lock.Stemcell.OS,
Expand All @@ -132,7 +132,7 @@ func (cmd *CacheCompiledReleases) Execute(args []string) error {
if !component.IsErrNotFound(err) {
return fmt.Errorf("failed check for matched release: %w", err)
}
releasesToExport = append(releasesToExport, cargo.BOSHReleaseLock{
releasesToExport = append(releasesToExport, cargo.BOSHReleaseTarballLock{
Name: rel.Name,
Version: rel.Version,
StemcellOS: lock.Stemcell.OS,
Expand Down Expand Up @@ -301,36 +301,36 @@ func (cmd *CacheCompiledReleases) fetchProductDeploymentData() (_ OpsManagerRele
return omAPI, manifest.Name, stagedStemcell.OS, stagedStemcell.Version, nil
}

func (cmd *CacheCompiledReleases) cacheRelease(bosh boshdir.Director, rc ReleaseStorage, deployment boshdir.Deployment, releaseSlug boshdir.ReleaseSlug, stemcellSlug boshdir.OSVersionSlug) (cargo.BOSHReleaseLock, error) {
func (cmd *CacheCompiledReleases) cacheRelease(bosh boshdir.Director, rc ReleaseStorage, deployment boshdir.Deployment, releaseSlug boshdir.ReleaseSlug, stemcellSlug boshdir.OSVersionSlug) (cargo.BOSHReleaseTarballLock, error) {
cmd.Logger.Printf("\texporting %s\n", releaseSlug)
result, err := deployment.ExportRelease(releaseSlug, stemcellSlug, nil)
if err != nil {
return cargo.BOSHReleaseLock{}, err
return cargo.BOSHReleaseTarballLock{}, err
}

cmd.Logger.Printf("\tdownloading %s\n", releaseSlug)
releaseFilePath, _, sha1sum, err := cmd.saveReleaseLocally(bosh, cmd.Options.ReleasesDir, releaseSlug, stemcellSlug, result)
if err != nil {
return cargo.BOSHReleaseLock{}, err
return cargo.BOSHReleaseTarballLock{}, err
}

cmd.Logger.Printf("\tuploading %s\n", releaseSlug)
remoteRelease, err := cmd.uploadLocalRelease(cargo.BOSHReleaseSpecification{
remoteRelease, err := cmd.uploadLocalRelease(cargo.BOSHReleaseTarballSpecification{
Name: releaseSlug.Name(),
Version: releaseSlug.Version(),
StemcellOS: stemcellSlug.OS(),
StemcellVersion: stemcellSlug.Version(),
}, releaseFilePath, rc)
if err != nil {
return cargo.BOSHReleaseLock{}, err
return cargo.BOSHReleaseTarballLock{}, err
}

remoteRelease.SHA1 = sha1sum

return remoteRelease, nil
}

func updateLock(lock cargo.KilnfileLock, release cargo.BOSHReleaseLock, targetID string) error {
func updateLock(lock cargo.KilnfileLock, release cargo.BOSHReleaseTarballLock, targetID string) error {
for index, releaseLock := range lock.Releases {
if release.Name != releaseLock.Name {
continue
Expand All @@ -341,7 +341,7 @@ func updateLock(lock cargo.KilnfileLock, release cargo.BOSHReleaseLock, targetID
checksum = releaseLock.SHA1
}

lock.Releases[index] = cargo.BOSHReleaseLock{
lock.Releases[index] = cargo.BOSHReleaseTarballLock{
Name: release.Name,
Version: release.Version,
RemoteSource: release.RemoteSource,
Expand All @@ -353,10 +353,10 @@ func updateLock(lock cargo.KilnfileLock, release cargo.BOSHReleaseLock, targetID
return fmt.Errorf("existing release not found in Kilnfile.lock")
}

func (cmd *CacheCompiledReleases) uploadLocalRelease(spec cargo.BOSHReleaseSpecification, fp string, uploader ReleaseStorage) (cargo.BOSHReleaseLock, error) {
func (cmd *CacheCompiledReleases) uploadLocalRelease(spec cargo.BOSHReleaseTarballSpecification, fp string, uploader ReleaseStorage) (cargo.BOSHReleaseTarballLock, error) {
f, err := cmd.FS.Open(fp)
if err != nil {
return cargo.BOSHReleaseLock{}, err
return cargo.BOSHReleaseTarballLock{}, err
}
defer closeAndIgnoreError(f)
return uploader.UploadRelease(spec, f)
Expand Down Expand Up @@ -393,7 +393,7 @@ func (cmd *CacheCompiledReleases) saveReleaseLocally(director boshdir.Director,
return filePath, sha256sumString, sha1sumString, nil
}

func (cmd *CacheCompiledReleases) downloadAndComputeSHA(cache component.ReleaseSource, remote cargo.BOSHReleaseLock) (string, error) {
func (cmd *CacheCompiledReleases) downloadAndComputeSHA(cache component.ReleaseSource, remote cargo.BOSHReleaseTarballLock) (string, error) {
if remote.SHA1 != "" {
return remote.SHA1, nil
}
Expand Down
44 changes: 22 additions & 22 deletions internal/commands/cache_compiled_releases_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,25 +64,25 @@ func newCacheCompiledReleasesTestData(t *testing.T, kf cargo.Kilnfile, kl cargo.
logger := log.New(&output, "", 0)

releaseStorage := new(fakes.ReleaseStorage)
releaseStorage.GetMatchedReleaseCalls(func(spec cargo.BOSHReleaseSpecification) (cargo.BOSHReleaseLock, error) {
releaseStorage.GetMatchedReleaseCalls(func(spec cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error) {
switch spec.Lock() {
case cargo.BOSHReleaseLock{Name: "orange", Version: "1.0.0", StemcellOS: "alpine", StemcellVersion: "9.0.0"}:
return cargo.BOSHReleaseLock{
case cargo.BOSHReleaseTarballLock{Name: "orange", Version: "1.0.0", StemcellOS: "alpine", StemcellVersion: "9.0.0"}:
return cargo.BOSHReleaseTarballLock{
Name: "orange", Version: "1.0.0",
SHA1: "fake-checksum",
RemoteSource: "cached-compiled-releases",
RemotePath: "orange-1.0.0-alpine-9.0.0",
}, nil
case cargo.BOSHReleaseLock{Name: "banana", Version: "2.0.0", StemcellOS: "alpine", StemcellVersion: "9.0.0"}:
return cargo.BOSHReleaseLock{
case cargo.BOSHReleaseTarballLock{Name: "banana", Version: "2.0.0", StemcellOS: "alpine", StemcellVersion: "9.0.0"}:
return cargo.BOSHReleaseTarballLock{
Name: "banana", Version: "2.0.0",
SHA1: "fake-checksum",
RemoteSource: "cached-compiled-releases",
RemotePath: "banana-2.0.0-alpine-9.0.0",
}, nil
case cargo.BOSHReleaseLock{Name: "lemon", Version: "3.0.0", StemcellOS: "alpine", StemcellVersion: "9.0.0"},
cargo.BOSHReleaseLock{Name: "banana", Version: "2.0.0", StemcellOS: "alpine", StemcellVersion: "8.0.0"}:
return cargo.BOSHReleaseLock{}, component.ErrNotFound
case cargo.BOSHReleaseTarballLock{Name: "lemon", Version: "3.0.0", StemcellOS: "alpine", StemcellVersion: "9.0.0"},
cargo.BOSHReleaseTarballLock{Name: "banana", Version: "2.0.0", StemcellOS: "alpine", StemcellVersion: "8.0.0"}:
return cargo.BOSHReleaseTarballLock{}, component.ErrNotFound
}

panic(fmt.Sprintf("unexpected spec %#v", spec))
Expand Down Expand Up @@ -131,7 +131,7 @@ func TestCacheCompiledReleases_Execute_all_releases_are_already_compiled(t *test
},
},
}, cargo.KilnfileLock{
Releases: []cargo.BOSHReleaseLock{
Releases: []cargo.BOSHReleaseTarballLock{
{
Name: "banana",
Version: "2.0.0",
Expand Down Expand Up @@ -170,7 +170,7 @@ func TestCacheCompiledReleases_Execute_all_releases_are_already_cached(t *testin
},
},
}, cargo.KilnfileLock{
Releases: []cargo.BOSHReleaseLock{
Releases: []cargo.BOSHReleaseTarballLock{
{
Name: "orange",
Version: "1.0.0",
Expand Down Expand Up @@ -200,7 +200,7 @@ func TestCacheCompiledReleases_Execute_all_releases_are_already_cached(t *testin

var updatedKilnfile cargo.KilnfileLock
please.Expect(fsReadYAML(test.cmd.FS, "Kilnfile.lock", &updatedKilnfile)).NotTo(HaveOccurred())
please.Expect(updatedKilnfile.Releases).To(ContainElement(cargo.BOSHReleaseLock{
please.Expect(updatedKilnfile.Releases).To(ContainElement(cargo.BOSHReleaseTarballLock{
Name: "orange", Version: "1.0.0",
SHA1: "fake-checksum",
RemoteSource: "cached-compiled-releases",
Expand Down Expand Up @@ -231,7 +231,7 @@ func TestCacheCompiledReleases_Execute_when_one_release_is_cached_another_is_alr
},
},
}, cargo.KilnfileLock{
Releases: []cargo.BOSHReleaseLock{
Releases: []cargo.BOSHReleaseTarballLock{
{
Name: "orange",
Version: "1.0.0",
Expand Down Expand Up @@ -288,9 +288,9 @@ func TestCacheCompiledReleases_Execute_when_one_release_is_cached_another_is_alr
}

var uploadedRelease bytes.Buffer
test.releaseStorage.UploadReleaseCalls(func(_ cargo.BOSHReleaseSpecification, reader io.Reader) (cargo.BOSHReleaseLock, error) {
test.releaseStorage.UploadReleaseCalls(func(_ cargo.BOSHReleaseTarballSpecification, reader io.Reader) (cargo.BOSHReleaseTarballLock, error) {
_, _ = io.Copy(&uploadedRelease, reader)
return cargo.BOSHReleaseLock{
return cargo.BOSHReleaseTarballLock{
Name: "lemon", Version: "3.0.0",

RemoteSource: "cached-compiled-releases",
Expand Down Expand Up @@ -327,7 +327,7 @@ func TestCacheCompiledReleases_Execute_when_one_release_is_cached_another_is_alr

var updatedKilnfile cargo.KilnfileLock
please.Expect(fsReadYAML(test.cmd.FS, "Kilnfile.lock", &updatedKilnfile)).NotTo(HaveOccurred())
please.Expect(updatedKilnfile.Releases).To(ContainElement(cargo.BOSHReleaseLock{
please.Expect(updatedKilnfile.Releases).To(ContainElement(cargo.BOSHReleaseTarballLock{
Name: "lemon",
Version: "3.0.0",
SHA1: "012ed191f1d07c14bbcbbc0423d0de1c56757348",
Expand Down Expand Up @@ -360,7 +360,7 @@ func TestCacheCompiledReleases_Execute_when_a_release_is_not_compiled_with_the_c
},
},
}, cargo.KilnfileLock{
Releases: []cargo.BOSHReleaseLock{
Releases: []cargo.BOSHReleaseTarballLock{
{
Name: "banana",
Version: "2.0.0",
Expand Down Expand Up @@ -418,7 +418,7 @@ func TestCacheCompiledReleases_Execute_when_a_release_is_not_compiled_with_the_c

var updatedKilnfile cargo.KilnfileLock
please.Expect(fsReadYAML(test.cmd.FS, "Kilnfile.lock", &updatedKilnfile)).NotTo(HaveOccurred())
please.Expect(updatedKilnfile.Releases).To(ContainElement(cargo.BOSHReleaseLock{
please.Expect(updatedKilnfile.Releases).To(ContainElement(cargo.BOSHReleaseTarballLock{
Name: "banana",
Version: "2.0.0",

Expand Down Expand Up @@ -448,13 +448,13 @@ func TestCacheCompiledReleases_Execute_when_a_release_has_no_packages(t *testing
PathTemplate: "{{.Release}}-{{.Version}}.tgz",
},
},
Releases: []cargo.BOSHReleaseSpecification{
Releases: []cargo.BOSHReleaseTarballSpecification{
{
Name: "banana",
},
},
}, cargo.KilnfileLock{
Releases: []cargo.BOSHReleaseLock{
Releases: []cargo.BOSHReleaseTarballLock{
{
Name: "banana",
Version: "2.0.0",
Expand Down Expand Up @@ -488,7 +488,7 @@ func TestCacheCompiledReleases_Execute_when_a_release_has_no_packages(t *testing
}, nil
}
}
test.releaseStorage.UploadReleaseStub = func(spec cargo.BOSHReleaseSpecification, reader io.Reader) (cargo.BOSHReleaseLock, error) {
test.releaseStorage.UploadReleaseStub = func(spec cargo.BOSHReleaseTarballSpecification, reader io.Reader) (cargo.BOSHReleaseTarballLock, error) {
l := spec.Lock()
l.RemotePath = "BANANA.tgz"
l.RemoteSource = "BASKET"
Expand Down Expand Up @@ -521,7 +521,7 @@ func TestCacheCompiledReleases_Execute_when_a_release_has_no_packages(t *testing

var updatedKilnfile cargo.KilnfileLock
please.Expect(fsReadYAML(test.cmd.FS, "Kilnfile.lock", &updatedKilnfile)).NotTo(HaveOccurred())
please.Expect(updatedKilnfile.Releases).To(ContainElement(cargo.BOSHReleaseLock{
please.Expect(updatedKilnfile.Releases).To(ContainElement(cargo.BOSHReleaseTarballLock{
Name: "banana",
Version: "2.0.0",

Expand All @@ -542,7 +542,7 @@ func TestCacheCompiledReleases_Execute_staged_and_lock_stemcells_are_not_the_sam
// setup

initialLock := cargo.KilnfileLock{
Releases: []cargo.BOSHReleaseLock{
Releases: []cargo.BOSHReleaseTarballLock{
{
Name: "orange",
Version: "1.0.0",
Expand Down
Loading

0 comments on commit f0f1656

Please sign in to comment.