Documentation
¶
Index ¶
- Constants
- func CalculateSum(releasePath string, fs billy.Filesystem) (string, error)
- func IsErrNotFound(err error) bool
- func ReadReleaseManifest(releaseTarball io.Reader) ([]byte, error)
- type ArtifactoryFileInfo
- type ArtifactoryFileMetadata
- type ArtifactoryFolderInfo
- type ArtifactoryReleaseSource
- func (ars *ArtifactoryReleaseSource) Configuration() cargo.ReleaseSourceConfig
- func (ars *ArtifactoryReleaseSource) DownloadRelease(releaseDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error)
- func (ars *ArtifactoryReleaseSource) FindReleaseVersion(spec cargo.BOSHReleaseTarballSpecification, _ bool) (cargo.BOSHReleaseTarballLock, error)
- func (ars *ArtifactoryReleaseSource) GetMatchedRelease(spec cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
- func (ars *ArtifactoryReleaseSource) RemotePath(spec cargo.BOSHReleaseTarballSpecification) (string, error)
- func (ars *ArtifactoryReleaseSource) UploadRelease(spec cargo.BOSHReleaseTarballSpecification, file io.Reader) (cargo.BOSHReleaseTarballLock, error)
- type BOSHIOReleaseSource
- func (src BOSHIOReleaseSource) Configuration() cargo.ReleaseSourceConfig
- func (src BOSHIOReleaseSource) DownloadRelease(releaseDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error)
- func (src BOSHIOReleaseSource) FindReleaseVersion(spec cargo.BOSHReleaseTarballSpecification, _ bool) (cargo.BOSHReleaseTarballLock, error)
- func (src BOSHIOReleaseSource) GetMatchedRelease(requirement cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
- func (src BOSHIOReleaseSource) ID() string
- func (src BOSHIOReleaseSource) Publishable() bool
- type ErrorUnexpectedStatus
- type Exported
- type GithubReleaseSource
- func (grs *GithubReleaseSource) Configuration() cargo.ReleaseSourceConfig
- func (grs *GithubReleaseSource) DownloadRelease(releaseDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error)
- func (grs *GithubReleaseSource) FindReleaseVersion(s cargo.BOSHReleaseTarballSpecification, noDownload bool) (cargo.BOSHReleaseTarballLock, error)
- func (grs *GithubReleaseSource) GetGithubReleaseWithTag(ctx context.Context, s cargo.BOSHReleaseTarballSpecification) (*github.RepositoryRelease, error)
- func (grs *GithubReleaseSource) GetLatestMatchingRelease(ctx context.Context, s cargo.BOSHReleaseTarballSpecification) (*github.RepositoryRelease, error)
- func (grs *GithubReleaseSource) GetMatchedRelease(s cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
- type Local
- type LocalReleaseDirectory
- type MultiReleaseSource
- type ReleaseAssetDownloader
- type ReleaseByTagGetter
- type ReleaseByTagGetterAssetDownloader
- type ReleaseSource
- type ReleaseSourceList
- func (list ReleaseSourceList) DownloadRelease(releaseDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error)
- func (list ReleaseSourceList) Filter(allowOnlyPublishable bool) ReleaseSourceList
- func (list ReleaseSourceList) FindByID(id string) (ReleaseSource, error)
- func (list ReleaseSourceList) FindReleaseUploader(sourceID string) (ReleaseUploader, error)
- func (list ReleaseSourceList) FindReleaseVersion(requirement cargo.BOSHReleaseTarballSpecification, noDownload bool) (cargo.BOSHReleaseTarballLock, error)
- func (list ReleaseSourceList) FindRemotePather(sourceID string) (RemotePather, error)
- func (list ReleaseSourceList) GetMatchedRelease(requirement cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
- func (list ReleaseSourceList) SetDownloadThreads(n int)
- type ReleaseUploader
- type ReleasesLister
- type RemotePather
- type ResponseStatusCodeError
- type S3Client
- type S3Downloader
- type S3ReleaseSource
- func (src S3ReleaseSource) Configuration() cargo.ReleaseSourceConfig
- func (src S3ReleaseSource) DownloadRelease(releaseDir string, lock cargo.BOSHReleaseTarballLock) (Local, error)
- func (src S3ReleaseSource) FindReleaseVersion(spec cargo.BOSHReleaseTarballSpecification, noDownload bool) (cargo.BOSHReleaseTarballLock, error)
- func (src S3ReleaseSource) GetMatchedRelease(spec cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
- func (src S3ReleaseSource) ID() string
- func (src S3ReleaseSource) Publishable() bool
- func (src S3ReleaseSource) RemotePath(spec cargo.BOSHReleaseTarballSpecification) (string, error)
- func (src S3ReleaseSource) UploadRelease(spec cargo.BOSHReleaseTarballSpecification, file io.Reader) (cargo.BOSHReleaseTarballLock, error)
- type S3Uploader
Constants ¶
const ( ReleaseSourceTypeBOSHIO = cargo.BOSHReleaseTarballSourceTypeBOSHIO ReleaseSourceTypeS3 = cargo.BOSHReleaseTarballSourceTypeS3 ReleaseSourceTypeGithub = cargo.BOSHReleaseTarballSourceTypeGithub ReleaseSourceTypeArtifactory = cargo.BOSHReleaseTarballSourceTypeArtifactory )
TODO: use the constants from "cargo" everywhere
const ErrNotFound stringError = "not found"
Variables ¶
This section is empty.
Functions ¶
func CalculateSum ¶
func IsErrNotFound ¶
Types ¶
type ArtifactoryFileInfo ¶
type ArtifactoryFileInfo struct { Checksums struct { SHA1 string `json:"sha1"` } `json:"checksums"` }
type ArtifactoryFileMetadata ¶
type ArtifactoryFolderInfo ¶
type ArtifactoryReleaseSource ¶
type ArtifactoryReleaseSource struct { cargo.ReleaseSourceConfig Client *http.Client ID string // contains filtered or unexported fields }
func NewArtifactoryReleaseSource ¶
func NewArtifactoryReleaseSource(c cargo.ReleaseSourceConfig) *ArtifactoryReleaseSource
NewArtifactoryReleaseSource will provision a new ArtifactoryReleaseSource Project from the Kilnfile (ReleaseSourceConfig). If type is incorrect it will PANIC
func (*ArtifactoryReleaseSource) Configuration ¶
func (ars *ArtifactoryReleaseSource) Configuration() cargo.ReleaseSourceConfig
func (*ArtifactoryReleaseSource) DownloadRelease ¶
func (ars *ArtifactoryReleaseSource) DownloadRelease(releaseDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error)
func (*ArtifactoryReleaseSource) FindReleaseVersion ¶
func (ars *ArtifactoryReleaseSource) FindReleaseVersion(spec cargo.BOSHReleaseTarballSpecification, _ bool) (cargo.BOSHReleaseTarballLock, error)
FindReleaseVersion may use any of the fields on Requirement to return the best matching release.
func (*ArtifactoryReleaseSource) GetMatchedRelease ¶
func (ars *ArtifactoryReleaseSource) GetMatchedRelease(spec cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
GetMatchedRelease uses the Name and Version and if supported StemcellOS and StemcellVersion fields on Requirement to download a specific release.
func (*ArtifactoryReleaseSource) RemotePath ¶
func (ars *ArtifactoryReleaseSource) RemotePath(spec cargo.BOSHReleaseTarballSpecification) (string, error)
func (*ArtifactoryReleaseSource) UploadRelease ¶
func (ars *ArtifactoryReleaseSource) UploadRelease(spec cargo.BOSHReleaseTarballSpecification, file io.Reader) (cargo.BOSHReleaseTarballLock, error)
type BOSHIOReleaseSource ¶
type BOSHIOReleaseSource struct { cargo.ReleaseSourceConfig // contains filtered or unexported fields }
func NewBOSHIOReleaseSource ¶
func NewBOSHIOReleaseSource(c cargo.ReleaseSourceConfig, customServerURI string, logger *log.Logger) *BOSHIOReleaseSource
func (BOSHIOReleaseSource) Configuration ¶
func (src BOSHIOReleaseSource) Configuration() cargo.ReleaseSourceConfig
func (BOSHIOReleaseSource) DownloadRelease ¶
func (src BOSHIOReleaseSource) DownloadRelease(releaseDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error)
func (BOSHIOReleaseSource) FindReleaseVersion ¶
func (src BOSHIOReleaseSource) FindReleaseVersion(spec cargo.BOSHReleaseTarballSpecification, _ bool) (cargo.BOSHReleaseTarballLock, error)
func (BOSHIOReleaseSource) GetMatchedRelease ¶
func (src BOSHIOReleaseSource) GetMatchedRelease(requirement cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
func (BOSHIOReleaseSource) ID ¶
func (src BOSHIOReleaseSource) ID() string
func (BOSHIOReleaseSource) Publishable ¶
func (src BOSHIOReleaseSource) Publishable() bool
type ErrorUnexpectedStatus ¶
type ErrorUnexpectedStatus struct {
Want, Got int
}
func (ErrorUnexpectedStatus) Error ¶
func (err ErrorUnexpectedStatus) Error() string
type Exported ¶
type Exported struct { Lock cargo.BOSHReleaseTarballLock TarballPath string BlobstoreID string }
type GithubReleaseSource ¶
type GithubReleaseSource struct { cargo.ReleaseSourceConfig Token string Logger *log.Logger ReleaseAssetDownloader ReleasesLister ReleaseByTagGetter }
func NewGithubReleaseSource ¶
func NewGithubReleaseSource(c cargo.ReleaseSourceConfig) *GithubReleaseSource
NewGithubReleaseSource will provision a new GithubReleaseSource Project from the Kilnfile (ReleaseSourceConfig). If type is incorrect it will PANIC
func (*GithubReleaseSource) Configuration ¶
func (grs *GithubReleaseSource) Configuration() cargo.ReleaseSourceConfig
Configuration returns the configuration of the ReleaseSource that came from the kilnfile. It should not be modified.
func (*GithubReleaseSource) DownloadRelease ¶
func (grs *GithubReleaseSource) DownloadRelease(releaseDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error)
DownloadRelease downloads the release and writes the resulting file to the releasesDir. It should also calculate and set the SHA1 field on the Local result; it does not need to ensure the sums match, the caller must verify this.
func (*GithubReleaseSource) FindReleaseVersion ¶
func (grs *GithubReleaseSource) FindReleaseVersion(s cargo.BOSHReleaseTarballSpecification, noDownload bool) (cargo.BOSHReleaseTarballLock, error)
FindReleaseVersion may use any of the fields on Requirement to return the best matching release.
func (*GithubReleaseSource) GetGithubReleaseWithTag ¶ added in v0.76.0
func (grs *GithubReleaseSource) GetGithubReleaseWithTag(ctx context.Context, s cargo.BOSHReleaseTarballSpecification) (*github.RepositoryRelease, error)
func (*GithubReleaseSource) GetLatestMatchingRelease ¶ added in v0.76.0
func (grs *GithubReleaseSource) GetLatestMatchingRelease(ctx context.Context, s cargo.BOSHReleaseTarballSpecification) (*github.RepositoryRelease, error)
func (*GithubReleaseSource) GetMatchedRelease ¶
func (grs *GithubReleaseSource) GetMatchedRelease(s cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
GetMatchedRelease uses the Name and Version and if supported StemcellOS and StemcellVersion fields on Requirement to download a specific release.
type Local ¶
type Local struct { Lock cargo.BOSHReleaseTarballLock LocalPath string }
type LocalReleaseDirectory ¶
type LocalReleaseDirectory struct {
// contains filtered or unexported fields
}
func NewLocalReleaseDirectory ¶
func NewLocalReleaseDirectory(logger *log.Logger) LocalReleaseDirectory
func (LocalReleaseDirectory) DeleteExtraReleases ¶
func (l LocalReleaseDirectory) DeleteExtraReleases(extraReleaseSet []Local, noConfirm bool) error
func (LocalReleaseDirectory) GetLocalReleases ¶
func (l LocalReleaseDirectory) GetLocalReleases(releasesDir string) ([]Local, error)
type MultiReleaseSource ¶
type MultiReleaseSource interface { GetMatchedRelease(cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error) FindReleaseVersion(spec cargo.BOSHReleaseTarballSpecification, noDownload bool) (cargo.BOSHReleaseTarballLock, error) DownloadRelease(releasesDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error) FindByID(string) (ReleaseSource, error) // SetDownloadThreads allows configuring the concurrency for the s3 release source. SetDownloadThreads(n int) }
MultiReleaseSource wraps a set of release sources. It is mostly used to generate fakes for testing commands. See ReleaseSourceList for the concrete implementation.
type ReleaseAssetDownloader ¶
type ReleaseByTagGetter ¶
type ReleaseByTagGetterAssetDownloader ¶ added in v0.76.0
type ReleaseByTagGetterAssetDownloader interface { ReleaseByTagGetter ReleaseAssetDownloader }
type ReleaseSource ¶
type ReleaseSource interface { // Configuration returns the configuration of the ReleaseSource that came from the kilnfile. // It should not be modified. Configuration() cargo.ReleaseSourceConfig // GetMatchedRelease uses the Name and Version and if supported StemcellOS and StemcellVersion // fields on Requirement to download a specific release. GetMatchedRelease(cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error) // FindReleaseVersion may use any of the fields on Requirement to return the best matching // release. FindReleaseVersion(spec cargo.BOSHReleaseTarballSpecification, noDownload bool) (cargo.BOSHReleaseTarballLock, error) // DownloadRelease downloads the release and writes the resulting file to the releasesDir. // It should also calculate and set the SHA1 field on the Local result; it does not need // to ensure the sums match, the caller must verify this. DownloadRelease(releasesDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error) }
ReleaseSource represents a source where a tile component BOSH releases may come from. The releases may be compiled or just built bosh releases.
func ReleaseSourceFactory ¶
func ReleaseSourceFactory(releaseConfig cargo.ReleaseSourceConfig, outLogger *log.Logger) ReleaseSource
ReleaseSourceFactory returns a configured ReleaseSource based on the Type field on the cargo.ReleaseSourceConfig structure.
type ReleaseSourceList ¶
type ReleaseSourceList []ReleaseSource
func NewMultiReleaseSource ¶
func NewMultiReleaseSource(sources ...ReleaseSource) ReleaseSourceList
func NewReleaseSourceRepo ¶
func NewReleaseSourceRepo(kilnfile cargo.Kilnfile, logger *log.Logger) ReleaseSourceList
func (ReleaseSourceList) DownloadRelease ¶
func (list ReleaseSourceList) DownloadRelease(releaseDir string, remoteRelease cargo.BOSHReleaseTarballLock) (Local, error)
func (ReleaseSourceList) Filter ¶
func (list ReleaseSourceList) Filter(allowOnlyPublishable bool) ReleaseSourceList
func (ReleaseSourceList) FindByID ¶
func (list ReleaseSourceList) FindByID(id string) (ReleaseSource, error)
func (ReleaseSourceList) FindReleaseUploader ¶
func (list ReleaseSourceList) FindReleaseUploader(sourceID string) (ReleaseUploader, error)
func (ReleaseSourceList) FindReleaseVersion ¶
func (list ReleaseSourceList) FindReleaseVersion(requirement cargo.BOSHReleaseTarballSpecification, noDownload bool) (cargo.BOSHReleaseTarballLock, error)
func (ReleaseSourceList) FindRemotePather ¶
func (list ReleaseSourceList) FindRemotePather(sourceID string) (RemotePather, error)
func (ReleaseSourceList) GetMatchedRelease ¶
func (list ReleaseSourceList) GetMatchedRelease(requirement cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
func (ReleaseSourceList) SetDownloadThreads ¶
func (list ReleaseSourceList) SetDownloadThreads(n int)
type ReleaseUploader ¶
type ReleaseUploader interface { GetMatchedRelease(cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error) UploadRelease(spec cargo.BOSHReleaseTarballSpecification, file io.Reader) (cargo.BOSHReleaseTarballLock, error) }
ReleaseUploader represents a place to put releases. Some implementations of ReleaseSource should implement this interface. Credentials for this should come from an interpolated cargo.ReleaseSourceConfig.
type ReleasesLister ¶
type ReleasesLister interface {
ListReleases(ctx context.Context, owner, repo string, opts *github.ListOptions) ([]*github.RepositoryRelease, *github.Response, error)
}
type RemotePather ¶
type RemotePather interface {
RemotePath(cargo.BOSHReleaseTarballSpecification) (string, error)
}
RemotePather is used to get the remote path for a remote release. For example the complete s3 uri.
This interface may be ripe for removal.
type ResponseStatusCodeError ¶
func (ResponseStatusCodeError) Error ¶
func (err ResponseStatusCodeError) Error() string
type S3Client ¶
type S3Client interface { HeadObject(input *s3.HeadObjectInput) (*s3.HeadObjectOutput, error) ListObjectsV2(input *s3.ListObjectsV2Input) (*s3.ListObjectsV2Output, error) }
type S3Downloader ¶
type S3Downloader interface {
Download(w io.WriterAt, input *s3.GetObjectInput, options ...func(*s3manager.Downloader)) (n int64, err error)
}
type S3ReleaseSource ¶
type S3ReleaseSource struct { cargo.ReleaseSourceConfig DownloadThreads int // contains filtered or unexported fields }
func NewS3ReleaseSource ¶
func NewS3ReleaseSource(c cargo.ReleaseSourceConfig, client S3Client, downloader S3Downloader, uploader S3Uploader, logger *log.Logger) S3ReleaseSource
func NewS3ReleaseSourceFromConfig ¶
func NewS3ReleaseSourceFromConfig(config cargo.ReleaseSourceConfig, logger *log.Logger) S3ReleaseSource
func (S3ReleaseSource) Configuration ¶
func (src S3ReleaseSource) Configuration() cargo.ReleaseSourceConfig
func (S3ReleaseSource) DownloadRelease ¶
func (src S3ReleaseSource) DownloadRelease(releaseDir string, lock cargo.BOSHReleaseTarballLock) (Local, error)
func (S3ReleaseSource) FindReleaseVersion ¶
func (src S3ReleaseSource) FindReleaseVersion(spec cargo.BOSHReleaseTarballSpecification, noDownload bool) (cargo.BOSHReleaseTarballLock, error)
func (S3ReleaseSource) GetMatchedRelease ¶
func (src S3ReleaseSource) GetMatchedRelease(spec cargo.BOSHReleaseTarballSpecification) (cargo.BOSHReleaseTarballLock, error)
func (S3ReleaseSource) ID ¶
func (src S3ReleaseSource) ID() string
func (S3ReleaseSource) Publishable ¶
func (src S3ReleaseSource) Publishable() bool
func (S3ReleaseSource) RemotePath ¶
func (src S3ReleaseSource) RemotePath(spec cargo.BOSHReleaseTarballSpecification) (string, error)
func (S3ReleaseSource) UploadRelease ¶
func (src S3ReleaseSource) UploadRelease(spec cargo.BOSHReleaseTarballSpecification, file io.Reader) (cargo.BOSHReleaseTarballLock, error)
type S3Uploader ¶
type S3Uploader interface {
Upload(input *s3manager.UploadInput, options ...func(*s3manager.Uploader)) (*s3manager.UploadOutput, error)
}
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
Code generated by counterfeiter.
|
Code generated by counterfeiter. |
Code generated by counterfeiter.
|
Code generated by counterfeiter. |