worker: move job.Update() into RunJob()
Now, main() does not deal with OSBuildJobResult anymore, and RunJob() doesn't return it. This means we can add more job types (i.e., different RunJob()s) now.
This commit is contained in:
parent
1184d78494
commit
07f21d089e
1 changed files with 15 additions and 15 deletions
|
|
@ -93,10 +93,10 @@ func osbuildStagesToRPMs(stages []osbuild.StageResult) []koji.RPM {
|
|||
return rpms
|
||||
}
|
||||
|
||||
func RunJob(job worker.Job, store string, kojiServers map[string]koji.GSSAPICredentials) (*worker.OSBuildJobResult, error) {
|
||||
func RunJob(job worker.Job, store string, kojiServers map[string]koji.GSSAPICredentials) error {
|
||||
outputDirectory, err := ioutil.TempDir("/var/tmp", "osbuild-worker-*")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating temporary output directory: %v", err)
|
||||
return fmt.Errorf("error creating temporary output directory: %v", err)
|
||||
}
|
||||
defer func() {
|
||||
err := os.RemoveAll(outputDirectory)
|
||||
|
|
@ -107,14 +107,14 @@ func RunJob(job worker.Job, store string, kojiServers map[string]koji.GSSAPICred
|
|||
|
||||
args, err := job.OSBuildArgs()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
|
||||
start_time := time.Now()
|
||||
|
||||
osbuildOutput, err := RunOSBuild(args.Manifest, store, outputDirectory, os.Stderr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
|
||||
end_time := time.Now()
|
||||
|
|
@ -125,17 +125,17 @@ func RunJob(job worker.Job, store string, kojiServers map[string]koji.GSSAPICred
|
|||
if args.StreamOptimized {
|
||||
f, err = vmware.OpenAsStreamOptimizedVmdk(imagePath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
f, err = os.Open(imagePath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
}
|
||||
err = job.UploadArtifact(args.ImageName, f)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -336,11 +336,16 @@ func RunJob(job worker.Job, store string, kojiServers map[string]koji.GSSAPICred
|
|||
targetErrors = append(targetErrors, err.Error())
|
||||
}
|
||||
|
||||
return &worker.OSBuildJobResult{
|
||||
err = job.Update(&worker.OSBuildJobResult{
|
||||
Success: osbuildOutput.Success && len(targetErrors) == 0,
|
||||
OSBuildOutput: osbuildOutput,
|
||||
TargetErrors: targetErrors,
|
||||
}, nil
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("Error reporting job result: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Regularly ask osbuild-composer if the compose we're currently working on was
|
||||
|
|
@ -449,18 +454,13 @@ func main() {
|
|||
ctx, cancelWatcher := context.WithCancel(context.Background())
|
||||
go WatchJob(ctx, job)
|
||||
|
||||
result, err := RunJob(job, store, kojiServers)
|
||||
err = RunJob(job, store, kojiServers)
|
||||
cancelWatcher()
|
||||
if err != nil {
|
||||
log.Printf("Job %s failed: %v", job.Id(), err)
|
||||
continue
|
||||
}
|
||||
|
||||
err = job.Update(result)
|
||||
if err != nil {
|
||||
log.Fatalf("Error reporting job result: %v", err)
|
||||
}
|
||||
|
||||
log.Printf("Job %s finished", job.Id())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue