本文整理匯總了Golang中github.com/cloudfoundry/bosh-init/deployment/manifest.Manifest.GetListOfTemplateReleases方法的典型用法代碼示例。如果您正苦於以下問題:Golang Manifest.GetListOfTemplateReleases方法的具體用法?Golang Manifest.GetListOfTemplateReleases怎麽用?Golang Manifest.GetListOfTemplateReleases使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/cloudfoundry/bosh-init/deployment/manifest.Manifest
的用法示例。
在下文中一共展示了Manifest.GetListOfTemplateReleases方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: PrepareDeployment
func (c *DeploymentPreparer) PrepareDeployment(stage biui.Stage) (err error) {
c.ui.PrintLinef("Deployment state: '%s'", c.deploymentStateService.Path())
if !c.deploymentStateService.Exists() {
migrated, err := c.legacyDeploymentStateMigrator.MigrateIfExists(biconfig.LegacyDeploymentStatePath(c.deploymentManifestPath))
if err != nil {
return bosherr.WrapError(err, "Migrating legacy deployment state file")
}
if migrated {
c.ui.PrintLinef("Migrated legacy deployments file: '%s'", biconfig.LegacyDeploymentStatePath(c.deploymentManifestPath))
}
}
deploymentState, err := c.deploymentStateService.Load()
if err != nil {
return bosherr.WrapError(err, "Loading deployment state")
}
target, err := c.targetProvider.NewTarget()
if err != nil {
return bosherr.WrapError(err, "Determining installation target")
}
err = c.tempRootConfigurator.PrepareAndSetTempRoot(target.TmpPath(), c.logger)
if err != nil {
return bosherr.WrapError(err, "Setting temp root")
}
defer func() {
err := c.releaseManager.DeleteAll()
if err != nil {
c.logger.Warn(c.logTag, "Deleting all extracted releases: %s", err.Error())
}
}()
var (
extractedStemcell bistemcell.ExtractedStemcell
deploymentManifest bideplmanifest.Manifest
installationManifest biinstallmanifest.Manifest
)
err = stage.PerformComplex("validating", func(stage biui.Stage) error {
var releaseSetManifest birelsetmanifest.Manifest
releaseSetManifest, installationManifest, err = c.releaseSetAndInstallationManifestParser.ReleaseSetAndInstallationManifest(c.deploymentManifestPath)
if err != nil {
return err
}
for _, releaseRef := range releaseSetManifest.Releases {
err = c.releaseFetcher.DownloadAndExtract(releaseRef, stage)
if err != nil {
return err
}
}
err := c.cpiInstaller.ValidateCpiRelease(installationManifest, stage)
if err != nil {
return err
}
deploymentManifest, err = c.deploymentManifestParser.GetDeploymentManifest(c.deploymentManifestPath, releaseSetManifest, stage)
if err != nil {
return err
}
extractedStemcell, err = c.stemcellFetcher.GetStemcell(deploymentManifest, stage)
nonCpiReleasesMap, _ := deploymentManifest.GetListOfTemplateReleases()
delete(nonCpiReleasesMap, installationManifest.Template.Release) // remove CPI release from nonCpiReleasesMap
for _, release := range c.releaseManager.List() {
if _, ok := nonCpiReleasesMap[release.Name()]; ok {
if release.IsCompiled() {
compilationOsAndVersion := release.Packages()[0].Stemcell
if strings.ToLower(compilationOsAndVersion) != strings.ToLower(extractedStemcell.OsAndVersion()) {
return bosherr.Errorf("OS/Version mismatch between deployment stemcell and compiled package stemcell for release '%s'", release.Name())
}
}
} else {
// It is a CPI release, check if it is compiled
if release.IsCompiled() {
return bosherr.Errorf("CPI is not allowed to be a compiled release. The provided CPI release '%s' is compiled", release.Name())
}
}
}
return err
})
if err != nil {
return err
}
defer func() {
deleteErr := extractedStemcell.Delete()
if deleteErr != nil {
c.logger.Warn(c.logTag, "Failed to delete extracted stemcell: %s", deleteErr.Error())
}
}()
isDeployed, err := c.deploymentRecord.IsDeployed(c.deploymentManifestPath, c.releaseManager.List(), extractedStemcell)
if err != nil {
return bosherr.WrapError(err, "Checking if deployment has changed")
//.........這裏部分代碼省略.........