diff --git a/.gitignore b/.gitignore index 5601d3bbb232b817dddb815531d4697e507721ab..8e0205a449e01acb7efd65ef653308fadc31a32a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .project .classpath /.settings +/.bpmn \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/osom/management/MetricoOrchestrationService.java b/src/main/java/org/etsi/osl/osom/management/MetricoOrchestrationService.java index d2ee32a5c4218e3b0723796d2272ce9622702d61..5d938d7c7b6e9d92dfb17ebb5e183bdae8311a71 100644 --- a/src/main/java/org/etsi/osl/osom/management/MetricoOrchestrationService.java +++ b/src/main/java/org/etsi/osl/osom/management/MetricoOrchestrationService.java @@ -161,7 +161,7 @@ public class MetricoOrchestrationService implements JavaDelegate { su = new ServiceUpdate();// the object to update the service MeasurementCollectionJob mcj = serviceOrderManager.addMeasurementCollectionJob(mcjFVO); if (mcj != null){ - logger.info("Measurement Collection Job was not created."); + logger.info("Measurement Collection Job was created."); serviceCharacteristic = new Characteristic(); serviceCharacteristic.setName( "_MT_MCJ_REFID" ); @@ -171,7 +171,15 @@ public class MetricoOrchestrationService implements JavaDelegate { val.setAlias( "" ); serviceCharacteristic.setValue(val); su.addServiceCharacteristicItem(serviceCharacteristic); - + + MeasurementCollectionJobMVO mcjMVO = new MeasurementCollectionJobMVO(); + mcjMVO.setExecutionState(ExecutionStateType.ACKNOWLEDGED); + try { + serviceOrderManager.updateMeasurementCollectionJobById(mcj.getUuid(), mcjMVO); + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { logger.error("Measurement Collection Job was not created."); su.setState(ServiceStateType.TERMINATED); diff --git a/src/main/java/org/etsi/osl/osom/management/ServiceOrderManager.java b/src/main/java/org/etsi/osl/osom/management/ServiceOrderManager.java index 54bc509931a98b683ede8b543afa2c023a7af1a4..55c4dc0746ec57949651c93b2b94607fc91a5e63 100644 --- a/src/main/java/org/etsi/osl/osom/management/ServiceOrderManager.java +++ b/src/main/java/org/etsi/osl/osom/management/ServiceOrderManager.java @@ -37,6 +37,7 @@ import org.etsi.osl.model.nfv.ScaleDescriptor; import org.etsi.osl.osom.serviceactions.NSActionRequestPayload; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobFVO; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobMVO; import org.etsi.osl.tmf.pm632.model.Organization; import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; @@ -200,6 +201,9 @@ public class ServiceOrderManager { @Value("${PM_MEASUREMENT_COLLECTION_JOB_ADD}") private String PM_MEASUREMENT_COLLECTION_JOB_ADD = ""; + @Value("${PM_MEASUREMENT_COLLECTION_JOB_UPDATE}") + private String PM_MEASUREMENT_COLLECTION_JOB_UPDATE; + @Transactional public void processOrder(ServiceOrder serviceOrder) { @@ -1167,6 +1171,39 @@ public class ServiceOrderManager { return null; } + /** + * Updates a Measurement Collection Job in the database using the given Measurement Collection Job ID and update information. + * + * @param mcjId the ID of the Measurement Collection Job to update + * @param mcjMVO the update information for the Measurement Collection Job + * @return the updated Measurement Collection Job, or null if the job could not be updated + */ + public MeasurementCollectionJob updateMeasurementCollectionJobById(String mcjId, MeasurementCollectionJobMVO mcjMVO) throws IOException { + + MeasurementCollectionJob measurementCollectionJob; + logger.debug("will update MeasurementCollectionJob with id "+ mcjId+" and \nMeasurementCollectionJob.toString():\n"+ toJsonString(mcjMVO)); + + + try { + Map<String, Object> map = new HashMap<>(); + map.put("mcjid", mcjId); + + Object response = template.requestBodyAndHeaders(PM_MEASUREMENT_COLLECTION_JOB_UPDATE, toJsonString(mcjMVO), map); + logger.info("JsonUtil.toJsonString(mcjMVO): \n" + toJsonString(mcjMVO)); + if (!(response instanceof String)) { + logger.error("MeasurementCollectionJob object is wrong."); + return null; + } + measurementCollectionJob = toJsonObj((String) response, MeasurementCollectionJob.class); + logger.info("response from PM_MEASUREMENT_COLLECTION_JOB_UPDATE: " + response); + return measurementCollectionJob; + } catch (Exception e) { + e.printStackTrace(); + logger.error("Cannot update MeasurementCollectionJob with id " + mcjId + ":\n" + e.toString()); + } + return null; + } + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 55f42c5636cfe3b05067d1761724e6c8d98b354e..baeda0136ce55d5294b0f944dfa4adccf9e7c1d0 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -127,4 +127,5 @@ CRD_DELETE_CR_REQ: "jms:queue:CRD.DELETE.CR_REQ" CRD_PATCH_CR_REQ: "jms:queue:CRD.PATCH.CR_REQ" #TMF628 ACTIONS -PM_MEASUREMENT_COLLECTION_JOB_ADD: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD" \ No newline at end of file +PM_MEASUREMENT_COLLECTION_JOB_ADD: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD" +PM_MEASUREMENT_COLLECTION_JOB_UPDATE: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.UPDATE" \ No newline at end of file