1package release 2 3import ( 4 birel "github.com/cloudfoundry/bosh-cli/release" 5 bireljob "github.com/cloudfoundry/bosh-cli/release/job" 6 bosherr "github.com/cloudfoundry/bosh-utils/errors" 7) 8 9type JobResolver interface { 10 Resolve(jobName, releaseName string) (bireljob.Job, error) 11} 12 13type resolver struct { 14 releaseManager birel.Manager 15} 16 17func NewJobResolver(releaseManager birel.Manager) JobResolver { 18 return &resolver{ 19 releaseManager: releaseManager, 20 } 21} 22 23func (r *resolver) Resolve(jobName, releaseName string) (bireljob.Job, error) { 24 release, found := r.releaseManager.Find(releaseName) 25 if !found { 26 return bireljob.Job{}, bosherr.Errorf("Finding release '%s'", releaseName) 27 } 28 29 releaseJob, found := release.FindJobByName(jobName) 30 if !found { 31 return bireljob.Job{}, bosherr.Errorf("Finding job '%s' in release '%s'", jobName, releaseName) 32 } 33 34 return releaseJob, nil 35} 36