Loading src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java +49 −110 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import java.io.UnsupportedEncodingException; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; Loading @@ -46,6 +47,7 @@ import org.etsi.osl.tmf.ri639.model.Resource; import org.etsi.osl.tmf.ri639.model.ResourceAttributeValueChangeNotification; import org.etsi.osl.tmf.ri639.model.ResourceCreateNotification; import org.etsi.osl.tmf.ri639.model.ResourceStateChangeNotification; import org.etsi.osl.tmf.ri639.repo.ResourceRepository; import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; import org.etsi.osl.tmf.sim638.api.ServiceApiRouteBuilderEvents; import org.etsi.osl.tmf.sim638.model.Service; Loading Loading @@ -88,6 +90,10 @@ public class ServiceRepoService { @Autowired ServiceRepository serviceRepo; @Autowired ResourceRepository resourceRepo; @Autowired ServiceActionQueueRepository serviceActionQueueRepo; Loading Loading @@ -1042,63 +1048,9 @@ public class ServiceRepoService { @Transactional public void resourceCreatedEvent(@Valid ResourceCreateNotification resNotif) { logger.debug("resourceCreatedEvent"); Resource res = resNotif.getEvent().getEvent().getResource(); logger.info("Will update services related to this resource with id = " + res.getId() ); var aservices = findServicesHavingThisSupportingResourceID( res.getId() ); for (Service as : aservices) { ServiceUpdate supd = new ServiceUpdate(); Service aService = findByUuid(as.getId()); //if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { if ( res.getResourceStatus() != null ) { switch (res.getResourceStatus()) { case STANDBY: { supd.setState( ServiceStateType.RESERVED); break; } case SUSPENDED: { supd.setState( ServiceStateType.INACTIVE); break; } case RESERVED: { supd.setState( ServiceStateType.RESERVED); break; } case UNKNOWN: { if (aService.getState().equals( ServiceStateType.ACTIVE )) { supd.setState( ServiceStateType.TERMINATED); } break; } case ALARM: { supd.setState( ServiceStateType.INACTIVE); break; } default: break; } } Note n = new Note(); n.setText("Supporting Resource "+ res.getId() + " State Changed with status: " + res.getResourceStatus()); 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 ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { } updateResourceFromKubernetesLabel( res ); updateServiceFromresourceChange(res); } Loading @@ -1107,54 +1059,41 @@ public class ServiceRepoService { logger.debug("resourceStateChangedEvent"); Resource res = resNotif.getEvent().getEvent().getResource(); logger.info("Will update services related to this resource with id = " + res.getId() ); updateServiceFromresourceChange(res); } private void updateServiceFromresourceChange(Resource res) { logger.info("Will update services related to this resource with id = " + res.getId() ); var aservices = findServicesHavingThisSupportingResourceID(res.getId()); for (Service as : aservices) { ServiceUpdate supd = new ServiceUpdate(); Service aService = findByUuid(as.getId()); //if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { if ( res.getResourceStatus() != null ) { switch (res.getResourceStatus()) { case STANDBY: { supd.setState( ServiceStateType.RESERVED); break; } case SUSPENDED: { supd.setState( ServiceStateType.INACTIVE); break; } case RESERVED: { supd.setState( ServiceStateType.RESERVED); break; } case UNKNOWN: { if (aService.getState().equals( ServiceStateType.ACTIVE )) { supd.setState( ServiceStateType.TERMINATED); } break; } case ALARM: { supd.setState( ServiceStateType.INACTIVE); break; } default: break; List<Resource> rlist = new ArrayList<Resource>(); for (ResourceRef rref : aService.getSupportingResource()) { Optional<Resource> result = resourceRepo.findByUuid(rref.getId()); if (result.isPresent()) { rlist.add( result.get() ); } } rlist.add(res); //add also this one ServiceStateType nextState = aService.findNextStateBasedOnSupportingResources(rlist); ServiceUpdate supd = new ServiceUpdate(); supd.setState(nextState); Note n = new Note(); n.setText("Supporting Resource "+ res.getId() + " State Changed with status: " + res.getResourceStatus()); n.setText("Supporting Resource " + res.getId() + " State Changed with status: " + res.getResourceStatus() + ".Next state is " + nextState); 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 ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { } Loading Loading
src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java +49 −110 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import java.io.UnsupportedEncodingException; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; Loading @@ -46,6 +47,7 @@ import org.etsi.osl.tmf.ri639.model.Resource; import org.etsi.osl.tmf.ri639.model.ResourceAttributeValueChangeNotification; import org.etsi.osl.tmf.ri639.model.ResourceCreateNotification; import org.etsi.osl.tmf.ri639.model.ResourceStateChangeNotification; import org.etsi.osl.tmf.ri639.repo.ResourceRepository; import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; import org.etsi.osl.tmf.sim638.api.ServiceApiRouteBuilderEvents; import org.etsi.osl.tmf.sim638.model.Service; Loading Loading @@ -88,6 +90,10 @@ public class ServiceRepoService { @Autowired ServiceRepository serviceRepo; @Autowired ResourceRepository resourceRepo; @Autowired ServiceActionQueueRepository serviceActionQueueRepo; Loading Loading @@ -1042,63 +1048,9 @@ public class ServiceRepoService { @Transactional public void resourceCreatedEvent(@Valid ResourceCreateNotification resNotif) { logger.debug("resourceCreatedEvent"); Resource res = resNotif.getEvent().getEvent().getResource(); logger.info("Will update services related to this resource with id = " + res.getId() ); var aservices = findServicesHavingThisSupportingResourceID( res.getId() ); for (Service as : aservices) { ServiceUpdate supd = new ServiceUpdate(); Service aService = findByUuid(as.getId()); //if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { if ( res.getResourceStatus() != null ) { switch (res.getResourceStatus()) { case STANDBY: { supd.setState( ServiceStateType.RESERVED); break; } case SUSPENDED: { supd.setState( ServiceStateType.INACTIVE); break; } case RESERVED: { supd.setState( ServiceStateType.RESERVED); break; } case UNKNOWN: { if (aService.getState().equals( ServiceStateType.ACTIVE )) { supd.setState( ServiceStateType.TERMINATED); } break; } case ALARM: { supd.setState( ServiceStateType.INACTIVE); break; } default: break; } } Note n = new Note(); n.setText("Supporting Resource "+ res.getId() + " State Changed with status: " + res.getResourceStatus()); 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 ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { } updateResourceFromKubernetesLabel( res ); updateServiceFromresourceChange(res); } Loading @@ -1107,54 +1059,41 @@ public class ServiceRepoService { logger.debug("resourceStateChangedEvent"); Resource res = resNotif.getEvent().getEvent().getResource(); logger.info("Will update services related to this resource with id = " + res.getId() ); updateServiceFromresourceChange(res); } private void updateServiceFromresourceChange(Resource res) { logger.info("Will update services related to this resource with id = " + res.getId() ); var aservices = findServicesHavingThisSupportingResourceID(res.getId()); for (Service as : aservices) { ServiceUpdate supd = new ServiceUpdate(); Service aService = findByUuid(as.getId()); //if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { if ( res.getResourceStatus() != null ) { switch (res.getResourceStatus()) { case STANDBY: { supd.setState( ServiceStateType.RESERVED); break; } case SUSPENDED: { supd.setState( ServiceStateType.INACTIVE); break; } case RESERVED: { supd.setState( ServiceStateType.RESERVED); break; } case UNKNOWN: { if (aService.getState().equals( ServiceStateType.ACTIVE )) { supd.setState( ServiceStateType.TERMINATED); } break; } case ALARM: { supd.setState( ServiceStateType.INACTIVE); break; } default: break; List<Resource> rlist = new ArrayList<Resource>(); for (ResourceRef rref : aService.getSupportingResource()) { Optional<Resource> result = resourceRepo.findByUuid(rref.getId()); if (result.isPresent()) { rlist.add( result.get() ); } } rlist.add(res); //add also this one ServiceStateType nextState = aService.findNextStateBasedOnSupportingResources(rlist); ServiceUpdate supd = new ServiceUpdate(); supd.setState(nextState); Note n = new Note(); n.setText("Supporting Resource "+ res.getId() + " State Changed with status: " + res.getResourceStatus()); n.setText("Supporting Resource " + res.getId() + " State Changed with status: " + res.getResourceStatus() + ".Next state is " + nextState); 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 ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { } Loading