From 60789663d1c0747bc15f38bd67a507ca1351542b Mon Sep 17 00:00:00 2001 From: Christos Tranoris <tranoris@ece.upatras.gr> Date: Thu, 7 Dec 2023 00:38:36 +0200 Subject: [PATCH] Closes #6 --- .../management/CROrchestrationService.java | 5 ++++ .../osl/osom/serviceactions/CRPatchTask.java | 26 ++++++++++++++++++- .../osom/serviceactions/CRTerminateTask.java | 12 ++++++++- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/etsi/osl/osom/management/CROrchestrationService.java b/src/main/java/org/etsi/osl/osom/management/CROrchestrationService.java index 83889fa..08fc212 100644 --- a/src/main/java/org/etsi/osl/osom/management/CROrchestrationService.java +++ b/src/main/java/org/etsi/osl/osom/management/CROrchestrationService.java @@ -115,6 +115,11 @@ public class CROrchestrationService implements JavaDelegate { sorder.getExpectedCompletionDate(), crspec); } + + Characteristic servicecrspecLast = aService.getServiceCharacteristicByName("_CR_SPEC_LASTSEND"); + servicecrspecLast.getValue().setValue( crspec ); + su.addServiceCharacteristicItem(servicecrspecLast); + if ( response!=null && response.equals("OK")) { su.setState(ServiceStateType.RESERVED); Note successNoteItem = new Note(); diff --git a/src/main/java/org/etsi/osl/osom/serviceactions/CRPatchTask.java b/src/main/java/org/etsi/osl/osom/serviceactions/CRPatchTask.java index 3d04a14..554ccb6 100644 --- a/src/main/java/org/etsi/osl/osom/serviceactions/CRPatchTask.java +++ b/src/main/java/org/etsi/osl/osom/serviceactions/CRPatchTask.java @@ -91,20 +91,44 @@ public class CRPatchTask implements JavaDelegate { String response = null; Characteristic servicecrspec = aService.getServiceCharacteristicByName("_CR_SPEC"); String crspec = servicecrspec.getValue().getValue(); + + + Characteristic servicecrspecLast = aService.getServiceCharacteristicByName("_CR_SPEC_LASTSEND"); + String crspecLast = servicecrspecLast.getValue().getValue(); + + if (crspec.equals(crspecLast)) { + logger.debug("CRPatchTask: ignore this patch request. Seems they are the same as the last one send"); + serviceOrderManager.deleteServiceActionQueueItem(item); + return; + } + int retries = 0; response = createNewDeploymentUpdateRequest(aService, crspec); + while ( response.equals("SEE OTHER")) { + response = createNewDeploymentUpdateRequest(aService, crspec); + Thread.sleep(1000); + retries++; + if (retries>100) { //will support maximum 100 registered CRIDGE in queue + break; + } + } + + Note n = new Note(); n.setAuthor(compname); n.setDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); if ( response!=null && response.equals("OK")) { - n.setText("Service Action CRPatchTask successful . Action: " + item.getAction() + ". "); } else { n.setText("Service Action CRPatchTask failed . Action: " + item.getAction() + ". Response = " + response); } supd.addNoteItem(n); + + servicecrspecLast.getValue().setValue( crspec ); + supd.addServiceCharacteristicItem(servicecrspecLast); + serviceOrderManager.deleteServiceActionQueueItem(item); serviceOrderManager.updateService(aService.getId(), supd, false); diff --git a/src/main/java/org/etsi/osl/osom/serviceactions/CRTerminateTask.java b/src/main/java/org/etsi/osl/osom/serviceactions/CRTerminateTask.java index 2648047..6aad949 100644 --- a/src/main/java/org/etsi/osl/osom/serviceactions/CRTerminateTask.java +++ b/src/main/java/org/etsi/osl/osom/serviceactions/CRTerminateTask.java @@ -83,7 +83,17 @@ public class CRTerminateTask implements JavaDelegate { } try { - serviceOrderManager.cridgeDeletionRequest( map, crspec); + String response = serviceOrderManager.cridgeDeletionRequest( map, crspec); + + int retries = 0; + while ( response.equals("SEE OTHER")) { + response = serviceOrderManager.cridgeDeletionRequest( map, crspec); + Thread.sleep(1000); + retries++; + if (retries>100) { //will support maximum 100 registered CRIDGE in queue + break; + } + } } catch (Exception e) { // TODO Auto-generated catch block -- GitLab