X-Git-Url: https://gerrit.onap.org/r/gitweb?p=sdnc%2Fnorthbound.git;a=blobdiff_plain;f=generic-resource-api%2Fprovider%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fsdnc%2Fnorthbound%2FGenericResourceApiProvider.java;h=db93b2dea0ec1205054241bcd7908106428d2df5;hp=d29e674dcde8dcc5d0dc19917656b66376425ed6;hb=7f77043ea4d205bd4a146e1efe7c85cb542f53f2;hpb=78a6948602fec40c00644567433ae2d73250c67c diff --git a/generic-resource-api/provider/src/main/java/org/onap/sdnc/northbound/GenericResourceApiProvider.java b/generic-resource-api/provider/src/main/java/org/onap/sdnc/northbound/GenericResourceApiProvider.java index d29e674d..db93b2de 100644 --- a/generic-resource-api/provider/src/main/java/org/onap/sdnc/northbound/GenericResourceApiProvider.java +++ b/generic-resource-api/provider/src/main/java/org/onap/sdnc/northbound/GenericResourceApiProvider.java @@ -3,6 +3,8 @@ package org.onap.sdnc.northbound; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; + import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -37,6 +39,7 @@ import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.re import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GENERICRESOURCEAPIService; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationNotificationInput; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationNotificationInputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationNotificationOutput; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationInput; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationInputBuilder; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationOutput; @@ -93,6 +96,10 @@ import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.re import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationInputBuilder; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationOutput; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationOutputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PnfTopologyOperationInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PnfTopologyOperationInputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PnfTopologyOperationOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PnfTopologyOperationOutputBuilder; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.brg.response.information.BrgResponseInformationBuilder; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.connection.attachment.response.information.ConnectionAttachmentResponseInformationBuilder; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.contrail.route.response.information.ContrailRouteResponseInformationBuilder; @@ -120,6 +127,7 @@ import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.re import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.tunnelxconn.response.information.TunnelxconnResponseInformationBuilder; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vf.module.response.information.VfModuleResponseInformationBuilder; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vnf.response.information.VnfResponseInformationBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.pnf.response.information.PnfResponseInformationBuilder; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.RpcResult; @@ -128,14 +136,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Defines a base implementation for your provider. This class extends from a - * helper class which provides storage for the most commonly used components of - * the MD-SAL. Additionally the base class provides some basic logging and + * Defines a base implementation for your provider. This class extends from a helper class which provides storage for + * the most commonly used components of the MD-SAL. Additionally the base class provides some basic logging and * initialization / clean up methods. * - * To use this, copy and paste (overwrite) the following method into the - * TestApplicationProviderModule class which is auto generated under - * src/main/java in this project (created only once during first compilation): + * To use this, copy and paste (overwrite) the following method into the TestApplicationProviderModule class which is + * auto generated under src/main/java in this project (created only once during first compilation): * *
* @@ -181,7 +187,9 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private static final String SERVICE_OBJECT_PATH_PARAM = "service-object-path"; private static final String NETWORK_OBJECT_PATH_PARAM = "network-object-path"; private static final String VNF_OBJECT_PATH_PARAM = "vnf-object-path"; + private static final String PNF_OBJECT_PATH_PARAM = "pnf-object-path"; private static final String VF_MODULE_OBJECT_PATH_PARAM = "vf-module-object-path"; + private static final String VF_MODULE_ID_PARAM = "vf-module-id"; private static final String UPDATING_MDSAL_ERROR_MESSAGE = "Caught Exception updating MD-SAL for {} [{}] \n"; private static final String UPDATING_MDSAL_ERROR_MESSAGE_2 = "Caught Exception updating MD-SAL for {} [{},{}] \n"; private static final String RETURNED_FAILED_MESSAGE = "Returned FAILED for {} [{}] {}"; @@ -209,7 +217,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC protected BindingAwareBroker.RpcRegistrationrpcRegistration; public GenericResourceApiProvider(DataBroker dataBroker, NotificationPublishService notificationPublishService, - RpcProviderRegistry rpcProviderRegistry, GenericResourceApiSvcLogicServiceClient client) { + RpcProviderRegistry rpcProviderRegistry, GenericResourceApiSvcLogicServiceClient client) { log.info("Creating provider for {}", APP_NAME); executor = Executors.newFixedThreadPool(1); setDataBroker(dataBroker); @@ -289,15 +297,15 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC // Create the service-instance container t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Services.class), - new ServicesBuilder().build()); + new ServicesBuilder().build()); t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Services.class), - new ServicesBuilder().build()); + new ServicesBuilder().build()); // Create the PreloadInformation container t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadInformation.class), - new PreloadInformationBuilder().build()); + new PreloadInformationBuilder().build()); t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadInformation.class), - new PreloadInformationBuilder().build()); + new PreloadInformationBuilder().build()); try { CheckedFuture checkedFuture = t.submit(); @@ -310,7 +318,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, String errorCode, String errorMessage, - String ackFinal) { + String ackFinal) { serviceStatusBuilder.setResponseCode(errorCode); serviceStatusBuilder.setResponseMessage(errorMessage); serviceStatusBuilder.setFinalIndicator(ackFinal); @@ -326,27 +334,27 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, SdncRequestHeader requestHeader) { if (requestHeader != null && requestHeader.getSvcAction() != null) { switch (requestHeader.getSvcAction()) { - case Assign: - serviceStatusBuilder.setRpcAction(RpcAction.Assign); - break; - case Unassign: - serviceStatusBuilder.setRpcAction(RpcAction.Unassign); - break; - case Activate: - serviceStatusBuilder.setRpcAction(RpcAction.Activate); - break; - case Deactivate: - serviceStatusBuilder.setRpcAction(RpcAction.Deactivate); - break; - case Delete: - serviceStatusBuilder.setRpcAction(RpcAction.Delete); - break; - case Create: - serviceStatusBuilder.setRpcAction(RpcAction.Create); - break; - default: - log.error("Unknown SvcAction: {}", requestHeader.getSvcAction()); - break; + case Assign: + serviceStatusBuilder.setRpcAction(RpcAction.Assign); + break; + case Unassign: + serviceStatusBuilder.setRpcAction(RpcAction.Unassign); + break; + case Activate: + serviceStatusBuilder.setRpcAction(RpcAction.Activate); + break; + case Deactivate: + serviceStatusBuilder.setRpcAction(RpcAction.Deactivate); + break; + case Delete: + serviceStatusBuilder.setRpcAction(RpcAction.Delete); + break; + case Create: + serviceStatusBuilder.setRpcAction(RpcAction.Create); + break; + default: + log.error("Unknown SvcAction: {}", requestHeader.getSvcAction()); + break; } } } @@ -359,13 +367,12 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private void getServiceData(String siid, ServiceDataBuilder serviceDataBuilder, LogicalDatastoreType type) { // See if any data exists yet for this siid, if so grab it. InstanceIdentifier serviceInstanceIdentifier = InstanceIdentifier.builder(Services.class) - .child(Service.class, new ServiceKey(siid)).build(); + .child(Service.class, new ServiceKey(siid)).build(); - ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction(); Optional data = Optional.absent(); - try { + try (final ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) { data = readTx.read(type, serviceInstanceIdentifier).get(); - } catch (InterruptedException | ExecutionException e) { + } catch (final InterruptedException | ExecutionException e) { log.error("Caught Exception reading MD-SAL ({}) data for [{}] ", type, siid, e); } @@ -400,13 +407,13 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC // Each entry will be identifiable by a unique key, we have to create that // identifier InstanceIdentifier path = InstanceIdentifier.builder(Services.class) - .child(Service.class, entry.getKey()).build(); + .child(Service.class, entry.key()).build(); trySaveEntry(entry, merge, storeType, path); } private void trySaveEntry(T entry, boolean merge, LogicalDatastoreType storeType, - InstanceIdentifier path) { + InstanceIdentifier path) { int tries = 2; while (true) { try { @@ -426,7 +433,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void save(T entry, boolean merge, LogicalDatastoreType storeType, - InstanceIdentifier path) throws TransactionCommitFailedException { + InstanceIdentifier path) throws TransactionCommitFailedException { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); if (merge) { tx.merge(storeType, path, entry); @@ -441,7 +448,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC // Each entry will be identifiable by a unique key, we have to create // that identifier InstanceIdentifier path = InstanceIdentifier.builder(Services.class) - .child(Service.class, entry.getKey()).build(); + .child(Service.class, entry.key()).build(); tryDeleteEntry(storeType, path); } @@ -466,7 +473,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void delete(LogicalDatastoreType storeType, InstanceIdentifier path) - throws TransactionCommitFailedException { + throws TransactionCommitFailedException { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); tx.delete(storeType, path); tx.submit().checkedGet(); @@ -479,16 +486,16 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void getPreloadData(String preloadName, String preloadType, PreloadDataBuilder preloadDataBuilder, - LogicalDatastoreType type) { + LogicalDatastoreType type) { // See if any data exists yet for this name/type, if so grab it. InstanceIdentifier preloadInstanceIdentifier = InstanceIdentifier - . builder(PreloadInformation.class) - .child(PreloadList.class, new PreloadListKey(preloadName, preloadType)).build(); - ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction(); + . builder(PreloadInformation.class) + .child(PreloadList.class, new PreloadListKey(preloadName, preloadType)).build(); + Optional data = null; - try { + try (final ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) { data = (Optional ) readTx.read(type, preloadInstanceIdentifier).get(); - } catch (InterruptedException | ExecutionException e) { + } catch (final InterruptedException | ExecutionException e) { log.error("Caught Exception reading MD-SAL ({}) for [{},{}] ", type, preloadName, preloadType, e); } @@ -496,11 +503,11 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC PreloadData preloadData = data.get().getPreloadData(); if (preloadData != null) { log.info("Read MD-SAL ({}) data for [{},{}] PreloadData: {}", type, preloadName, preloadType, - preloadData); + preloadData); preloadDataBuilder - .setPreloadVfModuleTopologyInformation(preloadData.getPreloadVfModuleTopologyInformation()); + .setPreloadVfModuleTopologyInformation(preloadData.getPreloadVfModuleTopologyInformation()); preloadDataBuilder - .setPreloadNetworkTopologyInformation(preloadData.getPreloadNetworkTopologyInformation()); + .setPreloadNetworkTopologyInformation(preloadData.getPreloadNetworkTopologyInformation()); preloadDataBuilder.setPreloadOperStatus(preloadData.getPreloadOperStatus()); } else { log.info("No preload-data found in MD-SAL ({}) for [{},{}] ", type, preloadName, preloadType); @@ -511,12 +518,12 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void savePreloadList(final PreloadList entry, boolean merge, LogicalDatastoreType storeType) - throws IllegalStateException { + throws IllegalStateException { // Each entry will be identifiable by a unique key, we have to create that // identifier InstanceIdentifier.InstanceIdentifierBuilder preloadListBuilder = InstanceIdentifier - . builder(PreloadInformation.class).child(PreloadList.class, entry.getKey()); + . builder(PreloadInformation.class).child(PreloadList.class, entry.key()); InstanceIdentifier path = preloadListBuilder.build(); int tries = 2; while (true) { @@ -549,7 +556,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC // Each entry will be identifiable by a unique key, we have to create // that identifier InstanceIdentifier path = InstanceIdentifier.builder(PreloadInformation.class) - .child(PreloadList.class, entry.getKey()).build(); + .child(PreloadList.class, entry.key()).build(); tryDeletePreloadListEntry(storeType, path); } @@ -574,7 +581,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void deletePreloadList(LogicalDatastoreType storeType, InstanceIdentifier path) - throws TransactionCommitFailedException { + throws TransactionCommitFailedException { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); tx.delete(storeType, path); tx.submit().checkedGet(); @@ -582,8 +589,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > serviceTopologyOperation( - ServiceTopologyOperationInput input) { + public ListenableFuture > serviceTopologyOperation( + ServiceTopologyOperationInput input) { final String svcOperation = "service-topology-operation"; ServiceData serviceData; @@ -601,7 +608,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -667,7 +674,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -699,7 +706,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -712,13 +719,13 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private void trySetResponseMessage(ServiceTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { responseBuilder.setResponseMessage(responseObject.getMessage()); } @@ -726,12 +733,12 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidServiceId(ServiceTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } private void trySetSvcRequestId(ServiceTopologyOperationInput input, - ServiceTopologyOperationOutputBuilder responseBuilder) { + ServiceTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } @@ -747,7 +754,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private Properties tryGetProperties(String svcOperation, Properties parms, ServiceDataBuilder serviceDataBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { try { if (svcLogicClient.hasGraph(APP_NAME, svcOperation, null, "sync")) { try { @@ -772,15 +779,235 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean failed(ResponseObject error) { return !error.getStatusCode().isEmpty() - && !("0".equals(error.getStatusCode()) || "200".equals(error.getStatusCode())); + && !("0".equals(error.getStatusCode()) || "200".equals(error.getStatusCode())); } private boolean isValidRequest(ServiceTopologyOperationInput input) { return input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null; } + @Override - public Future > vnfTopologyOperation(VnfTopologyOperationInput input) { + public ListenableFuture > pnfTopologyOperation( + PnfTopologyOperationInput input) { + + final String svcOperation = "pnf-topology-operation"; + ServiceData serviceData; + ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder(); + Properties properties = new Properties(); + + log.info(CALLED_STR, svcOperation); + // create a new response object + PnfTopologyOperationOutputBuilder responseBuilder = new PnfTopologyOperationOutputBuilder(); + + if (hasInvalidServiceId(input)) { + log.debug(NULL_OR_EMPTY_ERROR_MESSAGE, svcOperation); + responseBuilder.setResponseCode("404"); + responseBuilder.setResponseMessage(NULL_OR_EMPTY_ERROR_PARAM); + responseBuilder.setAckFinalIndicator("Y"); + RpcResult rpcResult = RpcResultBuilder. status(true) + .withResult(responseBuilder.build()).build(); + // return error + return Futures.immediateFuture(rpcResult); + } + + // Grab the service instance ID from the input buffer + String siid = input.getServiceInformation().getServiceInstanceId(); + + trySetSvcRequestId(input, responseBuilder); + + /* Comment out mandatory check for pnf id for scenario wherein for assign/create request pnf-id is generated by + SDNC itself. + if (hasInvalidPnfId(input)) { + log.debug("exiting {} because of null or empty pnf-id", svcOperation); + responseBuilder.setResponseCode("404"); + responseBuilder.setResponseMessage("invalid input, null or empty pnf-id"); + responseBuilder.setAckFinalIndicator("Y"); + + RpcResult rpcResult = RpcResultBuilder. status(true) + .withResult(responseBuilder.build()).build(); + + return Futures.immediateFuture(rpcResult); + } + */ + + String pnfId = input.getPnfDetails().getPnfId(); + ServiceDataBuilder serviceDataBuilder = new ServiceDataBuilder(); + getServiceData(siid, serviceDataBuilder); + + ServiceDataBuilder operDataBuilder = new ServiceDataBuilder(); + getServiceData(siid, operDataBuilder, LogicalDatastoreType.OPERATIONAL); + + // Set the serviceStatus based on input + setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader()); + setServiceStatus(serviceStatusBuilder, input.getRequestInformation()); + + // + // setup a service-data object builder + // ACTION pnf-topology-operation + // INPUT: + // USES sdnc-request-header; + // USES request-information; + // USES service-information; + // USES pnf-details + // OUTPUT: + // USES pnf-topology-response-body; + // USES pnf-details + // USES service-information + // + // uses oper-status; + + log.info(ADDING_INPUT_DATA_LOG, svcOperation, siid, input); + PnfTopologyOperationInputBuilder inputBuilder = new PnfTopologyOperationInputBuilder(input); + GenericResourceApiUtil.toProperties(properties, inputBuilder.build()); + + log.info(ADDING_OPERATIONAL_DATA_LOG, svcOperation, siid, operDataBuilder.build()); + GenericResourceApiUtil.toProperties(properties, OPERATIONAL_DATA_PARAM, operDataBuilder); + + // Call SLI sync method + + ResponseObject responseObject = new ResponseObject("200", ""); + String ackFinal = "Y"; + String serviceObjectPath = null; + String pnfObjectPath = null; + Properties respProps = tryGetProperties(svcOperation, properties, serviceDataBuilder, responseObject); + + if (respProps != null) { + responseObject.setMessage(respProps.getProperty(ERROR_MESSAGE_PARAM)); + responseObject.setStatusCode(respProps.getProperty(ERROR_CODE_PARAM)); + ackFinal = respProps.getProperty(ACK_FINAL_PARAM, "Y"); + if (pnfId == null) { + pnfId = respProps.getProperty("pnfId"); + } + serviceObjectPath = respProps.getProperty(SERVICE_OBJECT_PATH_PARAM); + pnfObjectPath = respProps.getProperty(PNF_OBJECT_PATH_PARAM); + } + + setServiceStatus(serviceStatusBuilder, responseObject.getStatusCode(), responseObject.getMessage(), ackFinal); + serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete); + serviceStatusBuilder.setRpcName(svcOperation); + + if (failed(responseObject)) { + responseBuilder.setResponseCode(responseObject.getStatusCode()); + responseBuilder.setResponseMessage(responseObject.getMessage()); + responseBuilder.setAckFinalIndicator(ackFinal); + + ServiceBuilder serviceBuilder = new ServiceBuilder(); + serviceBuilder.setServiceInstanceId(siid); + serviceBuilder.setServiceStatus(serviceStatusBuilder.build()); + try { + saveService(serviceBuilder.build(), true, LogicalDatastoreType.CONFIGURATION); + trySaveService(input, serviceBuilder); + } catch (Exception e) { + log.error(UPDATING_MDSAL_ERROR_MESSAGE, svcOperation, siid, e); + } + log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); + + RpcResult rpcResult = RpcResultBuilder. status(true) + .withResult(responseBuilder.build()).build(); + + // return error + return Futures.immediateFuture(rpcResult); + } + + // Got success from SLI + try { + serviceData = serviceDataBuilder.build(); + log.info(UPDATING_MDSAL_INFO_MESSAGE, svcOperation, siid, serviceData); + + // service object + ServiceBuilder serviceBuilder = new ServiceBuilder(); + serviceBuilder.setServiceData(serviceData); + serviceBuilder.setServiceInstanceId(siid); + serviceBuilder.setServiceStatus(serviceStatusBuilder.build()); + saveService(serviceBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); + + if (isValidRequest(input) && input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate)) { + // Only update operational tree on Assign + log.info(UPDATING_TREE_INFO_MESSAGE); + saveService(serviceBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); + } + + ServiceResponseInformationBuilder serviceResponseInformationBuilder = new ServiceResponseInformationBuilder(); + serviceResponseInformationBuilder.setInstanceId(siid); + serviceResponseInformationBuilder.setObjectPath(serviceObjectPath); + responseBuilder.setServiceResponseInformation(serviceResponseInformationBuilder.build()); + + PnfResponseInformationBuilder pnfResponseInformationBuilder = new PnfResponseInformationBuilder(); + pnfResponseInformationBuilder.setInstanceId(pnfId); + pnfResponseInformationBuilder.setObjectPath(pnfObjectPath); + responseBuilder.setPnfResponseInformation(pnfResponseInformationBuilder.build()); + + } catch (Exception e) { + log.error(UPDATING_MDSAL_ERROR_MESSAGE, svcOperation, siid, e); + responseBuilder.setResponseCode("500"); + responseBuilder.setResponseMessage(e.getMessage()); + responseBuilder.setAckFinalIndicator("Y"); + log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); + + RpcResult rpcResult = RpcResultBuilder. status(true) + .withResult(responseBuilder.build()).build(); + + return Futures.immediateFuture(rpcResult); + } + + // Update succeeded + responseBuilder.setResponseCode(responseObject.getStatusCode()); + responseBuilder.setAckFinalIndicator(ackFinal); + trySetResponseMessage(responseBuilder, responseObject); + log.info(UPDATED_MDSAL_INFO_MESSAGE, svcOperation, siid); + log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); + + RpcResult rpcResult = RpcResultBuilder. status(true) + .withResult(responseBuilder.build()).build(); + + // return success + return Futures.immediateFuture(rpcResult); + } + + private void trySetResponseMessage(PnfTopologyOperationOutputBuilder responseBuilder, + ResponseObject responseObject) { + if (responseObject.getMessage() != null) { + responseBuilder.setResponseMessage(responseObject.getMessage()); + } + } + + private void trySaveService(PnfTopologyOperationInput input, ServiceBuilder serviceBuilder) { + if (isValidRequest(input) && (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) + || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))) { + + // Only update operational tree on activate or delete + log.info(UPDATING_TREE_INFO_MESSAGE); + saveService(serviceBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); + } + } + + private boolean hasInvalidPnfId(PnfTopologyOperationInput input) { + return input.getPnfDetails() == null || input.getPnfDetails().getPnfId() == null + || input.getPnfDetails().getPnfId().length() == 0; + } + + private boolean hasInvalidServiceId(PnfTopologyOperationInput input) { + return input == null || input.getServiceInformation() == null + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; + } + + private void trySetSvcRequestId(PnfTopologyOperationInput input, + PnfTopologyOperationOutputBuilder responseBuilder) { + if (input.getSdncRequestHeader() != null) { + responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); + } + } + + private boolean isValidRequest(PnfTopologyOperationInput input) { + return input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null; + } + + + @Override + public ListenableFuture > vnfTopologyOperation( + VnfTopologyOperationInput input) { final String svcOperation = "vnf-topology-operation"; ServiceData serviceData; @@ -797,7 +1024,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setResponseMessage(NULL_OR_EMPTY_ERROR_PARAM); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder. status(true) - .withResult(responseBuilder.build()).build(); + .withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); } @@ -897,7 +1124,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder. status(true) - .withResult(responseBuilder.build()).build(); + .withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); @@ -939,7 +1166,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder. status(true) - .withResult(responseBuilder.build()).build(); + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -952,14 +1179,14 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder. status(true) - .withResult(responseBuilder.build()).build(); + .withResult(responseBuilder.build()).build(); // return success return Futures.immediateFuture(rpcResult); } private void trySetResponseMessage(VnfTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { responseBuilder.setResponseMessage(responseObject.getMessage()); } @@ -967,7 +1194,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private void trySaveService(VnfTopologyOperationInput input, ServiceBuilder serviceBuilder) { if (isValidRequest(input) && (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) - || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))) { + || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))) { // Only update operational tree on activate or delete log.info(UPDATING_TREE_INFO_MESSAGE); @@ -977,17 +1204,17 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidVnfId(VnfTopologyOperationInput input) { return input.getVnfInformation() == null || input.getVnfInformation().getVnfId() == null - || input.getVnfInformation().getVnfId().length() == 0; + || input.getVnfInformation().getVnfId().length() == 0; } private boolean hasInvalidServiceId(VnfTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } private void trySetSvcRequestId(VnfTopologyOperationInput input, - VnfTopologyOperationOutputBuilder responseBuilder) { + VnfTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } @@ -998,8 +1225,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > vfModuleTopologyOperation( - VfModuleTopologyOperationInput input) { + public ListenableFuture > vfModuleTopologyOperation( + VfModuleTopologyOperationInput input) { final String svcOperation = "vf-module-topology-operation"; ServiceData serviceData; @@ -1017,7 +1244,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); @@ -1029,11 +1256,11 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setResponseMessage("invalid input, null or empty vnf-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } - if (hasInvalidVfModuleId(input)) { + /*if (hasInvalidVfModuleId(input)) { log.debug("exiting {} because of null or empty vf-module-id", svcOperation); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, vf-module-id is null or empty"); @@ -1043,7 +1270,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); - } + }*/ // Grab the service instance ID from the input buffer String siid = input.getServiceInformation().getServiceInstanceId(); @@ -1099,6 +1326,20 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseObject.setStatusCode(respProps.getProperty(ERROR_CODE_PARAM)); responseObject.setMessage(respProps.getProperty(ERROR_MESSAGE_PARAM)); ackFinal = respProps.getProperty(ACK_FINAL_PARAM, "Y"); + if (vfModuleId == null) { + vfModuleId = respProps.getProperty(VF_MODULE_ID_PARAM); + if (vfModuleId == null) { + log.debug("exiting {} because vf-module-id not found in response", svcOperation); + responseBuilder.setResponseCode("403"); + responseBuilder.setResponseMessage("failed to generate vf-module-id"); + responseBuilder.setAckFinalIndicator("Y"); + + RpcResult rpcResult = RpcResultBuilder + . status(true).withResult(responseBuilder.build()).build(); + + return Futures.immediateFuture(rpcResult); + } + } serviceObjectPath = respProps.getProperty(SERVICE_OBJECT_PATH_PARAM); vnfObjectPath = respProps.getProperty(VNF_OBJECT_PATH_PARAM); vfModuleObjectPath = respProps.getProperty(VF_MODULE_OBJECT_PATH_PARAM); @@ -1124,7 +1365,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); @@ -1167,7 +1408,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1180,14 +1421,14 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); // return success return Futures.immediateFuture(rpcResult); } private void trySetResponseMessage(VfModuleTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { responseBuilder.setResponseMessage(responseObject.getMessage()); } @@ -1195,7 +1436,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private void trySaveService(VfModuleTopologyOperationInput input, ServiceBuilder serviceBuilder) { if (isValidRequest(input) && (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Unassign) - || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))) { + || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))) { // Only update operational tree on activate or delete log.info(UPDATING_TREE_INFO_MESSAGE); @@ -1204,7 +1445,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void trySetSvcRequestId(VfModuleTopologyOperationInput input, - VfModuleTopologyOperationOutputBuilder responseBuilder) { + VfModuleTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } @@ -1212,18 +1453,18 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidVfModuleId(VfModuleTopologyOperationInput input) { return input.getVfModuleInformation() == null || input.getVfModuleInformation().getVfModuleId() == null - || input.getVfModuleInformation().getVfModuleId().length() == 0; + || input.getVfModuleInformation().getVfModuleId().length() == 0; } private boolean hasInvalidVnfId(VfModuleTopologyOperationInput input) { return input.getVnfInformation() == null || input.getVnfInformation().getVnfId() == null - || input.getVnfInformation().getVnfId().length() == 0; + || input.getVnfInformation().getVnfId().length() == 0; } private boolean hasInvalidServiceId(VfModuleTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } private boolean isValidRequest(VfModuleTopologyOperationInput input) { @@ -1231,8 +1472,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > networkTopologyOperation( - NetworkTopologyOperationInput input) { + public ListenableFuture > networkTopologyOperation( + NetworkTopologyOperationInput input) { final String svcOperation = "network-topology-operation"; ServiceData serviceData; @@ -1292,7 +1533,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1330,7 +1571,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1343,20 +1584,20 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private void trySetResponseMessage(NetworkTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { responseBuilder.setResponseMessage(responseObject.getMessage()); } } private void trySetSvcRequestId(NetworkTopologyOperationInput input, - NetworkTopologyOperationOutputBuilder responseBuilder) { + NetworkTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } @@ -1364,7 +1605,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private void trySaveService(NetworkTopologyOperationInput input, ServiceBuilder serviceBuilder) { if (isValidRequest(input) && (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate) - || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Create))) { + || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Create))) { // Only update operational tree on Activate log.info(UPDATING_TREE_INFO_MESSAGE); saveService(serviceBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); @@ -1373,19 +1614,19 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidServiceId(NetworkTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } - private Future > buildRpcResultFuture( - NetworkTopologyOperationOutputBuilder responseBuilder, String responseMessage) { + private ListenableFuture > buildRpcResultFuture( + NetworkTopologyOperationOutputBuilder responseBuilder, String responseMessage) { responseBuilder.setResponseCode("404"); responseBuilder.setResponseMessage(responseMessage); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1395,8 +1636,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > contrailRouteTopologyOperation( - ContrailRouteTopologyOperationInput input) { + public ListenableFuture > contrailRouteTopologyOperation( + ContrailRouteTopologyOperationInput input) { final String svcOperation = "contrail-route-topology-operation"; ServiceData serviceData; @@ -1455,7 +1696,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1492,7 +1733,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1505,13 +1746,13 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private void trySetResponseMessage(ContrailRouteTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { responseBuilder.setResponseMessage(responseObject.getMessage()); } @@ -1519,7 +1760,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private void trySaveService(ContrailRouteTopologyOperationInput input, ServiceBuilder serviceBuilder) { if (isValidRequest(input) && (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Unassign) - || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))) { + || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))) { // Only update operational tree on activate or delete log.info(UPDATING_TREE_INFO_MESSAGE); saveService(serviceBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); @@ -1527,7 +1768,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void trySetSvcRequestId(ContrailRouteTopologyOperationInput input, - ContrailRouteTopologyOperationOutputBuilder responseBuilder) { + ContrailRouteTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } @@ -1535,18 +1776,18 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidServiceId(ContrailRouteTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } - private Future > buildRpcResultFuture( - ContrailRouteTopologyOperationOutputBuilder responseBuilder, String responseMessage) { + private ListenableFuture > buildRpcResultFuture( + ContrailRouteTopologyOperationOutputBuilder responseBuilder, String responseMessage) { responseBuilder.setResponseCode("404"); responseBuilder.setResponseMessage(responseMessage); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1556,8 +1797,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > securityZoneTopologyOperation( - SecurityZoneTopologyOperationInput input) { + public ListenableFuture > securityZoneTopologyOperation( + SecurityZoneTopologyOperationInput input) { final String svcOperation = "security-zone-topology-operation"; ServiceData serviceData; @@ -1636,7 +1877,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1674,7 +1915,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1687,13 +1928,13 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private void trySetResponseMessage(SecurityZoneTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { responseBuilder.setResponseMessage(responseObject.getMessage()); } @@ -1701,7 +1942,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private void trySaveService(SecurityZoneTopologyOperationInput input, ServiceBuilder serviceBuilder) { if (isValidRequest(input) && (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Unassign) - || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))) { + || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))) { // Only update operational tree on activate or delete log.info(UPDATING_TREE_INFO_MESSAGE); saveService(serviceBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); @@ -1709,7 +1950,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void trySetSvcRequestId(SecurityZoneTopologyOperationInput input, - SecurityZoneTopologyOperationOutputBuilder responseBuilder) { + SecurityZoneTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } @@ -1721,19 +1962,19 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidServiceId(SecurityZoneTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } - private Future > buildRpcResultFuture( - SecurityZoneTopologyOperationOutputBuilder responseBuilder, String responseMessage) { + private ListenableFuture > buildRpcResultFuture( + SecurityZoneTopologyOperationOutputBuilder responseBuilder, String responseMessage) { responseBuilder.setResponseCode("404"); responseBuilder.setResponseMessage(responseMessage); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1763,7 +2004,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } } - private Future > + private ListenableFuture > buildRpcResultFuture(ConnectionAttachmentTopologyOperationOutputBuilder responseBuilder, String responseMessage) { responseBuilder.setResponseCode("404"); @@ -1793,7 +2034,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > connectionAttachmentTopologyOperation(ConnectionAttachmentTopologyOperationInput input) { + public ListenableFuture > connectionAttachmentTopologyOperation( + ConnectionAttachmentTopologyOperationInput input) { final String svcOperation = "connection-attachment-topology-operation"; Properties parms = new Properties(); log.info(CALLED_STR, svcOperation); @@ -1832,7 +2074,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC return buildRpcResultFuture(responseBuilder, INVALID_INPUT_ERROR_MESSAGE); } - ConnectionAttachmentTopologyOperationInputBuilder inputBuilder = new ConnectionAttachmentTopologyOperationInputBuilder(input); + ConnectionAttachmentTopologyOperationInputBuilder inputBuilder = new ConnectionAttachmentTopologyOperationInputBuilder( + input); GenericResourceApiUtil.toProperties(parms, inputBuilder.build()); // Call SLI sync method @@ -1887,7 +2130,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC ConnectionAttachmentResponseInformationBuilder connectionAttachmentResponseInformationBuilder = new ConnectionAttachmentResponseInformationBuilder(); connectionAttachmentResponseInformationBuilder.setInstanceId(allottedResourceId); connectionAttachmentResponseInformationBuilder.setObjectPath(connectionAttachmentObjectPath); - responseBuilder.setConnectionAttachmentResponseInformation(connectionAttachmentResponseInformationBuilder.build()); + responseBuilder + .setConnectionAttachmentResponseInformation(connectionAttachmentResponseInformationBuilder.build()); ServiceResponseInformationBuilder serviceResponseInformationBuilder = new ServiceResponseInformationBuilder(); serviceResponseInformationBuilder.setInstanceId(siid); @@ -1925,8 +2169,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > tunnelxconnTopologyOperation( - TunnelxconnTopologyOperationInput input) { + public ListenableFuture > tunnelxconnTopologyOperation( + TunnelxconnTopologyOperationInput input) { final String svcOperation = "tunnelxconn-topology-operation"; Properties parms = new Properties(); @@ -1941,7 +2185,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -1976,7 +2220,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2001,7 +2245,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2014,13 +2258,13 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private void trySetResponseMessage(TunnelxconnTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { responseBuilder.setResponseMessage(responseObject.getMessage()); } @@ -2028,8 +2272,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidServiceId(TunnelxconnTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } private Properties tryGetProperties(String svcOperation, Properties parms, ResponseObject responseObject) { @@ -2056,7 +2300,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > brgTopologyOperation(BrgTopologyOperationInput input) { + public ListenableFuture > brgTopologyOperation( + BrgTopologyOperationInput input) { final String svcOperation = "brg-topology-operation"; Properties parms = new Properties(); @@ -2072,7 +2317,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder. status(true) - .withResult(responseBuilder.build()).build(); + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2108,7 +2353,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder. status(true) - .withResult(responseBuilder.build()).build(); + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2134,7 +2379,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder. status(true) - .withResult(responseBuilder.build()).build(); + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2147,13 +2392,13 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder. status(true) - .withResult(responseBuilder.build()).build(); + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private void trySetResponseMessage(BrgTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { responseBuilder.setResponseMessage(responseObject.getMessage()); } @@ -2161,8 +2406,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidServiceId(BrgTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } private String resolveAckFinal(ResponseObject responseObject, Properties respProps) { @@ -2175,8 +2420,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > preloadNetworkTopologyOperation( - PreloadNetworkTopologyOperationInput input) { + public ListenableFuture > preloadNetworkTopologyOperation( + PreloadNetworkTopologyOperationInput input) { final String svcOperation = "preload-network-topology-operation"; PreloadData preloadData; @@ -2193,14 +2438,14 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // Grab the preload ID from the input buffer String preloadId = input.getPreloadNetworkTopologyInformation().getNetworkTopologyIdentifierStructure() - .getNetworkName(); + .getNetworkName(); String preloadType = "network"; trySetSvcRequestId(input, responseBuilder); @@ -2227,7 +2472,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(ADDING_INPUT_DATA_LOG, svcOperation, preloadId, input); PreloadNetworkTopologyOperationInputBuilder inputBuilder = new PreloadNetworkTopologyOperationInputBuilder( - input); + input); GenericResourceApiUtil.toProperties(properties, inputBuilder.build()); log.info(ADDING_OPERATIONAL_DATA_LOG, svcOperation, preloadId, input); GenericResourceApiUtil.toProperties(properties, OPERATIONAL_DATA_PARAM, operDataBuilder); @@ -2249,7 +2494,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator(ackFinal); log.error(RETURNED_FAILED_MESSAGE, svcOperation, preloadId, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2276,7 +2521,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); log.error(RETURNED_FAILED_MESSAGE, svcOperation, preloadId, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(false).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2288,13 +2533,13 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, preloadId, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private boolean hasInvalidPreloadNetwork(PreloadNetworkTopologyOperationInput input) { return input == null || input.getPreloadNetworkTopologyInformation() == null - || input.getPreloadNetworkTopologyInformation().getNetworkTopologyIdentifierStructure() == null; + || input.getPreloadNetworkTopologyInformation().getNetworkTopologyIdentifierStructure() == null; } private boolean hasInvalidPreloadId(String preloadId) { @@ -2302,14 +2547,14 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void trySetSvcRequestId(PreloadNetworkTopologyOperationInput input, - PreloadNetworkTopologyOperationOutputBuilder responseBuilder) { + PreloadNetworkTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } } private Properties tryGetProperties(String svcOperation, Properties parms, PreloadDataBuilder preloadDataBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { try { if (svcLogicClient.hasGraph(APP_NAME, svcOperation, null, "sync")) { try { @@ -2333,7 +2578,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } private void trySetResponseMessage(PreloadNetworkTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { if (!responseObject.getMessage().isEmpty()) { responseBuilder.setResponseMessage(responseObject.getMessage()); @@ -2350,8 +2595,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > preloadVfModuleTopologyOperation( - PreloadVfModuleTopologyOperationInput input) { + public ListenableFuture > preloadVfModuleTopologyOperation( + PreloadVfModuleTopologyOperationInput input) { final String svcOperation = "preload-vf-module-topology-operation"; PreloadData preloadData; @@ -2363,22 +2608,22 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC if (hasInvalidPreloadVfModule(input)) { log.debug( - "exiting {} because of null or empty preload-vf-module-topology-information.vf-module-topology.vf-module-topology-identifier.vf-module-name", - svcOperation); + "exiting {} because of null or empty preload-vf-module-topology-information.vf-module-topology.vf-module-topology-identifier.vf-module-name", + svcOperation); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage( - "invalid input, null or empty preload-vf-module-topology-information.vf-module-topology.vf-module-topology-identifier.vf-module-name"); + "invalid input, null or empty preload-vf-module-topology-information.vf-module-topology.vf-module-topology-identifier.vf-module-name"); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // Grab the preload ID from the input buffer String preloadId = input.getPreloadVfModuleTopologyInformation().getVfModuleTopology() - .getVfModuleTopologyIdentifier().getVfModuleName(); + .getVfModuleTopologyIdentifier().getVfModuleName(); String preloadType = "vf-module"; trySetSvcRequestId(input, responseBuilder); @@ -2405,7 +2650,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(ADDING_INPUT_DATA_LOG, svcOperation, preloadId, input); PreloadVfModuleTopologyOperationInputBuilder inputBuilder = new PreloadVfModuleTopologyOperationInputBuilder( - input); + input); GenericResourceApiUtil.toProperties(properties, inputBuilder.build()); log.info(ADDING_OPERATIONAL_DATA_LOG, svcOperation, preloadId, input); GenericResourceApiUtil.toProperties(properties, OPERATIONAL_DATA_PARAM, operDataBuilder); @@ -2427,7 +2672,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator(ackFinal); log.error(RETURNED_FAILED_MESSAGE, svcOperation, preloadId, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2455,7 +2700,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); log.error(RETURNED_FAILED_MESSAGE, svcOperation, preloadId, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(false).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2467,28 +2712,28 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, preloadId, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private boolean hasInvalidPreloadVfModule(PreloadVfModuleTopologyOperationInput input) { return input == null || input.getPreloadVfModuleTopologyInformation() == null - || input.getPreloadVfModuleTopologyInformation().getVfModuleTopology() == null - || input.getPreloadVfModuleTopologyInformation().getVfModuleTopology() - .getVfModuleTopologyIdentifier() == null - || input.getPreloadVfModuleTopologyInformation().getVfModuleTopology().getVfModuleTopologyIdentifier() - .getVfModuleName() == null; + || input.getPreloadVfModuleTopologyInformation().getVfModuleTopology() == null + || input.getPreloadVfModuleTopologyInformation().getVfModuleTopology() + .getVfModuleTopologyIdentifier() == null + || input.getPreloadVfModuleTopologyInformation().getVfModuleTopology().getVfModuleTopologyIdentifier() + .getVfModuleName() == null; } private void trySetSvcRequestId(PreloadVfModuleTopologyOperationInput input, - PreloadVfModuleTopologyOperationOutputBuilder responseBuilder) { + PreloadVfModuleTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } } private void trySetResponseMessage(PreloadVfModuleTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { if (!responseObject.getMessage().isEmpty()) { responseBuilder.setResponseMessage(responseObject.getMessage()); @@ -2505,8 +2750,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > genericConfigurationTopologyOperation( - GenericConfigurationTopologyOperationInput input) { + public ListenableFuture > genericConfigurationTopologyOperation( + GenericConfigurationTopologyOperationInput input) { final String svcOperation = "generic-configuration-topology-operation"; ServiceData serviceData; @@ -2524,8 +2769,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()) - .build(); + . status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } @@ -2541,8 +2786,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setResponseMessage("invalid input, null or empty configuration-id or configuration-type"); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()) - .build(); + . status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } @@ -2561,7 +2806,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(ADDING_INPUT_DATA_LOG, svcOperation, siid, input); GenericConfigurationTopologyOperationInputBuilder inputBuilder = new GenericConfigurationTopologyOperationInputBuilder( - input); + input); GenericResourceApiUtil.toProperties(parms, inputBuilder.build()); log.info(ADDING_OPERATIONAL_DATA_LOG, svcOperation, siid, operDataBuilder.build()); @@ -2601,8 +2846,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()) - .build(); + . status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } @@ -2632,8 +2877,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setResponseMessage(e.getMessage()); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()) - .build(); + . status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } @@ -2646,19 +2891,19 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private boolean hasInvalidService(GenericConfigurationTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } private void trySetSvcRequestId(GenericConfigurationTopologyOperationInput input, - GenericConfigurationTopologyOperationOutputBuilder responseBuilder) { + GenericConfigurationTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } @@ -2666,12 +2911,12 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidConfigurationIdOrType(GenericConfigurationTopologyOperationInput input) { return input.getConfigurationInformation() == null - || input.getConfigurationInformation().getConfigurationId() == null - || input.getConfigurationInformation().getConfigurationType() == null; + || input.getConfigurationInformation().getConfigurationId() == null + || input.getConfigurationInformation().getConfigurationType() == null; } private void trySetResponseMessage(GenericConfigurationTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { if (!responseObject.getMessage().isEmpty()) { responseBuilder.setResponseMessage(responseObject.getMessage()); @@ -2680,7 +2925,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > genericConfigurationNotification(GenericConfigurationNotificationInput input) { + public ListenableFuture > genericConfigurationNotification( + GenericConfigurationNotificationInput input) { final String svcOperation = "generic-configuration-notification"; ServiceData serviceData; @@ -2704,7 +2950,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(ADDING_INPUT_DATA_LOG, svcOperation, siid, input); GenericConfigurationNotificationInputBuilder inputBuilder = new GenericConfigurationNotificationInputBuilder( - input); + input); GenericResourceApiUtil.toProperties(parms, inputBuilder.build()); log.info(ADDING_OPERATIONAL_DATA_LOG, svcOperation, siid, operDataBuilder.build()); @@ -2736,7 +2982,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(UPDATING_MDSAL_ERROR_MESSAGE, svcOperation, siid, e); } - RpcResult rpcResult = RpcResultBuilder. status(true).build(); + RpcResult rpcResult = RpcResultBuilder. status( + true).build(); return Futures.immediateFuture(rpcResult); } @@ -2757,7 +3004,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } catch (Exception e) { log.error(UPDATING_MDSAL_ERROR_MESSAGE, svcOperation, siid, e); - RpcResult rpcResult = RpcResultBuilder. status(true).build(); + RpcResult rpcResult = RpcResultBuilder. status( + true).build(); return Futures.immediateFuture(rpcResult); } @@ -2765,14 +3013,15 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC // Update succeeded log.info(UPDATED_MDSAL_INFO_MESSAGE, svcOperation, siid); - RpcResult rpcResult = RpcResultBuilder. status(true).build(); + RpcResult rpcResult = RpcResultBuilder. status( + true).build(); return Futures.immediateFuture(rpcResult); } @Override - public Future > getpathsegmentTopologyOperation( - GetpathsegmentTopologyOperationInput input) { + public ListenableFuture > getpathsegmentTopologyOperation( + GetpathsegmentTopologyOperationInput input) { final String svcOperation = "getpathsegment-topology-operation"; ServiceData serviceData; @@ -2790,7 +3039,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2806,7 +3055,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setResponseMessage("invalid input, no model-uuid provided"); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2822,7 +3071,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(ADDING_INPUT_DATA_LOG, svcOperation, siid, input); GetpathsegmentTopologyOperationInputBuilder inputBuilder = new GetpathsegmentTopologyOperationInputBuilder( - input); + input); GenericResourceApiUtil.toProperties(parms, inputBuilder.build()); log.info(ADDING_OPERATIONAL_DATA_LOG, svcOperation, siid, operDataBuilder.build()); @@ -2862,7 +3111,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2890,7 +3139,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setResponseMessage(e.getMessage()); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2903,19 +3152,19 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.info(RETURNED_SUCCESS_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } private boolean hasInvalidService(GetpathsegmentTopologyOperationInput input) { return input == null || input.getServiceInformation() == null - || input.getServiceInformation().getServiceInstanceId() == null - || input.getServiceInformation().getServiceInstanceId().length() == 0; + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0; } private void trySetSvcRequestId(GetpathsegmentTopologyOperationInput input, - GetpathsegmentTopologyOperationOutputBuilder responseBuilder) { + GetpathsegmentTopologyOperationOutputBuilder responseBuilder) { if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); } @@ -2923,11 +3172,11 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC private boolean hasInvalidOnapModelInformation(GetpathsegmentTopologyOperationInput input) { return input.getServiceInformation() == null || input.getServiceInformation().getOnapModelInformation() == null - || input.getServiceInformation().getOnapModelInformation().getModelUuid() == null; + || input.getServiceInformation().getOnapModelInformation().getModelUuid() == null; } private void trySetResponseMessage(GetpathsegmentTopologyOperationOutputBuilder responseBuilder, - ResponseObject responseObject) { + ResponseObject responseObject) { if (responseObject.getMessage() != null) { if (!responseObject.getMessage().isEmpty()) { responseBuilder.setResponseMessage(responseObject.getMessage()); @@ -2936,8 +3185,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > policyUpdateNotifyOperation( - PolicyUpdateNotifyOperationInput input) { + public ListenableFuture > policyUpdateNotifyOperation( + PolicyUpdateNotifyOperationInput input) { final String svcOperation = "policy-update-notify-operation"; Properties parms = new Properties(); @@ -2953,7 +3202,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setErrorCode("404"); responseBuilder.setErrorMsg("Invalid input, missing input data"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2980,7 +3229,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, "policy update", responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2992,7 +3241,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } log.info("Returned SUCCESS for " + svcOperation + responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); // return success return Futures.immediateFuture(rpcResult); } @@ -3002,8 +3251,8 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC } @Override - public Future > portMirrorTopologyOperation( - final PortMirrorTopologyOperationInput input) { + public ListenableFuture > portMirrorTopologyOperation( + final PortMirrorTopologyOperationInput input) { final String svcOperation = "port-mirror-topology-operation"; ServiceData serviceData = null; @@ -3021,7 +3270,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setResponseMessage(NULL_OR_EMPTY_ERROR_PARAM); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); } @@ -3032,7 +3281,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setResponseMessage("invalid input, null or empty configuration-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -3093,7 +3342,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + . status(true).withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); @@ -3114,7 +3363,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null) { // Only update operational tree on activate or delete if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Unassign) - || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate)) { + || input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate)) { log.info(UPDATING_TREE_INFO_MESSAGE); saveService(serviceBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); } @@ -3126,7 +3375,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setServiceResponseInformation(serviceResponseInformationBuilder.build()); PortMirrorResponseInformationBuilder portMirrorResponseInformationBuilder = new PortMirrorResponseInformationBuilder(); portMirrorResponseInformationBuilder - .setInstanceId(input.getConfigurationInformation().getConfigurationId()); + .setInstanceId(input.getConfigurationInformation().getConfigurationId()); portMirrorResponseInformationBuilder.setObjectPath(portMirrorObjectPath); responseBuilder.setPortMirrorResponseInformation(portMirrorResponseInformationBuilder.build()); @@ -3137,7 +3386,7 @@ public class GenericResourceApiProvider implements AutoCloseable, GENERICRESOURC responseBuilder.setAckFinalIndicator("Y"); log.error(RETURNED_FAILED_MESSAGE, svcOperation, siid, responseBuilder.build()); RpcResult rpcResult = RpcResultBuilder - . status(true).withResult(responseBuilder.build()).build(); + .