From b51dc46b6da50e64274c543ada134ff0c0609450 Mon Sep 17 00:00:00 2001
From: Christos Tranoris <tranoris@ece.upatras.gr>
Date: Fri, 12 Jan 2024 13:15:46 +0200
Subject: [PATCH] fix for
 https://labs.etsi.org/rep/osl/code/org.etsi.osl.osom/-/issues/13

---
 ...CROrchestrationCheckDeploymentService.java | 22 +++++++++++--------
 .../osom/serviceactions/CRTerminateTask.java  |  1 +
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/etsi/osl/osom/management/CROrchestrationCheckDeploymentService.java b/src/main/java/org/etsi/osl/osom/management/CROrchestrationCheckDeploymentService.java
index bb6182e..6c4f15e 100644
--- a/src/main/java/org/etsi/osl/osom/management/CROrchestrationCheckDeploymentService.java
+++ b/src/main/java/org/etsi/osl/osom/management/CROrchestrationCheckDeploymentService.java
@@ -94,16 +94,20 @@ public class CROrchestrationCheckDeploymentService implements JavaDelegate {
           rlist.add(res);
           
         }
-
-	    ServiceStateType nextState = aService.findNextStateBasedOnSupportingResources(rlist);
-	    supd.setState( nextState ); 	
-	    Note n = new Note();
-        n.setText("Service Status Changed to: " +  nextState);
-        n.setAuthor(compname);
-        n.setDate(OffsetDateTime.now(ZoneOffset.UTC).toString());
-        supd.addNoteItem(n);
+        @Valid
+        ServiceStateType currentState = aService.getState();
         
-		aService = serviceOrderManager.updateService( aService.getId(), supd, propagateToSO );
+	    ServiceStateType nextState = aService.findNextStateBasedOnSupportingResources(rlist);
+	    
+	    if (!currentState.equals(nextState)) {
+	        supd.setState( nextState );     
+	        Note n = new Note();
+	        n.setText("Service Status Changed to: " +  nextState);
+	        n.setAuthor(compname);
+	        n.setDate(OffsetDateTime.now(ZoneOffset.UTC).toString());
+	        supd.addNoteItem(n);	        
+	        aService = serviceOrderManager.updateService( aService.getId(), supd, propagateToSO );	      
+	    }
 		
 		if ( aService!= null ) {
 			if ( aService.getState().equals(ServiceStateType.ACTIVE)
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 6aad949..cac5b6a 100644
--- a/src/main/java/org/etsi/osl/osom/serviceactions/CRTerminateTask.java
+++ b/src/main/java/org/etsi/osl/osom/serviceactions/CRTerminateTask.java
@@ -68,6 +68,7 @@ public class CRTerminateTask  implements JavaDelegate {
               map.put("clusterMasterURL",getServiceCharacteristic(aService, "clusterMasterURL")    );
               map.put("org.etsi.osl.serviceId", aService.getId() );
               map.put("org.etsi.osl.serviceOrderId", aService.getServiceOrder().stream().findFirst().get().getId() );
+              map.put("org.etsi.osl.prefixName",getServiceCharacteristic(aService, "org.etsi.osl.prefixName")    );
               map.put("org.etsi.osl.namespace", aService.getServiceOrder().stream().findFirst().get().getId() );
               map.put("org.etsi.osl.statusCheckFieldName",  getServiceCharacteristic(aService, "_CR_CHECK_FIELD")    );
               map.put("org.etsi.osl.statusCheckValueStandby", getServiceCharacteristic(aService, "_CR_CHECKVAL_STANDBY")  );
-- 
GitLab