X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dmaap-mediator-producer%2Finternal%2Fjobs%2Fjobs.go;h=73471789add62646bf3050f8e747395733c7485e;hb=f0e49a07dad877f94f635dda4ab477b9636536c8;hp=10eaf680ff3b4c1050c72d606d39cb07ee7c870d;hpb=63a42cacf9c52b7dff64431a3354f55c49bd6e4b;p=nonrtric.git diff --git a/dmaap-mediator-producer/internal/jobs/jobs.go b/dmaap-mediator-producer/internal/jobs/jobs.go index 10eaf680..73471789 100644 --- a/dmaap-mediator-producer/internal/jobs/jobs.go +++ b/dmaap-mediator-producer/internal/jobs/jobs.go @@ -21,6 +21,7 @@ package jobs import ( + "fmt" "os" "path/filepath" "strings" @@ -61,12 +62,25 @@ func newJobHandlerImpl() *jobHandlerImpl { } func (jh *jobHandlerImpl) AddJob(ji JobInfo) error { - if jobs, ok := allJobs[ji.InfoTypeIdentity]; ok { - if _, ok := jobs[ji.InfoJobIdentity]; ok { - // TODO: Update job - } else { - jobs[ji.InfoJobIdentity] = ji - } + if err := validateJobInfo(ji); err == nil { + jobs := allJobs[ji.InfoTypeIdentity] + jobs[ji.InfoJobIdentity] = ji + return nil + } else { + return err + } +} + +func validateJobInfo(ji JobInfo) error { + if _, ok := allJobs[ji.InfoTypeIdentity]; !ok { + return fmt.Errorf("type not supported: %v", ji.InfoTypeIdentity) + } + if ji.InfoJobIdentity == "" { + return fmt.Errorf("missing required job identity: %v", ji) + } + // Temporary for when there are only REST callbacks needed + if ji.TargetUri == "" { + return fmt.Errorf("missing required target URI: %v", ji) } return nil } @@ -120,3 +134,7 @@ func getType(path string) (*Type, error) { return nil, err } } + +func clearAll() { + allJobs = make(map[string]map[string]JobInfo) +}