package managed_job import ( "errors" "flink-kube-operator/internal/crd/v1alpha1" "flink-kube-operator/internal/jar" "gitea.com/logicamp/lc" api "github.com/logi-camp/go-flink-client" "go.uber.org/zap" ) // upload jar file and set the jarId for later usages func (job *ManagedJob) upload() error { jarFile, err := jar.NewJarFile(job.def.Spec.JarURI) if err != nil { lc.Logger.Debug("[main] error on download jar", zap.Error(err)) return err } fileName, err := jarFile.Upload(job.client) jarFile.Delete() if err != nil { lc.Logger.Debug("[main] error on upload jar", zap.Error(err)) return err } lc.Logger.Debug("[main] after upload jar", zap.Any("upload-jar-resp", fileName)) job.def.Status.JarId = &fileName job.crd.Patch(job.def.UID, map[string]interface{}{ "status": map[string]interface{}{ "jarId": job.def.Status.JarId, }, }) return nil } // run the job from saved jarId in managedJob func (job *ManagedJob) run() error { if job.def.Status.JarId == nil { err := errors.New("missing jar id") lc.Logger.Error("[managed-job] [run]", zap.Error(err)) return err } runJarResp, err := job.client.RunJar(api.RunOpts{ JarID: *job.def.Status.JarId, AllowNonRestoredState: true, EntryClass: job.def.Spec.EntryClass, }) if err != nil { lc.Logger.Error("[managed-job] [run]", zap.Error(err)) return err } lc.Logger.Debug("[main] after run jar", zap.Any("run-jar-resp", runJarResp)) // if job.state == nil { // job.state = &jobState{} // } // job.state.JobId = &runJarResp.JobId // job.state.Status = v1alpha1.JobStatusCreating // job.updateState(*job.state) // job.crd.SetJobStatus(job.def.UID, v1alpha1.FlinkJobStatus{ // JobId: job.state.JobId, // }) job.crd.Patch(job.def.UID, map[string]interface{}{ "status": map[string]interface{}{ "jobId": &runJarResp.JobId, "jobStatus": v1alpha1.JobStatusCreating, "lifeCycleStatus": v1alpha1.LifeCycleStatusInitializing, "error": nil, }, }) //job.updateState(jobState{JobId: &runJarResp.JobId, Status: JobStatusCreating}) return err }