diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilder.java index fc6252fb05e6d79fbf958ccdbd8348d8fa1114b9..bc445f18d73265463f8a7e11f3eacc6f4e68a1d0 100644 --- a/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilder.java +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilder.java @@ -74,7 +74,7 @@ public class ResourceApiRouteBuilder extends RouteBuilder { public void configure() throws Exception { from( CATALOG_ADD_RESOURCE ) - .log(LoggingLevel.INFO, log, CATALOG_ADD_RESOURCE + " message received!") + .log(LoggingLevel.DEBUG, log, CATALOG_ADD_RESOURCE + " message received!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ResourceCreate.class, true) .bean( resourceRepoService, "addResource(${body})") @@ -83,13 +83,13 @@ public class ResourceApiRouteBuilder extends RouteBuilder { .convertBodyTo( String.class ); from( CATALOG_GET_RESOURCE_BY_ID ) - .log(LoggingLevel.INFO, log, CATALOG_GET_RESOURCE_BY_ID + " message received!") + .log(LoggingLevel.DEBUG, log, CATALOG_GET_RESOURCE_BY_ID + " message received!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( resourceRepoService, "getResourceEagerAsString") .convertBodyTo( String.class ); from( CATALOG_UPD_RESOURCE ) - .log(LoggingLevel.INFO, log, CATALOG_UPD_RESOURCE + " message received!") + .log(LoggingLevel.DEBUG, log, CATALOG_UPD_RESOURCE + " message received!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ResourceUpdate.class, true) .bean( resourceRepoService, "updateResource(${header.resourceId}, ${body}, ${header.triggerServiceActionQueue} )") @@ -97,14 +97,14 @@ public class ResourceApiRouteBuilder extends RouteBuilder { .convertBodyTo( String.class ); from( CATALOG_RESOURCES_OF_PARTNERS ) - .log(LoggingLevel.INFO, log, CATALOG_RESOURCES_OF_PARTNERS + " message received!") + .log(LoggingLevel.DEBUG, log, CATALOG_RESOURCES_OF_PARTNERS + " message received!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( resourceRepoService, "findAllActiveAndReservedResourcesOfPartners") .marshal().json( JsonLibrary.Jackson) .convertBodyTo( String.class ); from( CATALOG_UPDADD_RESOURCE ) - .log(LoggingLevel.INFO, log, CATALOG_UPDADD_RESOURCE + " message received!") + .log(LoggingLevel.DEBUG, log, CATALOG_UPDADD_RESOURCE + " message received!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ResourceCreate.class, true) .bean( resourceRepoService, "addOrUpdateResourceByNameCategoryVersion(${header.aname},${header.acategory}, ${header.aversion}, ${body})") diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java index b1e68771a517dcf2964a114df51ce35337396cfc..84645c52620a08fc332dd9722fdfbd2b46e8b831 100644 --- a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java @@ -123,7 +123,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder { from( CATALOG_ADD_SERVICE ) - .log(LoggingLevel.INFO, log, CATALOG_ADD_SERVICE + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, CATALOG_ADD_SERVICE + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ServiceCreate.class, true) .bean( serviceRepoService, "addService(${body})") @@ -131,7 +131,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder { .convertBodyTo( String.class ); from( CATALOG_GET_SERVICE_BY_ID ) - .log(LoggingLevel.INFO, log, CATALOG_GET_SERVICE_BY_ID + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, CATALOG_GET_SERVICE_BY_ID + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( serviceRepoService, "getServiceEagerAsString") .convertBodyTo( String.class ); @@ -139,7 +139,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder { from( CATALOG_UPD_SERVICE ) - .log(LoggingLevel.INFO, log, CATALOG_UPD_SERVICE + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, CATALOG_UPD_SERVICE + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ServiceUpdate.class, true) .bean( serviceRepoService, "updateService(${header.serviceid}, ${body}, ${header.triggerServiceActionQueue} )") @@ -148,14 +148,14 @@ public class ServiceApiRouteBuilder extends RouteBuilder { from( CATALOG_SERVICE_QUEUE_ITEMS_GET ) - .log(LoggingLevel.INFO, log, CATALOG_SERVICE_QUEUE_ITEMS_GET + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, CATALOG_SERVICE_QUEUE_ITEMS_GET + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( serviceRepoService, "findAllServiceActionQueueItems") .marshal().json( JsonLibrary.Jackson) .convertBodyTo( String.class ); from( CATALOG_SERVICE_QUEUE_ITEM_UPD ) - .log(LoggingLevel.INFO, log, CATALOG_SERVICE_QUEUE_ITEM_UPD + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, CATALOG_SERVICE_QUEUE_ITEM_UPD + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ServiceActionQueueItem.class, true) .bean( serviceRepoService, "updateServiceActionQueueItem(${body})") @@ -163,7 +163,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder { .convertBodyTo( String.class ); from( CATALOG_SERVICE_QUEUE_ITEM_DELETE ) - .log(LoggingLevel.INFO, log, CATALOG_SERVICE_QUEUE_ITEM_DELETE + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, CATALOG_SERVICE_QUEUE_ITEM_DELETE + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ServiceActionQueueItem.class, true) .bean( serviceRepoService, "deleteServiceActionQueueItemByUuid(${header.itemid})"); @@ -171,7 +171,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder { from( CATALOG_SERVICES_TO_TERMINATE ) - .log(LoggingLevel.INFO, log, CATALOG_SERVICES_TO_TERMINATE + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, CATALOG_SERVICES_TO_TERMINATE + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( serviceRepoService, "findAllActiveServicesToTerminate") .marshal().json( JsonLibrary.Jackson) @@ -179,7 +179,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder { from( CATALOG_SERVICES_OF_PARTNERS ) - .log(LoggingLevel.INFO, log, CATALOG_SERVICES_OF_PARTNERS + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, CATALOG_SERVICES_OF_PARTNERS + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( serviceRepoService, "findAllActiveAndReservedServicesOfPartners") .marshal().json( JsonLibrary.Jackson) @@ -187,14 +187,14 @@ public class ServiceApiRouteBuilder extends RouteBuilder { from( CATALOG_GET_SERVICE_BY_ORDERID ) - .log(LoggingLevel.INFO, log, CATALOG_GET_SERVICE_BY_ORDERID + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, CATALOG_GET_SERVICE_BY_ORDERID + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( serviceRepoService, "getServicesFromOrderID") .marshal().json( JsonLibrary.Jackson) .convertBodyTo( String.class ); from( NFV_CATALOG_NS_LCMCHANGED ) - .log(LoggingLevel.INFO, log, NFV_CATALOG_NS_LCMCHANGED + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, NFV_CATALOG_NS_LCMCHANGED + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, DeploymentDescriptor.class, true) .bean( serviceRepoService, "nfvCatalogNSResourceChanged(${body})"); @@ -202,7 +202,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder { from( EVENT_RESOURCE_STATE_CHANGED ) - .log(LoggingLevel.INFO, log, EVENT_RESOURCE_STATE_CHANGED + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, EVENT_RESOURCE_STATE_CHANGED + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ResourceStateChangeNotification.class, true) .bean( serviceRepoService, "resourceStateChangedEvent(${body})"); @@ -216,7 +216,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder { .logHandled(true) .retriesExhaustedLogLevel(LoggingLevel.ERROR) .retryAttemptedLogLevel(LoggingLevel.ERROR)) - .log(LoggingLevel.INFO, log, EVENT_RESOURCE_CREATE + " message received and will be processed for service inventory!") + .log(LoggingLevel.DEBUG, log, EVENT_RESOURCE_CREATE + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ResourceCreateNotification.class, true) .bean( serviceRepoService, "resourceCreatedEvent(${body})"); diff --git a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java index 2202dcf4b0005cd46d353d2082be85056a97024a..1f17c6909fa22cb051616671e0cfa425ae755e34 100644 --- a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java +++ b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java @@ -341,7 +341,24 @@ public class ServiceRepoService { s.addNoteItem(noteItem); - s = this.serviceRepo.save( s ); + int cnt = 0; + if ( service.getServiceCharacteristic()!=null) + for (Characteristic ch : service.getServiceCharacteristic()) { + if ( ch.getName().equals( "org.etsi.osl.prefixName" ) ) { + cnt++; + } + if ( ch.getName().equals( "AdditionPropertiesAsJson" ) ) { + logger.debug("=============================================> FOUND CHARACTERISTIC addService AdditionPropertiesAsJson IN addService" ); + logger.debug("=============================================> AdditionPropertiesAsJson charlength=" + ch.getValue().getValue().length() ); + } + } + + if ( cnt>1) { + logger.debug("=============================================> FOUND CHARACTERISTIC TWICE AFTER service addService" ); + + } + + s = this.serviceRepo.save( s ); raiseServiceCreateNotification(s); return s; @@ -394,7 +411,41 @@ public class ServiceRepoService { } - + int cnt = 0; + if ( servUpd.getServiceCharacteristic() != null ) { + for (Characteristic ch1 : servUpd.getServiceCharacteristic()) { + if ( ch1.getName().equals( "org.etsi.osl.prefixName" ) ) { + cnt++; + } + if ( ch1.getName().equals( "AdditionPropertiesAsJson" ) ) { + logger.debug("=============================================> FOUND CHARACTERISTIC AdditionPropertiesAsJson IN servUpd" ); + logger.debug("=============================================> AdditionPropertiesAsJson charlength=" + ch1.getValue().getValue().length() ); + } + + } + + if ( cnt>1) { + logger.debug("=============================================> FOUND CHARACTERISTIC TWICE servUpd updateService servUpd" ); + + } + } + cnt = 0; + for (Characteristic ch : service.getServiceCharacteristic()) { + if ( ch.getName().equals( "org.etsi.osl.prefixName" ) ) { + cnt++; + } + if ( ch.getName().equals( "AdditionPropertiesAsJson" ) ) { + logger.debug("=============================================> FOUND CHARACTERISTIC AdditionPropertiesAsJson IN service" ); + logger.debug("=============================================> AdditionPropertiesAsJson charlength=" + ch.getValue().getValue().length() ); + } + } + + if ( cnt>1) { + logger.debug("=============================================> FOUND CHARACTERISTIC TWICE service updateService service" ); + + } + + if (servUpd.getType()!=null) { service.setType(servUpd.getType()); } @@ -536,7 +587,16 @@ public class ServiceRepoService { } else { service.addServiceCharacteristicItem(n); - + if ( n.getName().equals( "AdditionPropertiesAsJson" ) ) { + logger.debug("=============================================> ADDING AdditionPropertiesAsJson to service" ); + if ( n.getValue()!=null ) { + logger.debug("=============================================> ADDING AdditionPropertiesAsJson charlength=" + n.getValue().getValue().length() ); + } else { + + logger.debug("=============================================> ADDING AdditionPropertiesAsJson charlength=NULL" ); + } + + } if ( !n.getName().contains("::") ) { //it is not a child characteristic serviceCharacteristicChanged = true; charChangedForNotes += n.getName() + ", "; @@ -613,6 +673,7 @@ public class ServiceRepoService { if (charChangedForNotes.contains( "reconciledAt") ) { //this is just a sync message, so we need to igore such changes serviceCharacteristicChanged = false; + logger.debug("=============================================> Just reconciledAt changed" ); } if (serviceCharacteristicChanged) { @@ -634,7 +695,22 @@ public class ServiceRepoService { service = this.serviceRepo.save( service ); - + cnt = 0; + for (Characteristic ch : service.getServiceCharacteristic()) { + if ( ch.getName().equals( "org.etsi.osl.prefixName" ) ) { + cnt++; + } + if ( ch.getName().equals( "AdditionPropertiesAsJson" ) ) { + logger.debug("=============================================> FOUND CHARACTERISTIC AFTER AdditionPropertiesAsJson IN service" ); + logger.debug("=============================================> AdditionPropertiesAsJson charlength=" + ch.getValue().getValue().length() ); + } + } + + if ( cnt>1) { + logger.debug("=============================================> FOUND CHARACTERISTIC TWICE AFTER service updateService service" ); + + } + String requestedServiceAsJson = null; try { requestedServiceAsJson = mapper.writeValueAsString( service ); @@ -778,7 +854,8 @@ public class ServiceRepoService { // } catch (FileNotFoundException e) { // // TODO Auto-generated catch block // e.printStackTrace(); -// } +// } + logger.info("======================================================================================================"); } return service; @@ -894,10 +971,10 @@ public class ServiceRepoService { if ( schart!= null ) { String teest = schart.getValue().getValue(); - logger.debug("schart size = " + teest.length() ); + logger.info("schart size = " + teest.length() ); - logger.debug("schart " + teest ); - logger.debug("======================================================================================================"); + logger.info("schart " + teest ); + logger.info("======================================================================================================"); } return res; @@ -1207,16 +1284,17 @@ public class ServiceRepoService { } - + Boolean stateChaged = false; ServiceUpdate supd = new ServiceUpdate(); nextState = aService.findNextStateBasedOnResourceList(rlist); supd.setState(nextState); String stateText=""; if ( !aService.getState().equals(nextState)) { + stateChaged = true; stateText = "State changed from " + aService.getState() + " to " + nextState + "."; logger.debug("====================> stateText = " + stateText); for (Resource r : rlist) { - logger.debug("==================> s:"+ r.getResourceStatus().name()+ ", name:"+ r.getName() ); + logger.debug("==================> r:{}, state:{} ="+ r.getName() + ", "+ r.getResourceStatus().name()); } } @@ -1224,9 +1302,11 @@ public class ServiceRepoService { //adding all characteristics from service for (Characteristic ch : aService.getServiceCharacteristic()) { supd.addServiceCharacteristicItem(ch); + + } - + Boolean characteristicFoundDifferent =false; String dontCopyChars = "clusterMasterURL,currentContextCluster,fullResourceName,Kind,apiGroup,UID,metadata"; String[] arrayDontCopyChars = dontCopyChars.split(","); Set<String> setB = new HashSet<>(Arrays.asList(arrayDontCopyChars)); @@ -1235,14 +1315,21 @@ public class ServiceRepoService { if ( rChar.getValue() != null ) { String characteristicname = kind + resourcename + rChar.getName(); - if ( supd.getServiceCharacteristicByName( characteristicname ) != null ) { - supd.getServiceCharacteristicByName( characteristicname ) .value(new Any( rChar.getValue() )); + Characteristic servChar = supd.getServiceCharacteristicByName( characteristicname ); + if ( servChar != null && servChar.getValue() != null) { + if (! servChar.getValue().getValue().equals( rChar.getValue().getValue() ) ) { + characteristicFoundDifferent = true; + supd.getServiceCharacteristicByName( characteristicname ) .value(new Any( rChar.getValue() )); + logger.debug("====================> add characteristic: " + characteristicname +", value: "+ rChar.getValue().getValue()); + } + } else { Characteristic cNew = new Characteristic(); cNew.setName( characteristicname ); cNew.value( new Any( rChar.getValue() )); supd.addServiceCharacteristicItem( cNew ); - + characteristicFoundDifferent = true; + logger.debug("====================> add New characteristic: " + characteristicname +", value: "+ rChar.getValue().getValue()); } @@ -1252,19 +1339,22 @@ public class ServiceRepoService { } - Characteristic noteCheck = as.getServiceCharacteristicByName("_DETAILED_NOTES_"); - if ( noteCheck!= null - && noteCheck.getValue() != null - && noteCheck.getValue().getValue() != null - && !noteCheck.getValue().getValue().equals("")) { - Note n = new Note(); - n.setText(stateText + "Supporting Resource changed with id: " + res.getId()); - n.setAuthor( "SIM638-API" ); - n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); - supd.addNoteItem( n ); - } - - this.updateService( aService.getId(), supd , true, null, null); //update the service + if ( stateChaged || characteristicFoundDifferent) { + Characteristic noteCheck = as.getServiceCharacteristicByName("_DETAILED_NOTES_"); + if ( noteCheck!= null + && noteCheck.getValue() != null + && noteCheck.getValue().getValue() != null + && !noteCheck.getValue().getValue().equals("")) { + Note n = new Note(); + n.setText(stateText + "Supporting Resource changed with id: " + res.getId()); + n.setAuthor( "SIM638-API" ); + n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + supd.addNoteItem( n ); + } + + this.updateService( aService.getId(), supd , true, null, null); //update the service + + } }