X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=enrichment-coordinator-service%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fenrichment%2Fcontrollers%2Fconsumer%2FConsumerController.java;h=6e9438d3d8d7a37666aee93424f4a748daddb11a;hb=f0019c8168b9d59f132ba47e939e8aa3ef324b7d;hp=b194dc1f8822e9a0630d670f061b3f5089aeabae;hpb=8489de0f43f28c5cd62206b4e242c0308f9864b9;p=nonrtric.git diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/consumer/ConsumerController.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/consumer/ConsumerController.java index b194dc1f..6e9438d3 100644 --- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/consumer/ConsumerController.java +++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/consumer/ConsumerController.java @@ -33,7 +33,6 @@ import io.swagger.annotations.ApiResponses; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Vector; import org.everit.json.schema.Schema; import org.everit.json.schema.loader.SchemaLoader; @@ -46,9 +45,9 @@ import org.oransc.enrichment.exceptions.ServiceException; import org.oransc.enrichment.repository.EiJob; import org.oransc.enrichment.repository.EiJobs; import org.oransc.enrichment.repository.EiProducer; +import org.oransc.enrichment.repository.EiProducers; import org.oransc.enrichment.repository.EiType; import org.oransc.enrichment.repository.EiTypes; -import org.oransc.enrichment.repository.ImmutableEiJob; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -78,6 +77,9 @@ public class ConsumerController { @Autowired private EiTypes eiTypes; + @Autowired + private EiProducers eiProducers; + @Autowired ProducerCallbacks producerCallbacks; @@ -151,14 +153,14 @@ public class ConsumerController { List result = new ArrayList<>(); if (owner != null) { for (EiJob job : this.eiJobs.getJobsForOwner(owner)) { - if (eiTypeId == null || job.typeId().equals(eiTypeId)) { - result.add(job.id()); + if (eiTypeId == null || job.getTypeId().equals(eiTypeId)) { + result.add(job.getId()); } } } else if (eiTypeId != null) { - this.eiJobs.getJobsForType(eiTypeId).forEach(job -> result.add(job.id())); + this.eiJobs.getJobsForType(eiTypeId).forEach(job -> result.add(job.getId())); } else { - this.eiJobs.getJobs().forEach(job -> result.add(job.id())); + this.eiJobs.getJobs().forEach(job -> result.add(job.getId())); } return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK); } catch ( @@ -207,20 +209,15 @@ public class ConsumerController { } private Collection getProducers(EiJob eiJob) { - try { - return this.eiTypes.getType(eiJob.typeId()).getProducers(); - } catch (Exception e) { - return new Vector<>(); - } + return this.eiProducers.getProducersForType(eiJob.getTypeId()); } private ConsumerEiJobStatus toEiJobStatus(EiJob job) { - for (EiProducer producer : getProducers(job)) { - if (producer.isAvailable()) { - return new ConsumerEiJobStatus(ConsumerEiJobStatus.EiJobStatusValues.ENABLED); - } + if (getProducers(job).isEmpty()) { + return new ConsumerEiJobStatus(ConsumerEiJobStatus.EiJobStatusValues.DISABLED); + } else { + return new ConsumerEiJobStatus(ConsumerEiJobStatus.EiJobStatusValues.ENABLED); } - return new ConsumerEiJobStatus(ConsumerEiJobStatus.EiJobStatusValues.DISABLED); } @DeleteMapping(path = "/eijobs/{eiJobId}", produces = MediaType.APPLICATION_JSON_VALUE) @@ -237,8 +234,7 @@ public class ConsumerController { @PathVariable("eiJobId") String eiJobId) { try { EiJob job = this.eiJobs.getJob(eiJobId); - this.eiJobs.remove(job); - this.producerCallbacks.notifyProducersJobDeleted(job); + this.eiJobs.remove(job, this.eiProducers); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } catch (Exception e) { return ErrorResponse.create(e, HttpStatus.NOT_FOUND); @@ -265,14 +261,14 @@ public class ConsumerController { final boolean isNewJob = this.eiJobs.get(eiJobId) == null; return validatePutEiJob(eiJobId, eiJobObject) // - .flatMap(this::notifyProducersNewJob) // + .flatMap(this::startEiJob) // .doOnNext(newEiJob -> this.eiJobs.put(newEiJob)) // .flatMap(newEiJob -> Mono.just(new ResponseEntity<>(isNewJob ? HttpStatus.CREATED : HttpStatus.OK))) .onErrorResume(throwable -> Mono.just(ErrorResponse.create(throwable, HttpStatus.NOT_FOUND))); } - private Mono notifyProducersNewJob(EiJob newEiJob) { - return this.producerCallbacks.notifyProducersJobStarted(newEiJob) // + private Mono startEiJob(EiJob newEiJob) { + return this.producerCallbacks.startEiJob(newEiJob, eiProducers) // .flatMap(noOfAcceptingProducers -> { if (noOfAcceptingProducers.intValue() > 0) { return Mono.just(newEiJob); @@ -288,7 +284,7 @@ public class ConsumerController { validateJsonObjectAgainstSchema(eiType.getJobDataSchema(), eiJobInfo.jobData); EiJob existingEiJob = this.eiJobs.get(eiJobId); - if (existingEiJob != null && !existingEiJob.typeId().equals(eiJobInfo.eiTypeId)) { + if (existingEiJob != null && !existingEiJob.getTypeId().equals(eiJobInfo.eiTypeId)) { throw new ServiceException("Not allowed to change type for existing EI job", HttpStatus.CONFLICT); } return Mono.just(toEiJob(eiJobInfo, eiJobId, eiType)); @@ -316,7 +312,7 @@ public class ConsumerController { } private EiJob toEiJob(ConsumerEiJobInfo info, String id, EiType type) { - return ImmutableEiJob.builder() // + return EiJob.builder() // .id(id) // .typeId(type.getId()) // .owner(info.owner) // @@ -331,6 +327,7 @@ public class ConsumerController { } private ConsumerEiJobInfo toEiJobInfo(EiJob s) { - return new ConsumerEiJobInfo(s.typeId(), s.jobData(), s.owner(), s.targetUrl(), s.jobStatusUrl()); + return new ConsumerEiJobInfo(s.getTypeId(), s.getJobData(), s.getOwner(), s.getTargetUrl(), + s.getJobStatusUrl()); } }