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 Lock) (Local, error)
- func (ars ArtifactoryReleaseSource) FindReleaseVersion(spec Spec, _ bool) (Lock, error)
- func (ars ArtifactoryReleaseSource) GetMatchedRelease(spec Spec) (Lock, error)
- func (ars ArtifactoryReleaseSource) RemotePath(spec Spec) (string, error)
- func (ars ArtifactoryReleaseSource) UploadRelease(spec Spec, file io.Reader) (Lock, error)
- type BOSHIOReleaseSource
- func (src BOSHIOReleaseSource) Configuration() cargo.ReleaseSourceConfig
- func (src BOSHIOReleaseSource) DownloadRelease(releaseDir string, remoteRelease Lock) (Local, error)
- func (src BOSHIOReleaseSource) FindReleaseVersion(spec Spec, _ bool) (Lock, error)
- func (src BOSHIOReleaseSource) GetMatchedRelease(requirement Spec) (Lock, 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 Lock) (Local, error)
- func (grs GithubReleaseSource) FindReleaseVersion(s Spec, noDownload bool) (Lock, error)
- func (grs GithubReleaseSource) GetGithubReleaseWithTag(ctx context.Context, s Spec) (*github.RepositoryRelease, error)
- func (grs GithubReleaseSource) GetLatestMatchingRelease(ctx context.Context, s Spec) (*github.RepositoryRelease, error)
- func (grs GithubReleaseSource) GetMatchedRelease(s Spec) (Lock, error)
- type Local
- type LocalReleaseDirectory
- type Lock
- type MultiReleaseSource
- type ReleaseAssetDownloader
- type ReleaseByTagGetter
- type ReleaseByTagGetterAssetDownloader
- type ReleaseSource
- type ReleaseSourceList
- func (list ReleaseSourceList) DownloadRelease(releaseDir string, remoteRelease Lock) (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 Spec, noDownload bool) (Lock, error)
- func (list ReleaseSourceList) FindRemotePather(sourceID string) (RemotePather, error)
- func (list ReleaseSourceList) GetMatchedRelease(requirement Spec) (Lock, 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 Lock) (Local, error)
- func (src S3ReleaseSource) FindReleaseVersion(spec Spec, noDownload bool) (Lock, error)
- func (src S3ReleaseSource) GetMatchedRelease(spec Spec) (Lock, error)
- func (src S3ReleaseSource) ID() string
- func (src S3ReleaseSource) Publishable() bool
- func (src S3ReleaseSource) RemotePath(spec Spec) (string, error)
- func (src S3ReleaseSource) UploadRelease(spec Spec, file io.Reader) (Lock, error)
- type S3Uploader
- type Spec
Constants ¶
const ( ReleaseSourceTypeBOSHIO = cargo.ReleaseSourceTypeBOSHIO ReleaseSourceTypeS3 = cargo.ReleaseSourceTypeS3 ReleaseSourceTypeGithub = cargo.ReleaseSourceTypeGithub ReleaseSourceTypeArtifactory = cargo.ReleaseSourceTypeArtifactory )
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 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 Lock) (Local, error)
func (ArtifactoryReleaseSource) FindReleaseVersion ¶
func (ars ArtifactoryReleaseSource) FindReleaseVersion(spec Spec, _ bool) (Lock, error)
FindReleaseVersion may use any of the fields on Requirement to return the best matching release.
func (ArtifactoryReleaseSource) GetMatchedRelease ¶
func (ars ArtifactoryReleaseSource) GetMatchedRelease(spec Spec) (Lock, 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 Spec) (string, error)
func (ArtifactoryReleaseSource) UploadRelease ¶
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 Lock) (Local, error)
func (BOSHIOReleaseSource) FindReleaseVersion ¶
func (src BOSHIOReleaseSource) FindReleaseVersion(spec Spec, _ bool) (Lock, error)
func (BOSHIOReleaseSource) GetMatchedRelease ¶
func (src BOSHIOReleaseSource) GetMatchedRelease(requirement Spec) (Lock, 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 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 Lock) (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 Spec, noDownload bool) (Lock, 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 Spec) (*github.RepositoryRelease, error)
func (GithubReleaseSource) GetLatestMatchingRelease ¶ added in v0.76.0
func (grs GithubReleaseSource) GetLatestMatchingRelease(ctx context.Context, s Spec) (*github.RepositoryRelease, error)
func (GithubReleaseSource) GetMatchedRelease ¶
func (grs GithubReleaseSource) GetMatchedRelease(s Spec) (Lock, error)
GetMatchedRelease uses the Name and Version and if supported StemcellOS and StemcellVersion fields on Requirement to download a specific release.
type LocalReleaseDirectory ¶
type LocalReleaseDirectory struct {
// contains filtered or unexported fields
}
func NewLocalReleaseDirectory ¶
func NewLocalReleaseDirectory(logger *log.Logger, releasesService baking.ReleasesService) 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 Lock ¶
type Lock = cargo.ComponentLock
type MultiReleaseSource ¶
type MultiReleaseSource interface { GetMatchedRelease(Spec) (Lock, error) FindReleaseVersion(spec Spec, noDownload bool) (Lock, error) DownloadRelease(releasesDir string, remoteRelease Lock) (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(Spec) (Lock, error) // FindReleaseVersion may use any of the fields on Requirement to return the best matching // release. FindReleaseVersion(spec Spec, noDownload bool) (Lock, 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 Lock) (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 Lock) (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 Spec, noDownload bool) (Lock, error)
func (ReleaseSourceList) FindRemotePather ¶
func (list ReleaseSourceList) FindRemotePather(sourceID string) (RemotePather, error)
func (ReleaseSourceList) GetMatchedRelease ¶
func (list ReleaseSourceList) GetMatchedRelease(requirement Spec) (Lock, error)
func (ReleaseSourceList) SetDownloadThreads ¶
func (list ReleaseSourceList) SetDownloadThreads(n int)
type ReleaseUploader ¶
type ReleaseUploader interface { GetMatchedRelease(Spec) (Lock, error) UploadRelease(spec Spec, file io.Reader) (Lock, 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 ¶
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 Lock) (Local, error)
func (S3ReleaseSource) FindReleaseVersion ¶
func (src S3ReleaseSource) FindReleaseVersion(spec Spec, noDownload bool) (Lock, error)
func (S3ReleaseSource) GetMatchedRelease ¶
func (src S3ReleaseSource) GetMatchedRelease(spec Spec) (Lock, 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 Spec) (string, error)
func (S3ReleaseSource) UploadRelease ¶
type S3Uploader ¶
type S3Uploader interface {
Upload(input *s3manager.UploadInput, options ...func(*s3manager.Uploader)) (*s3manager.UploadOutput, error)
}
type Spec ¶
type Spec = cargo.ComponentSpec
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
Code generated by counterfeiter.
|
Code generated by counterfeiter. |
Code generated by counterfeiter.
|
Code generated by counterfeiter. |