X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dmaap-mediator-producer%2Finternal%2Fjobs%2Fjobs.go;fp=dmaap-mediator-producer%2Finternal%2Fjobtypes%2Fjobtypes.go;h=10eaf680ff3b4c1050c72d606d39cb07ee7c870d;hb=63a42cacf9c52b7dff64431a3354f55c49bd6e4b;hp=894c586ec87613402968bcdeeb46b7abf6d04546;hpb=64654a9b0e63b7e36249bef4f542cdf7fac56020;p=nonrtric.git diff --git a/dmaap-mediator-producer/internal/jobtypes/jobtypes.go b/dmaap-mediator-producer/internal/jobs/jobs.go similarity index 60% rename from dmaap-mediator-producer/internal/jobtypes/jobtypes.go rename to dmaap-mediator-producer/internal/jobs/jobs.go index 894c586e..10eaf680 100644 --- a/dmaap-mediator-producer/internal/jobtypes/jobtypes.go +++ b/dmaap-mediator-producer/internal/jobs/jobs.go @@ -18,7 +18,7 @@ // ========================LICENSE_END=================================== // -package jobtypes +package jobs import ( "os" @@ -31,8 +31,45 @@ type Type struct { Schema string } -var typeDir = "configs" -var supportedTypes = make([]string, 0) +type JobInfo struct { + Owner string `json:"owner"` + LastUpdated string `json:"last_updated"` + InfoJobIdentity string `json:"info_job_identity"` + TargetUri string `json:"target_uri"` + InfoJobData string `json:"info_job_data"` + InfoTypeIdentity string `json:"info_type_identity"` +} + +type JobHandler interface { + AddJob(JobInfo) error +} + +var ( + typeDir = "configs" + Handler JobHandler + allJobs = make(map[string]map[string]JobInfo) +) + +func init() { + Handler = newJobHandlerImpl() +} + +type jobHandlerImpl struct{} + +func newJobHandlerImpl() *jobHandlerImpl { + return &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 + } + } + return nil +} func GetTypes() ([]*Type, error) { types := make([]*Type, 0, 1) @@ -55,9 +92,17 @@ func GetTypes() ([]*Type, error) { } func GetSupportedTypes() []string { + supportedTypes := []string{} + for k := range allJobs { + supportedTypes = append(supportedTypes, k) + } return supportedTypes } +func AddJob(job JobInfo) error { + return Handler.AddJob(job) +} + func getType(path string) (*Type, error) { fileName := filepath.Base(path) typeName := strings.TrimSuffix(fileName, filepath.Ext(fileName)) @@ -67,7 +112,9 @@ func getType(path string) (*Type, error) { TypeId: typeName, Schema: string(typeSchema), } - supportedTypes = append(supportedTypes, typeName) + if _, ok := allJobs[typeName]; !ok { + allJobs[typeName] = make(map[string]JobInfo) + } return &typeInfo, nil } else { return nil, err