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