47 lines
1.2 KiB
Go

package managed_job
import (
"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.jarId = fileName
return nil
}
// run the job from saved jarId in managedJob
func (job *ManagedJob) run() error {
runJarResp, err := job.client.RunJar(api.RunOpts{
JarID: job.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))
job.updateState(jobState{JobId: &runJarResp.JobId, Status: JobStatusCreating})
return err
}