X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=servicehandler%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fservicehandler%2Fimpl%2FServicehandlerImpl.java;h=d7792646eafc6a70d8627e1d75387db559a9ef73;hb=b5ee86a522ce3cf5c6216f10647edb08b31c72e9;hp=15c90048cfbed7a22a0e01959765baeb63c70a4d;hpb=3a5c4806c7417ac3955f284c8f620f2c8946ce40;p=transportpce.git diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java index 15c90048c..d7792646e 100644 --- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java +++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java @@ -30,7 +30,7 @@ import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOper import org.opendaylight.transportpce.servicehandler.validation.ServiceCreateValidation; import org.opendaylight.transportpce.servicehandler.validation.checks.ComplianceCheckResult; import org.opendaylight.transportpce.servicehandler.validation.checks.ServicehandlerComplianceCheck; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutput; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.PathComputationRequestOutput; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.RpcActions; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ServiceNotificationTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommon; @@ -80,10 +80,10 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempSer import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.delete.input.ServiceDeleteReqInfo.TailRetention; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.delete.input.ServiceDeleteReqInfoBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.Services; -import org.opendaylight.yang.gen.v1.nbi.notifications.rev201130.PublishNotificationService; -import org.opendaylight.yang.gen.v1.nbi.notifications.rev201130.PublishNotificationServiceBuilder; -import org.opendaylight.yang.gen.v1.nbi.notifications.rev201130.notification.service.ServiceAEndBuilder; -import org.opendaylight.yang.gen.v1.nbi.notifications.rev201130.notification.service.ServiceZEndBuilder; +import org.opendaylight.yang.gen.v1.nbi.notifications.rev210813.PublishNotificationProcessService; +import org.opendaylight.yang.gen.v1.nbi.notifications.rev210813.PublishNotificationProcessServiceBuilder; +import org.opendaylight.yang.gen.v1.nbi.notifications.rev210813.notification.process.service.ServiceAEndBuilder; +import org.opendaylight.yang.gen.v1.nbi.notifications.rev210813.notification.process.service.ServiceZEndBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; import org.opendaylight.yangtools.yang.common.RpcResult; import org.slf4j.Logger; @@ -95,11 +95,12 @@ import org.slf4j.LoggerFactory; */ public class ServicehandlerImpl implements OrgOpenroadmServiceService { private static final Logger LOG = LoggerFactory.getLogger(ServicehandlerImpl.class); + private static final String PUBLISHER = "ServiceHandler"; private static final String TEMP_SERVICE_CREATE_MSG = "tempServiceCreate: {}"; private static final String TEMP_SERVICE_DELETE_MSG = "tempServiceDelete: {}"; private static final String SERVICE_RESTORATION_MSG = "serviceRestoration: {}"; private static final String SERVICE_RECONFIGURE_MSG = "serviceReconfigure: {}"; - private static final String SERVICE_FEASABILITY_CHECK_MSG = "serviceFeasabilityCheck: {}"; + private static final String SERVICE_FEASIBILITY_CHECK_MSG = "serviceFeasibilityCheck: {}"; private static final String SERVICE_DELETE_MSG = "serviceDelete: {}"; private static final String SERVICE_CREATE_MSG = "serviceCreate: {}"; @@ -111,15 +112,13 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { private RendererListenerImpl rendererListenerImpl; private NetworkModelListenerImpl networkModelListenerImpl; private NotificationPublishService notificationPublishService; - private final String topic; //TODO: remove private request fields as they are in global scope public ServicehandlerImpl(DataBroker databroker, PathComputationService pathComputationService, RendererServiceOperations rendererServiceOperations, NotificationPublishService notificationPublishService, PceListenerImpl pceListenerImpl, RendererListenerImpl rendererListenerImpl, - NetworkModelListenerImpl networkModelListenerImpl, ServiceDataStoreOperations serviceDataStoreOperations, - String topic) { + NetworkModelListenerImpl networkModelListenerImpl, ServiceDataStoreOperations serviceDataStoreOperations) { this.db = databroker; this.serviceDataStoreOperations = serviceDataStoreOperations; this.pceServiceWrapper = new PCEServiceWrapper(pathComputationService, notificationPublishService); @@ -128,7 +127,6 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { this.rendererListenerImpl = rendererListenerImpl; this.networkModelListenerImpl = networkModelListenerImpl; this.notificationPublishService = notificationPublishService; - this.topic = topic; } @@ -178,17 +176,6 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { input, ResponseCodes.FINAL_ACK_YES, validationResult.getResultMessage(), ResponseCodes.RESPONSE_FAILED); } - PublishNotificationService nbiNotification = new PublishNotificationServiceBuilder() - .setServiceName(input.getServiceName()) - .setServiceAEnd(new ServiceAEndBuilder(input.getServiceAEnd()).build()) - .setServiceZEnd(new ServiceZEndBuilder(input.getServiceZEnd()).build()) - .setCommonId(input.getCommonId()).setConnectionType(input.getConnectionType()) - .setResponseFailed("") - .setMessage("ServiceCreate request received ...") - .setOperationalState(State.OutOfService) - .setTopic(topic) - .build(); - sendNbiNotification(nbiNotification); this.pceListenerImpl.setInput(new ServiceInput(input)); this.pceListenerImpl.setServiceReconfigure(false); this.pceListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations); @@ -199,12 +186,17 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { PathComputationRequestOutput output = this.pceServiceWrapper.performPCE(input, true); if (output == null) { LOG.warn(SERVICE_CREATE_MSG, LogMessages.ABORT_PCE_FAILED); - nbiNotification = new PublishNotificationServiceBuilder(nbiNotification) + sendNbiNotification(new PublishNotificationProcessServiceBuilder() + .setServiceName(input.getServiceName()) + .setServiceAEnd(new ServiceAEndBuilder(input.getServiceAEnd()).build()) + .setServiceZEnd(new ServiceZEndBuilder(input.getServiceZEnd()).build()) + .setCommonId(input.getCommonId()) + .setConnectionType(input.getConnectionType()) .setResponseFailed(LogMessages.ABORT_PCE_FAILED) .setMessage("ServiceCreate request failed ...") .setOperationalState(State.Degraded) - .build(); - sendNbiNotification(nbiNotification); + .setPublisherName(PUBLISHER) + .build()); return ModelMappingUtils.createCreateServiceReply(input, ResponseCodes.FINAL_ACK_YES, LogMessages.PCE_FAILED, ResponseCodes.RESPONSE_FAILED); } @@ -238,24 +230,13 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { //Check presence of service to be deleted Optional serviceOpt = this.serviceDataStoreOperations.getService(serviceName); Services service; - if (!serviceOpt.isPresent()) { + if (serviceOpt.isEmpty()) { LOG.warn(SERVICE_DELETE_MSG, LogMessages.serviceNotInDS(serviceName)); return ModelMappingUtils.createDeleteServiceReply( input, ResponseCodes.FINAL_ACK_YES, LogMessages.serviceNotInDS(serviceName), ResponseCodes.RESPONSE_FAILED); } service = serviceOpt.get(); - PublishNotificationService nbiNotification = new PublishNotificationServiceBuilder() - .setServiceName(service.getServiceName()) - .setServiceAEnd(new ServiceAEndBuilder(service.getServiceAEnd()).build()) - .setServiceZEnd(new ServiceZEndBuilder(service.getServiceZEnd()).build()) - .setCommonId(service.getCommonId()).setConnectionType(service.getConnectionType()) - .setMessage("ServiceDelete request received ...") - .setOperationalState(State.OutOfService) - .setResponseFailed("") - .setTopic(topic) - .build(); - sendNbiNotification(nbiNotification); LOG.debug("serviceDelete: Service '{}' found in datastore", serviceName); this.pceListenerImpl.setInput(new ServiceInput(input)); this.pceListenerImpl.setServiceReconfigure(false); @@ -263,21 +244,25 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { this.rendererListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations); this.rendererListenerImpl.setServiceInput(new ServiceInput(input)); this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations); - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125 - .ServiceDeleteInput serviceDeleteInput = - ModelMappingUtils.createServiceDeleteInput(new ServiceInput(input)); - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceDeleteOutput output = + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteInput + serviceDeleteInput = ModelMappingUtils.createServiceDeleteInput(new ServiceInput(input)); + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteOutput output = this.rendererServiceWrapper.performRenderer( serviceDeleteInput, ServiceNotificationTypes.ServiceDeleteResult, service); if (output == null) { LOG.error(SERVICE_DELETE_MSG, LogMessages.RENDERER_DELETE_FAILED); - nbiNotification = new PublishNotificationServiceBuilder(nbiNotification) - .setMessage("ServiceCreate request failed ...") - .setOperationalState(State.OutOfService) - .setResponseFailed(LogMessages.ABORT_PCE_FAILED) - .build(); - sendNbiNotification(nbiNotification); + sendNbiNotification(new PublishNotificationProcessServiceBuilder() + .setServiceName(service.getServiceName()) + .setServiceAEnd(new ServiceAEndBuilder(service.getServiceAEnd()).build()) + .setServiceZEnd(new ServiceZEndBuilder(service.getServiceZEnd()).build()) + .setCommonId(service.getCommonId()) + .setConnectionType(service.getConnectionType()) + .setMessage("ServiceDelete request failed ...") + .setOperationalState(State.InService) + .setResponseFailed(LogMessages.RENDERER_DELETE_FAILED) + .setPublisherName(PUBLISHER) + .build()); return ModelMappingUtils.createDeleteServiceReply( input, ResponseCodes.FINAL_ACK_YES, LogMessages.RENDERER_DELETE_FAILED, ResponseCodes.RESPONSE_FAILED); @@ -299,7 +284,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { OperationResult validationResult = ServiceCreateValidation.validateServiceCreateRequest(serviceInput, RpcActions.ServiceFeasibilityCheck); if (! validationResult.isSuccess()) { - LOG.warn(SERVICE_FEASABILITY_CHECK_MSG, LogMessages.ABORT_VALID_FAILED); + LOG.warn(SERVICE_FEASIBILITY_CHECK_MSG, LogMessages.ABORT_VALID_FAILED); return ModelMappingUtils.createCreateServiceReply( input, ResponseCodes.FINAL_ACK_YES, validationResult.getResultMessage(), ResponseCodes.RESPONSE_FAILED); @@ -311,10 +296,10 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { this.rendererListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations); this.rendererListenerImpl.setServiceInput(new ServiceInput(input)); this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations); - LOG.debug(SERVICE_FEASABILITY_CHECK_MSG, LogMessages.PCE_CALLING); + LOG.debug(SERVICE_FEASIBILITY_CHECK_MSG, LogMessages.PCE_CALLING); PathComputationRequestOutput output = this.pceServiceWrapper.performPCE(input, true); if (output == null) { - LOG.warn(SERVICE_FEASABILITY_CHECK_MSG, LogMessages.ABORT_PCE_FAILED); + LOG.warn(SERVICE_FEASIBILITY_CHECK_MSG, LogMessages.ABORT_PCE_FAILED); return ModelMappingUtils.createCreateServiceReply(input, ResponseCodes.FINAL_ACK_YES, LogMessages.PCE_FAILED, ResponseCodes.RESPONSE_FAILED); } @@ -330,7 +315,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { String serviceName = input.getServiceName(); LOG.info("RPC serviceReconfigure received for {}", serviceName); Optional servicesObject = this.serviceDataStoreOperations.getService(serviceName); - if (!servicesObject.isPresent()) { + if (servicesObject.isEmpty()) { LOG.warn(SERVICE_RECONFIGURE_MSG, LogMessages.serviceNotInDS(serviceName)); return ModelMappingUtils.createCreateServiceReply( input, @@ -351,10 +336,10 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { this.rendererListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations); this.rendererListenerImpl.setServiceInput(new ServiceInput(input)); this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations); - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125 + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915 .ServiceDeleteInput serviceDeleteInput = ModelMappingUtils.createServiceDeleteInput(new ServiceInput(input)); - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125 + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915 .ServiceDeleteOutput output = this.rendererServiceWrapper.performRenderer(serviceDeleteInput, ServiceNotificationTypes.ServiceDeleteResult, null); if (output == null) { @@ -418,13 +403,12 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { if (softConstraints == null) { LOG.warn("service '{}' SoftConstraints is not set !", serviceName); serviceInput.setSoftConstraints(DowngradeConstraints.convertToSoftConstraints(hardConstraints)); - serviceInput.setHardConstraints(DowngradeConstraints.downgradeHardConstraints(hardConstraints)); } else { LOG.info("converting hard constraints to soft constraints ..."); serviceInput.setSoftConstraints( DowngradeConstraints.updateSoftConstraints(hardConstraints, softConstraints)); - serviceInput.setHardConstraints(DowngradeConstraints.downgradeHardConstraints(hardConstraints)); } + serviceInput.setHardConstraints(DowngradeConstraints.downgradeHardConstraints(hardConstraints)); } this.pceListenerImpl.setInput(serviceInput); this.pceListenerImpl.setServiceReconfigure(true); @@ -432,10 +416,10 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { this.rendererListenerImpl.setServiceInput(serviceInput); this.rendererListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations); this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations); - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125 + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915 .ServiceDeleteInput serviceDeleteInput = ModelMappingUtils.createServiceDeleteInput( new ServiceInput(deleteInputBldr.build())); - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125 + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915 .ServiceDeleteOutput output = this.rendererServiceWrapper.performRenderer(serviceDeleteInput, ServiceNotificationTypes.ServiceDeleteResult, null); if (output == null) { @@ -469,7 +453,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { String serviceName = input.getServiceName(); LOG.info("RPC serviceReroute received for {}", serviceName); Optional servicesObject = this.serviceDataStoreOperations.getService(serviceName); - if (!servicesObject.isPresent()) { + if (servicesObject.isEmpty()) { LOG.warn("serviceReroute: {}", LogMessages.serviceNotInDS(serviceName)); return ModelMappingUtils.createRerouteServiceReply( input, ResponseCodes.FINAL_ACK_NO, @@ -499,10 +483,10 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { this.rendererListenerImpl.setServiceInput(serviceInput); this.rendererListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations); this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations); - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125 + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915 .ServiceDeleteInput serviceDeleteInput = ModelMappingUtils.createServiceDeleteInput( new ServiceInput(deleteInputBldr.build())); - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125 + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915 .ServiceDeleteOutput output = this.rendererServiceWrapper.performRenderer(serviceDeleteInput, ServiceNotificationTypes.ServiceDeleteResult, null); if (output == null) { @@ -544,7 +528,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { /* * Upon receipt of service-deleteService RPC, service header and sdnc-request - * header compliancy are verified. + * header compliance are verified. */ LOG.debug("checking Service Compliance ..."); ComplianceCheckResult serviceHandlerCheckResult = ServicehandlerComplianceCheck.check( @@ -562,7 +546,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { Optional service = this.serviceDataStoreOperations.getTempService(commonId); - if (!service.isPresent()) { + if (service.isEmpty()) { LOG.error(TEMP_SERVICE_DELETE_MSG, LogMessages.serviceNotInDS(commonId)); return ModelMappingUtils.createDeleteServiceReply( input, ResponseCodes.FINAL_ACK_YES, @@ -577,7 +561,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { this.rendererListenerImpl.setServiceInput(new ServiceInput(input)); this.rendererListenerImpl.setTempService(true); this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations); - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceDeleteOutput output = + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteOutput output = this.rendererServiceWrapper.performRenderer(input, ServiceNotificationTypes.ServiceDeleteResult); if (output == null) { LOG.error(TEMP_SERVICE_DELETE_MSG, LogMessages.RENDERER_DELETE_FAILED); @@ -672,7 +656,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { * Send notification to NBI notification in order to publish message. * @param service PublishNotificationService */ - private void sendNbiNotification(PublishNotificationService service) { + private void sendNbiNotification(PublishNotificationProcessService service) { try { notificationPublishService.putNotification(service); } catch (InterruptedException e) {