@@ -47,7 +47,10 @@ func (e *externalDependencyResolver) FetchInferredExternalDependenciesPerJobName
4747 }
4848 externalDependencyPerJobName := make (map [string ]models.ExternalDependency )
4949 for jobName , filters := range unresolvedDependenciesPerJobName {
50- optimusDependencies := e .fetchInferredOptimusDependencies (ctx , filters )
50+ optimusDependencies , err := e .fetchInferredOptimusDependencies (ctx , filters )
51+ if err != nil {
52+ return nil , err
53+ }
5154 // external dependency types other than optimus will be called in this line, and used in the line below
5255 externalDependencyPerJobName [jobName ] = models.ExternalDependency {
5356 OptimusDependencies : optimusDependencies ,
@@ -64,7 +67,10 @@ func (e *externalDependencyResolver) FetchStaticExternalDependenciesPerJobName(c
6467 var unknownDependencies []models.UnknownDependency
6568 externalDependencyPerJobName := make (map [string ]models.ExternalDependency )
6669 for jobName , toBeResolvedDependency := range unresolvedDependenciesPerJobName {
67- optimusDependencies , unresolvedFromExternal := e .fetchStaticOptimusDependencies (ctx , toBeResolvedDependency )
70+ optimusDependencies , unresolvedFromExternal , err := e .fetchStaticOptimusDependencies (ctx , toBeResolvedDependency )
71+ if err != nil {
72+ return nil , nil , err
73+ }
6874 unknownDependenciesFromUnresolved := e .convertUnresolvedToUnknownDependencies (jobName , unresolvedFromExternal )
6975 unknownDependencies = append (unknownDependencies , unknownDependenciesFromUnresolved ... )
7076 // external dependency types other than optimus will be called in this line, and used in the line below
@@ -88,13 +94,16 @@ func (*externalDependencyResolver) convertUnresolvedToUnknownDependencies(jobNam
8894 return unknownDependencies
8995}
9096
91- func (e * externalDependencyResolver ) fetchInferredOptimusDependencies (ctx context.Context , unresolvedDependencies []models.UnresolvedJobDependency ) []models.OptimusDependency {
97+ func (e * externalDependencyResolver ) fetchInferredOptimusDependencies (ctx context.Context , unresolvedDependencies []models.UnresolvedJobDependency ) ( []models.OptimusDependency , error ) {
9298 var optimusDependencies []models.OptimusDependency
9399 for _ , unresolvedDependency := range unresolvedDependencies {
94- dependencies := e .fetchOptimusDependencies (ctx , unresolvedDependency )
100+ dependencies , err := e .fetchOptimusDependencies (ctx , unresolvedDependency )
101+ if err != nil {
102+ return nil , err
103+ }
95104 optimusDependencies = append (optimusDependencies , dependencies ... )
96105 }
97- return optimusDependencies
106+ return optimusDependencies , nil
98107}
99108
100109func (e * externalDependencyResolver ) GetExternalJobRuns (ctx context.Context , host , jobName , projectName string , startDate , endDate time.Time ) ([]models.JobRun , error ) {
@@ -106,28 +115,31 @@ func (e *externalDependencyResolver) GetExternalJobRuns(ctx context.Context, hos
106115 return []models.JobRun {}, fmt .Errorf ("could not find optimus external resoruce manager with host:%s" , host )
107116}
108117
109- func (e * externalDependencyResolver ) fetchStaticOptimusDependencies (ctx context.Context , unresolvedDependencies []models.UnresolvedJobDependency ) ([]models.OptimusDependency , []models.UnresolvedJobDependency ) {
118+ func (e * externalDependencyResolver ) fetchStaticOptimusDependencies (ctx context.Context , unresolvedDependencies []models.UnresolvedJobDependency ) ([]models.OptimusDependency , []models.UnresolvedJobDependency , error ) {
110119 var optimusDependencies []models.OptimusDependency
111120 var unresolvedFromExternal []models.UnresolvedJobDependency
112121 for _ , toBeResolvedDependency := range unresolvedDependencies {
113- dependencies := e .fetchOptimusDependencies (ctx , toBeResolvedDependency )
122+ dependencies , err := e .fetchOptimusDependencies (ctx , toBeResolvedDependency )
123+ if err != nil {
124+ return nil , nil , err
125+ }
114126 if len (dependencies ) == 0 {
115127 unresolvedFromExternal = append (unresolvedFromExternal , toBeResolvedDependency )
116128 continue
117129 }
118130 optimusDependencies = append (optimusDependencies , dependencies ... )
119131 }
120- return optimusDependencies , unresolvedFromExternal
132+ return optimusDependencies , unresolvedFromExternal , nil
121133}
122134
123- func (e * externalDependencyResolver ) fetchOptimusDependencies (ctx context.Context , unresolvedDependency models.UnresolvedJobDependency ) []models.OptimusDependency {
135+ func (e * externalDependencyResolver ) fetchOptimusDependencies (ctx context.Context , unresolvedDependency models.UnresolvedJobDependency ) ( []models.OptimusDependency , error ) {
124136 var dependencies []models.OptimusDependency
125137 for _ , manager := range e .optimusResourceManagers {
126138 deps , err := manager .GetOptimusDependencies (ctx , unresolvedDependency )
127139 if err != nil {
128- continue
140+ return nil , err
129141 }
130142 dependencies = append (dependencies , deps ... )
131143 }
132- return dependencies
144+ return dependencies , nil
133145}
0 commit comments