diff options
3 files changed, 2283 insertions, 843 deletions
diff --git a/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/vnfapiProvider.java b/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/vnfapiProvider.java index f64cb0be..a94d5e3b 100644 --- a/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/vnfapiProvider.java +++ b/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/vnfapiProvider.java @@ -21,19 +21,14 @@ package org.onap.sdnc.vnfapi; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.Properties; -import java.util.TimeZone; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; - +import com.google.common.base.Optional; +import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.SettableFuture; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.DataChangeListener; +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; @@ -41,7 +36,6 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationInput; import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationInputBuilder; @@ -141,52 +135,48 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; -import com.google.common.base.Optional; -import com.google.common.util.concurrent.CheckedFuture; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.SettableFuture; - +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Properties; +import java.util.TimeZone; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; /** * 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. - * */ - -public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeListener{ - - private final Logger log = LoggerFactory.getLogger( vnfapiProvider.class ); - private final String appName = "vnfapi"; - private final ExecutorService executor; - - - private ListenerRegistration<DataChangeListener> dclServices; - +public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeListener { protected DataBroker dataBroker; protected NotificationPublishService notificationService; protected RpcProviderRegistry rpcRegistry; protected BindingAwareBroker.RpcRegistration<VNFAPIService> rpcRegistration; - private VNFSDNSvcLogicServiceClient svcLogicClient; - + private final Logger log = LoggerFactory.getLogger(vnfapiProvider.class); + private final String appName = "vnfapi"; + private final ExecutorService executor; + private VNFSDNSvcLogicServiceClient svcLogicClient; + private ListenerRegistration<DataChangeListener> dclServices; public vnfapiProvider(DataBroker dataBroker2, NotificationPublishService notificationPublishService, - RpcProviderRegistry rpcProviderRegistry, VNFSDNSvcLogicServiceClient client) { - this.log.info( "Creating provider for " + appName ); + RpcProviderRegistry rpcProviderRegistry, VNFSDNSvcLogicServiceClient client) { + this.log.info("Creating provider for " + appName); executor = Executors.newFixedThreadPool(1); dataBroker = dataBroker2; notificationService = notificationPublishService; rpcRegistry = rpcProviderRegistry; this.svcLogicClient = client; initialize(); - } - public void initialize(){ - log.info( "Initializing provider for " + appName ); + public void initialize() { + log.info("Initializing provider for " + appName); // Create the top level containers createContainers(); try { @@ -194,49 +184,46 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } catch (Exception e) { log.error("Caught Exception while trying to load properties file: ", e); } - // rpcRegistration = rpcRegistry.addRpcImplementation(VNFAPIService.class, this); - log.info( "Initialization complete for " + appName ); + log.info("Initialization complete for " + appName); } private void createContainers() { final WriteTransaction t = dataBroker.newReadWriteTransaction(); // Create the Vnfs container - t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Vnfs.class), - new VnfsBuilder().build()); - t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Vnfs.class), - new VnfsBuilder().build()); + t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Vnfs.class), new VnfsBuilder().build()); + t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Vnfs.class), new VnfsBuilder().build()); // Create the PreloadVnfs container t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadVnfs.class), - new PreloadVnfsBuilder().build()); + new PreloadVnfsBuilder().build()); t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadVnfs.class), - new PreloadVnfsBuilder().build()); + new PreloadVnfsBuilder().build()); // 1610 Create the PreloadVnfInstances container t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadVnfInstances.class), - new PreloadVnfInstancesBuilder().build()); + new PreloadVnfInstancesBuilder().build()); t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadVnfInstances.class), - new PreloadVnfInstancesBuilder().build()); + new PreloadVnfInstancesBuilder().build()); // 1610 Create the VnfInstances container t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(VnfInstances.class), - new VnfInstancesBuilder().build()); + new VnfInstancesBuilder().build()); t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(VnfInstances.class), - new VnfInstancesBuilder().build()); + new VnfInstancesBuilder().build()); // 1610 Create the PreloadVfModules container t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadVfModules.class), - new PreloadVfModulesBuilder().build()); + new PreloadVfModulesBuilder().build()); t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadVfModules.class), - new PreloadVfModulesBuilder().build()); + new PreloadVfModulesBuilder().build()); // 1610 Create the VfModules container t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(VfModules.class), - new VfModulesBuilder().build()); + new VfModulesBuilder().build()); t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(VfModules.class), - new VfModulesBuilder().build()); + new VfModulesBuilder().build()); try { CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = t.submit(); @@ -248,38 +235,26 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } } - - - protected void initializeChild() { - //Override if you have custom initialization intelligence - } - - @Override - public void close() throws Exception { - log.info( "Closing provider for " + appName ); + @Override public void close() throws Exception { + log.info("Closing provider for " + appName); executor.shutdown(); rpcRegistration.close(); - // dclServices.close(); - log.info( "Successfully closed provider for " + appName ); + log.info("Successfully closed provider for " + appName); } // On data change not used - @Override - public void onDataChanged( - AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) { + @Override public void onDataChanged(AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) { boolean changed = false; log.info(" IN ON DATA CHANGE: "); - WriteTransaction writeTransaction = dataBroker - .newWriteOnlyTransaction(); + WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); DataObject updatedSubTree = change.getUpdatedSubtree(); if (updatedSubTree != null) { - if (log.isDebugEnabled()) - { + if (log.isDebugEnabled()) { log.debug("updatedSubTree was non-null:" + updatedSubTree); } - if ( updatedSubTree instanceof Vnfs ) { + if (updatedSubTree instanceof Vnfs) { ArrayList<VnfList> vnfList = (ArrayList<VnfList>) ((Vnfs) updatedSubTree).getVnfList(); if (vnfList != null) { for (VnfList entry : vnfList) { @@ -289,9 +264,9 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // // ServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed. // - if ((! "Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete.equals(serviceStatus.getRequestStatus()))) { - if (log.isDebugEnabled()) - { + if ((!"Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete + .equals(serviceStatus.getRequestStatus()))) { + if (log.isDebugEnabled()) { log.debug("Final Indicator is not Y, calling handleServiceDataUpdated"); } //handleServiceDataUpdated(serviceData, serviceStatus, writeTransaction); @@ -301,54 +276,48 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } } } - if ( updatedSubTree instanceof PreloadVnfs ) { - ArrayList<VnfPreloadList> vnfList = (ArrayList<VnfPreloadList>) ((PreloadVnfs) updatedSubTree).getVnfPreloadList(); + if (updatedSubTree instanceof PreloadVnfs) { + ArrayList<VnfPreloadList> vnfList = + (ArrayList<VnfPreloadList>) ((PreloadVnfs) updatedSubTree).getVnfPreloadList(); if (vnfList != null) { for (VnfPreloadList entry : vnfList) { PreloadData preloadData = entry.getPreloadData(); - if (preloadData != null ) { - // - // PreloadData change detected - // - // handlePreloadDataUpdated(preloadData, writeTransaction); + if (preloadData != null) { changed = true; } } } } //1610 - if ( updatedSubTree instanceof PreloadVnfInstances ) { - ArrayList<VnfInstancePreloadList> vnfInstanceList = (ArrayList<VnfInstancePreloadList>) ((PreloadVnfInstances) updatedSubTree).getVnfInstancePreloadList(); + if (updatedSubTree instanceof PreloadVnfInstances) { + ArrayList<VnfInstancePreloadList> vnfInstanceList = + (ArrayList<VnfInstancePreloadList>) ((PreloadVnfInstances) updatedSubTree) + .getVnfInstancePreloadList(); if (vnfInstanceList != null) { for (VnfInstancePreloadList entry : vnfInstanceList) { VnfInstancePreloadData vnfInstancePreloadData = entry.getVnfInstancePreloadData(); - if (vnfInstancePreloadData != null ) { - // - // PreloadData change detected - // - // handlePreloadDataUpdated(preloadData, writeTransaction); + if (vnfInstancePreloadData != null) { changed = true; } } } } //1610 - if ( updatedSubTree instanceof VnfInstances ) { - ArrayList<VnfInstanceList> vnfInstanceList = (ArrayList<VnfInstanceList>) ((VnfInstances) updatedSubTree).getVnfInstanceList(); + if (updatedSubTree instanceof VnfInstances) { + ArrayList<VnfInstanceList> vnfInstanceList = + (ArrayList<VnfInstanceList>) ((VnfInstances) updatedSubTree).getVnfInstanceList(); if (vnfInstanceList != null) { for (VnfInstanceList entry : vnfInstanceList) { VnfInstanceServiceData vnfInstanceServiceData = entry.getVnfInstanceServiceData(); ServiceStatus serviceStatus = entry.getServiceStatus(); if (vnfInstanceServiceData != null && serviceStatus != null) { - // - // VnfInstanceServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed. - // - if ((! "Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete.equals(serviceStatus.getRequestStatus()))) { - if (log.isDebugEnabled()) - { + // VnfInstanceServiceData change detected, check the AckFinal indicator and request-status + // to see if we need to proceed. + if ((!"Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete + .equals(serviceStatus.getRequestStatus()))) { + if (log.isDebugEnabled()) { log.debug("Final Indicator is not Y, calling handleServiceDataUpdated"); } - //handleServiceDataUpdated(serviceData, serviceStatus, writeTransaction); changed = true; } } @@ -356,38 +325,34 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } } //1610 - if ( updatedSubTree instanceof PreloadVfModules ) { - ArrayList<VfModulePreloadList> vnfInstanceList = (ArrayList<VfModulePreloadList>) ((PreloadVfModules) updatedSubTree).getVfModulePreloadList(); + if (updatedSubTree instanceof PreloadVfModules) { + ArrayList<VfModulePreloadList> vnfInstanceList = + (ArrayList<VfModulePreloadList>) ((PreloadVfModules) updatedSubTree).getVfModulePreloadList(); if (vnfInstanceList != null) { for (VfModulePreloadList entry : vnfInstanceList) { VfModulePreloadData vnfInstancePreloadData = entry.getVfModulePreloadData(); - if (vnfInstancePreloadData != null ) { - // - // PreloadData change detected - // - // handlePreloadDataUpdated(preloadData, writeTransaction); + if (vnfInstancePreloadData != null) { changed = true; } } } } //1610 - if ( updatedSubTree instanceof VfModules ) { - ArrayList<VfModuleList> vfModuleList = (ArrayList<VfModuleList>) ((VfModules) updatedSubTree).getVfModuleList(); + if (updatedSubTree instanceof VfModules) { + ArrayList<VfModuleList> vfModuleList = + (ArrayList<VfModuleList>) ((VfModules) updatedSubTree).getVfModuleList(); if (vfModuleList != null) { for (VfModuleList entry : vfModuleList) { VfModuleServiceData vfModuleServiceData = entry.getVfModuleServiceData(); ServiceStatus serviceStatus = entry.getServiceStatus(); if (vfModuleServiceData != null && serviceStatus != null) { - // - // VfModuleServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed. - // - if ((! "Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete.equals(serviceStatus.getRequestStatus()))) { - if (log.isDebugEnabled()) - { + // VfModuleServiceData change detected, check the AckFinal indicator and request-status to + // see if we need to proceed. + if ((!"Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete + .equals(serviceStatus.getRequestStatus()))) { + if (log.isDebugEnabled()) { log.debug("Final Indicator is not Y, calling handleServiceDataUpdated"); } - //handleServiceDataUpdated(serviceData, serviceStatus, writeTransaction); changed = true; } } @@ -397,174 +362,158 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } // Do the write transaction only if something changed. if (changed) { - CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = writeTransaction - .submit(); + CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = writeTransaction.submit(); Futures.addCallback(checkedFuture, new FutureCallback<Void>() { - @Override - public void onSuccess(Void arg0) { + @Override public void onSuccess(Void arg0) { log.debug("Successfully updated Service Status"); } - @Override - public void onFailure(Throwable ex) { - log.debug( - "Failed updating Service Status", - ex); + @Override public void onFailure(Throwable ex) { + log.debug("Failed updating Service Status", ex); } }, executor); } } - private static class Iso8601Util - { + private static class Iso8601Util { private static TimeZone tz = TimeZone.getTimeZone("UTC"); private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); - static - { + static { df.setTimeZone(tz); } - private static String now() - { + private static String now() { return df.format(new Date()); } } - private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, String errorCode, String errorMessage, String ackFinal) - { + private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, String errorCode, String errorMessage, + String ackFinal) { serviceStatusBuilder.setResponseCode(errorCode); serviceStatusBuilder.setResponseMessage(errorMessage); serviceStatusBuilder.setFinalIndicator(ackFinal); serviceStatusBuilder.setResponseTimestamp(Iso8601Util.now()); } - private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, RequestInformation requestInformation) - { + private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, RequestInformation requestInformation) { if (requestInformation != null && requestInformation.getRequestAction() != null) { - switch (requestInformation.getRequestAction()) - { - case VNFActivateRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VNFActivateRequest); - break; - case ChangeVNFActivateRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVNFActivateRequest); - break; - case DisconnectVNFRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVNFRequest); - break; - case PreloadVNFRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVNFRequest); - break; - case DeletePreloadVNFRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DeletePreloadVNFRequest); - break; - // 1610 vnf-instance Requests - case VnfInstanceActivateRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VnfInstanceActivateRequest); - break; - case ChangeVnfInstanceActivateRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVnfInstanceActivateRequest); - break; - case DisconnectVnfInstanceRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVnfInstanceRequest); - break; - case PreloadVnfInstanceRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVnfInstanceRequest); - break; - // 1610 vf-module Requests - case VfModuleActivateRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VfModuleActivateRequest); - break; - case ChangeVfModuleActivateRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVfModuleActivateRequest); - break; - case DisconnectVfModuleRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVfModuleRequest); - break; - case PreloadVfModuleRequest: - serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVfModuleRequest); - break; - default: - log.error("Unknown RequestAction: " + requestInformation.getRequestAction() ); - break; + switch (requestInformation.getRequestAction()) { + case VNFActivateRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VNFActivateRequest); + break; + case ChangeVNFActivateRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVNFActivateRequest); + break; + case DisconnectVNFRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVNFRequest); + break; + case PreloadVNFRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVNFRequest); + break; + case DeletePreloadVNFRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DeletePreloadVNFRequest); + break; + // 1610 vnf-instance Requests + case VnfInstanceActivateRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VnfInstanceActivateRequest); + break; + case ChangeVnfInstanceActivateRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVnfInstanceActivateRequest); + break; + case DisconnectVnfInstanceRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVnfInstanceRequest); + break; + case PreloadVnfInstanceRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVnfInstanceRequest); + break; + // 1610 vf-module Requests + case VfModuleActivateRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VfModuleActivateRequest); + break; + case ChangeVfModuleActivateRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVfModuleActivateRequest); + break; + case DisconnectVfModuleRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVfModuleRequest); + break; + case PreloadVfModuleRequest: + serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVfModuleRequest); + break; + default: + log.error("Unknown RequestAction: " + requestInformation.getRequestAction()); + break; } } if (requestInformation != null && requestInformation.getRequestSubAction() != null) { - switch (requestInformation.getRequestSubAction()) - { - case SUPP: - serviceStatusBuilder.setVnfsdnSubaction(VnfsdnSubaction.SUPP); - break; - case CANCEL: - serviceStatusBuilder.setVnfsdnSubaction(VnfsdnSubaction.CANCEL); - break; - default: - log.error("Unknown RequestSubAction: " + requestInformation.getRequestSubAction() ); - break; + switch (requestInformation.getRequestSubAction()) { + case SUPP: + serviceStatusBuilder.setVnfsdnSubaction(VnfsdnSubaction.SUPP); + break; + case CANCEL: + serviceStatusBuilder.setVnfsdnSubaction(VnfsdnSubaction.CANCEL); + break; + default: + log.error("Unknown RequestSubAction: " + requestInformation.getRequestSubAction()); + break; } } } - private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, SdncRequestHeader requestHeader) - { + private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, SdncRequestHeader requestHeader) { if (requestHeader != null && requestHeader.getSvcAction() != null) { - switch (requestHeader.getSvcAction()) - { - case Reserve: - serviceStatusBuilder.setRpcAction(RpcAction.Reserve); - break; - case Activate: - serviceStatusBuilder.setRpcAction(RpcAction.Activate); - break; - case Assign: - serviceStatusBuilder.setRpcAction(RpcAction.Assign); - break; - case Delete: - serviceStatusBuilder.setRpcAction(RpcAction.Delete); - break; - case Changeassign: - serviceStatusBuilder.setRpcAction(RpcAction.Changeassign); - break; - case Changedelete: - serviceStatusBuilder.setRpcAction(RpcAction.Changedelete); - break; - case Rollback: - serviceStatusBuilder.setRpcAction(RpcAction.Rollback); - break; - default: - log.error("Unknown SvcAction: " + requestHeader.getSvcAction() ); - break; + switch (requestHeader.getSvcAction()) { + case Reserve: + serviceStatusBuilder.setRpcAction(RpcAction.Reserve); + break; + case Activate: + serviceStatusBuilder.setRpcAction(RpcAction.Activate); + break; + case Assign: + serviceStatusBuilder.setRpcAction(RpcAction.Assign); + break; + case Delete: + serviceStatusBuilder.setRpcAction(RpcAction.Delete); + break; + case Changeassign: + serviceStatusBuilder.setRpcAction(RpcAction.Changeassign); + break; + case Changedelete: + serviceStatusBuilder.setRpcAction(RpcAction.Changedelete); + break; + case Rollback: + serviceStatusBuilder.setRpcAction(RpcAction.Rollback); + break; + default: + log.error("Unknown SvcAction: " + requestHeader.getSvcAction()); + break; } } } - private void getServiceData(String siid, ServiceDataBuilder serviceDataBuilder) - { + private void getServiceData(String siid, ServiceDataBuilder serviceDataBuilder) { // default to config - getServiceData(siid,serviceDataBuilder,LogicalDatastoreType.CONFIGURATION); + getServiceData(siid, serviceDataBuilder, LogicalDatastoreType.CONFIGURATION); } - private void getServiceData(String siid, ServiceDataBuilder serviceDataBuilder, LogicalDatastoreType type) - { + 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.<Vnfs>builder(Vnfs.class) - .child(VnfList.class, new VnfListKey(siid)).build(); + InstanceIdentifier.<Vnfs>builder(Vnfs.class).child(VnfList.class, new VnfListKey(siid)).build(); ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction(); Optional<VnfList> data = null; try { data = (Optional<VnfList>) readTx.read(type, serviceInstanceIdentifier).get(); } catch (InterruptedException | ExecutionException e) { - log.error("Caught Exception reading MD-SAL ("+type+") for ["+siid+"] " ,e); + log.error("Caught Exception reading MD-SAL (" + type + ") for [" + siid + "] ", e); } if (data != null && data.isPresent()) { ServiceData serviceData = (ServiceData) data.get().getServiceData(); if (serviceData != null) { - log.info("Read MD-SAL ("+type+") data for ["+siid+"] ServiceData: " + serviceData); + log.info("Read MD-SAL (" + type + ") data for [" + siid + "] ServiceData: " + serviceData); serviceDataBuilder.setSdncRequestHeader(serviceData.getSdncRequestHeader()); serviceDataBuilder.setRequestInformation(serviceData.getRequestInformation()); serviceDataBuilder.setServiceInformation(serviceData.getServiceInformation()); @@ -573,209 +522,222 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL serviceDataBuilder.setVnfTopologyInformation(serviceData.getVnfTopologyInformation()); serviceDataBuilder.setOperStatus(serviceData.getOperStatus()); } else { - log.info("No service-data found in MD-SAL ("+type+") for ["+siid+"] "); + log.info("No service-data found in MD-SAL (" + type + ") for [" + siid + "] "); } } else { - log.info("No data found in MD-SAL ("+type+") for ["+siid+"] "); + log.info("No data found in MD-SAL (" + type + ") for [" + siid + "] "); } } //1610 vnf-instance - private void getVnfInstanceServiceData(String siid, VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder) - { + private void getVnfInstanceServiceData(String siid, VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder) { // default to config - getVnfInstanceServiceData(siid,vnfInstanceServiceDataBuilder,LogicalDatastoreType.CONFIGURATION); + getVnfInstanceServiceData(siid, vnfInstanceServiceDataBuilder, LogicalDatastoreType.CONFIGURATION); } + //1610 vnf-instance - private void getVnfInstanceServiceData(String siid, VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder, LogicalDatastoreType type) - { + private void getVnfInstanceServiceData(String siid, VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder, + LogicalDatastoreType type) { // See if any data exists yet for this siid, if so grab it. - InstanceIdentifier vnfInstanceIdentifier = - InstanceIdentifier.<VnfInstances>builder(VnfInstances.class) - .child(VnfInstanceList.class, new VnfInstanceListKey(siid)).build(); + InstanceIdentifier vnfInstanceIdentifier = InstanceIdentifier.<VnfInstances>builder(VnfInstances.class) + .child(VnfInstanceList.class, new VnfInstanceListKey(siid)).build(); ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction(); Optional<VnfInstanceList> data = null; try { data = (Optional<VnfInstanceList>) readTx.read(type, vnfInstanceIdentifier).get(); } catch (InterruptedException | ExecutionException e) { - log.error("Caught Exception reading MD-SAL ("+type+") for ["+siid+"] " ,e); + log.error("Caught Exception reading MD-SAL (" + type + ") for [" + siid + "] ", e); } if (data != null && data.isPresent()) { - VnfInstanceServiceData vnfInstanceServiceData = (VnfInstanceServiceData) data.get().getVnfInstanceServiceData(); + VnfInstanceServiceData vnfInstanceServiceData = + (VnfInstanceServiceData) data.get().getVnfInstanceServiceData(); if (vnfInstanceServiceData != null) { - log.info("Read MD-SAL ("+type+") data for ["+siid+"] VnfInstanceServiceData: " + vnfInstanceServiceData); + log.info("Read MD-SAL (" + type + ") data for [" + siid + "] VnfInstanceServiceData: " + + vnfInstanceServiceData); vnfInstanceServiceDataBuilder.setSdncRequestHeader(vnfInstanceServiceData.getSdncRequestHeader()); vnfInstanceServiceDataBuilder.setRequestInformation(vnfInstanceServiceData.getRequestInformation()); vnfInstanceServiceDataBuilder.setServiceInformation(vnfInstanceServiceData.getServiceInformation()); - vnfInstanceServiceDataBuilder.setVnfInstanceRequestInformation(vnfInstanceServiceData.getVnfInstanceRequestInformation()); + vnfInstanceServiceDataBuilder + .setVnfInstanceRequestInformation(vnfInstanceServiceData.getVnfInstanceRequestInformation()); vnfInstanceServiceDataBuilder.setVnfInstanceId(vnfInstanceServiceData.getVnfInstanceId()); - vnfInstanceServiceDataBuilder.setVnfInstanceTopologyInformation(vnfInstanceServiceData.getVnfInstanceTopologyInformation()); + vnfInstanceServiceDataBuilder + .setVnfInstanceTopologyInformation(vnfInstanceServiceData.getVnfInstanceTopologyInformation()); vnfInstanceServiceDataBuilder.setOperStatus(vnfInstanceServiceData.getOperStatus()); } else { - log.info("No vnf-instance-service-data found in MD-SAL ("+type+") for ["+siid+"] "); + log.info("No vnf-instance-service-data found in MD-SAL (" + type + ") for [" + siid + "] "); } } else { - log.info("No data found in MD-SAL ("+type+") for ["+siid+"] "); + log.info("No data found in MD-SAL (" + type + ") for [" + siid + "] "); } } //1610 vf-module - private void getVfModuleServiceData(String siid, VfModuleServiceDataBuilder vfModuleServiceDataBuilder) - { + private void getVfModuleServiceData(String siid, VfModuleServiceDataBuilder vfModuleServiceDataBuilder) { // default to config - getVfModuleServiceData(siid,vfModuleServiceDataBuilder,LogicalDatastoreType.CONFIGURATION); + getVfModuleServiceData(siid, vfModuleServiceDataBuilder, LogicalDatastoreType.CONFIGURATION); } + //1610 vf-module - private void getVfModuleServiceData(String siid, VfModuleServiceDataBuilder vfModuleServiceDataBuilder, LogicalDatastoreType type) - { + private void getVfModuleServiceData(String siid, VfModuleServiceDataBuilder vfModuleServiceDataBuilder, + LogicalDatastoreType type) { // See if any data exists yet for this siid, if so grab it. InstanceIdentifier vfModuleIdentifier = - InstanceIdentifier.<VfModules>builder(VfModules.class) - .child(VfModuleList.class, new VfModuleListKey(siid)).build(); + InstanceIdentifier.<VfModules>builder(VfModules.class).child(VfModuleList.class, new VfModuleListKey(siid)) + .build(); ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction(); Optional<VfModuleList> data = null; try { data = (Optional<VfModuleList>) readTx.read(type, vfModuleIdentifier).get(); } catch (InterruptedException | ExecutionException e) { - log.error("Caught Exception reading MD-SAL ("+type+") for ["+siid+"] " ,e); + log.error("Caught Exception reading MD-SAL (" + type + ") for [" + siid + "] ", e); } if (data != null && data.isPresent()) { - VfModuleServiceData vfModuleServiceData = (VfModuleServiceData) data.get().getVfModuleServiceData(); + VfModuleServiceData vfModuleServiceData = data.get().getVfModuleServiceData(); if (vfModuleServiceData != null) { - log.info("Read MD-SAL ("+type+") data for ["+siid+"] VfModuleServiceData: " + vfModuleServiceData); + log.info( + "Read MD-SAL (" + type + ") data for [" + siid + "] VfModuleServiceData: " + vfModuleServiceData); vfModuleServiceDataBuilder.setSdncRequestHeader(vfModuleServiceData.getSdncRequestHeader()); vfModuleServiceDataBuilder.setRequestInformation(vfModuleServiceData.getRequestInformation()); vfModuleServiceDataBuilder.setServiceInformation(vfModuleServiceData.getServiceInformation()); - vfModuleServiceDataBuilder.setVfModuleRequestInformation(vfModuleServiceData.getVfModuleRequestInformation()); + vfModuleServiceDataBuilder + .setVfModuleRequestInformation(vfModuleServiceData.getVfModuleRequestInformation()); vfModuleServiceDataBuilder.setVfModuleId(vfModuleServiceData.getVfModuleId()); - vfModuleServiceDataBuilder.setVfModuleTopologyInformation(vfModuleServiceData.getVfModuleTopologyInformation()); + vfModuleServiceDataBuilder + .setVfModuleTopologyInformation(vfModuleServiceData.getVfModuleTopologyInformation()); vfModuleServiceDataBuilder.setOperStatus(vfModuleServiceData.getOperStatus()); } else { - log.info("No vf-module-service-data found in MD-SAL ("+type+") for ["+siid+"] "); + log.info("No vf-module-service-data found in MD-SAL (" + type + ") for [" + siid + "] "); } } else { - log.info("No data found in MD-SAL ("+type+") for ["+siid+"] "); + log.info("No data found in MD-SAL (" + type + ") for [" + siid + "] "); } } - private void getPreloadData(String vnf_name, String vnf_type, PreloadDataBuilder preloadDataBuilder) - { + private void getPreloadData(String vnf_name, String vnf_type, PreloadDataBuilder preloadDataBuilder) { // default to config - getPreloadData(vnf_name, vnf_type ,preloadDataBuilder,LogicalDatastoreType.CONFIGURATION); + getPreloadData(vnf_name, vnf_type, preloadDataBuilder, LogicalDatastoreType.CONFIGURATION); } - private void getPreloadData(String preload_name, String preload_type, PreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type) - { + private void getPreloadData(String preload_name, String preload_type, PreloadDataBuilder preloadDataBuilder, + LogicalDatastoreType type) { // See if any data exists yet for this name/type, if so grab it. - InstanceIdentifier preloadInstanceIdentifier = - InstanceIdentifier.<PreloadVnfs>builder(PreloadVnfs.class) - .child(VnfPreloadList.class, new VnfPreloadListKey(preload_name, preload_type)).build(); + InstanceIdentifier preloadInstanceIdentifier = InstanceIdentifier.<PreloadVnfs>builder(PreloadVnfs.class) + .child(VnfPreloadList.class, new VnfPreloadListKey(preload_name, preload_type)).build(); ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction(); Optional<VnfPreloadList> data = null; try { data = (Optional<VnfPreloadList>) readTx.read(type, preloadInstanceIdentifier).get(); } catch (InterruptedException | ExecutionException e) { - log.error("Caught Exception reading MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] " ,e); + log.error("Caught Exception reading MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] ", + e); } if (data != null && data.isPresent()) { PreloadData preloadData = (PreloadData) data.get().getPreloadData(); if (preloadData != null) { - log.info("Read MD-SAL ("+type+") data for ["+preload_name+","+preload_type+"] PreloadData: " + preloadData); + log.info("Read MD-SAL (" + type + ") data for [" + preload_name + "," + preload_type + "] PreloadData: " + + preloadData); preloadDataBuilder.setVnfTopologyInformation(preloadData.getVnfTopologyInformation()); preloadDataBuilder.setNetworkTopologyInformation(preloadData.getNetworkTopologyInformation()); preloadDataBuilder.setOperStatus(preloadData.getOperStatus()); } else { - log.info("No preload-data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] "); + log.info( + "No preload-data found in MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] "); } } else { - log.info("No data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] "); + log.info("No data found in MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] "); } } //1610 preload-vnf-instance - private void getVnfInstancePreloadData(String vnf_name, String vnf_type, VnfInstancePreloadDataBuilder preloadDataBuilder) - { + private void getVnfInstancePreloadData(String vnf_name, String vnf_type, + VnfInstancePreloadDataBuilder preloadDataBuilder) { // default to config - getVnfInstancePreloadData(vnf_name, vnf_type ,preloadDataBuilder,LogicalDatastoreType.CONFIGURATION); + getVnfInstancePreloadData(vnf_name, vnf_type, preloadDataBuilder, LogicalDatastoreType.CONFIGURATION); } //1610 preload-vnf-instance - private void getVnfInstancePreloadData(String preload_name, String preload_type, VnfInstancePreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type) - { + private void getVnfInstancePreloadData(String preload_name, String preload_type, + VnfInstancePreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type) { // See if any data exists yet for this name/type, if so grab it. InstanceIdentifier preloadInstanceIdentifier = - InstanceIdentifier.<PreloadVnfInstances>builder(PreloadVnfInstances.class) + InstanceIdentifier.<PreloadVnfInstances>builder(PreloadVnfInstances.class) .child(VnfInstancePreloadList.class, new VnfInstancePreloadListKey(preload_name, preload_type)).build(); ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction(); Optional<VnfInstancePreloadList> data = null; try { data = (Optional<VnfInstancePreloadList>) readTx.read(type, preloadInstanceIdentifier).get(); } catch (InterruptedException | ExecutionException e) { - log.error("Caught Exception reading MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] " ,e); + log.error("Caught Exception reading MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] ", + e); } if (data != null && data.isPresent()) { VnfInstancePreloadData preloadData = (VnfInstancePreloadData) data.get().getVnfInstancePreloadData(); if (preloadData != null) { - log.info("Read MD-SAL ("+type+") data for ["+preload_name+","+preload_type+"] VnfInstancePreloadData: " + preloadData); + log.info("Read MD-SAL (" + type + ") data for [" + preload_name + "," + preload_type + + "] VnfInstancePreloadData: " + preloadData); preloadDataBuilder.setVnfInstanceTopologyInformation(preloadData.getVnfInstanceTopologyInformation()); preloadDataBuilder.setOperStatus(preloadData.getOperStatus()); } else { - log.info("No vnf-instance-preload-data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] "); + log.info("No vnf-instance-preload-data found in MD-SAL (" + type + ") for [" + preload_name + "," + + preload_type + "] "); } } else { - log.info("No data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] "); + log.info("No data found in MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] "); } } // 1610 preload-vf-module - private void getVfModulePreloadData(String vnf_name, String vnf_type, VfModulePreloadDataBuilder preloadDataBuilder) - { + private void getVfModulePreloadData(String vnf_name, String vnf_type, + VfModulePreloadDataBuilder preloadDataBuilder) { // default to config - getVfModulePreloadData(vnf_name, vnf_type ,preloadDataBuilder,LogicalDatastoreType.CONFIGURATION); + getVfModulePreloadData(vnf_name, vnf_type, preloadDataBuilder, LogicalDatastoreType.CONFIGURATION); } - private void getVfModulePreloadData(String preload_name, String preload_type, VfModulePreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type) - { + private void getVfModulePreloadData(String preload_name, String preload_type, + VfModulePreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type) { // See if any data exists yet for this name/type, if so grab it. InstanceIdentifier preloadInstanceIdentifier = - InstanceIdentifier.<PreloadVfModules>builder(PreloadVfModules.class) + InstanceIdentifier.<PreloadVfModules>builder(PreloadVfModules.class) .child(VfModulePreloadList.class, new VfModulePreloadListKey(preload_name, preload_type)).build(); ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction(); Optional<VfModulePreloadList> data = null; try { data = (Optional<VfModulePreloadList>) readTx.read(type, preloadInstanceIdentifier).get(); } catch (InterruptedException | ExecutionException e) { - log.error("Caught Exception reading MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] " ,e); + log.error("Caught Exception reading MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] ", + e); } if (data != null && data.isPresent()) { VfModulePreloadData preloadData = (VfModulePreloadData) data.get().getVfModulePreloadData(); if (preloadData != null) { - log.info("Read MD-SAL ("+type+") data for ["+preload_name+","+preload_type+"] VfModulePreloadData: " + preloadData); + log.info("Read MD-SAL (" + type + ") data for [" + preload_name + "," + preload_type + + "] VfModulePreloadData: " + preloadData); preloadDataBuilder.setVfModuleTopologyInformation(preloadData.getVfModuleTopologyInformation()); preloadDataBuilder.setOperStatus(preloadData.getOperStatus()); } else { - log.info("No preload-data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] "); + log.info( + "No preload-data found in MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] "); } } else { - log.info("No data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] "); + log.info("No data found in MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] "); } } - private void SaveVnfList (final VnfList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException { + private void SaveVnfList(final VnfList entry, boolean merge, LogicalDatastoreType storeType) + throws IllegalStateException { // Each entry will be identifiable by a unique key, we have to create that identifier InstanceIdentifier.InstanceIdentifierBuilder<VnfList> vnfListIdBuilder = - InstanceIdentifier.<Vnfs>builder(Vnfs.class) - .child(VnfList.class, entry.getKey()); + InstanceIdentifier.<Vnfs>builder(Vnfs.class).child(VnfList.class, entry.getKey()); InstanceIdentifier<VnfList> path = vnfListIdBuilder.build(); int tries = 2; - while(true) { + while (true) { try { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); if (merge) { @@ -787,8 +749,8 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL log.debug("Update DataStore succeeded"); break; } catch (final TransactionCommitFailedException e) { - if(e instanceof OptimisticLockFailedException) { - if(--tries <= 0) { + if (e instanceof OptimisticLockFailedException) { + if (--tries <= 0) { log.debug("Got OptimisticLockFailedException on last try - failing "); throw new IllegalStateException(e); } @@ -801,11 +763,11 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } } - private void DeleteVnfList (final VnfList entry, LogicalDatastoreType storeType) throws IllegalStateException { + + private void DeleteVnfList(final VnfList entry, LogicalDatastoreType storeType) throws IllegalStateException { // Each entry will be identifiable by a unique key, we have to create that identifier InstanceIdentifier.InstanceIdentifierBuilder<VnfList> vnfListIdBuilder = - InstanceIdentifier.<Vnfs>builder(Vnfs.class) - .child(VnfList.class, entry.getKey()); + InstanceIdentifier.<Vnfs>builder(Vnfs.class).child(VnfList.class, entry.getKey()); InstanceIdentifier<VnfList> path = vnfListIdBuilder.build(); int tries = 2; @@ -832,15 +794,15 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } //1610 vnf-instance - private void SaveVnfInstanceList (final VnfInstanceList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException { + private void SaveVnfInstanceList(final VnfInstanceList entry, boolean merge, LogicalDatastoreType storeType) + throws IllegalStateException { // Each entry will be identifiable by a unique key, we have to create that identifier InstanceIdentifier.InstanceIdentifierBuilder<VnfInstanceList> vnfInstanceListIdBuilder = - InstanceIdentifier.<VnfInstances>builder(VnfInstances.class) - .child(VnfInstanceList.class, entry.getKey()); + InstanceIdentifier.<VnfInstances>builder(VnfInstances.class).child(VnfInstanceList.class, entry.getKey()); InstanceIdentifier<VnfInstanceList> path = vnfInstanceListIdBuilder.build(); int tries = 2; - while(true) { + while (true) { try { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); if (merge) { @@ -852,8 +814,8 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL log.debug("Update DataStore succeeded"); break; } catch (final TransactionCommitFailedException e) { - if(e instanceof OptimisticLockFailedException) { - if(--tries <= 0) { + if (e instanceof OptimisticLockFailedException) { + if (--tries <= 0) { log.debug("Got OptimisticLockFailedException on last try - failing "); throw new IllegalStateException(e); } @@ -867,15 +829,15 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } //1610 vf-module - private void SaveVfModuleList (final VfModuleList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException { + private void SaveVfModuleList(final VfModuleList entry, boolean merge, LogicalDatastoreType storeType) + throws IllegalStateException { // Each entry will be identifiable by a unique key, we have to create that identifier InstanceIdentifier.InstanceIdentifierBuilder<VfModuleList> vfModuleListIdBuilder = - InstanceIdentifier.<VfModules>builder(VfModules.class) - .child(VfModuleList.class, entry.getKey()); + InstanceIdentifier.<VfModules>builder(VfModules.class).child(VfModuleList.class, entry.getKey()); InstanceIdentifier<VfModuleList> path = vfModuleListIdBuilder.build(); int tries = 2; - while(true) { + while (true) { try { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); if (merge) { @@ -887,8 +849,8 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL log.debug("Update DataStore succeeded"); break; } catch (final TransactionCommitFailedException e) { - if(e instanceof OptimisticLockFailedException) { - if(--tries <= 0) { + if (e instanceof OptimisticLockFailedException) { + if (--tries <= 0) { log.debug("Got OptimisticLockFailedException on last try - failing "); throw new IllegalStateException(e); } @@ -901,15 +863,15 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } } - private void SavePreloadList(final VnfPreloadList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException{ + private void SavePreloadList(final VnfPreloadList entry, boolean merge, LogicalDatastoreType storeType) + throws IllegalStateException { // Each entry will be identifiable by a unique key, we have to create that identifier InstanceIdentifier.InstanceIdentifierBuilder<VnfPreloadList> vnfListIdBuilder = - InstanceIdentifier.<PreloadVnfs>builder(PreloadVnfs.class) - .child(VnfPreloadList.class, entry.getKey()); + InstanceIdentifier.<PreloadVnfs>builder(PreloadVnfs.class).child(VnfPreloadList.class, entry.getKey()); InstanceIdentifier<VnfPreloadList> path = vnfListIdBuilder.build(); int tries = 2; - while(true) { + while (true) { try { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); if (merge) { @@ -921,8 +883,8 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL log.debug("Update DataStore succeeded"); break; } catch (final TransactionCommitFailedException e) { - if(e instanceof OptimisticLockFailedException) { - if(--tries <= 0) { + if (e instanceof OptimisticLockFailedException) { + if (--tries <= 0) { log.debug("Got OptimisticLockFailedException on last try - failing "); throw new IllegalStateException(e); } @@ -936,15 +898,16 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } //1610 preload vnf-instance - private void SaveVnfInstancePreloadList(final VnfInstancePreloadList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException{ + private void SaveVnfInstancePreloadList(final VnfInstancePreloadList entry, boolean merge, + LogicalDatastoreType storeType) throws IllegalStateException { // Each entry will be identifiable by a unique key, we have to create that identifier InstanceIdentifier.InstanceIdentifierBuilder<VnfInstancePreloadList> vnfInstanceListIdBuilder = - InstanceIdentifier.<PreloadVnfInstances>builder(PreloadVnfInstances.class) + InstanceIdentifier.<PreloadVnfInstances>builder(PreloadVnfInstances.class) .child(VnfInstancePreloadList.class, entry.getKey()); InstanceIdentifier<VnfInstancePreloadList> path = vnfInstanceListIdBuilder.build(); int tries = 2; - while(true) { + while (true) { try { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); if (merge) { @@ -956,8 +919,8 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL log.debug("Update DataStore succeeded"); break; } catch (final TransactionCommitFailedException e) { - if(e instanceof OptimisticLockFailedException) { - if(--tries <= 0) { + if (e instanceof OptimisticLockFailedException) { + if (--tries <= 0) { log.debug("Got OptimisticLockFailedException on last try - failing "); throw new IllegalStateException(e); } @@ -971,15 +934,16 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } //1610 preload vf-module - private void SaveVfModulePreloadList(final VfModulePreloadList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException{ + private void SaveVfModulePreloadList(final VfModulePreloadList entry, boolean merge, LogicalDatastoreType storeType) + throws IllegalStateException { // Each entry will be identifiable by a unique key, we have to create that identifier InstanceIdentifier.InstanceIdentifierBuilder<VfModulePreloadList> vfModuleListIdBuilder = - InstanceIdentifier.<PreloadVfModules>builder(PreloadVfModules.class) + InstanceIdentifier.<PreloadVfModules>builder(PreloadVfModules.class) .child(VfModulePreloadList.class, entry.getKey()); InstanceIdentifier<VfModulePreloadList> path = vfModuleListIdBuilder.build(); int tries = 2; - while(true) { + while (true) { try { WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); if (merge) { @@ -991,8 +955,8 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL log.debug("Update DataStore succeeded"); break; } catch (final TransactionCommitFailedException e) { - if(e instanceof OptimisticLockFailedException) { - if(--tries <= 0) { + if (e instanceof OptimisticLockFailedException) { + if (--tries <= 0) { log.debug("Got OptimisticLockFailedException on last try - failing "); throw new IllegalStateException(e); } @@ -1006,52 +970,51 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL } //Save the requestId into MDC - private void setRequestIdAsMDC(String requestId){ + private void setRequestIdAsMDC(String requestId) { MDC.put("RequestId", requestId); } //1610 vnf-instance-topology-operation - @Override - public Future<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation( - VnfInstanceTopologyOperationInput input) { + @Override public Future<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation( + VnfInstanceTopologyOperationInput input) { final String SVC_OPERATION = "vnf-instance-topology-operation"; VnfInstanceServiceData vnfInstanceServiceData = null; ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder(); Properties parms = new Properties(); - log.info( SVC_OPERATION +" called." ); + log.info(SVC_OPERATION + " called."); // create a new response object VnfInstanceTopologyOperationOutputBuilder responseBuilder = new VnfInstanceTopologyOperationOutputBuilder(); //if(input == null || input.getVnfInstanceRequestInformation().getVnfInstanceTopologyIdentifier().getVnfInstanceId() == null ) - if(input == null || - input.getVnfInstanceRequestInformation() == null || - input.getVnfInstanceRequestInformation().getVnfInstanceId() == null ) - { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-instance-id"); + if (input == null || input.getVnfInstanceRequestInformation() == null + || input.getVnfInstanceRequestInformation().getVnfInstanceId() == null) { + log.debug("exiting " + SVC_OPERATION + " because of invalid input, null or empty vnf-instance-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<VnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfInstanceTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } // Grab the service instance ID from the input buffer String viid = input.getVnfInstanceRequestInformation().getVnfInstanceId(); - String preload_name = input.getVnfInstanceRequestInformation().getVnfInstanceName(); + String preload_name = input.getVnfInstanceRequestInformation().getVnfInstanceName(); String preload_type = input.getVnfInstanceRequestInformation().getVnfModelId(); // Make sure we have a valid viid - if(viid == null || viid.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid vnf-instance-id"); + if (viid == null || viid.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid vnf-instance-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<VnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfInstanceTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1067,11 +1030,11 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // Get service-data VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder = new VnfInstanceServiceDataBuilder(); - getVnfInstanceServiceData(viid,vnfInstanceServiceDataBuilder); + getVnfInstanceServiceData(viid, vnfInstanceServiceDataBuilder); // Get operational-data VnfInstanceServiceDataBuilder operDataBuilder = new VnfInstanceServiceDataBuilder(); - getVnfInstanceServiceData(viid,operDataBuilder, LogicalDatastoreType.OPERATIONAL ); + getVnfInstanceServiceData(viid, operDataBuilder, LogicalDatastoreType.OPERATIONAL); // Set the serviceStatus based on input setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader()); @@ -1094,38 +1057,34 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // uses vnf-configuration-information; // uses oper-status; - log.info("Adding INPUT data for "+SVC_OPERATION+" ["+viid+"] input: " + input); + log.info("Adding INPUT data for " + SVC_OPERATION + " [" + viid + "] input: " + input); VnfInstanceTopologyOperationInputBuilder inputBuilder = new VnfInstanceTopologyOperationInputBuilder(input); VnfSdnUtil.toProperties(parms, inputBuilder.build()); - log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+viid+"] operational-data: " + operDataBuilder.build()); + log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + viid + "] operational-data: " + operDataBuilder + .build()); VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder); - log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preload-data: " + vnfInstancePreloadDataBuilder.build()); + log.info( + "Adding CONFIG data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preload-data: " + + vnfInstancePreloadDataBuilder.build()); VnfSdnUtil.toProperties(parms, "vnf-instance-preload-data", vnfInstancePreloadDataBuilder); // Call SLI sync method // Get SvcLogicService reference - Properties respProps = null; - String errorCode = "200"; String errorMessage = null; String ackFinal = "Y"; + try { + if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync")) { - try - { - if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync")) - { - - try - { - respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vnfInstanceServiceDataBuilder, parms); - } - catch (Exception e) - { - log.error("Caught exception executing service logic for "+ SVC_OPERATION, e); + try { + respProps = svcLogicClient + .execute("VNF-API", SVC_OPERATION, null, "sync", vnfInstanceServiceDataBuilder, parms); + } catch (Exception e) { + log.error("Caught exception executing service logic for " + SVC_OPERATION, e); errorMessage = e.getMessage(); errorCode = "500"; } @@ -1133,27 +1092,23 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'"; errorCode = "503"; } - } - catch (Exception e) - { + } catch (Exception e) { errorCode = "500"; errorMessage = e.getMessage(); log.error("Caught exception looking for service logic", e); } - - if (respProps != null) - { + if (respProps != null) { errorCode = respProps.getProperty("error-code"); errorMessage = respProps.getProperty("error-message"); ackFinal = respProps.getProperty("ack-final", "Y"); } - setServiceStatus(serviceStatusBuilder,errorCode, errorMessage, ackFinal); + setServiceStatus(serviceStatusBuilder, errorCode, errorMessage, ackFinal); serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete); serviceStatusBuilder.setRpcName(RpcName.VnfInstanceTopologyOperation); - if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) { + if (errorCode != null && errorCode.length() != 0 && !(errorCode.equals("0") || errorCode.equals("200"))) { responseBuilder.setResponseCode(errorCode); responseBuilder.setResponseMessage(errorMessage); responseBuilder.setAckFinalIndicator(ackFinal); @@ -1161,13 +1116,14 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL vnfInstanceListBuilder.setVnfInstanceId(viid); vnfInstanceListBuilder.setServiceStatus(serviceStatusBuilder.build()); try { - SaveVnfInstanceList (vnfInstanceListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION); + SaveVnfInstanceList(vnfInstanceListBuilder.build(), true, LogicalDatastoreType.CONFIGURATION); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+viid+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + viid + "] \n", e); } - log.error("Returned FAILED for "+SVC_OPERATION+" ["+viid+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + viid + "] " + responseBuilder.build()); RpcResult<VnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfInstanceTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1175,22 +1131,21 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // Got success from SLI try { vnfInstanceServiceData = vnfInstanceServiceDataBuilder.build(); - log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+viid+"] VnfInstanceServiceData: " + vnfInstanceServiceData); + log.info("Updating MD-SAL for " + SVC_OPERATION + " [" + viid + "] VnfInstanceServiceData: " + + vnfInstanceServiceData); // svc-configuration-list VnfInstanceListBuilder vnfInstanceListBuilder = new VnfInstanceListBuilder(); vnfInstanceListBuilder.setVnfInstanceServiceData(vnfInstanceServiceData); vnfInstanceListBuilder.setVnfInstanceId(vnfInstanceServiceData.getVnfInstanceId()); //siid = vnfInstanceServiceData.getVnfInstanceId(); vnfInstanceListBuilder.setServiceStatus(serviceStatusBuilder.build()); - SaveVnfInstanceList (vnfInstanceListBuilder.build(), false,LogicalDatastoreType.CONFIGURATION); - if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null) - { + SaveVnfInstanceList(vnfInstanceListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); + if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null) { // Only update operational tree on Delete or Activate - if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) || - input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate)) - { + if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) || input.getSdncRequestHeader() + .getSvcAction().equals(SvcAction.Activate)) { log.info("Updating OPERATIONAL tree."); - SaveVnfInstanceList (vnfInstanceListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); + SaveVnfInstanceList(vnfInstanceListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); } } VnfInstanceInformationBuilder vnfInstanceInformationBuilder = new VnfInstanceInformationBuilder(); @@ -1198,13 +1153,14 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL responseBuilder.setVnfInstanceInformation(vnfInstanceInformationBuilder.build()); responseBuilder.setServiceInformation(vnfInstanceServiceData.getServiceInformation()); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+viid+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + viid + "] \n", e); responseBuilder.setResponseCode("500"); responseBuilder.setResponseMessage(e.toString()); responseBuilder.setAckFinalIndicator("Y"); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+viid+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + viid + "] " + responseBuilder.build()); RpcResult<VnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfInstanceTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1212,23 +1168,22 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // Update succeeded responseBuilder.setResponseCode(errorCode); responseBuilder.setAckFinalIndicator(ackFinal); - if (errorMessage != null) - { + if (errorMessage != null) { responseBuilder.setResponseMessage(errorMessage); } - log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+viid+"] "); - log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+viid+"] " + responseBuilder.build()); + log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + viid + "] "); + log.info("Returned SUCCESS for " + SVC_OPERATION + " [" + viid + "] " + responseBuilder.build()); RpcResult<VnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfInstanceTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return success return Futures.immediateFuture(rpcResult); } //1610 vf-module-topology-operation - @Override - public Future<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation( - VfModuleTopologyOperationInput input) { + @Override public Future<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation( + VfModuleTopologyOperationInput input) { final String SVC_OPERATION = "vf-module-topology-operation"; VfModuleServiceData vfModuleServiceData = null; @@ -1236,38 +1191,38 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder(); Properties parms = new Properties(); - log.info( SVC_OPERATION +" called." ); + log.info(SVC_OPERATION + " called."); // create a new response object VfModuleTopologyOperationOutputBuilder responseBuilder = new VfModuleTopologyOperationOutputBuilder(); // Validate vf-module-id from vf-module-request-information - if(input == null || - input.getVfModuleRequestInformation() == null || - input.getVfModuleRequestInformation().getVfModuleId() == null) - { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vf-module-id"); + if (input == null || input.getVfModuleRequestInformation() == null + || input.getVfModuleRequestInformation().getVfModuleId() == null) { + log.debug("exiting " + SVC_OPERATION + " because of invalid input, null or empty vf-module-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<VfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } // Grab the vf-module-request-information.vf-module-id from the input buffer - String vfid = input.getVfModuleRequestInformation().getVfModuleId(); - String preload_name = input.getVfModuleRequestInformation().getVfModuleName(); + String vfid = input.getVfModuleRequestInformation().getVfModuleId(); + String preload_name = input.getVfModuleRequestInformation().getVfModuleName(); String preload_type = input.getVfModuleRequestInformation().getVfModuleModelId(); // Make sure we have a valid siid - if(vfid == null || vfid.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid vf-module-id"); + if (vfid == null || vfid.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid vf-module-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<VfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1275,13 +1230,14 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // 1610 add vf-module-id to vnf-instance-list.vf-module-relationship-list String viid = input.getVfModuleRequestInformation().getVnfInstanceId(); - if(viid == null || viid.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid vnf-instance-id"); + if (viid == null || viid.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid vnf-instance-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<VfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1297,11 +1253,11 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // Get vf-module-service-data VfModuleServiceDataBuilder vfModuleServiceDataBuilder = new VfModuleServiceDataBuilder(); - getVfModuleServiceData(vfid,vfModuleServiceDataBuilder); + getVfModuleServiceData(vfid, vfModuleServiceDataBuilder); // Get vf-module operation-data VfModuleServiceDataBuilder operDataBuilder = new VfModuleServiceDataBuilder(); - getVfModuleServiceData(vfid,operDataBuilder, LogicalDatastoreType.OPERATIONAL ); + getVfModuleServiceData(vfid, operDataBuilder, LogicalDatastoreType.OPERATIONAL); // save service-data builder object for rollback VfModuleServiceDataBuilder rb_vfModuleServiceDataBuilder = vfModuleServiceDataBuilder; @@ -1313,7 +1269,7 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // vnf-instance operational-data VnfInstanceServiceDataBuilder vnfInstanceOperDataBuilder = new VnfInstanceServiceDataBuilder(); - getVnfInstanceServiceData(viid, vnfInstanceOperDataBuilder, LogicalDatastoreType.OPERATIONAL ); + getVnfInstanceServiceData(viid, vnfInstanceOperDataBuilder, LogicalDatastoreType.OPERATIONAL); // save operational builder object for rollback VnfInstanceServiceDataBuilder rb_vnfInstanceServiceDataBuilder = vnfInstanceServiceDataBuilder; @@ -1340,44 +1296,42 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // uses vnf-configuration-information; // uses oper-status; - log.info("Adding INPUT data for "+SVC_OPERATION+" ["+vfid+"] input: " + input); + log.info("Adding INPUT data for " + SVC_OPERATION + " [" + vfid + "] input: " + input); VfModuleTopologyOperationInputBuilder inputBuilder = new VfModuleTopologyOperationInputBuilder(input); VnfSdnUtil.toProperties(parms, inputBuilder.build()); - log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+vfid+"] vf-module operational-data: " + operDataBuilder.build()); + log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + vfid + "] vf-module operational-data: " + + operDataBuilder.build()); VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder); - log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] vf-module-preload-data: " + vfModulePreloadDataBuilder.build()); + log.info("Adding CONFIG data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] vf-module-preload-data: " + vfModulePreloadDataBuilder.build()); VnfSdnUtil.toProperties(parms, "vf-module-preload-data", vfModulePreloadDataBuilder); - log.info("Adding vnf-instance CONFIG data for "+SVC_OPERATION+" ["+viid+"] vnf-instance-service-data: " + vnfInstanceServiceDataBuilder.build()); + log.info("Adding vnf-instance CONFIG data for " + SVC_OPERATION + " [" + viid + "] vnf-instance-service-data: " + + vnfInstanceServiceDataBuilder.build()); VnfSdnUtil.toProperties(parms, "vnf-instance-service-data", vnfInstanceServiceDataBuilder); - log.info("Adding vnf-instance OPERATIONAL data for "+SVC_OPERATION+" ["+viid+"] vnf-instance operational-data: " + vnfInstanceOperDataBuilder.build()); + log.info("Adding vnf-instance OPERATIONAL data for " + SVC_OPERATION + " [" + viid + + "] vnf-instance operational-data: " + vnfInstanceOperDataBuilder.build()); VnfSdnUtil.toProperties(parms, "vnf-instance-operational-data", vnfInstanceOperDataBuilder); // Call SLI sync method // Get SvcLogicService reference Properties respProps = null; - String errorCode = "200"; String errorMessage = null; String ackFinal = "Y"; + try { + if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync")) { - try - { - if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync")) - { - - try - { - respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vfModuleServiceDataBuilder, parms); - } - catch (Exception e) - { - log.error("Caught exception executing service logic on vf-module for "+ SVC_OPERATION, e); + try { + respProps = svcLogicClient + .execute("VNF-API", SVC_OPERATION, null, "sync", vfModuleServiceDataBuilder, parms); + } catch (Exception e) { + log.error("Caught exception executing service logic on vf-module for " + SVC_OPERATION, e); errorMessage = e.getMessage(); errorCode = "500"; } @@ -1386,9 +1340,7 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'"; errorCode = "503"; } - } - catch (Exception e) - { + } catch (Exception e) { errorCode = "500"; errorMessage = e.getMessage(); log.error("Caught exception looking for service logic", e); @@ -1401,11 +1353,11 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL ackFinal = respProps.getProperty("ack-final", "Y"); } - setServiceStatus(serviceStatusBuilder,errorCode, errorMessage, ackFinal); + setServiceStatus(serviceStatusBuilder, errorCode, errorMessage, ackFinal); serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete); serviceStatusBuilder.setRpcName(RpcName.VfModuleTopologyOperation); - if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) { + if (errorCode != null && errorCode.length() != 0 && !(errorCode.equals("0") || errorCode.equals("200"))) { responseBuilder.setResponseCode(errorCode); responseBuilder.setResponseMessage(errorMessage); responseBuilder.setAckFinalIndicator(ackFinal); @@ -1413,13 +1365,14 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL vfModuleListBuilder.setVfModuleId(vfid); vfModuleListBuilder.setServiceStatus(serviceStatusBuilder.build()); try { - SaveVfModuleList (vfModuleListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION); + SaveVfModuleList(vfModuleListBuilder.build(), true, LogicalDatastoreType.CONFIGURATION); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+vfid+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + vfid + "] \n", e); } - log.error("Returned FAILED for "+SVC_OPERATION+" ["+vfid+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + vfid + "] " + responseBuilder.build()); RpcResult<VfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1428,22 +1381,21 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // save vf-module-service-data in MD-SAL try { vfModuleServiceData = vfModuleServiceDataBuilder.build(); - log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+vfid+"] VfModuleServiceData: " + vfModuleServiceData); + log.info( + "Updating MD-SAL for " + SVC_OPERATION + " [" + vfid + "] VfModuleServiceData: " + vfModuleServiceData); // vf-module-list VfModuleListBuilder vfModuleListBuilder = new VfModuleListBuilder(); vfModuleListBuilder.setVfModuleServiceData(vfModuleServiceData); vfModuleListBuilder.setVfModuleId(vfModuleServiceData.getVfModuleId()); //vfid = vfModuleServiceData.getVfModuleId(); vfModuleListBuilder.setServiceStatus(serviceStatusBuilder.build()); - SaveVfModuleList (vfModuleListBuilder.build(), false,LogicalDatastoreType.CONFIGURATION); - if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null) - { + SaveVfModuleList(vfModuleListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); + if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null) { // Only update operational tree on Delete or Activate - if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) || - input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate)) - { + if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) || input.getSdncRequestHeader() + .getSvcAction().equals(SvcAction.Activate)) { log.info("Updating OPERATIONAL tree."); - SaveVfModuleList (vfModuleListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); + SaveVfModuleList(vfModuleListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); } } VfModuleInformationBuilder vfModuleInformationBuilder = new VfModuleInformationBuilder(); @@ -1451,13 +1403,14 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL responseBuilder.setVfModuleInformation(vfModuleInformationBuilder.build()); responseBuilder.setServiceInformation(vfModuleServiceData.getServiceInformation()); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+vfid+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + vfid + "] \n", e); responseBuilder.setResponseCode("500"); responseBuilder.setResponseMessage(e.toString()); responseBuilder.setAckFinalIndicator("Y"); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+vfid+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + vfid + "] " + responseBuilder.build()); RpcResult<VfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1465,81 +1418,60 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // Update succeeded responseBuilder.setResponseCode(errorCode); responseBuilder.setAckFinalIndicator(ackFinal); - if (errorMessage != null) - { + if (errorMessage != null) { responseBuilder.setResponseMessage(errorMessage); } - log.info("Updated vf-module in MD-SAL for "+SVC_OPERATION+" ["+vfid+"] "); - log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+vfid+"] " + responseBuilder.build()); + log.info("Updated vf-module in MD-SAL for " + SVC_OPERATION + " [" + vfid + "] "); + log.info("Returned SUCCESS for " + SVC_OPERATION + " [" + vfid + "] " + responseBuilder.build()); RpcResult<VfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build(); // return success return Futures.immediateFuture(rpcResult); } @Override - public Future<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation( - VnfTopologyOperationInput input) { - + public Future<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(VnfTopologyOperationInput input) { final String SVC_OPERATION = "vnf-topology-operation"; ServiceData serviceData = null; ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder(); Properties parms = new Properties(); - log.info( SVC_OPERATION +" called." ); + log.info(SVC_OPERATION + " called."); // create a new response object VnfTopologyOperationOutputBuilder responseBuilder = new VnfTopologyOperationOutputBuilder(); - if(input == null || - input.getServiceInformation() == null || - input.getServiceInformation().getServiceInstanceId() == null || - input.getServiceInformation().getServiceInstanceId().length() == 0) - { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty service-instance-id"); + if (input == null || input.getServiceInformation() == null + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid input, null or empty service-instance-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<VnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); } - if(input.getVnfRequestInformation() == null || - input.getVnfRequestInformation().getVnfId() == null || - input.getVnfRequestInformation().getVnfId().length() == 0) - { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vf-module-id"); + if (input.getVnfRequestInformation() == null || input.getVnfRequestInformation().getVnfId() == null + || input.getVnfRequestInformation().getVnfId().length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid input, null or empty vf-module-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<VnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); } // Grab the service instance ID from the input buffer String siid = input.getVnfRequestInformation().getVnfId(); - String preload_name = input.getVnfRequestInformation().getVnfName(); + String preload_name = input.getVnfRequestInformation().getVnfName(); String preload_type = input.getVnfRequestInformation().getVnfType(); - /* - // Make sure we have a valid siid - if(siid == null || siid.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid siid"); - responseBuilder.setResponseCode("403"); - responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id"); - responseBuilder.setAckFinalIndicator("Y"); - RpcResult<VnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); - // return error - return Futures.immediateFuture(rpcResult); - } - */ - if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); setRequestIdAsMDC(input.getSdncRequestHeader().getSvcRequestId()); @@ -1549,10 +1481,10 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL getPreloadData(preload_name, preload_type, preloadDataBuilder); ServiceDataBuilder serviceDataBuilder = new ServiceDataBuilder(); - getServiceData(siid,serviceDataBuilder); + getServiceData(siid, serviceDataBuilder); ServiceDataBuilder operDataBuilder = new ServiceDataBuilder(); - getServiceData(siid,operDataBuilder, LogicalDatastoreType.OPERATIONAL ); + getServiceData(siid, operDataBuilder, LogicalDatastoreType.OPERATIONAL); // Set the serviceStatus based on input setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader()); @@ -1575,38 +1507,34 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // uses vnf-configuration-information; // uses oper-status; - log.info("Adding INPUT data for "+SVC_OPERATION+" ["+siid+"] input: " + input); + log.info("Adding INPUT data for " + SVC_OPERATION + " [" + siid + "] input: " + input); VnfTopologyOperationInputBuilder inputBuilder = new VnfTopologyOperationInputBuilder(input); VnfSdnUtil.toProperties(parms, inputBuilder.build()); - log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+siid+"] operational-data: " + operDataBuilder.build()); + log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + siid + "] operational-data: " + operDataBuilder + .build()); VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder); - log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preload-data: " + preloadDataBuilder.build()); + log.info( + "Adding CONFIG data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preload-data: " + + preloadDataBuilder.build()); VnfSdnUtil.toProperties(parms, "preload-data", preloadDataBuilder); // Call SLI sync method // Get SvcLogicService reference - Properties respProps = null; - String errorCode = "200"; String errorMessage = null; String ackFinal = "Y"; + try { + if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync")) { - try - { - if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync")) - { - - try - { - respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", serviceDataBuilder, parms); - } - catch (Exception e) - { - log.error("Caught exception executing service logic for "+ SVC_OPERATION, e); + try { + respProps = + svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", serviceDataBuilder, parms); + } catch (Exception e) { + log.error("Caught exception executing service logic for " + SVC_OPERATION, e); errorMessage = e.getMessage(); errorCode = "500"; } @@ -1614,27 +1542,23 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'"; errorCode = "503"; } - } - catch (Exception e) - { + } catch (Exception e) { errorCode = "500"; errorMessage = e.getMessage(); log.error("Caught exception looking for service logic", e); } - - if (respProps != null) - { + if (respProps != null) { errorCode = respProps.getProperty("error-code"); errorMessage = respProps.getProperty("error-message"); ackFinal = respProps.getProperty("ack-final", "Y"); } - setServiceStatus(serviceStatusBuilder,errorCode, errorMessage, ackFinal); + setServiceStatus(serviceStatusBuilder, errorCode, errorMessage, ackFinal); serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete); serviceStatusBuilder.setRpcName(RpcName.VnfTopologyOperation); - if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) { + if (errorCode != null && errorCode.length() != 0 && !(errorCode.equals("0") || errorCode.equals("200"))) { responseBuilder.setResponseCode(errorCode); responseBuilder.setResponseMessage(errorMessage); responseBuilder.setAckFinalIndicator(ackFinal); @@ -1642,13 +1566,13 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL vnfListBuilder.setVnfId(siid); vnfListBuilder.setServiceStatus(serviceStatusBuilder.build()); try { - SaveVnfList (vnfListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION); + SaveVnfList(vnfListBuilder.build(), true, LogicalDatastoreType.CONFIGURATION); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + siid + "] \n", e); } - log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + siid + "] " + responseBuilder.build()); RpcResult<VnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1656,26 +1580,24 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // Got success from SLI try { serviceData = serviceDataBuilder.build(); - log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] ServiceData: " + serviceData); + log.info("Updating MD-SAL for " + SVC_OPERATION + " [" + siid + "] ServiceData: " + serviceData); // svc-configuration-list VnfListBuilder vnfListBuilder = new VnfListBuilder(); vnfListBuilder.setServiceData(serviceData); vnfListBuilder.setVnfId(serviceData.getVnfId()); siid = serviceData.getVnfId(); vnfListBuilder.setServiceStatus(serviceStatusBuilder.build()); - SaveVnfList (vnfListBuilder.build(), false,LogicalDatastoreType.CONFIGURATION); - if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null) - { + SaveVnfList(vnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); + if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null) { // Only update operational tree on Delete or Activate if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate)) { log.info("Updating OPERATIONAL tree."); - SaveVnfList (vnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); - } - else if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) || - input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Rollback)) { - log.info("Delete OPERATIONAL tree."); - DeleteVnfList (vnfListBuilder.build(), LogicalDatastoreType.CONFIGURATION); - DeleteVnfList (vnfListBuilder.build(), LogicalDatastoreType.OPERATIONAL); + SaveVnfList(vnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); + } else if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) || input + .getSdncRequestHeader().getSvcAction().equals(SvcAction.Rollback)) { + log.info("Delete OPERATIONAL tree."); + DeleteVnfList(vnfListBuilder.build(), LogicalDatastoreType.CONFIGURATION); + DeleteVnfList(vnfListBuilder.build(), LogicalDatastoreType.OPERATIONAL); } } VnfInformationBuilder vnfInformationBuilder = new VnfInformationBuilder(); @@ -1683,13 +1605,13 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL responseBuilder.setVnfInformation(vnfInformationBuilder.build()); responseBuilder.setServiceInformation(serviceData.getServiceInformation()); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + siid + "] \n", e); responseBuilder.setResponseCode("500"); responseBuilder.setResponseMessage(e.toString()); responseBuilder.setAckFinalIndicator("Y"); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + siid + "] " + responseBuilder.build()); RpcResult<VnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1697,55 +1619,53 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // Update succeeded responseBuilder.setResponseCode(errorCode); responseBuilder.setAckFinalIndicator(ackFinal); - if (errorMessage != null) - { + if (errorMessage != null) { responseBuilder.setResponseMessage(errorMessage); } - log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+siid+"] "); - log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build()); + log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + siid + "] "); + log.info("Returned SUCCESS for " + SVC_OPERATION + " [" + siid + "] " + responseBuilder.build()); RpcResult<VnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<VnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build(); // return success return Futures.immediateFuture(rpcResult); } - - @Override - public Future<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation( - NetworkTopologyOperationInput input) { + @Override public Future<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation( + NetworkTopologyOperationInput input) { final String SVC_OPERATION = "network-topology-operation"; ServiceData serviceData = null; ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder(); Properties parms = new Properties(); - log.info( SVC_OPERATION +" called." ); + log.info(SVC_OPERATION + " called."); // create a new response object NetworkTopologyOperationOutputBuilder responseBuilder = new NetworkTopologyOperationOutputBuilder(); - if(input == null || - input.getServiceInformation() == null || - input.getServiceInformation().getServiceInstanceId() == null || - input.getServiceInformation().getServiceInstanceId().length() == 0) - { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty service-instance-id"); + if (input == null || input.getServiceInformation() == null + || input.getServiceInformation().getServiceInstanceId() == null + || input.getServiceInformation().getServiceInstanceId().length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid input, null or empty service-instance-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<NetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } - if(input.getNetworkRequestInformation() == null || input.getNetworkRequestInformation().getNetworkName() == null) { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty service-instance-id"); + if (input.getNetworkRequestInformation() == null + || input.getNetworkRequestInformation().getNetworkName() == null) { + log.debug("exiting " + SVC_OPERATION + " because of invalid input, null or empty service-instance-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<NetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1754,26 +1674,12 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL String siid = null; if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Assign)) { siid = input.getNetworkRequestInformation().getNetworkName(); - } - else { + } else { siid = input.getNetworkRequestInformation().getNetworkId(); } - String preload_name = input.getNetworkRequestInformation().getNetworkName(); + String preload_name = input.getNetworkRequestInformation().getNetworkName(); String preload_type = input.getNetworkRequestInformation().getNetworkType(); - /* - if(siid == null || siid.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid siid"); - responseBuilder.setResponseCode("403"); - responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id"); - responseBuilder.setAckFinalIndicator("Y"); - RpcResult<NetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); - // return error - return Futures.immediateFuture(rpcResult); - } - */ - if (input.getSdncRequestHeader() != null) { responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId()); setRequestIdAsMDC(input.getSdncRequestHeader().getSvcRequestId()); @@ -1782,41 +1688,26 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder(); getPreloadData(preload_name, preload_type, preloadDataBuilder); - log.info("Adding INPUT data for "+SVC_OPERATION+" ["+siid+"] input: " + input); + log.info("Adding INPUT data for " + SVC_OPERATION + " [" + siid + "] input: " + input); NetworkTopologyOperationInputBuilder inputBuilder = new NetworkTopologyOperationInputBuilder(input); VnfSdnUtil.toProperties(parms, inputBuilder.build()); -/* - log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+siid+"] operational-data: " + operDataBuilder.build()); - VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder); - - log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preload-data: " + preloadDataBuilder.build()); - VnfSdnUtil.toProperties(parms, "preload-data", preloadDataBuilder); -*/ - // Call SLI sync method // Get SvcLogicService reference - Properties respProps = null; - String errorCode = "200"; String errorMessage = null; String ackFinal = "Y"; String networkId = "error"; + try { + if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync")) { - try - { - if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync")) - { - - try - { - respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms); - } - catch (Exception e) - { - log.error("Caught exception executing service logic for "+ SVC_OPERATION, e); + try { + respProps = + svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms); + } catch (Exception e) { + log.error("Caught exception executing service logic for " + SVC_OPERATION, e); errorMessage = e.getMessage(); errorCode = "500"; } @@ -1824,32 +1715,29 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'"; errorCode = "503"; } - } - catch (Exception e) - { + } catch (Exception e) { errorCode = "500"; errorMessage = e.getMessage(); log.error("Caught exception looking for service logic", e); } - - if (respProps != null) - { + if (respProps != null) { errorCode = respProps.getProperty("error-code"); errorMessage = respProps.getProperty("error-message"); ackFinal = respProps.getProperty("ack-final", "Y"); - networkId = respProps.getProperty("networkId","0"); + networkId = respProps.getProperty("networkId", "0"); } - if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) { + if (errorCode != null && errorCode.length() != 0 && !(errorCode.equals("0") || errorCode.equals("200"))) { responseBuilder.setResponseCode(errorCode); responseBuilder.setResponseMessage(errorMessage); responseBuilder.setAckFinalIndicator(ackFinal); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + siid + "] " + responseBuilder.build()); RpcResult<NetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1861,13 +1749,14 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL responseBuilder.setNetworkInformation(networkInformationBuilder.build()); responseBuilder.setServiceInformation(input.getServiceInformation()); } catch (IllegalStateException e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + siid + "] \n", e); responseBuilder.setResponseCode("500"); responseBuilder.setResponseMessage(e.toString()); responseBuilder.setAckFinalIndicator("Y"); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + siid + "] " + responseBuilder.build()); RpcResult<NetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); // return error return Futures.immediateFuture(rpcResult); } @@ -1875,41 +1764,43 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // Update succeeded responseBuilder.setResponseCode(errorCode); responseBuilder.setAckFinalIndicator(ackFinal); - if (errorMessage != null) - { + if (errorMessage != null) { responseBuilder.setResponseMessage(errorMessage); } - log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+siid+"] "); - log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build()); + log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + siid + "] "); + log.info("Returned SUCCESS for " + SVC_OPERATION + " [" + siid + "] " + responseBuilder.build()); RpcResult<NetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build(); // return success return Futures.immediateFuture(rpcResult); } - @Override - public Future<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation( - PreloadVnfTopologyOperationInput input) { + @Override public Future<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation( + PreloadVnfTopologyOperationInput input) { final String SVC_OPERATION = "preload-vnf-topology-operation"; PreloadData preloadData = null; Properties parms = new Properties(); - log.info( SVC_OPERATION +" called." ); + log.info(SVC_OPERATION + " called."); // create a new response object PreloadVnfTopologyOperationOutputBuilder responseBuilder = new PreloadVnfTopologyOperationOutputBuilder(); // Result from savePreloadData final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create(); - if(input == null || input.getVnfTopologyInformation() == null || input.getVnfTopologyInformation().getVnfTopologyIdentifier() == null || input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfName() == null || input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfType() == null) { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-name and vnf-type"); + if (input == null || input.getVnfTopologyInformation() == null + || input.getVnfTopologyInformation().getVnfTopologyIdentifier() == null + || input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfName() == null + || input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfType() == null) { + log.debug("exiting " + SVC_OPERATION + " because of invalid input, null or empty vnf-name and vnf-type"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty vnf-name and vnf-type"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadVnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } @@ -1918,22 +1809,24 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL String preload_type = input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfType(); // Make sure we have a preload_name and preload_type - if(preload_name == null || preload_name.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name"); + if (preload_name == null || preload_name.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid preload-name"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, invalid preload-name"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadVnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } - if(preload_type == null || preload_type.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type"); + if (preload_type == null || preload_type.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid preload-type"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, invalid preload-type"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadVnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } @@ -1947,7 +1840,7 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL //preloadData = preloadDataBuilder.build(); PreloadDataBuilder operDataBuilder = new PreloadDataBuilder(); - getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL ); + getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL); // // setup a preload-data object builder @@ -1961,36 +1854,29 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // // container preload-data // uses vnf-configuration-information; - - - log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input); + log.info( + "Adding INPUT data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] input: " + input); PreloadVnfTopologyOperationInputBuilder inputBuilder = new PreloadVnfTopologyOperationInputBuilder(input); VnfSdnUtil.toProperties(parms, inputBuilder.build()); - log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build()); + log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] operational-data: " + operDataBuilder.build()); VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder); // Call SLI sync method // Get SvcLogicService reference - Properties respProps = null; - String errorCode = "200"; String errorMessage = null; String ackFinal = "Y"; + try { + if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync")) { - try - { - if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync")) - { - - try - { - respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms); - } - catch (Exception e) - { - log.error("Caught exception executing service logic for "+ SVC_OPERATION, e); + try { + respProps = + svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms); + } catch (Exception e) { + log.error("Caught exception executing service logic for " + SVC_OPERATION, e); errorMessage = e.getMessage(); errorCode = "500"; } @@ -1998,24 +1884,20 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'"; errorCode = "503"; } - } - catch (Exception e) - { + } catch (Exception e) { errorCode = "500"; errorMessage = e.getMessage(); log.error("Caught exception looking for service logic", e); } - - if (respProps != null) - { + if (respProps != null) { errorCode = respProps.getProperty("error-code"); errorMessage = respProps.getProperty("error-message"); ackFinal = respProps.getProperty("ack-final", "Y"); // internalError = respProps.getProperty("internal-error", "false"); } - if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) { + if (errorCode != null && errorCode.length() != 0 && !(errorCode.equals("0") || errorCode.equals("200"))) { responseBuilder.setResponseCode(errorCode); responseBuilder.setResponseMessage(errorMessage); @@ -2025,22 +1907,29 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL preloadVnfListBuilder.setVnfName(preload_name); preloadVnfListBuilder.setVnfType(preload_type); preloadVnfListBuilder.setPreloadData(preloadDataBuilder.build()); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'"); + log.error( + "Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] error code: '" + + errorCode + "', Reason: '" + errorMessage + "'"); try { - SavePreloadList (preloadVnfListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION); + SavePreloadList(preloadVnfListBuilder.build(), true, LogicalDatastoreType.CONFIGURATION); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e); + log.error( + "Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] \n", e); } log.debug("Sending Success rpc result due to external error"); RpcResult<PreloadVnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } // Got success from SLI try { preloadData = preloadDataBuilder.build(); - log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + preloadData); + log.info( + "Updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preloadData: " + + preloadData); // svc-configuration-list VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder(); preloadVnfListBuilder.setVnfName(preload_name); @@ -2048,86 +1937,94 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL preloadVnfListBuilder.setPreloadData(preloadData); // SDNGC-989 set merge flag to false - SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); + SavePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); log.info("Updating OPERATIONAL tree."); - SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); + SavePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] \n", e); responseBuilder.setResponseCode("500"); responseBuilder.setResponseMessage(e.toString()); responseBuilder.setAckFinalIndicator("Y"); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + + responseBuilder.build()); RpcResult<PreloadVnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfTopologyOperationOutput>status(false).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } // Update succeeded responseBuilder.setResponseCode(errorCode); responseBuilder.setAckFinalIndicator(ackFinal); - if (errorMessage != null) - { + if (errorMessage != null) { responseBuilder.setResponseMessage(errorMessage); } - log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] "); - log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build()); + log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] "); + log.info( + "Returned SUCCESS for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + responseBuilder + .build()); RpcResult<PreloadVnfTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } //1610 preload-vnf-instance-topology-operation - @Override - public Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation( - PreloadVnfInstanceTopologyOperationInput input) { + @Override public Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation( + PreloadVnfInstanceTopologyOperationInput input) { final String SVC_OPERATION = "preload-vnf-instance-topology-operation"; VnfInstancePreloadData vnfInstancePreloadData = null; Properties parms = new Properties(); - log.info( SVC_OPERATION +" called." ); + log.info(SVC_OPERATION + " called."); // create a new response object - PreloadVnfInstanceTopologyOperationOutputBuilder responseBuilder = new PreloadVnfInstanceTopologyOperationOutputBuilder(); + PreloadVnfInstanceTopologyOperationOutputBuilder responseBuilder = + new PreloadVnfInstanceTopologyOperationOutputBuilder(); // Result from savePreloadData final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create(); - if(input == null || - input.getVnfInstanceTopologyInformation() == null || - input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfInstanceName() == null || - input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfModelId() == null) - { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-instance-name and vnf-model-id"); + if (input == null || input.getVnfInstanceTopologyInformation() == null + || input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfInstanceName() == null + || input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfModelId() == null) { + log.debug("exiting " + SVC_OPERATION + + " because of invalid input, null or empty vnf-instance-name and vnf-model-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-name and vnf-model-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput>status(true) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // Grab the name and type from the input buffer - String preload_name = input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfInstanceName(); + String preload_name = + input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfInstanceName(); String preload_type = input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfModelId(); // Make sure we have a preload_name and preload_type - if(preload_name == null || preload_name.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name"); + if (preload_name == null || preload_name.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid preload-name"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, invalid preload-name"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput>status(true) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } - if(preload_type == null || preload_type.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type"); + if (preload_type == null || preload_type.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid preload-type"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, invalid preload-type"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput>status(true) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2141,7 +2038,7 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL //preloadData = preloadDataBuilder.build(); VnfInstancePreloadDataBuilder operDataBuilder = new VnfInstancePreloadDataBuilder(); - getVnfInstancePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL ); + getVnfInstancePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL); // // setup a preload-data object builder @@ -2155,36 +2052,30 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // // container preload-data // uses vnf-configuration-information; - - - log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input); - PreloadVnfInstanceTopologyOperationInputBuilder inputBuilder = new PreloadVnfInstanceTopologyOperationInputBuilder(input); + log.info( + "Adding INPUT data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] input: " + input); + PreloadVnfInstanceTopologyOperationInputBuilder inputBuilder = + new PreloadVnfInstanceTopologyOperationInputBuilder(input); VnfSdnUtil.toProperties(parms, inputBuilder.build()); - log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build()); + log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] operational-data: " + operDataBuilder.build()); VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder); // Call SLI sync method // Get SvcLogicService reference - Properties respProps = null; - String errorCode = "200"; String errorMessage = null; String ackFinal = "Y"; + try { + if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync")) { - try - { - if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync")) - { - - try - { - respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vnfInstancePreloadDataBuilder, parms); - } - catch (Exception e) - { - log.error("Caught exception executing service logic for "+ SVC_OPERATION, e); + try { + respProps = svcLogicClient + .execute("VNF-API", SVC_OPERATION, null, "sync", vnfInstancePreloadDataBuilder, parms); + } catch (Exception e) { + log.error("Caught exception executing service logic for " + SVC_OPERATION, e); errorMessage = e.getMessage(); errorCode = "500"; } @@ -2192,24 +2083,20 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'"; errorCode = "503"; } - } - catch (Exception e) - { + } catch (Exception e) { errorCode = "500"; errorMessage = e.getMessage(); log.error("Caught exception looking for service logic", e); } - - if (respProps != null) - { + if (respProps != null) { errorCode = respProps.getProperty("error-code"); errorMessage = respProps.getProperty("error-message"); ackFinal = respProps.getProperty("ack-final", "Y"); // internalError = respProps.getProperty("internal-error", "false"); } - if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) { + if (errorCode != null && errorCode.length() != 0 && !(errorCode.equals("0") || errorCode.equals("200"))) { responseBuilder.setResponseCode(errorCode); responseBuilder.setResponseMessage(errorMessage); @@ -2219,22 +2106,30 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL vnfInstancePreloadListBuilder.setVnfInstanceName(preload_name); vnfInstancePreloadListBuilder.setVnfModelId(preload_type); vnfInstancePreloadListBuilder.setVnfInstancePreloadData(vnfInstancePreloadDataBuilder.build()); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'"); + log.error( + "Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] error code: '" + + errorCode + "', Reason: '" + errorMessage + "'"); try { - SaveVnfInstancePreloadList (vnfInstancePreloadListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION); + SaveVnfInstancePreloadList(vnfInstancePreloadListBuilder.build(), true, + LogicalDatastoreType.CONFIGURATION); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e); + log.error( + "Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] \n", e); } log.debug("Sending Success rpc result due to external error"); RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput>status(true) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // Got success from SLI try { vnfInstancePreloadData = vnfInstancePreloadDataBuilder.build(); - log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + vnfInstancePreloadData); + log.info( + "Updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preloadData: " + + vnfInstancePreloadData); // svc-configuration-list VnfInstancePreloadListBuilder vnfInstancePreloadListBuilder = new VnfInstancePreloadListBuilder(); vnfInstancePreloadListBuilder.setVnfInstanceName(preload_name); @@ -2242,63 +2137,69 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL vnfInstancePreloadListBuilder.setVnfInstancePreloadData(vnfInstancePreloadData); // SDNGC-989 set merge flag to false - SaveVnfInstancePreloadList (vnfInstancePreloadListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); + SaveVnfInstancePreloadList(vnfInstancePreloadListBuilder.build(), false, + LogicalDatastoreType.CONFIGURATION); log.info("Updating OPERATIONAL tree."); - SaveVnfInstancePreloadList (vnfInstancePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); + SaveVnfInstancePreloadList(vnfInstancePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] \n", e); responseBuilder.setResponseCode("500"); responseBuilder.setResponseMessage(e.toString()); responseBuilder.setAckFinalIndicator("Y"); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + + responseBuilder.build()); RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput>status(false) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // Update succeeded responseBuilder.setResponseCode(errorCode); responseBuilder.setAckFinalIndicator(ackFinal); - if (errorMessage != null) - { + if (errorMessage != null) { responseBuilder.setResponseMessage(errorMessage); } - log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] "); - log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build()); + log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] "); + log.info( + "Returned SUCCESS for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + responseBuilder + .build()); RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } //1610 preload-vf-module-topology-operation - @Override - public Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation( - PreloadVfModuleTopologyOperationInput input) { + @Override public Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation( + PreloadVfModuleTopologyOperationInput input) { final String SVC_OPERATION = "preload-vf-module-topology-operation"; VfModulePreloadData vfModulePreloadData = null; Properties parms = new Properties(); - log.info( SVC_OPERATION +" called." ); + log.info(SVC_OPERATION + " called."); // create a new response object - PreloadVfModuleTopologyOperationOutputBuilder responseBuilder = new PreloadVfModuleTopologyOperationOutputBuilder(); + PreloadVfModuleTopologyOperationOutputBuilder responseBuilder = + new PreloadVfModuleTopologyOperationOutputBuilder(); // Result from savePreloadData final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create(); - if(input == null || - input.getVfModuleTopologyInformation() == null || - input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleName() == null || - input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleModelId() == null) - { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-instance-name and vnf-model-id"); + if (input == null || input.getVfModuleTopologyInformation() == null + || input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleName() == null + || input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleModelId() == null) { + log.debug("exiting " + SVC_OPERATION + + " because of invalid input, null or empty vnf-instance-name and vnf-model-id"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-name and vnf-model-id"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput>status(true) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2307,22 +2208,24 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL String preload_type = input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleModelId(); // Make sure we have a preload_name and preload_type - if(preload_name == null || preload_name.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name"); + if (preload_name == null || preload_name.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid preload-name"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, invalid preload-name"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput>status(true) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } - if(preload_type == null || preload_type.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type"); + if (preload_type == null || preload_type.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid preload-type"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("invalid input, invalid preload-type"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput>status(true) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @@ -2336,7 +2239,7 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL //preloadData = preloadDataBuilder.build(); VfModulePreloadDataBuilder operDataBuilder = new VfModulePreloadDataBuilder(); - getVfModulePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL ); + getVfModulePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL); // // setup a preload-data object builder @@ -2351,36 +2254,29 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // container preload-data // uses vnf-configuration-information; - - log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input); - PreloadVfModuleTopologyOperationInputBuilder inputBuilder = new PreloadVfModuleTopologyOperationInputBuilder(input); + log.info( + "Adding INPUT data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] input: " + input); + PreloadVfModuleTopologyOperationInputBuilder inputBuilder = + new PreloadVfModuleTopologyOperationInputBuilder(input); VnfSdnUtil.toProperties(parms, inputBuilder.build()); - log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build()); + log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] operational-data: " + operDataBuilder.build()); VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder); // Call SLI sync method // Get SvcLogicService reference - - Properties respProps = null; - String errorCode = "200"; String errorMessage = null; String ackFinal = "Y"; - - try - { - if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync")) - { - - try - { - respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vfModulePreloadDataBuilder, parms); - } - catch (Exception e) - { - log.error("Caught exception executing service logic for "+ SVC_OPERATION, e); + try { + if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync")) { + try { + respProps = svcLogicClient + .execute("VNF-API", SVC_OPERATION, null, "sync", vfModulePreloadDataBuilder, parms); + } catch (Exception e) { + log.error("Caught exception executing service logic for " + SVC_OPERATION, e); errorMessage = e.getMessage(); errorCode = "500"; } @@ -2388,24 +2284,20 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'"; errorCode = "503"; } - } - catch (Exception e) - { + } catch (Exception e) { errorCode = "500"; errorMessage = e.getMessage(); log.error("Caught exception looking for service logic", e); } - - if (respProps != null) - { + if (respProps != null) { errorCode = respProps.getProperty("error-code"); errorMessage = respProps.getProperty("error-message"); ackFinal = respProps.getProperty("ack-final", "Y"); // internalError = respProps.getProperty("internal-error", "false"); } - if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) { + if (errorCode != null && errorCode.length() != 0 && !(errorCode.equals("0") || errorCode.equals("200"))) { responseBuilder.setResponseCode(errorCode); responseBuilder.setResponseMessage(errorMessage); @@ -2415,22 +2307,29 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL vfModulePreloadListBuilder.setVfModuleName(preload_name); vfModulePreloadListBuilder.setVfModuleModelId(preload_type); vfModulePreloadListBuilder.setVfModulePreloadData(vfModulePreloadDataBuilder.build()); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'"); + log.error( + "Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] error code: '" + + errorCode + "', Reason: '" + errorMessage + "'"); try { - SaveVfModulePreloadList (vfModulePreloadListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION); + SaveVfModulePreloadList(vfModulePreloadListBuilder.build(), true, LogicalDatastoreType.CONFIGURATION); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e); + log.error( + "Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] \n", e); } log.debug("Sending Success rpc result due to external error"); RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput>status(true) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // Got success from SLI try { vfModulePreloadData = vfModulePreloadDataBuilder.build(); - log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + vfModulePreloadData); + log.info( + "Updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preloadData: " + + vfModulePreloadData); // svc-configuration-list VfModulePreloadListBuilder vfModulePreloadListBuilder = new VfModulePreloadListBuilder(); vfModulePreloadListBuilder.setVfModuleName(preload_name); @@ -2438,59 +2337,68 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL vfModulePreloadListBuilder.setVfModulePreloadData(vfModulePreloadData); // SDNGC-989 set merge flag to false - SaveVfModulePreloadList (vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); + SaveVfModulePreloadList(vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); log.info("Updating OPERATIONAL tree."); - SaveVfModulePreloadList (vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); + SaveVfModulePreloadList(vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] \n", e); responseBuilder.setResponseCode("500"); responseBuilder.setResponseMessage(e.toString()); responseBuilder.setAckFinalIndicator("Y"); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + + responseBuilder.build()); RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput>status(false) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // Update succeeded responseBuilder.setResponseCode(errorCode); responseBuilder.setAckFinalIndicator(ackFinal); - if (errorMessage != null) - { + if (errorMessage != null) { responseBuilder.setResponseMessage(errorMessage); } - log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] "); - log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build()); + log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] "); + log.info( + "Returned SUCCESS for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + responseBuilder + .build()); RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } - @Override - public Future<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation( - PreloadNetworkTopologyOperationInput input) { + @Override public Future<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation( + PreloadNetworkTopologyOperationInput input) { final String SVC_OPERATION = "preload-network-topology-operation"; PreloadData preloadData = null; Properties parms = new Properties(); - log.info( SVC_OPERATION +" called." ); + log.info(SVC_OPERATION + " called."); // create a new response object - PreloadNetworkTopologyOperationOutputBuilder responseBuilder = new PreloadNetworkTopologyOperationOutputBuilder(); + PreloadNetworkTopologyOperationOutputBuilder responseBuilder = + new PreloadNetworkTopologyOperationOutputBuilder(); // Result from savePreloadData final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create(); - if(input == null || input.getNetworkTopologyInformation() == null || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier() == null || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkName() == null || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkType() == null) { - log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-name and vnf-type"); + if (input == null || input.getNetworkTopologyInformation() == null + || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier() == null + || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkName() == null + || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkType() == null) { + log.debug("exiting " + SVC_OPERATION + " because of invalid input, null or empty vnf-name and vnf-type"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("input, null or empty vnf-name and vnf-type"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); - return Futures.immediateFuture(rpcResult); + RpcResultBuilder.<PreloadNetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); + return Futures.immediateFuture(rpcResult); } // Grab the name and type from the input buffer @@ -2498,23 +2406,26 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL String preload_type = input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkType(); // Make sure we have a preload_name and preload_type - if(preload_name == null || preload_name.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name"); + if (preload_name == null || preload_name.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid preload-name"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("input, invalid preload-name"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); - return Futures.immediateFuture(rpcResult); + RpcResultBuilder.<PreloadNetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); + return Futures.immediateFuture(rpcResult); } - if(preload_type == null || preload_type.length() == 0 ) { - log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type"); + + if (preload_type == null || preload_type.length() == 0) { + log.debug("exiting " + SVC_OPERATION + " because of invalid preload-type"); responseBuilder.setResponseCode("403"); responseBuilder.setResponseMessage("input, invalid preload-type"); responseBuilder.setAckFinalIndicator("Y"); RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); - return Futures.immediateFuture(rpcResult); + RpcResultBuilder.<PreloadNetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); + return Futures.immediateFuture(rpcResult); } if (input.getSdncRequestHeader() != null) { @@ -2526,7 +2437,7 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL getPreloadData(preload_name, preload_type, preloadDataBuilder); PreloadDataBuilder operDataBuilder = new PreloadDataBuilder(); - getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL ); + getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL); // // setup a preload-data object builder @@ -2540,36 +2451,29 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL // // container preload-data // uses vnf-configuration-information; - - - log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input); - PreloadNetworkTopologyOperationInputBuilder inputBuilder = new PreloadNetworkTopologyOperationInputBuilder(input); + log.info( + "Adding INPUT data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] input: " + input); + PreloadNetworkTopologyOperationInputBuilder inputBuilder = + new PreloadNetworkTopologyOperationInputBuilder(input); VnfSdnUtil.toProperties(parms, inputBuilder.build()); - log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build()); + log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] operational-data: " + operDataBuilder.build()); VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder); // Call SLI sync method // Get SvcLogicService reference - Properties respProps = null; - String errorCode = "200"; String errorMessage = null; String ackFinal = "Y"; - - try - { - if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync")) - { - - try - { - respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms); - } - catch (Exception e) - { - log.error("Caught exception executing service logic for "+ SVC_OPERATION, e); + try { + if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync")) { + try { + respProps = + svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms); + } catch (Exception e) { + log.error("Caught exception executing service logic for " + SVC_OPERATION, e); errorMessage = e.getMessage(); errorCode = "500"; } @@ -2577,25 +2481,21 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'"; errorCode = "503"; } - } - catch (Exception e) - { + } catch (Exception e) { errorCode = "500"; errorMessage = e.getMessage(); log.error("Caught exception looking for service logic", e); } - if (respProps != null) - { + if (respProps != null) { errorCode = respProps.getProperty("error-code"); errorMessage = respProps.getProperty("error-message"); ackFinal = respProps.getProperty("ack-final", "Y"); // internalError = respProps.getProperty("internal-error", "false"); } - if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) { - + if (errorCode != null && errorCode.length() != 0 && !(errorCode.equals("0") || errorCode.equals("200"))) { responseBuilder.setResponseCode(errorCode); responseBuilder.setResponseMessage(errorMessage); responseBuilder.setAckFinalIndicator(ackFinal); @@ -2604,23 +2504,30 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL preloadVnfListBuilder.setVnfName(preload_name); preloadVnfListBuilder.setVnfType(preload_type); preloadVnfListBuilder.setPreloadData(preloadDataBuilder.build()); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'"); + log.error( + "Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] error code: '" + + errorCode + "', Reason: '" + errorMessage + "'"); try { - SavePreloadList (preloadVnfListBuilder.build(),true,LogicalDatastoreType.CONFIGURATION); + SavePreloadList(preloadVnfListBuilder.build(), true, LogicalDatastoreType.CONFIGURATION); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e); + log.error( + "Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] \n", e); } log.debug("Sending Success rpc result due to external error"); RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadNetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } // Got success from SLI try { preloadData = preloadDataBuilder.build(); - log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + preloadData); + log.info( + "Updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preloadData: " + + preloadData); // svc-configuration-list VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder(); preloadVnfListBuilder.setVnfName(preload_name); @@ -2628,33 +2535,37 @@ public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeL preloadVnfListBuilder.setPreloadData(preloadData); // SDNGC-989 set merge flag to false - SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); + SavePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION); log.info("Updating OPERATIONAL tree."); - SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); + SavePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL); } catch (Exception e) { - log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e); + log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + + "] \n", e); responseBuilder.setResponseCode("500"); responseBuilder.setResponseMessage(e.toString()); responseBuilder.setAckFinalIndicator("Y"); - log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build()); + log.error("Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + + responseBuilder.build()); RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadNetworkTopologyOperationOutput>status(false) + .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // Update succeeded responseBuilder.setResponseCode(errorCode); responseBuilder.setAckFinalIndicator(ackFinal); - if (errorMessage != null) - { + if (errorMessage != null) { responseBuilder.setResponseMessage(errorMessage); } - log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] "); - log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build()); + log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] "); + log.info( + "Returned SUCCESS for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + responseBuilder + .build()); RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult = - RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build(); + RpcResultBuilder.<PreloadNetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()) + .build(); return Futures.immediateFuture(rpcResult); } - } diff --git a/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/VnfSdnUtilTest.java b/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/VnfSdnUtilTest.java index dbfca074..3f486f62 100644 --- a/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/VnfSdnUtilTest.java +++ b/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/VnfSdnUtilTest.java @@ -1,3 +1,23 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ package org.onap.sdnc.vnfapi; import org.junit.Assert; diff --git a/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/vnfapiProviderTest.java b/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/vnfapiProviderTest.java new file mode 100644 index 00000000..5ea0c119 --- /dev/null +++ b/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/vnfapiProviderTest.java @@ -0,0 +1,1509 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.sdnc.vnfapi; + +import com.google.common.base.Optional; +import com.google.common.util.concurrent.CheckedFuture; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; +import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; +import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; +import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; +import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; +import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; +import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModules; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstances; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfs; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VNFAPIService; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModules; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstances; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.Vnfs; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.request.information.NetworkRequestInformation; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.topology.identifier.NetworkTopologyIdentifier; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.topology.information.NetworkTopologyInformation; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.data.PreloadData; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadList; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadList; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadList; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.request.information.RequestInformation; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.sdnc.request.header.SdncRequestHeader; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.data.ServiceData; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.information.ServiceInformation; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatus; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatusBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.identifiers.VfModuleIdentifiers; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleList; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadData; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadDataBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.request.information.VfModuleRequestInformation; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceData; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceDataBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.topology.information.VfModuleTopologyInformation; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.identifiers.VnfInstanceIdentifiers; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceList; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadData; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadDataBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.request.information.VnfInstanceRequestInformation; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceData; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceDataBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.topology.information.VnfInstanceTopologyInformation; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfList; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListKey; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.request.information.VnfRequestInformation; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.topology.identifier.VnfTopologyIdentifier; +import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.topology.information.VnfTopologyInformation; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.powermock.reflect.Whitebox; + +import java.util.ArrayList; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +public class vnfapiProviderTest { + @Rule public MockitoRule rule = MockitoJUnit.rule(); + + @Mock private DataBroker dataBroker; + @Mock private NotificationPublishService notificationPublishService; + @Mock private RpcProviderRegistry rpcProviderRegistry; + @Mock private VNFSDNSvcLogicServiceClient vnfsdnSvcLogicServiceClient; + @Mock private ReadWriteTransaction readWriteTransactionInCreateContainer; + @Mock private ReadWriteTransaction readWriteTransactionInDataChanged; + @Mock private CheckedFuture<Void, TransactionCommitFailedException> checkedFuture; + + private vnfapiProvider vnfapiProvider; + private String vfModuleName; + private String vfModuleModelId; + private String vnfInstanceId; + private String vnfInstanceName; + private String vnfModelId; + private String svcRequestId; + private String serviceInstanceId; + private String vnfName; + private String vnfType; + private String vfModuleId; + + @Before public void setUp() throws Exception { + doReturn(readWriteTransactionInCreateContainer).when(dataBroker).newReadWriteTransaction(); + doReturn(checkedFuture).when(readWriteTransactionInCreateContainer).submit(); + // mock readOnlyTransaction + ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class); + doReturn(readOnlyTransaction).when(dataBroker).newReadOnlyTransaction(); + doReturn(checkedFuture).when(readOnlyTransaction).read(any(), any()); + // mock writeTransaction + WriteTransaction writeTransaction = mock(WriteTransaction.class); + doReturn(writeTransaction).when(dataBroker).newWriteOnlyTransaction(); + doReturn(checkedFuture).when(writeTransaction).submit(); + + vnfapiProvider = spy(new vnfapiProvider(dataBroker, notificationPublishService, rpcProviderRegistry, + vnfsdnSvcLogicServiceClient)); + } + + @After public void tearDown() throws Exception { + + } + + @Test public void close() throws Exception { + ExecutorService executor = Whitebox.getInternalState(vnfapiProvider, "executor"); + BindingAwareBroker.RpcRegistration<VNFAPIService> vnfapiServiceRpcRegistration = + mock(BindingAwareBroker.RpcRegistration.class); + vnfapiProvider.rpcRegistration = vnfapiServiceRpcRegistration; + + vnfapiProvider.close(); + + Assert.assertTrue(executor.isShutdown()); + verify(vnfapiServiceRpcRegistration, times(1)).close(); + } + + @Test public void onDataChanged() throws Exception { + AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> asyncDataChangeEvent = mock(AsyncDataChangeEvent.class); + // instance of Vnfs + Vnfs vnfs = mock(Vnfs.class); + doReturn(vnfs).when(asyncDataChangeEvent).getUpdatedSubtree(); + VnfList vnfList = mock(VnfList.class); + ServiceData serviceData = mock(ServiceData.class); + doReturn(serviceData).when(vnfList).getServiceData(); + ServiceStatus serviceStatus = mock(ServiceStatus.class); + doReturn("N").when(serviceStatus).getFinalIndicator(); + doReturn(ServiceStatus.RequestStatus.Synccomplete).when(serviceStatus).getRequestStatus(); + doReturn(serviceStatus).when(vnfList).getServiceStatus(); + ArrayList<VnfList> vnfListList = new ArrayList<>(); + vnfListList.add(vnfList); + doReturn(vnfListList).when(vnfs).getVnfList(); + doReturn(readWriteTransactionInDataChanged).when(dataBroker).newWriteOnlyTransaction(); + doReturn(checkedFuture).when(readWriteTransactionInDataChanged).submit(); + + vnfapiProvider.onDataChanged(asyncDataChangeEvent); + + verify(readWriteTransactionInDataChanged, times(1)).submit(); + + // instance of PreloadVnfs + PreloadVnfs preloadVnfs = mock(PreloadVnfs.class); + doReturn(preloadVnfs).when(asyncDataChangeEvent).getUpdatedSubtree(); + ArrayList<VnfPreloadList> vnfPreloadLists = new ArrayList<>(); + doReturn(vnfPreloadLists).when(preloadVnfs).getVnfPreloadList(); + PreloadData preloadData = mock(PreloadData.class); + VnfPreloadList vnfPreloadList = mock(VnfPreloadList.class); + doReturn(preloadData).when(vnfPreloadList).getPreloadData(); + vnfPreloadLists.add(vnfPreloadList); + + vnfapiProvider.onDataChanged(asyncDataChangeEvent); + + verify(readWriteTransactionInDataChanged, times(2)).submit(); + + // instance of PreloadVnfInstances + PreloadVnfInstances preloadVnfInstances = mock(PreloadVnfInstances.class); + doReturn(preloadVnfInstances).when(asyncDataChangeEvent).getUpdatedSubtree(); + ArrayList<VnfInstancePreloadList> vnfInstancePreloadLists = new ArrayList<>(); + doReturn(vnfInstancePreloadLists).when(preloadVnfInstances).getVnfInstancePreloadList(); + VnfInstancePreloadList vnfInstancePreloadList = mock(VnfInstancePreloadList.class); + VnfInstancePreloadData vnfInstancePreloadData = mock(VnfInstancePreloadData.class); + doReturn(vnfInstancePreloadData).when(vnfInstancePreloadList).getVnfInstancePreloadData(); + vnfInstancePreloadLists.add(vnfInstancePreloadList); + + vnfapiProvider.onDataChanged(asyncDataChangeEvent); + + verify(readWriteTransactionInDataChanged, times(3)).submit(); + + // instance of VnfInstances + VnfInstances vnfInstances = mock(VnfInstances.class); + doReturn(vnfInstances).when(asyncDataChangeEvent).getUpdatedSubtree(); + ArrayList<VnfInstanceList> vnfInstanceLists = new ArrayList<>(); + doReturn(vnfInstanceLists).when(vnfInstances).getVnfInstanceList(); + VnfInstanceList vnfInstanceList = mock(VnfInstanceList.class); + vnfInstanceLists.add(vnfInstanceList); + VnfInstanceServiceData vnfInstanceServiceData = mock(VnfInstanceServiceData.class); + doReturn(vnfInstanceServiceData).when(vnfInstanceList).getVnfInstanceServiceData(); + doReturn(serviceStatus).when(vnfInstanceList).getServiceStatus(); + + vnfapiProvider.onDataChanged(asyncDataChangeEvent); + + verify(readWriteTransactionInDataChanged, times(4)).submit(); + + // instance of PreloadVfModules + PreloadVfModules preloadVfModules = mock(PreloadVfModules.class); + doReturn(preloadVfModules).when(asyncDataChangeEvent).getUpdatedSubtree(); + ArrayList<VfModulePreloadList> vfModulePreloadLists = new ArrayList<>(); + doReturn(vfModulePreloadLists).when(preloadVfModules).getVfModulePreloadList(); + VfModulePreloadList vfModulePreloadList = mock(VfModulePreloadList.class); + vfModulePreloadLists.add(vfModulePreloadList); + VfModulePreloadData vfModulePreloadData = mock(VfModulePreloadData.class); + doReturn(vfModulePreloadData).when(vfModulePreloadList).getVfModulePreloadData(); + + vnfapiProvider.onDataChanged(asyncDataChangeEvent); + + verify(readWriteTransactionInDataChanged, times(5)).submit(); + + // instance of VfModules + VfModules vfModules = mock(VfModules.class); + doReturn(preloadVfModules).when(asyncDataChangeEvent).getUpdatedSubtree(); + ArrayList<VfModuleList> vfModuleLists = new ArrayList<>(); + doReturn(vfModuleLists).when(vfModules).getVfModuleList(); + VfModuleList vfModuleList = mock(VfModuleList.class); + vfModuleLists.add(vfModuleList); + VfModuleServiceData vfModuleServiceData = mock(VfModuleServiceData.class); + doReturn(vfModuleServiceData).when(vfModuleList).getVfModuleServiceData(); + doReturn(serviceStatus).when(vfModuleList).getServiceStatus(); + + vnfapiProvider.onDataChanged(asyncDataChangeEvent); + + verify(readWriteTransactionInDataChanged, times(6)).submit(); + } + + /** + * Test Error case: + * <p> + * <code>input.getVnfInstanceRequestInformation() == null</code> + * + * @throws Exception + */ + @Test public void vnfInstanceTopologyOperationErrorOne() throws Exception { + VnfInstanceTopologyOperationInput vnfInstanceTopologyOperationInput = + mock(VnfInstanceTopologyOperationInput.class); + doReturn(null).when(vnfInstanceTopologyOperationInput).getVnfInstanceRequestInformation(); + + Future<RpcResult<VnfInstanceTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vnfInstanceTopologyOperation(vnfInstanceTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty vnf-instance-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>viid == null</code> + * + * @throws Exception + */ + @Test public void vnfInstanceTopologyOperationErrorTwo() throws Exception { + vnfInstanceId = ""; + vnfInstanceName = "vnf-instance-name"; + vnfModelId = "vnf-model-id"; + VnfInstanceTopologyOperationInput vnfInstanceTopologyOperationInput = + mock(VnfInstanceTopologyOperationInput.class); + VnfInstanceRequestInformation vnfInstanceRequestInformation = mock(VnfInstanceRequestInformation.class); + doReturn(vnfInstanceName).when(vnfInstanceRequestInformation).getVnfInstanceName(); + doReturn(vnfModelId).when(vnfInstanceRequestInformation).getVnfModelId(); + doReturn(vnfInstanceId).when(vnfInstanceRequestInformation).getVnfInstanceId(); + doReturn(vnfInstanceRequestInformation).when(vnfInstanceTopologyOperationInput) + .getVnfInstanceRequestInformation(); + + Future<RpcResult<VnfInstanceTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vnfInstanceTopologyOperation(vnfInstanceTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty vnf-instance-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>svcLogicClient.hasGraph("VNF-API",SVC_OPERATION,null,"sync" = false</code> + * + * @throws Exception + */ + @Test public void vnfInstanceTopologyOperationErrorThree() throws Exception { + vnfInstanceId = "vnf-instance-id"; + vnfInstanceName = "vnf-instance-name"; + vnfModelId = "vnf-model-id"; + svcRequestId = "svc-request-id"; + + VnfInstanceTopologyOperationInput vnfInstanceTopologyOperationInput = + mock(VnfInstanceTopologyOperationInput.class); + VnfInstanceRequestInformation vnfInstanceRequestInformation = mock(VnfInstanceRequestInformation.class); + doReturn(vnfInstanceId).when(vnfInstanceRequestInformation).getVnfInstanceId(); + doReturn(vnfInstanceName).when(vnfInstanceRequestInformation).getVnfInstanceName(); + doReturn(vnfModelId).when(vnfInstanceRequestInformation).getVnfModelId(); + doReturn(vnfInstanceRequestInformation).when(vnfInstanceTopologyOperationInput) + .getVnfInstanceRequestInformation(); + + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(vnfInstanceTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + + Future<RpcResult<VnfInstanceTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vnfInstanceTopologyOperation(vnfInstanceTopologyOperationInput); + + Assert.assertEquals("503", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertTrue( + rpcResultFuture.get().getResult().getResponseMessage().contains("No service logic active for VNF-API")); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Success case + * + * @throws Exception + */ + @Test public void vnfInstanceTopologyOperationSuccess() throws Exception { + vnfInstanceId = "vnf-instance-id"; + vnfInstanceName = "vnf-instance-name"; + vnfModelId = "vnf-model-id"; + svcRequestId = "svc-request-id"; + + VnfInstanceTopologyOperationInput vnfInstanceTopologyOperationInput = + mock(VnfInstanceTopologyOperationInput.class); + VnfInstanceRequestInformation vnfInstanceRequestInformation = mock(VnfInstanceRequestInformation.class); + doReturn(vnfInstanceId).when(vnfInstanceRequestInformation).getVnfInstanceId(); + doReturn(vnfInstanceName).when(vnfInstanceRequestInformation).getVnfInstanceName(); + doReturn(vnfModelId).when(vnfInstanceRequestInformation).getVnfModelId(); + doReturn(vnfInstanceRequestInformation).when(vnfInstanceTopologyOperationInput) + .getVnfInstanceRequestInformation(); + + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(vnfInstanceTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + doReturn(SdncRequestHeader.SvcAction.Activate).when(sdncRequestHeader).getSvcAction(); + ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class); + doReturn(readOnlyTransaction).when(dataBroker).newReadOnlyTransaction(); + doReturn(checkedFuture).when(readOnlyTransaction).read(any(), any()); + WriteTransaction writeTransaction = mock(WriteTransaction.class); + doReturn(writeTransaction).when(dataBroker).newWriteOnlyTransaction(); + doReturn(checkedFuture).when(writeTransaction).submit(); + doReturn(true).when(vnfsdnSvcLogicServiceClient).hasGraph(any(), any(), any(), any()); + + Future<RpcResult<VnfInstanceTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vnfInstanceTopologyOperation(vnfInstanceTopologyOperationInput); + + Assert.assertEquals("200", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals(null, rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>input.getVfModuleTopologyInformation() == null</code> + * + * @throws Exception + */ + @Test public void vfModuleTopologyOperationErrorOne() throws Exception { + VfModuleTopologyOperationInput vfModuleTopologyOperationInput = mock(VfModuleTopologyOperationInput.class); + doReturn(null).when(vfModuleTopologyOperationInput).getVfModuleRequestInformation(); + Future<RpcResult<VfModuleTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vfModuleTopologyOperation(vfModuleTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty vf-module-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>vfid = ""</code> + * And + * <p> + * <code>viid = ""</code> + * + * @throws Exception + */ + @Test public void vfModuleTopologyOperationErrorTwo() throws Exception { + // vifd = "" + vfModuleName = "vfModuleName"; + vfModuleModelId = "vfModuleModelId"; + vfModuleId = ""; + vnfInstanceId = ""; + VfModuleTopologyOperationInput vfModuleTopologyOperationInput = mock(VfModuleTopologyOperationInput.class); + VfModuleRequestInformation vfModuleRequestInformation = mock(VfModuleRequestInformation.class); + doReturn(vfModuleRequestInformation).when(vfModuleTopologyOperationInput).getVfModuleRequestInformation(); + VfModuleIdentifiers vfModuleIdentifiers = mock(VfModuleIdentifiers.class); + doReturn(vfModuleName).when(vfModuleIdentifiers).getVfModuleName(); + doReturn(vfModuleModelId).when(vfModuleIdentifiers).getVfModuleModelId(); + doReturn(vfModuleId).when(vfModuleRequestInformation).getVfModuleId(); + + Future<RpcResult<VfModuleTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vfModuleTopologyOperation(vfModuleTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty vf-module-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + + // viid = "" + vfModuleId = "vfModuleId"; + doReturn(vfModuleId).when(vfModuleRequestInformation).getVfModuleId(); + doReturn(vnfInstanceId).when(vfModuleRequestInformation).getVnfInstanceId(); + rpcResultFuture = vnfapiProvider.vfModuleTopologyOperation(vfModuleTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty vnf-instance-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync") = false</code> + * + * @throws Exception + */ + @Test public void vfModuleTopologyOperationErrorThree() throws Exception { + // vifd = "" + vfModuleName = "vfModuleName"; + vfModuleModelId = "vfModuleModelId"; + vfModuleId = "vfModuleId"; + vnfInstanceId = "vnfInstanceId"; + VfModuleTopologyOperationInput vfModuleTopologyOperationInput = mock(VfModuleTopologyOperationInput.class); + VfModuleRequestInformation vfModuleRequestInformation = mock(VfModuleRequestInformation.class); + doReturn(vfModuleRequestInformation).when(vfModuleTopologyOperationInput).getVfModuleRequestInformation(); + VfModuleIdentifiers vfModuleIdentifiers = mock(VfModuleIdentifiers.class); + doReturn(vfModuleName).when(vfModuleIdentifiers).getVfModuleName(); + doReturn(vfModuleModelId).when(vfModuleIdentifiers).getVfModuleModelId(); + doReturn(vfModuleId).when(vfModuleRequestInformation).getVfModuleId(); + doReturn(vnfInstanceId).when(vfModuleRequestInformation).getVnfInstanceId(); + // mock sdncRequestHeader + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(vfModuleTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + + Future<RpcResult<VfModuleTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vfModuleTopologyOperation(vfModuleTopologyOperationInput); + + Assert.assertEquals("503", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertTrue( + rpcResultFuture.get().getResult().getResponseMessage().contains("No service logic active for VNF-API")); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Success case + * + * @throws Exception + */ + @Test public void vfModuleTopologyOperationSuccess() throws Exception { + vfModuleName = "vfModuleName"; + vfModuleModelId = "vfModuleModelId"; + vfModuleId = "vfModuleId"; + vnfInstanceId = "vnfInstanceId"; + VfModuleTopologyOperationInput vfModuleTopologyOperationInput = mock(VfModuleTopologyOperationInput.class); + VfModuleRequestInformation vfModuleRequestInformation = mock(VfModuleRequestInformation.class); + doReturn(vfModuleRequestInformation).when(vfModuleTopologyOperationInput).getVfModuleRequestInformation(); + VfModuleIdentifiers vfModuleIdentifiers = mock(VfModuleIdentifiers.class); + doReturn(vfModuleName).when(vfModuleIdentifiers).getVfModuleName(); + doReturn(vfModuleModelId).when(vfModuleIdentifiers).getVfModuleModelId(); + doReturn(vfModuleId).when(vfModuleRequestInformation).getVfModuleId(); + doReturn(vnfInstanceId).when(vfModuleRequestInformation).getVnfInstanceId(); + // mock sdncRequestHeader + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(vfModuleTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + doReturn(true).when(vnfsdnSvcLogicServiceClient).hasGraph(any(), any(), any(), any()); + + Future<RpcResult<VfModuleTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vfModuleTopologyOperation(vfModuleTopologyOperationInput); + + Assert.assertEquals("200", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals(null, rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>input.getServiceInformation() == null</code> + * + * @throws Exception + */ + @Test public void vnfTopologyOperationErrorOne() throws Exception { + VnfTopologyOperationInput vnfTopologyOperationInput = mock(VnfTopologyOperationInput.class); + doReturn(null).when(vnfTopologyOperationInput).getServiceInformation(); + + Future<RpcResult<VnfTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vnfTopologyOperation(vnfTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty service-instance-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>input.getVnfRequestInformation() == null</code> + * + * @throws Exception + */ + @Test public void vnfTopologyOperationErrorTwo() throws Exception { + serviceInstanceId = "serviceInstanceId"; + VnfTopologyOperationInput vnfTopologyOperationInput = mock(VnfTopologyOperationInput.class); + ServiceInformation serviceInformation = mock(ServiceInformation.class); + doReturn(serviceInformation).when(vnfTopologyOperationInput).getServiceInformation(); + doReturn(serviceInstanceId).when(serviceInformation).getServiceInstanceId(); + + Future<RpcResult<VnfTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vnfTopologyOperation(vnfTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty vf-module-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync") == false</code> + * + * @throws Exception + */ + @Test public void vnfTopologyOperationErrorThree() throws Exception { + serviceInstanceId = "serviceInstanceId"; + String vnfId = "vnfId"; + VnfTopologyOperationInput vnfTopologyOperationInput = mock(VnfTopologyOperationInput.class); + ServiceInformation serviceInformation = mock(ServiceInformation.class); + doReturn(serviceInformation).when(vnfTopologyOperationInput).getServiceInformation(); + doReturn(serviceInstanceId).when(serviceInformation).getServiceInstanceId(); + + VnfRequestInformation vnfRequestInformation = mock(VnfRequestInformation.class); + doReturn(vnfRequestInformation).when(vnfTopologyOperationInput).getVnfRequestInformation(); + doReturn(vnfId).when(vnfRequestInformation).getVnfId(); + + Future<RpcResult<VnfTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vnfTopologyOperation(vnfTopologyOperationInput); + + Assert.assertEquals("503", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertTrue( + rpcResultFuture.get().getResult().getResponseMessage().contains("No service logic active for VNF-API")); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Success case + * + * @throws Exception + */ + @Test public void vnfTopologyOperationSuccess() throws Exception { + serviceInstanceId = "serviceInstanceId"; + String vnfId = "vnfId"; + VnfTopologyOperationInput vnfTopologyOperationInput = mock(VnfTopologyOperationInput.class); + ServiceInformation serviceInformation = mock(ServiceInformation.class); + doReturn(serviceInformation).when(vnfTopologyOperationInput).getServiceInformation(); + doReturn(serviceInstanceId).when(serviceInformation).getServiceInstanceId(); + + VnfRequestInformation vnfRequestInformation = mock(VnfRequestInformation.class); + doReturn(vnfRequestInformation).when(vnfTopologyOperationInput).getVnfRequestInformation(); + doReturn(vnfId).when(vnfRequestInformation).getVnfId(); + doReturn(true).when(vnfsdnSvcLogicServiceClient).hasGraph(any(), any(), any(), any()); + + Future<RpcResult<VnfTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vnfTopologyOperation(vnfTopologyOperationInput); + + Assert.assertEquals("200", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals(null, rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>input.getServiceInformation() == null</code> + * + * @throws Exception + */ + @Test public void networkTopologyOperationErrorOne() throws Exception { + VnfTopologyOperationInput vnfTopologyOperationInput = mock(VnfTopologyOperationInput.class); + doReturn(null).when(vnfTopologyOperationInput).getServiceInformation(); + + Future<RpcResult<VnfTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.vnfTopologyOperation(vnfTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty service-instance-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>input.getNetworkRequestInformation() == null</code> + * + * @throws Exception + */ + @Test public void networkTopologyOperationErrorTwo() throws Exception { + serviceInstanceId = "serviceInstanceId"; + NetworkTopologyOperationInput networkTopologyOperation = mock(NetworkTopologyOperationInput.class); + ServiceInformation serviceInformation = mock(ServiceInformation.class); + doReturn(serviceInstanceId).when(serviceInformation).getServiceInstanceId(); + doReturn(serviceInformation).when(networkTopologyOperation).getServiceInformation(); + + Future<RpcResult<NetworkTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.networkTopologyOperation(networkTopologyOperation); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty service-instance-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync") == false</code> + * + * @throws Exception + */ + @Test public void networkTopologyOperationErrorThree() throws Exception { + serviceInstanceId = "serviceInstanceId"; + NetworkTopologyOperationInput networkTopologyOperationInput = mock(NetworkTopologyOperationInput.class); + ServiceInformation serviceInformation = mock(ServiceInformation.class); + doReturn(serviceInstanceId).when(serviceInformation).getServiceInstanceId(); + doReturn(serviceInformation).when(networkTopologyOperationInput).getServiceInformation(); + + NetworkRequestInformation networkRequestInformation = mock(NetworkRequestInformation.class); + doReturn(networkRequestInformation).when(networkTopologyOperationInput).getNetworkRequestInformation(); + doReturn("NetworkName").when(networkRequestInformation).getNetworkName(); + + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(SdncRequestHeader.SvcAction.Assign).when(sdncRequestHeader).getSvcAction(); + doReturn(sdncRequestHeader).when(networkTopologyOperationInput).getSdncRequestHeader(); + + Future<RpcResult<NetworkTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.networkTopologyOperation(networkTopologyOperationInput); + + Assert.assertEquals("503", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertTrue( + rpcResultFuture.get().getResult().getResponseMessage().contains("No service logic active for VNF-API")); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Success case + * + * @throws Exception + */ + @Test public void networkTopologyOperationSuccess() throws Exception { + serviceInstanceId = "serviceInstanceId"; + NetworkTopologyOperationInput networkTopologyOperationInput = mock(NetworkTopologyOperationInput.class); + ServiceInformation serviceInformation = mock(ServiceInformation.class); + doReturn(serviceInstanceId).when(serviceInformation).getServiceInstanceId(); + doReturn(serviceInformation).when(networkTopologyOperationInput).getServiceInformation(); + //mock networkRequestInformation + NetworkRequestInformation networkRequestInformation = mock(NetworkRequestInformation.class); + doReturn(networkRequestInformation).when(networkTopologyOperationInput).getNetworkRequestInformation(); + doReturn("NetworkName").when(networkRequestInformation).getNetworkName(); + //mock sdncRequestHeader + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(SdncRequestHeader.SvcAction.Assign).when(sdncRequestHeader).getSvcAction(); + doReturn(sdncRequestHeader).when(networkTopologyOperationInput).getSdncRequestHeader(); + doReturn(true).when(vnfsdnSvcLogicServiceClient).hasGraph(any(), any(), any(), any()); + + Future<RpcResult<NetworkTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.networkTopologyOperation(networkTopologyOperationInput); + + Assert.assertEquals("200", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals(null, rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>input.getVnfTopologyInformation() == null</code> + * + * @throws Exception + */ + @Test public void preloadVnfTopologyOperationErrorOne() throws Exception { + PreloadVnfTopologyOperationInput preloadVnfTopologyOperationInput = + mock(PreloadVnfTopologyOperationInput.class); + doReturn(null).when(preloadVnfTopologyOperationInput).getVnfTopologyInformation(); + + Future<RpcResult<PreloadVnfTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVnfTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty vnf-name and vnf-type", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>preload_name.length() == 0</code> + * And + * <code>preload_type.length() == 0</code> + * + * @throws Exception + */ + @Test public void preloadVnfTopologyOperationErrorTwo() throws Exception { + // preload_name.length() == 0 + vnfName = ""; + vnfType = "vfModuleModelId"; + PreloadVnfTopologyOperationInput preloadVnfTopologyOperationInput = + mock(PreloadVnfTopologyOperationInput.class); + doReturn(null).when(preloadVnfTopologyOperationInput).getVnfTopologyInformation(); + + VnfTopologyInformation vnfTopologyInformation = mock(VnfTopologyInformation.class); + doReturn(vnfTopologyInformation).when(preloadVnfTopologyOperationInput).getVnfTopologyInformation(); + VnfTopologyIdentifier vnfTopologyIdentifier = mock(VnfTopologyIdentifier.class); + doReturn(vnfName).when(vnfTopologyIdentifier).getVnfName(); + doReturn(vnfType).when(vnfTopologyIdentifier).getVnfType(); + doReturn(vnfTopologyIdentifier).when(vnfTopologyInformation).getVnfTopologyIdentifier(); + + Future<RpcResult<PreloadVnfTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVnfTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, invalid preload-name", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + + // preload_type.length() == 0 + vnfName = "vnfName"; + vnfType = ""; + doReturn(vnfName).when(vnfTopologyIdentifier).getVnfName(); + doReturn(vnfType).when(vnfTopologyIdentifier).getVnfType(); + + rpcResultFuture = vnfapiProvider.preloadVnfTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, invalid preload-type", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <code>svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync") = false</code> + * + * @throws Exception + */ + @Test public void preloadVnfTopologyOperationErrorThree() throws Exception { + // preload_name.length() == 0 + vnfName = "vnfName"; + vnfType = "vfModuleModelId"; + PreloadVnfTopologyOperationInput preloadVnfTopologyOperationInput = + mock(PreloadVnfTopologyOperationInput.class); + doReturn(null).when(preloadVnfTopologyOperationInput).getVnfTopologyInformation(); + + VnfTopologyInformation vnfTopologyInformation = mock(VnfTopologyInformation.class); + doReturn(vnfTopologyInformation).when(preloadVnfTopologyOperationInput).getVnfTopologyInformation(); + VnfTopologyIdentifier vnfTopologyIdentifier = mock(VnfTopologyIdentifier.class); + doReturn(vnfName).when(vnfTopologyIdentifier).getVnfName(); + doReturn(vnfType).when(vnfTopologyIdentifier).getVnfType(); + doReturn(vnfTopologyIdentifier).when(vnfTopologyInformation).getVnfTopologyIdentifier(); + + Future<RpcResult<PreloadVnfTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVnfTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("503", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertTrue( + rpcResultFuture.get().getResult().getResponseMessage().contains("No service logic active for VNF-API")); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Success case + * + * @throws Exception + */ + @Test public void preloadVnfTopologyOperationSuccess() throws Exception { + // preload_name.length() == 0 + vnfName = "vnfName"; + vnfType = "vfModuleModelId"; + PreloadVnfTopologyOperationInput preloadVnfTopologyOperationInput = + mock(PreloadVnfTopologyOperationInput.class); + doReturn(null).when(preloadVnfTopologyOperationInput).getVnfTopologyInformation(); + + VnfTopologyInformation vnfTopologyInformation = mock(VnfTopologyInformation.class); + doReturn(vnfTopologyInformation).when(preloadVnfTopologyOperationInput).getVnfTopologyInformation(); + VnfTopologyIdentifier vnfTopologyIdentifier = mock(VnfTopologyIdentifier.class); + doReturn(vnfName).when(vnfTopologyIdentifier).getVnfName(); + doReturn(vnfType).when(vnfTopologyIdentifier).getVnfType(); + doReturn(vnfTopologyIdentifier).when(vnfTopologyInformation).getVnfTopologyIdentifier(); + doReturn(true).when(vnfsdnSvcLogicServiceClient).hasGraph(any(), any(), any(), any()); + + Future<RpcResult<PreloadVnfTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVnfTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("200", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals(null, rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>input.getVnfInstanceTopologyInformation() == null</code> + * + * @throws Exception + */ + @Test public void preloadVnfInstanceTopologyOperationErrorOne() throws Exception { + PreloadVnfInstanceTopologyOperationInput preloadVnfInstanceTopologyOperationInput = + mock(PreloadVnfInstanceTopologyOperationInput.class); + doReturn(null).when(preloadVnfInstanceTopologyOperationInput).getVnfInstanceTopologyInformation(); + Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVnfInstanceTopologyOperation(preloadVnfInstanceTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty vnf-instance-name and vnf-model-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>preload_name = ""</code> + * And + * <code>preload_type = ""</code> + * + * @throws Exception + */ + @Test public void preloadVnfInstanceTopologyOperationErrorTwo() throws Exception { + // preload_type = "" + vnfInstanceName = "vnfInstanceName"; + vnfModelId = ""; + PreloadVnfInstanceTopologyOperationInput preloadVnfInstanceTopologyOperationInput = + mock(PreloadVnfInstanceTopologyOperationInput.class); + VnfInstanceTopologyInformation vnfInstanceTopologyInformation = mock(VnfInstanceTopologyInformation.class); + doReturn(vnfInstanceTopologyInformation).when(preloadVnfInstanceTopologyOperationInput) + .getVnfInstanceTopologyInformation(); + VnfInstanceIdentifiers vnfInstanceIdentifiers = mock(VnfInstanceIdentifiers.class); + doReturn(vnfInstanceName).when(vnfInstanceIdentifiers).getVnfInstanceName(); + doReturn(vnfModelId).when(vnfInstanceIdentifiers).getVnfModelId(); + doReturn(vnfInstanceIdentifiers).when(vnfInstanceTopologyInformation).getVnfInstanceIdentifiers(); + + Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVnfInstanceTopologyOperation(preloadVnfInstanceTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, invalid preload-type", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + + //preload_name == "" + vnfInstanceName = ""; + vnfModelId = "vnfModelId"; + doReturn(vnfInstanceName).when(vnfInstanceIdentifiers).getVnfInstanceName(); + doReturn(vnfModelId).when(vnfInstanceIdentifiers).getVnfModelId(); + + rpcResultFuture = vnfapiProvider.preloadVnfInstanceTopologyOperation(preloadVnfInstanceTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, invalid preload-name", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync") = false</code> + * + * @throws Exception + */ + @Test public void preloadVnfInstanceTopologyOperationErrorThree() throws Exception { + // preload_type = "" + vnfInstanceName = "vnfInstanceName"; + vnfModelId = "vnfModelId"; + PreloadVnfInstanceTopologyOperationInput preloadVnfInstanceTopologyOperationInput = + mock(PreloadVnfInstanceTopologyOperationInput.class); + VnfInstanceTopologyInformation vnfInstanceTopologyInformation = mock(VnfInstanceTopologyInformation.class); + doReturn(vnfInstanceTopologyInformation).when(preloadVnfInstanceTopologyOperationInput) + .getVnfInstanceTopologyInformation(); + VnfInstanceIdentifiers vnfInstanceIdentifiers = mock(VnfInstanceIdentifiers.class); + doReturn(vnfInstanceName).when(vnfInstanceIdentifiers).getVnfInstanceName(); + doReturn(vnfModelId).when(vnfInstanceIdentifiers).getVnfModelId(); + doReturn(vnfInstanceIdentifiers).when(vnfInstanceTopologyInformation).getVnfInstanceIdentifiers(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(preloadVnfInstanceTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + + Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVnfInstanceTopologyOperation(preloadVnfInstanceTopologyOperationInput); + + Assert.assertEquals("503", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertTrue( + rpcResultFuture.get().getResult().getResponseMessage().contains("No service logic active for VNF-API")); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Success case + * + * @throws Exception + */ + @Test public void preloadVnfInstanceTopologyOperationSuccess() throws Exception { + // preload_type = "" + vnfInstanceName = "vnfInstanceName"; + vnfModelId = "vnfModelId"; + PreloadVnfInstanceTopologyOperationInput preloadVnfInstanceTopologyOperationInput = + mock(PreloadVnfInstanceTopologyOperationInput.class); + VnfInstanceTopologyInformation vnfInstanceTopologyInformation = mock(VnfInstanceTopologyInformation.class); + doReturn(vnfInstanceTopologyInformation).when(preloadVnfInstanceTopologyOperationInput) + .getVnfInstanceTopologyInformation(); + VnfInstanceIdentifiers vnfInstanceIdentifiers = mock(VnfInstanceIdentifiers.class); + doReturn(vnfInstanceName).when(vnfInstanceIdentifiers).getVnfInstanceName(); + doReturn(vnfModelId).when(vnfInstanceIdentifiers).getVnfModelId(); + doReturn(vnfInstanceIdentifiers).when(vnfInstanceTopologyInformation).getVnfInstanceIdentifiers(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(preloadVnfInstanceTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + doReturn(true).when(vnfsdnSvcLogicServiceClient).hasGraph(any(), any(), any(), any()); + + Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVnfInstanceTopologyOperation(preloadVnfInstanceTopologyOperationInput); + + Assert.assertEquals("200", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals(null, rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>input.getVfModuleTopologyInformation() == null</code> + * + * @throws Exception + */ + @Test public void preloadVfModuleTopologyOperationErrorOne() throws Exception { + PreloadVfModuleTopologyOperationInput preloadVnfTopologyOperationInput = + mock(PreloadVfModuleTopologyOperationInput.class); + doReturn(null).when(preloadVnfTopologyOperationInput).getVfModuleTopologyInformation(); + + Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVfModuleTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, null or empty vnf-instance-name and vnf-model-id", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>preload_name = ""</code> + * And + * <code>preload_type = ""</code> + * + * @throws Exception + */ + @Test public void preloadVfModuleTopologyOperationErrorTwo() throws Exception { + // preload_name = "" + vfModuleName = ""; + vfModuleModelId = "vfModuleModelId"; + PreloadVfModuleTopologyOperationInput preloadVnfTopologyOperationInput = + mock(PreloadVfModuleTopologyOperationInput.class); + VfModuleTopologyInformation vfModuleTopologyInformation = mock(VfModuleTopologyInformation.class); + doReturn(vfModuleTopologyInformation).when(preloadVnfTopologyOperationInput).getVfModuleTopologyInformation(); + VfModuleIdentifiers vfModuleIdentifiers = mock(VfModuleIdentifiers.class); + doReturn(vfModuleName).when(vfModuleIdentifiers).getVfModuleName(); + doReturn(vfModuleModelId).when(vfModuleIdentifiers).getVfModuleModelId(); + doReturn(vfModuleIdentifiers).when(vfModuleTopologyInformation).getVfModuleIdentifiers(); + + Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVfModuleTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, invalid preload-name", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + + // preload_type = "" + vfModuleName = "vfModuleName"; + vfModuleModelId = ""; + doReturn(vfModuleName).when(vfModuleIdentifiers).getVfModuleName(); + doReturn(vfModuleModelId).when(vfModuleIdentifiers).getVfModuleModelId(); + + rpcResultFuture = vnfapiProvider.preloadVfModuleTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("invalid input, invalid preload-type", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>svcLogicClient.hasGraph("VNF-API", SVC_OPERATION, null, "sync") = false</code> + * + * @throws Exception + */ + @Test public void preloadVfModuleTopologyOperationErrorThree() throws Exception { + // preload_name = "" + vfModuleName = "vfModuleName"; + vfModuleModelId = "vfModuleModelId"; + PreloadVfModuleTopologyOperationInput preloadVnfTopologyOperationInput = + mock(PreloadVfModuleTopologyOperationInput.class); + VfModuleTopologyInformation vfModuleTopologyInformation = mock(VfModuleTopologyInformation.class); + doReturn(vfModuleTopologyInformation).when(preloadVnfTopologyOperationInput).getVfModuleTopologyInformation(); + VfModuleIdentifiers vfModuleIdentifiers = mock(VfModuleIdentifiers.class); + doReturn(vfModuleName).when(vfModuleIdentifiers).getVfModuleName(); + doReturn(vfModuleModelId).when(vfModuleIdentifiers).getVfModuleModelId(); + doReturn(vfModuleIdentifiers).when(vfModuleTopologyInformation).getVfModuleIdentifiers(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(preloadVnfTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + + Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVfModuleTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("503", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertTrue( + rpcResultFuture.get().getResult().getResponseMessage().contains("No service logic active for VNF-API")); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Success case + * + * @throws Exception + */ + @Test public void preloadVfModuleTopologyOperationSuccess() throws Exception { + // preload_name = "" + vfModuleName = "vfModuleName"; + vfModuleModelId = "vfModuleModelId"; + PreloadVfModuleTopologyOperationInput preloadVnfTopologyOperationInput = + mock(PreloadVfModuleTopologyOperationInput.class); + VfModuleTopologyInformation vfModuleTopologyInformation = mock(VfModuleTopologyInformation.class); + doReturn(vfModuleTopologyInformation).when(preloadVnfTopologyOperationInput).getVfModuleTopologyInformation(); + VfModuleIdentifiers vfModuleIdentifiers = mock(VfModuleIdentifiers.class); + doReturn(vfModuleName).when(vfModuleIdentifiers).getVfModuleName(); + doReturn(vfModuleModelId).when(vfModuleIdentifiers).getVfModuleModelId(); + doReturn(vfModuleIdentifiers).when(vfModuleTopologyInformation).getVfModuleIdentifiers(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(preloadVnfTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + doReturn(true).when(vnfsdnSvcLogicServiceClient).hasGraph(any(), any(), any(), any()); + + Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadVfModuleTopologyOperation(preloadVnfTopologyOperationInput); + + Assert.assertEquals("200", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals(null, rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>input.getNetworkTopologyInformation() == null</code> + * + * @throws Exception + */ + @Test public void preloadNetworkTopologyOperationErrorOne() throws Exception { + PreloadNetworkTopologyOperationInput PreloadNetworkTopologyOperationInput = + mock(PreloadNetworkTopologyOperationInput.class); + doReturn(null).when(PreloadNetworkTopologyOperationInput).getNetworkTopologyInformation(); + + Future<RpcResult<PreloadNetworkTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadNetworkTopologyOperation(PreloadNetworkTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("input, null or empty vnf-name and vnf-type", + rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>preload_name == ""</code> + * ANd + * <code>preload_type == ""ss</code> + * + * @throws Exception + */ + @Test public void preloadNetworkTopologyOperationErrorTwo() throws Exception { + String networkName = ""; + String networkType = "NetworkType"; + PreloadNetworkTopologyOperationInput PreloadNetworkTopologyOperationInput = + mock(PreloadNetworkTopologyOperationInput.class); + NetworkTopologyInformation networkTopologyInformation = mock(NetworkTopologyInformation.class); + doReturn(networkTopologyInformation).when(PreloadNetworkTopologyOperationInput).getNetworkTopologyInformation(); + NetworkTopologyIdentifier networkTopologyIdentifier = mock(NetworkTopologyIdentifier.class); + doReturn(networkTopologyIdentifier).when(networkTopologyInformation).getNetworkTopologyIdentifier(); + doReturn(networkName).when(networkTopologyIdentifier).getNetworkName(); + doReturn(networkType).when(networkTopologyIdentifier).getNetworkType(); + + Future<RpcResult<PreloadNetworkTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadNetworkTopologyOperation(PreloadNetworkTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("input, invalid preload-name", rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + + networkName = "NetworkName"; + networkType = ""; + doReturn(networkName).when(networkTopologyIdentifier).getNetworkName(); + doReturn(networkType).when(networkTopologyIdentifier).getNetworkType(); + + rpcResultFuture = vnfapiProvider.preloadNetworkTopologyOperation(PreloadNetworkTopologyOperationInput); + + Assert.assertEquals("403", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("input, invalid preload-type", rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Error case: + * <p> + * <code>svcLogicClient.hasGraph("VNF-API",SVC_OPERATION,null,"sync" = false</code> + * + * @throws Exception + */ + @Test public void preloadNetworkTopologyOperationErrorThree() throws Exception { + String networkName = "NetworkName"; + String networkType = "NetworkType"; + PreloadNetworkTopologyOperationInput PreloadNetworkTopologyOperationInput = + mock(PreloadNetworkTopologyOperationInput.class); + NetworkTopologyInformation networkTopologyInformation = mock(NetworkTopologyInformation.class); + doReturn(networkTopologyInformation).when(PreloadNetworkTopologyOperationInput).getNetworkTopologyInformation(); + NetworkTopologyIdentifier networkTopologyIdentifier = mock(NetworkTopologyIdentifier.class); + doReturn(networkTopologyIdentifier).when(networkTopologyInformation).getNetworkTopologyIdentifier(); + doReturn(networkName).when(networkTopologyIdentifier).getNetworkName(); + doReturn(networkType).when(networkTopologyIdentifier).getNetworkType(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(PreloadNetworkTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + + Future<RpcResult<PreloadNetworkTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadNetworkTopologyOperation(PreloadNetworkTopologyOperationInput); + + Assert.assertEquals("503", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertTrue( + rpcResultFuture.get().getResult().getResponseMessage().contains("No service logic active for VNF-API")); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Success case + * + * @throws Exception + */ + @Test public void preloadNetworkTopologyOperationErrorFour() throws Exception { + String networkName = "NetworkName"; + String networkType = "NetworkType"; + PreloadNetworkTopologyOperationInput PreloadNetworkTopologyOperationInput = + mock(PreloadNetworkTopologyOperationInput.class); + NetworkTopologyInformation networkTopologyInformation = mock(NetworkTopologyInformation.class); + doReturn(networkTopologyInformation).when(PreloadNetworkTopologyOperationInput).getNetworkTopologyInformation(); + NetworkTopologyIdentifier networkTopologyIdentifier = mock(NetworkTopologyIdentifier.class); + doReturn(networkTopologyIdentifier).when(networkTopologyInformation).getNetworkTopologyIdentifier(); + doReturn(networkName).when(networkTopologyIdentifier).getNetworkName(); + doReturn(networkType).when(networkTopologyIdentifier).getNetworkType(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(PreloadNetworkTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + doReturn(true).when(vnfsdnSvcLogicServiceClient).hasGraph(any(), any(), any(), any()); + doReturn(null).when(dataBroker).newWriteOnlyTransaction(); + + Future<RpcResult<PreloadNetworkTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadNetworkTopologyOperation(PreloadNetworkTopologyOperationInput); + + Assert.assertEquals("500", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals("java.lang.NullPointerException", rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + /** + * Test Success case + * + * @throws Exception + */ + @Test public void preloadNetworkTopologyOperationSuccess() throws Exception { + String networkName = "NetworkName"; + String networkType = "NetworkType"; + PreloadNetworkTopologyOperationInput PreloadNetworkTopologyOperationInput = + mock(PreloadNetworkTopologyOperationInput.class); + NetworkTopologyInformation networkTopologyInformation = mock(NetworkTopologyInformation.class); + doReturn(networkTopologyInformation).when(PreloadNetworkTopologyOperationInput).getNetworkTopologyInformation(); + NetworkTopologyIdentifier networkTopologyIdentifier = mock(NetworkTopologyIdentifier.class); + doReturn(networkTopologyIdentifier).when(networkTopologyInformation).getNetworkTopologyIdentifier(); + doReturn(networkName).when(networkTopologyIdentifier).getNetworkName(); + doReturn(networkType).when(networkTopologyIdentifier).getNetworkType(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(PreloadNetworkTopologyOperationInput).getSdncRequestHeader(); + doReturn(svcRequestId).when(sdncRequestHeader).getSvcRequestId(); + doReturn(true).when(vnfsdnSvcLogicServiceClient).hasGraph(any(), any(), any(), any()); + + Future<RpcResult<PreloadNetworkTopologyOperationOutput>> rpcResultFuture = + vnfapiProvider.preloadNetworkTopologyOperation(PreloadNetworkTopologyOperationInput); + + Assert.assertEquals("200", rpcResultFuture.get().getResult().getResponseCode()); + Assert.assertEquals(null, rpcResultFuture.get().getResult().getResponseMessage()); + Assert.assertEquals("Y", rpcResultFuture.get().getResult().getAckFinalIndicator()); + } + + @Test public void getVfModuleServiceData() throws Exception { + // Three parameters: siid, vfModuleServiceDataBuilder, LogicalDatastoreType + String ssid = "ssid"; + VfModuleServiceDataBuilder vfModuleServiceDataBuilder = spy(new VfModuleServiceDataBuilder()); + Optional<VfModuleList> optional = mock(Optional.class); + doReturn(optional).when(checkedFuture).get(); + doReturn(true).when(optional).isPresent(); + VfModuleList vfModuleList = mock(VfModuleList.class); + doReturn(vfModuleList).when(optional).get(); + VfModuleServiceData vfModuleServiceData = mock(VfModuleServiceData.class); + doReturn(vfModuleServiceData).when(vfModuleList).getVfModuleServiceData(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(vfModuleServiceData).getSdncRequestHeader(); + + Whitebox.invokeMethod(vnfapiProvider, "getVfModuleServiceData", ssid, vfModuleServiceDataBuilder, + LogicalDatastoreType.CONFIGURATION); + + Assert.assertEquals(sdncRequestHeader, vfModuleServiceDataBuilder.getSdncRequestHeader()); + + //With Two parameters: siid, vfModuleServiceDataBuilder + Whitebox.invokeMethod(vnfapiProvider, "getVfModuleServiceData", ssid, vfModuleServiceDataBuilder); + + Assert.assertEquals(sdncRequestHeader, vfModuleServiceDataBuilder.getSdncRequestHeader()); + } + + @Test public void getPreloadData() throws Exception { + // Four parameters: + // String preload_name, String preload_type, PreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type + PreloadDataBuilder preloadDataBuilder = spy(new PreloadDataBuilder()); + // mock optional + Optional<VnfPreloadList> optional = mock(Optional.class); + doReturn(optional).when(checkedFuture).get(); + doReturn(true).when(optional).isPresent(); + + VnfPreloadList vnfPreloadList = mock(VnfPreloadList.class); + doReturn(vnfPreloadList).when(optional).get(); + PreloadData preloadData = mock(PreloadData.class); + doReturn(preloadData).when(vnfPreloadList).getPreloadData(); + + VnfTopologyInformation vnfTopologyInformation = mock(VnfTopologyInformation.class); + doReturn(vnfTopologyInformation).when(preloadData).getVnfTopologyInformation(); + + Whitebox.invokeMethod(vnfapiProvider, "getPreloadData", "preloadName", "preloadType", preloadDataBuilder, + LogicalDatastoreType.CONFIGURATION); + + Assert.assertEquals(vnfTopologyInformation, preloadDataBuilder.getVnfTopologyInformation()); + + // Three parameters: + // String preload_name, String preload_type, PreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type + Whitebox.invokeMethod(vnfapiProvider, "getPreloadData", "preloadName", "preloadType", preloadDataBuilder); + + Assert.assertEquals(vnfTopologyInformation, preloadDataBuilder.getVnfTopologyInformation()); + } + + @Test public void getVnfInstancePreloadData() throws Exception { + // Four parameters: + // String preload_name, String preload_type, VnfInstancePreloadDataBuilder preloadDataBuilder, + // LogicalDatastoreType type + VnfInstancePreloadDataBuilder vnfInstancePreloadDataBuilder = spy(new VnfInstancePreloadDataBuilder()); + // mock optional + Optional<VnfPreloadList> optional = mock(Optional.class); + doReturn(optional).when(checkedFuture).get(); + doReturn(true).when(optional).isPresent(); + VnfInstancePreloadList vnfInstancePreloadList = mock(VnfInstancePreloadList.class); + doReturn(vnfInstancePreloadList).when(optional).get(); + VnfInstancePreloadData vnfInstancePreloadData = mock(VnfInstancePreloadData.class); + doReturn(vnfInstancePreloadData).when(vnfInstancePreloadList).getVnfInstancePreloadData(); + VnfInstanceTopologyInformation vnfInstanceTopologyInformation = mock(VnfInstanceTopologyInformation.class); + doReturn(vnfInstanceTopologyInformation).when(vnfInstancePreloadData).getVnfInstanceTopologyInformation(); + + Whitebox.invokeMethod(vnfapiProvider, "getVnfInstancePreloadData", "preloadName", "preloadType", + vnfInstancePreloadDataBuilder, LogicalDatastoreType.CONFIGURATION); + + Assert.assertEquals(vnfInstanceTopologyInformation, + vnfInstancePreloadDataBuilder.getVnfInstanceTopologyInformation()); + + // Three Parameters: + // String preload_name, String preload_type, VnfInstancePreloadDataBuilder preloadDataBuilder + Whitebox.invokeMethod(vnfapiProvider, "getVnfInstancePreloadData", "preloadName", "preloadType", + vnfInstancePreloadDataBuilder); + + Assert.assertEquals(vnfInstanceTopologyInformation, + vnfInstancePreloadDataBuilder.getVnfInstanceTopologyInformation()); + } + + @Test public void getVfModulePreloadData() throws Exception { + // Four Parameters + // String preload_name, String preload_type, VfModulePreloadDataBuilder preloadDataBuilder, + // LogicalDatastoreType type + VfModulePreloadDataBuilder vfModulePreloadDataBuilder = spy(new VfModulePreloadDataBuilder()); + // mock optional + Optional<VfModulePreloadList> optional = mock(Optional.class); + doReturn(optional).when(checkedFuture).get(); + doReturn(true).when(optional).isPresent(); + VfModulePreloadList vfModulePreloadList = mock(VfModulePreloadList.class); + doReturn(vfModulePreloadList).when(optional).get(); + VfModulePreloadData vfModulePreloadData = mock(VfModulePreloadData.class); + doReturn(vfModulePreloadData).when(vfModulePreloadList).getVfModulePreloadData(); + VfModuleTopologyInformation vfModuleTopologyInformation = mock(VfModuleTopologyInformation.class); + doReturn(vfModuleTopologyInformation).when(vfModulePreloadData).getVfModuleTopologyInformation(); + + Whitebox.invokeMethod(vnfapiProvider, "getVfModulePreloadData", "preloadName", "preloadType", + vfModulePreloadDataBuilder, LogicalDatastoreType.CONFIGURATION); + + Assert.assertEquals(vfModuleTopologyInformation, vfModulePreloadDataBuilder.getVfModuleTopologyInformation()); + + // Three Parameters: + // String vnf_name, String vnf_type, VfModulePreloadDataBuilder preloadDataBuilder + Whitebox.invokeMethod(vnfapiProvider, "getVfModulePreloadData", "preloadName", "preloadType", + vfModulePreloadDataBuilder); + + Assert.assertEquals(vfModuleTopologyInformation, vfModulePreloadDataBuilder.getVfModuleTopologyInformation()); + } + + /** + * With ServiceStatusBuilder, RequestInformation + */ + @Test public void setServiceStatusOne() throws Exception { + // VNFActivateRequest + RequestInformation requestInformation = mock(RequestInformation.class); + ServiceStatusBuilder serviceStatusBuilder = spy(new ServiceStatusBuilder()); + doReturn(RequestInformation.RequestAction.VNFActivateRequest).when(requestInformation).getRequestAction(); + doReturn(RequestInformation.RequestSubAction.SUPP).when(requestInformation).getRequestSubAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.VNFActivateRequest, serviceStatusBuilder.getVnfsdnAction()); + + //ChangeVNFActivateRequest + doReturn(RequestInformation.RequestAction.ChangeVNFActivateRequest).when(requestInformation).getRequestAction(); + doReturn(RequestInformation.RequestSubAction.CANCEL).when(requestInformation).getRequestSubAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert + .assertEquals(ServiceStatus.VnfsdnAction.ChangeVNFActivateRequest, serviceStatusBuilder.getVnfsdnAction()); + + //DisconnectVNFRequest + doReturn(RequestInformation.RequestAction.DisconnectVNFRequest).when(requestInformation).getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.DisconnectVNFRequest, serviceStatusBuilder.getVnfsdnAction()); + + //PreloadVNFRequest + doReturn(RequestInformation.RequestAction.PreloadVNFRequest).when(requestInformation).getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.PreloadVNFRequest, serviceStatusBuilder.getVnfsdnAction()); + + //DeletePreloadVNFRequest + doReturn(RequestInformation.RequestAction.DeletePreloadVNFRequest).when(requestInformation).getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.DeletePreloadVNFRequest, serviceStatusBuilder.getVnfsdnAction()); + + //VnfInstanceActivateRequest + doReturn(RequestInformation.RequestAction.VnfInstanceActivateRequest).when(requestInformation) + .getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.VnfInstanceActivateRequest, + serviceStatusBuilder.getVnfsdnAction()); + + //ChangeVnfInstanceActivateRequest + doReturn(RequestInformation.RequestAction.ChangeVnfInstanceActivateRequest).when(requestInformation) + .getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.ChangeVnfInstanceActivateRequest, + serviceStatusBuilder.getVnfsdnAction()); + + //DisconnectVnfInstanceRequest + doReturn(RequestInformation.RequestAction.DisconnectVnfInstanceRequest).when(requestInformation) + .getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.DisconnectVnfInstanceRequest, + serviceStatusBuilder.getVnfsdnAction()); + + //PreloadVnfInstanceRequest + doReturn(RequestInformation.RequestAction.PreloadVnfInstanceRequest).when(requestInformation) + .getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert + .assertEquals(ServiceStatus.VnfsdnAction.PreloadVnfInstanceRequest, serviceStatusBuilder.getVnfsdnAction()); + + //VfModuleActivateRequest + doReturn(RequestInformation.RequestAction.VfModuleActivateRequest).when(requestInformation).getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.VfModuleActivateRequest, serviceStatusBuilder.getVnfsdnAction()); + + //ChangeVfModuleActivateRequest + doReturn(RequestInformation.RequestAction.ChangeVfModuleActivateRequest).when(requestInformation) + .getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.ChangeVfModuleActivateRequest, + serviceStatusBuilder.getVnfsdnAction()); + + //DisconnectVfModuleRequest + doReturn(RequestInformation.RequestAction.DisconnectVfModuleRequest).when(requestInformation) + .getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert + .assertEquals(ServiceStatus.VnfsdnAction.DisconnectVfModuleRequest, serviceStatusBuilder.getVnfsdnAction()); + + //PreloadVfModuleRequest + doReturn(RequestInformation.RequestAction.PreloadVfModuleRequest).when(requestInformation).getRequestAction(); + Whitebox.invokeMethod(vnfapiProvider, "setServiceStatus", serviceStatusBuilder, requestInformation); + Assert.assertEquals(ServiceStatus.VnfsdnAction.PreloadVfModuleRequest, serviceStatusBuilder.getVnfsdnAction()); + } + + @Test public void getServiceData() throws Exception { + ServiceDataBuilder serviceDataBuilder = spy(new ServiceDataBuilder()); + // mock optional + Optional<VnfList> optional = mock(Optional.class); + doReturn(optional).when(checkedFuture).get(); + doReturn(true).when(optional).isPresent(); + VnfList vnfList = mock(VnfList.class); + doReturn(vnfList).when(optional).get(); + ServiceData serviceData = mock(ServiceData.class); + doReturn(serviceData).when(vnfList).getServiceData(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(serviceData).getSdncRequestHeader(); + + Whitebox.invokeMethod(vnfapiProvider, "getServiceData", "siid", serviceDataBuilder, + LogicalDatastoreType.CONFIGURATION); + + Assert.assertEquals(sdncRequestHeader, serviceDataBuilder.getSdncRequestHeader()); + } + + @Test public void getVnfInstanceServiceData() throws Exception { + VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder = spy(new VnfInstanceServiceDataBuilder()); + // mock optional + Optional<VnfList> optional = mock(Optional.class); + doReturn(optional).when(checkedFuture).get(); + doReturn(true).when(optional).isPresent(); + VnfInstanceList vnfInstanceList = mock(VnfInstanceList.class); + doReturn(vnfInstanceList).when(optional).get(); + VnfInstanceServiceData vnfInstanceServiceData = mock(VnfInstanceServiceData.class); + doReturn(vnfInstanceServiceData).when(vnfInstanceList).getVnfInstanceServiceData(); + SdncRequestHeader sdncRequestHeader = mock(SdncRequestHeader.class); + doReturn(sdncRequestHeader).when(vnfInstanceServiceData).getSdncRequestHeader(); + + Whitebox.invokeMethod(vnfapiProvider, "getVnfInstanceServiceData", "siid", vnfInstanceServiceDataBuilder, + LogicalDatastoreType.CONFIGURATION); + + Assert.assertEquals(sdncRequestHeader, vnfInstanceServiceDataBuilder.getSdncRequestHeader()); + } + + @Test public void DeleteVnfList() throws Exception { + LogicalDatastoreType configuration = LogicalDatastoreType.CONFIGURATION; + VnfList vnfList = mock(VnfList.class); + VnfListKey vnfListKey = mock(VnfListKey.class); + doReturn(vnfListKey).when(vnfList).getKey(); + InstanceIdentifier<VnfList> vnfListInstanceIdentifier = mock(InstanceIdentifier.class); + dataBroker.newWriteOnlyTransaction().put(configuration, vnfListInstanceIdentifier, vnfList); + + Whitebox.invokeMethod(vnfapiProvider, "DeleteVnfList", vnfList, configuration); + + verify(dataBroker, times(2)).newWriteOnlyTransaction(); + } +} |