@@ -51,36 +51,36 @@ type JobUpstreams struct {
5151 JobName string
5252 ProjectName string
5353 UpstreamJobID uuid.UUID
54- UpstreamJobName string
55- UpstreamResourceUrn string
56- UpstreamProjectName string
57- UpstreamNamespaceName string
58- UpstreamTaskName string
59- UpstreamHost string
54+ UpstreamJobName sql. NullString
55+ UpstreamResourceUrn sql. NullString
56+ UpstreamProjectName sql. NullString
57+ UpstreamNamespaceName sql. NullString
58+ UpstreamTaskName sql. NullString
59+ UpstreamHost sql. NullString
6060 UpstreamType string
6161 UpstreamState string
62- UpstreamExternal bool
62+ UpstreamExternal sql. NullBool
6363
6464 CreatedAt time.Time
6565 UpdatedAt time.Time
6666}
6767
6868func (j * JobUpstreams ) toJobUpstreams () (* scheduler.JobUpstream , error ) {
69- t , err := tenant .NewTenant (j .UpstreamProjectName , j .UpstreamNamespaceName )
69+ t , err := tenant .NewTenant (j .UpstreamProjectName . String , j .UpstreamNamespaceName . String )
7070 if err != nil {
7171 return nil , err
7272 }
7373
7474 return & scheduler.JobUpstream {
75- JobName : j .UpstreamJobName ,
76- Host : j .UpstreamHost ,
77- TaskName : j .UpstreamTaskName ,
78- DestinationURN : j .UpstreamResourceUrn ,
75+ JobName : j .UpstreamJobName . String ,
76+ Host : j .UpstreamHost . String ,
77+ TaskName : j .UpstreamTaskName . String ,
78+ DestinationURN : j .UpstreamResourceUrn . String ,
7979 Tenant : t ,
8080 Type : j .UpstreamType ,
81- External : j .UpstreamExternal ,
81+ External : j .UpstreamExternal . Bool ,
8282 State : j .UpstreamState ,
83- }, err
83+ }, nil
8484}
8585
8686type Job struct {
@@ -234,7 +234,7 @@ func FromRow(row pgx.Row) (*Job, error) {
234234 return nil , errors .NotFound (job .EntityJob , "job not found" )
235235 }
236236
237- return nil , errors .Wrap (scheduler .EntityJobRun , "error in reading row for resource " , err )
237+ return nil , errors .Wrap (scheduler .EntityJobRun , "error in reading row for job " , err )
238238 }
239239
240240 return & js , nil
@@ -263,9 +263,13 @@ func groupUpstreamsByJobName(jobUpstreams []JobUpstreams) (map[string][]*schedul
263263 jobUpstreamGroup := map [string ][]* scheduler.JobUpstream {}
264264
265265 for _ , upstream := range jobUpstreams {
266+ if upstream .UpstreamState != "resolved" {
267+ multiError .Append (errors .NewError (errors .ErrInvalidState , scheduler .EntityJobRun , "unresolved upstream " + upstream .UpstreamJobName .String + " for " + upstream .JobName ))
268+ continue
269+ }
266270 schedulerUpstream , err := upstream .toJobUpstreams ()
267271 if err != nil {
268- msg := fmt .Sprintf ("unable to parse upstream:%s for job:%s" , upstream .UpstreamJobName , upstream .JobName )
272+ msg := fmt .Sprintf ("unable to parse upstream:%s for job:%s" , upstream .UpstreamJobName . String , upstream .JobName )
269273 multiError .Append (errors .Wrap (scheduler .EntityJobRun , msg , err ))
270274 continue
271275 }
0 commit comments