func (v *validator) ValidateReleaseJobs(deploymentManifest Manifest, releaseManager birel.Manager) error { errs := []error{} for idx, job := range deploymentManifest.Jobs { for templateIdx, template := range job.Templates { release, found := releaseManager.Find(template.Release) if !found { errs = append(errs, bosherr.Errorf("jobs[%d].templates[%d].release '%s' must refer to release in releases", idx, templateIdx, template.Release)) } else { _, found := release.FindJobByName(template.Name) if !found { errs = append(errs, bosherr.Errorf("jobs[%d].templates[%d] must refer to a job in '%s', but there is no job named '%s'", idx, templateIdx, release.Name(), template.Name)) } } } } if len(errs) > 0 { return bosherr.NewMultiError(errs...) } return nil }
birel "github.com/cloudfoundry/bosh-init/release" bireljob "github.com/cloudfoundry/bosh-init/release/job" birelmanifest "github.com/cloudfoundry/bosh-init/release/manifest" birelsetmanifest "github.com/cloudfoundry/bosh-init/release/set/manifest" fakebirel "github.com/cloudfoundry/bosh-init/release/fakes" . "github.com/cloudfoundry/bosh-init/deployment/manifest" ) var _ = Describe("Validator", func() { var ( logger boshlog.Logger releaseManager birel.Manager validator Validator validManifest Manifest validReleaseSetManifest birelsetmanifest.Manifest fakeRelease *fakebirel.FakeRelease ) BeforeEach(func() { logger = boshlog.NewLogger(boshlog.LevelNone) releaseManager = birel.NewManager(logger) validManifest = Manifest{ Name: "fake-deployment-name", Networks: []Network{ { Name: "fake-network-name", Type: "dynamic", },