import ( "errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" boshblob "github.com/cloudfoundry/bosh-utils/blobstore" fakeblob "github.com/cloudfoundry/bosh-utils/blobstore/fakes" bosherr "github.com/cloudfoundry/bosh-utils/errors" boshlog "github.com/cloudfoundry/bosh-utils/logger" ) var _ = Describe("retryableBlobstore", func() { var ( innerBlobstore *fakeblob.FakeBlobstore logger boshlog.Logger retryableBlobstore boshblob.Blobstore ) BeforeEach(func() { innerBlobstore = &fakeblob.FakeBlobstore{} logger = boshlog.NewLogger(boshlog.LevelNone) retryableBlobstore = boshblob.NewRetryableBlobstore(innerBlobstore, 3, logger) }) Describe("Get", func() { Context("when inner blobstore succeeds before maximum number of get tries (first time)", func() { It("returns path without an error", func() { innerBlobstore.GetFileName = "fake-path" path, err := retryableBlobstore.Get("fake-blob-id", "fake-fingerprint")
. "github.com/cloudfoundry/bosh-utils/internal/github.com/onsi/ginkgo" . "github.com/cloudfoundry/bosh-utils/internal/github.com/onsi/gomega" boshblob "github.com/cloudfoundry/bosh-utils/blobstore" fakeblob "github.com/cloudfoundry/bosh-utils/blobstore/fakes" bosherr "github.com/cloudfoundry/bosh-utils/errors" ) var _ = Describe("sha1VerifiableBlobstore", func() { const ( fixturePath = "test_assets/some.config" fixtureSHA1 = "da39a3ee5e6b4b0d3255bfef95601890afd80709" ) var ( innerBlobstore *fakeblob.FakeBlobstore sha1VerifiableBlobstore boshblob.Blobstore ) BeforeEach(func() { innerBlobstore = &fakeblob.FakeBlobstore{} sha1VerifiableBlobstore = boshblob.NewSHA1VerifiableBlobstore(innerBlobstore) }) Describe("Get", func() { It("returns without an error if sha1 matches", func() { innerBlobstore.GetFileName = fixturePath fileName, err := sha1VerifiableBlobstore.Get("fake-blob-id", fixtureSHA1) Expect(err).ToNot(HaveOccurred()) Expect(innerBlobstore.GetBlobIDs).To(Equal([]string{"fake-blob-id"}))
import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "errors" "github.com/cloudfoundry/bosh-agent/agent/blobstore" boshblob "github.com/cloudfoundry/bosh-utils/blobstore" fakeblob "github.com/cloudfoundry/bosh-utils/blobstore/fakes" boshcrypto "github.com/cloudfoundry/bosh-utils/crypto" boshlog "github.com/cloudfoundry/bosh-utils/logger" ) var _ = Describe("cascadingBlobstore", func() { var ( innerBlobstore *fakeblob.FakeBlobstore blobManager *fakeblob.FakeBlobManagerInterface cascadingBlobstore boshblob.Blobstore ) BeforeEach(func() { innerBlobstore = &fakeblob.FakeBlobstore{} blobManager = &fakeblob.FakeBlobManagerInterface{} logger := boshlog.NewLogger(boshlog.LevelNone) cascadingBlobstore = blobstore.NewCascadingBlobstore(innerBlobstore, blobManager, logger) }) Describe("Get", func() { Describe("when blobManager returns the file path", func() { It("returns the path provided by the blobManager", func() { blobManager.GetPathReturns("/path/to-copy/of-blob", nil)
"errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" boshblob "github.com/cloudfoundry/bosh-utils/blobstore" fakeblob "github.com/cloudfoundry/bosh-utils/blobstore/fakes" boshcrypto "github.com/cloudfoundry/bosh-utils/crypto" bosherr "github.com/cloudfoundry/bosh-utils/errors" boshlog "github.com/cloudfoundry/bosh-utils/logger" ) var _ = Describe("retryableBlobstore", func() { var ( innerBlobstore *fakeblob.FakeBlobstore logger boshlog.Logger retryableBlobstore boshblob.Blobstore ) BeforeEach(func() { innerBlobstore = &fakeblob.FakeBlobstore{} logger = boshlog.NewLogger(boshlog.LevelNone) retryableBlobstore = boshblob.NewRetryableBlobstore(innerBlobstore, 3, logger) }) Describe("Get", func() { Context("when inner blobstore succeeds before maximum number of get tries (first time)", func() { It("returns path without an error", func() { innerBlobstore.GetFileName = "fake-path" path, err := retryableBlobstore.Get("fake-blob-id", boshcrypto.NewDigest("fake", "fingerprint"))
boshcrypto "github.com/cloudfoundry/bosh-utils/crypto" bosherr "github.com/cloudfoundry/bosh-utils/errors" fakesys "github.com/cloudfoundry/bosh-utils/system/fakes" ) var _ = Describe("checksumVerifiableBlobstore", func() { const ( fixturePath = "test_assets/some.config" fixtureSHA1 = "da39a3ee5e6b4b0d3255bfef95601890afd80709" fixtureSHA256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" fixtureSHA512 = "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e" ) var ( innerBlobstore *fakeblob.FakeBlobstore checksumVerifiableBlobstore boshblob.Blobstore checksumProvider boshcrypto.DigestProvider fixtureDigest boshcrypto.Digest ) BeforeEach(func() { fixtureDigest = boshcrypto.NewDigest(boshcrypto.DigestAlgorithmSHA1, fixtureSHA1) innerBlobstore = &fakeblob.FakeBlobstore{} checksumProvider = boshcrypto.NewDigestProvider(fakesys.NewFakeFileSystem()) checksumVerifiableBlobstore = boshblob.NewDigestVerifiableBlobstore(innerBlobstore, checksumProvider) }) Describe("Get", func() { It("returns without an error if sha1 matches", func() { innerBlobstore.GetFileName = fixturePath fileName, err := checksumVerifiableBlobstore.Get("fake-blob-id", fixtureDigest)