diff --git a/.bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d b/.bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d new file mode 100644 index 0000000000000000000000000000000000000000..d91d95fb64d9fba9b4cd8b9e1b43c016d9184633 --- /dev/null +++ b/.bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="ASCII"?> +<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="BPMNdiagram" name="MetricoDeploymentReq" snapToGrid="true" version="0.13.0"> + <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/> + <colors red="227" green="238" blue="249"/> + <colors red="255" green="255" blue="255"/> +</pi:Diagram> diff --git a/.bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d b/.bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d new file mode 100644 index 0000000000000000000000000000000000000000..f6e94ec4ce18dec911bc14b6f8d57c9921d46518 --- /dev/null +++ b/.bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="ASCII"?> +<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="BPMNdiagram" name="ServiceCreationProcess" snapToGrid="true" version="0.13.0"> + <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/> + <colors red="227" green="238" blue="249"/> + <colors red="255" green="255" blue="255"/> +</pi:Diagram> diff --git a/.bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d b/.bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d new file mode 100644 index 0000000000000000000000000000000000000000..0579cc957b5f4de5708f44ba19980675910202a0 --- /dev/null +++ b/.bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="ASCII"?> +<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="BPMNdiagram" name="StartOrderProcessProcess" snapToGrid="true" version="0.13.0"> + <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/> + <colors red="227" green="238" blue="249"/> + <colors red="255" green="255" blue="255"/> +</pi:Diagram> 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..bfd368ec18f57218f7ebb2eb12051b1110283358 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,36 @@ 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)); + assert response instanceof String : "MeasurementCollectionJob object is wrong."; + 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