import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.stream.Collectors;
import org.oransc.portal.nonrtric.controlpanel.eiproducerapi.EiProducerApi;
+import org.oransc.portal.nonrtric.controlpanel.model.JobInfo;
+import org.oransc.portal.nonrtric.controlpanel.model.ProducerRegistrationInfo;
+import org.oransc.portal.nonrtric.controlpanel.model.ProducerRegistrationInfo.ProducerEiTypeRegistrationInfo;
+import org.oransc.portal.nonrtric.controlpanel.model.ProducerStatusInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.TestConfiguration;
}
public ResponseEntity<String> getAllEiProducers() {
- EiProducers result = new EiProducers();
+ List<ProducerRegistrationInfo> result = new ArrayList<>();
result.addAll(database.getAllEiProducers());
return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK);
}
@Override
- public ResponseEntity<String> getEiProducer(String eiProducerId) {
- EiProducer result = database.getEiProducerInstance(eiProducerId);
- return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK);
+ public ResponseEntity<ProducerRegistrationInfo> getEiProducer(String eiProducerId) {
+ ProducerRegistrationInfo result = database.getEiProducerInstance(eiProducerId);
+ return new ResponseEntity<>(result, HttpStatus.OK);
}
@Override
- public ResponseEntity<String> getEiJobsForOneEiProducer(String eiProducerId) {
- EiJobs result = new EiJobs();
- List<EiJob> inst = database.getEiJobsForOneEiProducer(Optional.of(eiProducerId));
- result.addAll(inst);
- return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK);
+ public ResponseEntity<List<JobInfo>> getEiJobsForOneEiProducer(String eiProducerId) {
+ List<JobInfo> result = new ArrayList<>();
+
+ result.addAll(database.getAllEiJobs());
+ return new ResponseEntity<>(result, HttpStatus.OK);
}
@Override
- public ResponseEntity<String> getEiProducerStatus(String eiProducerId) {
- EiProducer result = database.getEiProducerInstance(eiProducerId);
- return new ResponseEntity<>(gson.toJson(result.status()), HttpStatus.OK);
+ public ResponseEntity<ProducerStatusInfo> getEiProducerStatus(String eiProducerId) {
+ ProducerRegistrationInfo result = database.getEiProducerInstance(eiProducerId);
+ return new ResponseEntity<>(result.status, HttpStatus.OK);
}
}
Database() {
- List<EiType> supported_types = new ArrayList<EiType>();
+ List<ProducerEiTypeRegistrationInfo> supported_types = new ArrayList<ProducerEiTypeRegistrationInfo>();
- // Create EiType instance
+ // Create ProducerEiTypeRegistrationInfo instance
String schema = getStringFromFile("ei-type-1.json");
- EiType eiType1 = getEiTypeInstance("type1", schema, Arrays.asList("prod-1"));
+ ProducerEiTypeRegistrationInfo eiType1 = getEiTypeInstance("type1", schema, Arrays.asList("prod-1"));
supported_types.add(eiType1);
- // Create EiType instance
+ // Create ProducerEiTypeRegistrationInfo instance
schema = getStringFromFile("ei-type-2.json");
- EiType eiType2 = getEiTypeInstance("type2", schema, Arrays.asList("prod-1"));
+ ProducerEiTypeRegistrationInfo eiType2 = getEiTypeInstance("type2", schema, Arrays.asList("prod-1"));
supported_types.add(eiType2);
- // Create EiProducer instance
+ // Create ProducerRegistrationInfo instance
putEiProducerInstance("prod-1", "http://example.com/", "http://example.com/", "http://example.com/",
supported_types, new ProducerStatusInfo(ProducerStatusInfo.OperationalState.ENABLED));
// Create EiJob instance
schema = getStringFromFile("job-1.json");
- putEiJobInstance("type1", "job1", schema, "prod-1", "http://example.com/");
+ putEiJobInstance("type1", "job1", schema, "owner", "http://example.com/");
}
private String getStringFromFile(String path) {
}
void putEiJobInstance(String typeId, String instanceId, Object instanceData, String owner, String targetUrl) {
- EiJob i = ImmutableEiJob.builder() //
- .ei_job_data(instanceData) //
- .ei_job_identity(instanceId) //
+ JobInfo i = JobInfo.builder() //
+ .jobData(instanceData) //
+ .id(instanceId) //
.owner(owner) //
- .ei_type_identity(typeId) //
- .target_uri(targetUrl) //
- .status("ENABLED") //
+ .typeId(typeId) //
+ .targetUri(targetUrl) //
.build(); //
eiJobs.put(instanceId, i);
}
void putEiProducerInstance(String id, String creation_url, String deletion_url, String callback_url,
- List<EiType> supported_types, ProducerStatusInfo status) {
- EiProducer eiProducer = ImmutableEiProducer.builder() //
- .ei_producer_id(id) //
- .ei_job_creation_callback_url(creation_url) //
- .ei_job_deletion_callback_url(deletion_url) //
- .ei_producer_supervision_callback_url(callback_url) //
- .supported_ei_types(supported_types) //
- .status(status).build(); //
+ List<ProducerEiTypeRegistrationInfo> supported_types, ProducerStatusInfo status) {
+ ProducerRegistrationInfo eiProducer = ProducerRegistrationInfo.builder() //
+ .jobCallbackUrl(creation_url) //
+ .producerSupervisionCallbackUrl(callback_url) //
+ .types(supported_types) //
+ .status(status) //
+ .build(); //
eiProducers.put(id, eiProducer);
}
- EiType getEiTypeInstance(String id, Object data, List<String> producer_ids) {
- return ImmutableEiType.builder() //
- .ei_type_identity(id) //
- .ei_job_data_schema(data) //
- .ei_producer_ids(producer_ids) //
+ ProducerEiTypeRegistrationInfo getEiTypeInstance(String id, Object data, List<String> producer_ids) {
+ return ProducerEiTypeRegistrationInfo.builder() //
+ .eiTypeId(id) //
+ .jobDataSchema(data) //
.build(); //
}
eiJobs.remove(id);
}
- EiProducer getEiProducerInstance(String id) throws RestClientException {
- EiProducer i = eiProducers.get(id);
+ ProducerRegistrationInfo getEiProducerInstance(String id) throws RestClientException {
+ ProducerRegistrationInfo i = eiProducers.get(id);
if (i == null) {
throw new RestClientException("Producer not found: " + id);
}
return Collections.unmodifiableCollection(eiProducers.keySet());
}
- public Collection<EiProducer> getAllEiProducers() {
+ public Collection<ProducerRegistrationInfo> getAllEiProducers() {
return eiProducers.values();
}
- public Collection<EiJob> getAllEiJobs() {
- return eiJobs.values();
- }
-
- public List<EiJob> getEiJobsForOneEiProducer(Optional<String> eiProducerId) {
- List<EiJob> result = new ArrayList<>();
- for (EiJob i : eiJobs.values()) {
- if (eiProducerId.isPresent()) {
- if (i.owner().equals(eiProducerId.get())) {
- result.add(i);
- }
-
- } else {
- result.add(i);
- }
- }
- return result;
+ public List<JobInfo> getAllEiJobs() {
+ return new ArrayList<>(eiJobs.values());
}
- private Map<String, EiProducer> eiProducers = new HashMap<>();
- private Map<String, EiJob> eiJobs = new HashMap<>();
+ private Map<String, ProducerRegistrationInfo> eiProducers = new HashMap<>();
+ private Map<String, JobInfo> eiJobs = new HashMap<>();
}
}