From 48a69c95a2b6fb948aa7e3f630a5fefefe1725ed Mon Sep 17 00:00:00 2001 From: George Tziavas Date: Thu, 29 May 2025 13:32:58 +0300 Subject: [PATCH 1/4] added ACKNOWLEDGED as initial MCJ state --- .../processes/MetricoDeploymentReq.bpmn2d | 6 ++++ .../processes/ServiceCreationProcess.bpmn2d | 6 ++++ .../processes/StartOrderProcessProcess.bpmn2d | 6 ++++ .../MetricoOrchestrationService.java | 12 +++++-- .../osom/management/ServiceOrderManager.java | 34 +++++++++++++++++++ src/main/resources/application.yml | 3 +- 6 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 .bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d create mode 100644 .bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d create mode 100644 .bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d diff --git a/.bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d b/.bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d new file mode 100644 index 0000000..d91d95f --- /dev/null +++ b/.bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d @@ -0,0 +1,6 @@ + + + + + + diff --git a/.bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d b/.bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d new file mode 100644 index 0000000..f6e94ec --- /dev/null +++ b/.bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d @@ -0,0 +1,6 @@ + + + + + + diff --git a/.bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d b/.bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d new file mode 100644 index 0000000..0579cc9 --- /dev/null +++ b/.bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d @@ -0,0 +1,6 @@ + + + + + + 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 d2ee32a..5d938d7 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 54bc509..bfd368e 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 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 55f42c5..baeda01 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 -- GitLab From 910a7f007074da7e70871c7304bf0888a62a4288 Mon Sep 17 00:00:00 2001 From: George Tziavas Date: Thu, 29 May 2025 15:06:04 +0300 Subject: [PATCH 2/4] removed .bpmn and added it to .gitignore --- .../main/resources/processes/MetricoDeploymentReq.bpmn2d | 6 ------ .../main/resources/processes/ServiceCreationProcess.bpmn2d | 6 ------ .../resources/processes/StartOrderProcessProcess.bpmn2d | 6 ------ .gitignore | 1 + 4 files changed, 1 insertion(+), 18 deletions(-) delete mode 100644 .bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d delete mode 100644 .bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d delete mode 100644 .bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d diff --git a/.bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d b/.bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d deleted file mode 100644 index d91d95f..0000000 --- a/.bpmn/src/main/resources/processes/MetricoDeploymentReq.bpmn2d +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/.bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d b/.bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d deleted file mode 100644 index f6e94ec..0000000 --- a/.bpmn/src/main/resources/processes/ServiceCreationProcess.bpmn2d +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/.bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d b/.bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d deleted file mode 100644 index 0579cc9..0000000 --- a/.bpmn/src/main/resources/processes/StartOrderProcessProcess.bpmn2d +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/.gitignore b/.gitignore index 5601d3b..8e0205a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .project .classpath /.settings +/.bpmn \ No newline at end of file -- GitLab From ee61488a0fde31ff05f4b3318db101b3018d83a6 Mon Sep 17 00:00:00 2001 From: George Tziavas Date: Tue, 10 Jun 2025 16:39:08 +0300 Subject: [PATCH 3/4] made code more clear --- .../org/etsi/osl/osom/management/ServiceOrderManager.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 bfd368e..5e7a1ff 100644 --- a/src/main/java/org/etsi/osl/osom/management/ServiceOrderManager.java +++ b/src/main/java/org/etsi/osl/osom/management/ServiceOrderManager.java @@ -1190,7 +1190,10 @@ public class ServiceOrderManager { 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."; + if (!(response instanceof String)) { + logger.error("MeasurementCollectionJob object is wrong."); + return null; + }z measurementCollectionJob = toJsonObj((String) response, MeasurementCollectionJob.class); logger.info("response from PM_MEASUREMENT_COLLECTION_JOB_UPDATE: " + response); return measurementCollectionJob; -- GitLab From 00e39a28dbe338678a94147a4d5e71cf14668491 Mon Sep 17 00:00:00 2001 From: George Tziavas Date: Tue, 10 Jun 2025 16:45:29 +0300 Subject: [PATCH 4/4] typo --- .../java/org/etsi/osl/osom/management/ServiceOrderManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5e7a1ff..55c4dc0 100644 --- a/src/main/java/org/etsi/osl/osom/management/ServiceOrderManager.java +++ b/src/main/java/org/etsi/osl/osom/management/ServiceOrderManager.java @@ -1193,7 +1193,7 @@ public class ServiceOrderManager { if (!(response instanceof String)) { logger.error("MeasurementCollectionJob object is wrong."); return null; - }z + } measurementCollectionJob = toJsonObj((String) response, MeasurementCollectionJob.class); logger.info("response from PM_MEASUREMENT_COLLECTION_JOB_UPDATE: " + response); return measurementCollectionJob; -- GitLab