Fixed Blocker Bugs
[sdnc/northbound.git] / vnfapi / provider / src / main / java / org / onap / sdnc / vnfapi / VnfApiProvider.java
index 129f2a4..c14db88 100644 (file)
@@ -3,7 +3,7 @@
  * openECOMP : SDN-C
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights
- *                                                     reserved.
+ *                                                      reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.sdnc.vnfapi;
 
-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 com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.base.Optional;
 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.DataTreeChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 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;
 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;
@@ -126,45 +126,78 @@ import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.s
 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.VnfListBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListKey;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
 
+
 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.ArrayList;
+import java.util.Collection;
 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.
+ * 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 static final String APP_NAME = "vnfapi";
-
-    private VNFSDNSvcLogicServiceClient svcLogicClient;
-    private final ExecutorService executor;
+public class VnfApiProvider implements AutoCloseable, VNFAPIService {
 
     protected DataBroker dataBroker;
     protected NotificationPublishService notificationService;
     protected RpcProviderRegistry rpcRegistry;
     protected BindingAwareBroker.RpcRegistration<VNFAPIService> rpcRegistration;
+    private final Logger log = LoggerFactory.getLogger(VnfApiProvider.class);
+    private final ExecutorService executor;
+
+    private static final String PRELOAD_DATA = "] PreloadData: ";
+    private static final String SENDING_SUCCESS_RPC = "Sending Success rpc result due to external error";
+    public static final String REASON = "', Reason: '";
+    public static final String ERROR_CODE = "] error code: '";
+    public static final String INVALID_INPUT_INVALID_PRELOAD_TYPE = "invalid input, invalid preload-type";
+    public static final String BECAUSE_OF_INVALID_PRELOAD_TYPE = " because of invalid preload-type";
+    public static final String INVALID_INPUT_NULL_OR_EMPTY_SERVICE_INSTANCE_ID = "invalid input, null or empty service-instance-id";
+    public static final String BECAUSE_OF_INVALID_INPUT_NULL_OR_EMPTY_SERVICE_INSTANCE_ID = " because of invalid input, null or empty service-instance-id";
+    private static final String APP_NAME = "vnfapi";
+    private static final String VNF_API = "VNF-API";
+    private static final String OPERATIONAL_DATA = "operational-data";
+    private static final String READ_MD_SAL_STR = "Read MD-SAL (";
+    private static final String DATA_FOR_STR = ") data for [";
+    private static final String SERVICE_DATA_STR = "] ServiceData: ";
+    private static final String NO_DATA_FOUND_STR = "No data found in MD-SAL (";
+    private static final String EXCEPTION_READING_MD_SAL_STR = "Caught Exception reading MD-SAL (";
+    private static final String FOR_STR = ") for [";
+    private static final String INVALID_INPUT_VF_MODULE_STR = "invalid input, null or empty vf-module-id";
+    private static final String UPDATED_MD_SAL_STR = "Updated MD-SAL for ";
+    private static final String RETURNED_SUCCESS_STR = "Returned SUCCESS for ";
+    private static final String UPDATING_OPERATIONAL_TREE_STR = "Updating OPERATIONAL tree.";
+    private static final String UPDATING_MD_SAL_STR = "Updating MD-SAL for ";
+    private static final String CAUGHT_EXCEPTION_STR = "Caught Exception updating MD-SAL for ";
+    private static final String RETURNED_FAILED_STR = "Returned FAILED for ";
+    private static final String ADDING_INPUT_DATA_STR = "Adding INPUT data for ";
+    private static final String ADDING_OPERATIONAL_DATA_STR = "Adding OPERATIONAL data for ";
+    private static final String OPERATIONAL_DATA_STR = "] operational-data: ";
+    private static final String ADDING_CONFIG_DATA_STR = "Adding CONFIG data for ";
+    private static final String INPUT_STR = "] input: ";
+    private static final String CALLED_STR = " called.";
+    private static final String EXITING_STR = "exiting ";
+    private static final String INVALID_INPUT_VNF_INSTANCE_STR = "invalid input, null or empty vnf-instance-id";
+
+    private VNFSDNSvcLogicServiceClient svcLogicClient;
 
     public VnfApiProvider(DataBroker dataBroker2, NotificationPublishService notificationPublishService,
         RpcProviderRegistry rpcProviderRegistry, VNFSDNSvcLogicServiceClient client) {
@@ -245,173 +278,15 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         log.info("Successfully closed provider for " + APP_NAME);
     }
 
-    // On data change not used
-    @Override
-    public void onDataChanged(AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
-
-        log.info("   IN ON DATA CHANGE: ");
-
-        boolean changed = false;
-        WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
-        DataObject updatedSubTree = change.getUpdatedSubtree();
-
-        if (updatedSubTree != null) {
-            if (log.isDebugEnabled()) {
-                log.debug("updatedSubTree was non-null:" + updatedSubTree);
-            }
-            if (updatedSubTree instanceof Vnfs) {
-                changed = isChanged(changed, (Vnfs) updatedSubTree);
-            }
-            if (updatedSubTree instanceof PreloadVnfs) {
-                changed = isChanged(changed, (PreloadVnfs) updatedSubTree);
-            }
-            //1610
-            if (updatedSubTree instanceof PreloadVnfInstances) {
-                changed = isChanged(changed, (PreloadVnfInstances) updatedSubTree);
-            }
-            //1610
-            if (updatedSubTree instanceof VnfInstances) {
-                changed = isChanged(changed, (VnfInstances) updatedSubTree);
-            }
-            //1610
-            if (updatedSubTree instanceof PreloadVfModules) {
-                changed = isChanged(changed, (PreloadVfModules) updatedSubTree);
-            }
-            //1610
-            if (updatedSubTree instanceof VfModules) {
-                changed = isChanged(changed, (VfModules) updatedSubTree);
-            }
-        }
-
-        // Do the write transaction only if something changed.
-        if (changed) {
-            CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = writeTransaction.submit();
-            Futures.addCallback(checkedFuture, new FutureCallback<Void>() {
-
-                @Override
-                public void onSuccess(Void arg0) {
-                    log.debug("Successfully updated Service Status");
-                }
-
-                @Override
-                public void onFailure(Throwable e) {
-                    log.debug("Failed updating Service Status", e);
-                }
-            }, executor);
-        }
-    }
-
-    private boolean isChanged(boolean changed, VfModules updatedSubTree) {
-        ArrayList<VfModuleList> vfModuleList =
-            (ArrayList<VfModuleList>) 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.
-                    return isChanged(changed, serviceStatus);
-                }
-            }
-        }
-        return changed;
-    }
-
-    private boolean isChanged(boolean changed, PreloadVfModules updatedSubTree) {
-        ArrayList<VfModulePreloadList> vnfInstanceList =
-            (ArrayList<VfModulePreloadList>) updatedSubTree.getVfModulePreloadList();
-        if (vnfInstanceList != null) {
-            for (VfModulePreloadList entry : vnfInstanceList) {
-                VfModulePreloadData vnfInstancePreloadData = entry.getVfModulePreloadData();
-                if (vnfInstancePreloadData != null) {
-                    return true;
-                }
-            }
-        }
-        return changed;
-    }
-
-    private boolean isChanged(boolean changed, VnfInstances updatedSubTree) {
-        ArrayList<VnfInstanceList> vnfInstanceList =
-            (ArrayList<VnfInstanceList>) 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.
-                    return isChanged(changed, serviceStatus);
-                }
-            }
-        }
-        return changed;
-    }
-
-    private boolean isChanged(boolean changed, PreloadVnfInstances updatedSubTree) {
-        ArrayList<VnfInstancePreloadList> vnfInstanceList =
-            (ArrayList<VnfInstancePreloadList>) updatedSubTree
-                .getVnfInstancePreloadList();
-        if (vnfInstanceList != null) {
-            for (VnfInstancePreloadList entry : vnfInstanceList) {
-                VnfInstancePreloadData vnfInstancePreloadData = entry.getVnfInstancePreloadData();
-                if (vnfInstancePreloadData != null) {
-                    return true;
-                }
-            }
-        }
-        return changed;
-    }
-
-    private boolean isChanged(boolean changed, PreloadVnfs updatedSubTree) {
-        ArrayList<VnfPreloadList> vnfList =
-            (ArrayList<VnfPreloadList>) updatedSubTree.getVnfPreloadList();
-        if (vnfList != null) {
-            for (VnfPreloadList entry : vnfList) {
-                PreloadData preloadData = entry.getPreloadData();
-                if (preloadData != null) {
-                    return true;
-                }
-            }
-        }
-        return changed;
-    }
-
-    private boolean isChanged(boolean changed, Vnfs updatedSubTree) {
-        ArrayList<VnfList> vnfList = (ArrayList<VnfList>) updatedSubTree.getVnfList();
-        if (vnfList != null) {
-            for (VnfList entry : vnfList) {
-                ServiceData serviceData = entry.getServiceData();
-                ServiceStatus serviceStatus = entry.getServiceStatus();
-                if (serviceData != null && serviceStatus != null) {
-                    //
-                    // ServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed.
-                    //
-                    return isChanged(changed, serviceStatus);
-                }
-            }
-        }
-        return changed;
-    }
-
-    private boolean isChanged(boolean changed, ServiceStatus serviceStatus) {
-        if ((!"Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete
-            .equals(serviceStatus.getRequestStatus()))) {
-            if (log.isDebugEnabled()) {
-                log.debug("Final Indicator is not Y, calling handleServiceDataUpdated");
-            }
-            return true;
-        }
-        return changed;
-    }
 
     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'");
 
-        private Iso8601Util() {}
+        private Iso8601Util() {
+        }
 
         static {
             df.setTimeZone(tz);
@@ -533,20 +408,22 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
 
     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();
-        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);
+        InstanceIdentifier<VnfList> serviceInstanceIdentifier = InstanceIdentifier
+            .builder(Vnfs.class)
+            .child(VnfList.class, new VnfListKey(siid))
+            .build();
+
+        Optional<VnfList> data = Optional.absent();
+        try (final ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) {
+            data = readTx.read(type, serviceInstanceIdentifier).get();
+        } catch (final InterruptedException | ExecutionException e) {
+            log.error(EXCEPTION_READING_MD_SAL_STR + type + FOR_STR + siid + "] ", e);
         }
 
-        if (data != null && data.isPresent()) {
+        if (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_STR + type + DATA_FOR_STR + siid + SERVICE_DATA_STR + serviceData);
                 serviceDataBuilder.setSdncRequestHeader(serviceData.getSdncRequestHeader());
                 serviceDataBuilder.setRequestInformation(serviceData.getRequestInformation());
                 serviceDataBuilder.setServiceInformation(serviceData.getServiceInformation());
@@ -555,10 +432,10 @@ 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_STR + siid + "] ");
             }
         } else {
-            log.info("No data found in MD-SAL (" + type + ") for [" + siid + "] ");
+            log.info(NO_DATA_FOUND_STR + type + FOR_STR + siid + "] ");
         }
     }
 
@@ -572,21 +449,22 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
     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();
-        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);
+        InstanceIdentifier<VnfInstanceList> vnfInstanceIdentifier = InstanceIdentifier
+            .builder(VnfInstances.class)
+            .child(VnfInstanceList.class, new VnfInstanceListKey(siid))
+            .build();
+
+        Optional<VnfInstanceList> data = Optional.absent();
+        try (final ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) {
+            data = readTx.read(type, vnfInstanceIdentifier).get();
+        } catch (final InterruptedException | ExecutionException e) {
+            log.error(EXCEPTION_READING_MD_SAL_STR + type + FOR_STR + siid + "] ", e);
         }
 
-        if (data != null && data.isPresent()) {
-            VnfInstanceServiceData vnfInstanceServiceData =
-                (VnfInstanceServiceData) data.get().getVnfInstanceServiceData();
+        if (data.isPresent()) {
+            VnfInstanceServiceData vnfInstanceServiceData = data.get().getVnfInstanceServiceData();
             if (vnfInstanceServiceData != null) {
-                log.info("Read MD-SAL (" + type + ") data for [" + siid + "] VnfInstanceServiceData: "
+                log.info(READ_MD_SAL_STR + type + DATA_FOR_STR + siid + "] VnfInstanceServiceData: "
                     + vnfInstanceServiceData);
                 vnfInstanceServiceDataBuilder.setSdncRequestHeader(vnfInstanceServiceData.getSdncRequestHeader());
                 vnfInstanceServiceDataBuilder.setRequestInformation(vnfInstanceServiceData.getRequestInformation());
@@ -598,10 +476,10 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
                     .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_STR + siid + "] ");
             }
         } else {
-            log.info("No data found in MD-SAL (" + type + ") for [" + siid + "] ");
+            log.info(NO_DATA_FOUND_STR + type + FOR_STR + siid + "] ");
         }
     }
 
@@ -615,22 +493,23 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
     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();
-        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);
+        InstanceIdentifier<VfModuleList> vfModuleIdentifier = InstanceIdentifier
+            .builder(VfModules.class)
+            .child(VfModuleList.class, new VfModuleListKey(siid))
+            .build();
+
+        Optional<VfModuleList> data = Optional.absent();
+        try (final ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) {
+            data = readTx.read(type, vfModuleIdentifier).get();
+        } catch (final InterruptedException | ExecutionException e) {
+            log.error(EXCEPTION_READING_MD_SAL_STR + type + FOR_STR + siid + "] ", e);
         }
 
-        if (data != null && data.isPresent()) {
+        if (data.isPresent()) {
             VfModuleServiceData vfModuleServiceData = data.get().getVfModuleServiceData();
             if (vfModuleServiceData != null) {
                 log.info(
-                    "Read MD-SAL (" + type + ") data for [" + siid + "] VfModuleServiceData: " + vfModuleServiceData);
+                    READ_MD_SAL_STR + type + DATA_FOR_STR + siid + "] VfModuleServiceData: " + vfModuleServiceData);
                 vfModuleServiceDataBuilder.setSdncRequestHeader(vfModuleServiceData.getSdncRequestHeader());
                 vfModuleServiceDataBuilder.setRequestInformation(vfModuleServiceData.getRequestInformation());
                 vfModuleServiceDataBuilder.setServiceInformation(vfModuleServiceData.getServiceInformation());
@@ -641,170 +520,137 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
                     .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_STR + siid + "] ");
             }
         } else {
-            log.info("No data found in MD-SAL (" + type + ") for [" + siid + "] ");
+            log.info(NO_DATA_FOUND_STR + type + FOR_STR + siid + "] ");
         }
     }
 
 
-    private void getPreloadData(String vnf_name, String vnf_type, PreloadDataBuilder preloadDataBuilder) {
+    private void getPreloadData(String vnfName, String vnfType, PreloadDataBuilder preloadDataBuilder) {
         // default to config
-        getPreloadData(vnf_name, vnf_type, preloadDataBuilder, LogicalDatastoreType.CONFIGURATION);
+        getPreloadData(vnfName, vnfType, preloadDataBuilder, LogicalDatastoreType.CONFIGURATION);
     }
 
-    private void getPreloadData(String preload_name, String preload_type, PreloadDataBuilder preloadDataBuilder,
+    private void getPreloadData(String preloadName, String preloadType, 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();
-        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);
+        InstanceIdentifier<VnfPreloadList> preloadInstanceIdentifier = InstanceIdentifier
+            .builder(PreloadVnfs.class)
+            .child(VnfPreloadList.class, new VnfPreloadListKey(preloadName, preloadType))
+            .build();
+
+        Optional<VnfPreloadList> data = Optional.absent();
+        try (final ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) {
+            data = readTx.read(type, preloadInstanceIdentifier).get();
+        } catch (final InterruptedException | ExecutionException e) {
+            log.error(EXCEPTION_READING_MD_SAL_STR + type + FOR_STR + preloadName + "," + preloadType + "] ", e);
         }
 
-        if (data != null && data.isPresent()) {
+        if (data.isPresent()) {
             PreloadData preloadData = (PreloadData) data.get().getPreloadData();
             if (preloadData != null) {
-                log.info("Read MD-SAL (" + type + ") data for [" + preload_name + "," + preload_type + "] PreloadData: "
+                log.info(READ_MD_SAL_STR + type + DATA_FOR_STR + preloadName + "," + preloadType + PRELOAD_DATA
                     + 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 + "] ");
+                    "No preload-data found in MD-SAL (" + type + FOR_STR + preloadName + "," + preloadType + "] ");
             }
         } else {
-            log.info("No data found in MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] ");
+            log.info(NO_DATA_FOUND_STR + type + FOR_STR + preloadName + "," + preloadType + "] ");
         }
     }
 
     //1610 preload-vnf-instance
-    private void getVnfInstancePreloadData(String vnf_name, String vnf_type,
+    private void getVnfInstancePreloadData(String vnfName, String vnfType,
         VnfInstancePreloadDataBuilder preloadDataBuilder) {
         // default to config
-        getVnfInstancePreloadData(vnf_name, vnf_type, preloadDataBuilder, LogicalDatastoreType.CONFIGURATION);
+        getVnfInstancePreloadData(vnfName, vnfType, preloadDataBuilder, LogicalDatastoreType.CONFIGURATION);
     }
 
     //1610 preload-vnf-instance
-    private void getVnfInstancePreloadData(String preload_name, String preload_type,
+    private void getVnfInstancePreloadData(String preloadName, String preloadType,
         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)
-                .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);
+        InstanceIdentifier<VnfInstancePreloadList> preloadInstanceIdentifier = InstanceIdentifier
+            .builder(PreloadVnfInstances.class)
+            .child(VnfInstancePreloadList.class, new VnfInstancePreloadListKey(preloadName, preloadType))
+            .build();
+
+        Optional<VnfInstancePreloadList> data = Optional.absent();
+        try (final ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) {
+            data = readTx.read(type, preloadInstanceIdentifier).get();
+        } catch (final InterruptedException | ExecutionException e) {
+            log.error(EXCEPTION_READING_MD_SAL_STR + type + FOR_STR + preloadName + "," + preloadType + "] ", e);
         }
 
-        if (data != null && data.isPresent()) {
+        if (data.isPresent()) {
             VnfInstancePreloadData preloadData = (VnfInstancePreloadData) data.get().getVnfInstancePreloadData();
             if (preloadData != null) {
-                log.info("Read MD-SAL (" + type + ") data for [" + preload_name + "," + preload_type
+                log.info(READ_MD_SAL_STR + type + DATA_FOR_STR + preloadName + "," + preloadType
                     + "] 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_STR + preloadName + ","
+                    + preloadType + "] ");
             }
         } else {
-            log.info("No data found in MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] ");
+            log.info(NO_DATA_FOUND_STR + type + FOR_STR + preloadName + "," + preloadType + "] ");
         }
     }
 
     // 1610 preload-vf-module
-    private void getVfModulePreloadData(String vnf_name, String vnf_type,
+    private void getVfModulePreloadData(String vnfName, String vnfType,
         VfModulePreloadDataBuilder preloadDataBuilder) {
         // default to config
-        getVfModulePreloadData(vnf_name, vnf_type, preloadDataBuilder, LogicalDatastoreType.CONFIGURATION);
+        getVfModulePreloadData(vnfName, vnfType, preloadDataBuilder, LogicalDatastoreType.CONFIGURATION);
     }
 
-    private void getVfModulePreloadData(String preload_name, String preload_type,
+    private void getVfModulePreloadData(String preloadName, String preloadType,
         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)
-                .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);
+        InstanceIdentifier<VfModulePreloadList> preloadInstanceIdentifier = InstanceIdentifier
+            .builder(PreloadVfModules.class)
+            .child(VfModulePreloadList.class, new VfModulePreloadListKey(preloadName, preloadType))
+            .build();
+
+        Optional<VfModulePreloadList> data = Optional.absent();
+        try (final ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) {
+            data = readTx.read(type, preloadInstanceIdentifier).get();
+        } catch (final InterruptedException | ExecutionException e) {
+            log.error(EXCEPTION_READING_MD_SAL_STR + type + FOR_STR + preloadName + "," + preloadType + "] ", e);
         }
 
-        if (data != null && data.isPresent()) {
+        if (data.isPresent()) {
             VfModulePreloadData preloadData = (VfModulePreloadData) data.get().getVfModulePreloadData();
             if (preloadData != null) {
-                log.info("Read MD-SAL (" + type + ") data for [" + preload_name + "," + preload_type
+                log.info(READ_MD_SAL_STR + type + DATA_FOR_STR + preloadName + "," + preloadType
                     + "] 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 + "] ");
+                    "No preload-data found in MD-SAL (" + type + FOR_STR + preloadName + "," + preloadType + "] ");
             }
         } else {
-            log.info("No data found in MD-SAL (" + type + ") for [" + preload_name + "," + preload_type + "] ");
+            log.info(NO_DATA_FOUND_STR + type + FOR_STR + preloadName + "," + preloadType + "] ");
         }
     }
 
-    private void SaveVnfList(final VnfList entry, boolean merge, LogicalDatastoreType storeType)
-        throws IllegalStateException {
+    private void deleteVnfList(final VnfList entry, LogicalDatastoreType storeType) {
         // 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<VnfList> path = vnfListIdBuilder.build();
-
-        int tries = 2;
-        while (true) {
-            try {
-                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                if (merge) {
-                    tx.merge(storeType, path, entry);
-                } else {
-                    tx.put(storeType, path, entry);
-                }
-                tx.submit().checkedGet();
-                log.debug("Update DataStore succeeded");
-                break;
-            } catch (final TransactionCommitFailedException e) {
-                if (e instanceof OptimisticLockFailedException) {
-                    if (--tries <= 0) {
-                        log.debug("Got OptimisticLockFailedException on last try - failing ");
-                        throw new IllegalStateException(e);
-                    }
-                    log.debug("Got OptimisticLockFailedException - trying again ");
-                } else {
-                    log.debug("Update DataStore failed");
-                    throw new IllegalStateException(e);
-                }
-            }
-        }
-
-    }
-
-    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<VnfList> path = vnfListIdBuilder.build();
+        InstanceIdentifier<VnfList> path = InstanceIdentifier
+            .builder(Vnfs.class)
+            .child(VnfList.class, entry.key())
+            .build();
 
         int optimisticLockTries = 2;
-        boolean tryAgain =true;
+        boolean tryAgain = true;
         while (tryAgain) {
             tryAgain = false;
             try {
@@ -812,177 +658,107 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
                 tx.delete(storeType, path);
                 tx.submit().checkedGet();
                 log.debug("DataStore delete succeeded");
-            } catch (final TransactionCommitFailedException  e) {
-                if (e instanceof OptimisticLockFailedException) {
-                    if (--optimisticLockTries <= 0) {
-                        log.debug("Got OptimisticLockFailedException on last try - failing ");
-                        throw new IllegalStateException(e);
-                    }
-                    log.debug("Got OptimisticLockFailedException - trying again ");
-                    tryAgain = true;
-                    continue;
+            } catch (OptimisticLockFailedException e) {
+                if (--optimisticLockTries <= 0) {
+                    log.debug("Got OptimisticLockFailedException on last try - failing ");
+                    throw new IllegalStateException(e);
+                }
+                log.debug("Got OptimisticLockFailedException - trying again ");
+                tryAgain = true;
+
+            } catch (final TransactionCommitFailedException e) {
+                Throwable eCause = e.getCause();
+
+                if (eCause instanceof org.opendaylight.mdsal.common.api.TransactionCommitFailedException) {
+                    log.debug("Nested TransactionCommitFailed exception - getting next cause");
+                    eCause = eCause.getCause();
+                } else {
+                    log.debug("Got TransactionCommitFailedException, caused by {}", eCause.getClass().getName());
                 }
 
-                if (e.getCause() instanceof ModifiedNodeDoesNotExistException) {
-                    log.debug("Ignoring MpdifiedNodeDoesNotExistException");
+                if (eCause instanceof ModifiedNodeDoesNotExistException) {
+                    log.debug("Ignoring ModifiedNodeDoesNotExistException");
                     break;
                 }
 
-                log.debug("Delete DataStore failed");
+                log.debug("Delete DataStore failed due to exception", eCause);
                 throw new IllegalStateException(e);
             }
         }
     }
 
+    private void saveVnfList(final VnfList entry, boolean merge, LogicalDatastoreType storeType) {
+        // Each entry will be identifiable by a unique key, we have to create that identifier
+        InstanceIdentifier<VnfList> path = InstanceIdentifier
+            .builder(Vnfs.class)
+            .child(VnfList.class, entry.key())
+            .build();
+
+        tryUpdateDataStore(entry, merge, storeType, path);
+    }
+
     //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) {
         // 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<VnfInstanceList> path = vnfInstanceListIdBuilder.build();
+        InstanceIdentifier<VnfInstanceList> path = InstanceIdentifier
+            .builder(VnfInstances.class)
+            .child(VnfInstanceList.class, entry.key())
+            .build();
 
-        int tries = 2;
-        while (true) {
-            try {
-                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                if (merge) {
-                    tx.merge(storeType, path, entry);
-                } else {
-                    tx.put(storeType, path, entry);
-                }
-                tx.submit().checkedGet();
-                log.debug("Update DataStore succeeded");
-                break;
-            } catch (final TransactionCommitFailedException e) {
-                if (e instanceof OptimisticLockFailedException) {
-                    if (--tries <= 0) {
-                        log.debug("Got OptimisticLockFailedException on last try - failing ");
-                        throw new IllegalStateException(e);
-                    }
-                    log.debug("Got OptimisticLockFailedException - trying again ");
-                } else {
-                    log.debug("Update DataStore failed");
-                    throw new IllegalStateException(e);
-                }
-            }
-        }
+        tryUpdateDataStore(entry, merge, storeType, path);
     }
 
     //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) {
         // 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<VfModuleList> path = vfModuleListIdBuilder.build();
+        InstanceIdentifier<VfModuleList> path = InstanceIdentifier
+            .builder(VfModules.class)
+            .child(VfModuleList.class, entry.key())
+            .build();
 
-        int tries = 2;
-        while (true) {
-            try {
-                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                if (merge) {
-                    tx.merge(storeType, path, entry);
-                } else {
-                    tx.put(storeType, path, entry);
-                }
-                tx.submit().checkedGet();
-                log.debug("Update DataStore succeeded");
-                break;
-            } catch (final TransactionCommitFailedException e) {
-                if (e instanceof OptimisticLockFailedException) {
-                    if (--tries <= 0) {
-                        log.debug("Got OptimisticLockFailedException on last try - failing ");
-                        throw new IllegalStateException(e);
-                    }
-                    log.debug("Got OptimisticLockFailedException - trying again ");
-                } else {
-                    log.debug("Update DataStore failed");
-                    throw new IllegalStateException(e);
-                }
-            }
-        }
+        tryUpdateDataStore(entry, merge, storeType, path);
     }
 
-    private void SavePreloadList(final VnfPreloadList entry, boolean merge, LogicalDatastoreType storeType)
-        throws IllegalStateException {
+    private void savePreloadList(final VnfPreloadList entry, boolean merge, LogicalDatastoreType storeType) {
 
         // 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<VnfPreloadList> path = vnfListIdBuilder.build();
-        int tries = 2;
-        while (true) {
-            try {
-                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                if (merge) {
-                    tx.merge(storeType, path, entry);
-                } else {
-                    tx.put(storeType, path, entry);
-                }
-                tx.submit().checkedGet();
-                log.debug("Update DataStore succeeded");
-                break;
-            } catch (final TransactionCommitFailedException e) {
-                if (e instanceof OptimisticLockFailedException) {
-                    if (--tries <= 0) {
-                        log.debug("Got OptimisticLockFailedException on last try - failing ");
-                        throw new IllegalStateException(e);
-                    }
-                    log.debug("Got OptimisticLockFailedException - trying again ");
-                } else {
-                    log.debug("Update DataStore failed");
-                    throw new IllegalStateException(e);
-                }
-            }
-        }
+        InstanceIdentifier<VnfPreloadList> path = InstanceIdentifier
+            .builder(PreloadVnfs.class)
+            .child(VnfPreloadList.class, entry.key())
+            .build();
+
+        tryUpdateDataStore(entry, merge, storeType, path);
     }
 
     //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) {
 
         // Each entry will be identifiable by a unique key, we have to create that identifier
-        InstanceIdentifier.InstanceIdentifierBuilder<VnfInstancePreloadList> vnfInstanceListIdBuilder =
-            InstanceIdentifier.<PreloadVnfInstances>builder(PreloadVnfInstances.class)
-                .child(VnfInstancePreloadList.class, entry.getKey());
-        InstanceIdentifier<VnfInstancePreloadList> path = vnfInstanceListIdBuilder.build();
-        int tries = 2;
-        while (true) {
-            try {
-                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                if (merge) {
-                    tx.merge(storeType, path, entry);
-                } else {
-                    tx.put(storeType, path, entry);
-                }
-                tx.submit().checkedGet();
-                log.debug("Update DataStore succeeded");
-                break;
-            } catch (final TransactionCommitFailedException e) {
-                if (e instanceof OptimisticLockFailedException) {
-                    if (--tries <= 0) {
-                        log.debug("Got OptimisticLockFailedException on last try - failing ");
-                        throw new IllegalStateException(e);
-                    }
-                    log.debug("Got OptimisticLockFailedException - trying again ");
-                } else {
-                    log.debug("Update DataStore failed");
-                    throw new IllegalStateException(e);
-                }
-            }
-        }
+        InstanceIdentifier<VnfInstancePreloadList> path = InstanceIdentifier
+            .builder(PreloadVnfInstances.class)
+            .child(VnfInstancePreloadList.class, entry.key())
+            .build();
+
+        tryUpdateDataStore(entry, merge, storeType, path);
     }
 
     //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) {
 
         // Each entry will be identifiable by a unique key, we have to create that identifier
-        InstanceIdentifier.InstanceIdentifierBuilder<VfModulePreloadList> vfModuleListIdBuilder =
-            InstanceIdentifier.<PreloadVfModules>builder(PreloadVfModules.class)
-                .child(VfModulePreloadList.class, entry.getKey());
-        InstanceIdentifier<VfModulePreloadList> path = vfModuleListIdBuilder.build();
+        InstanceIdentifier<VfModulePreloadList> path = InstanceIdentifier
+            .builder(PreloadVfModules.class)
+            .child(VfModulePreloadList.class, entry.key())
+            .build();
+
+        tryUpdateDataStore(entry, merge, storeType, path);
+    }
+
+    private <T extends DataObject> void tryUpdateDataStore(T entry, boolean merge, LogicalDatastoreType storeType,
+        InstanceIdentifier<T> path) {
+
         int tries = 2;
         while (true) {
             try {
@@ -995,17 +771,15 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
                 tx.submit().checkedGet();
                 log.debug("Update DataStore succeeded");
                 break;
-            } catch (final TransactionCommitFailedException e) {
-                if (e instanceof OptimisticLockFailedException) {
-                    if (--tries <= 0) {
-                        log.debug("Got OptimisticLockFailedException on last try - failing ");
-                        throw new IllegalStateException(e);
-                    }
-                    log.debug("Got OptimisticLockFailedException - trying again ");
-                } else {
-                    log.debug("Update DataStore failed");
+            } catch (OptimisticLockFailedException e) {
+                if (--tries <= 0) {
+                    log.debug("Got OptimisticLockFailedException on last try - failing ");
                     throw new IllegalStateException(e);
                 }
+                log.debug("Got OptimisticLockFailedException - trying again ");
+            } catch (final TransactionCommitFailedException e) {
+                log.debug("Update DataStore failed");
+                throw new IllegalStateException(e);
             }
         }
     }
@@ -1016,49 +790,50 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
     }
 
     //1610 vnf-instance-topology-operation
-    @Override public Future<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation(
+
+    private Boolean validateVnfInstanceTopologyOperationInput(VnfInstanceTopologyOperationInput input) {
+        return input != null
+            && input.getVnfInstanceRequestInformation() != null
+            && input.getVnfInstanceRequestInformation().getVnfInstanceId() != null
+            && input.getVnfInstanceRequestInformation().getVnfInstanceId().length() != 0;
+    }
+
+    private ListenableFuture<RpcResult<VnfInstanceTopologyOperationOutput>> buildVnfInstanceTopologyOperationOutputWithtError(
+        String responseCode, String responseMessage, String ackFinalIndicator) {
+        VnfInstanceTopologyOperationOutputBuilder responseBuilder = new VnfInstanceTopologyOperationOutputBuilder();
+        responseBuilder.setResponseCode(responseCode);
+        responseBuilder.setResponseMessage(responseMessage);
+        responseBuilder.setAckFinalIndicator(ackFinalIndicator);
+        return Futures.immediateFuture(RpcResultBuilder
+            .<VnfInstanceTopologyOperationOutput>status(true)
+            .withResult(responseBuilder.build())
+            .build());
+    }
+
+    @Override
+    public ListenableFuture<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation(
         VnfInstanceTopologyOperationInput input) {
 
-        final String SVC_OPERATION = "vnf-instance-topology-operation";
-        VnfInstanceServiceData vnfInstanceServiceData = null;
+        final String svcOperation = "vnf-instance-topology-operation";
+        VnfInstanceServiceData vnfInstanceServiceData;
         ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
         Properties parms = new Properties();
 
-        log.info(SVC_OPERATION + " called.");
+        log.info(svcOperation + CALLED_STR);
         // 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");
-            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();
-            // return error
-            return Futures.immediateFuture(rpcResult);
+        if (!validateVnfInstanceTopologyOperationInput(input)) {
+            log.debug(EXITING_STR + svcOperation + " because of " + INVALID_INPUT_VNF_INSTANCE_STR);
+            return buildVnfInstanceTopologyOperationOutputWithtError("403",
+                INVALID_INPUT_VNF_INSTANCE_STR,
+                "Y");
         }
 
         // Grab the service instance ID from the input buffer
         String viid = input.getVnfInstanceRequestInformation().getVnfInstanceId();
-        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");
-            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();
-            // return error
-            return Futures.immediateFuture(rpcResult);
-        }
+        String preloadName = input.getVnfInstanceRequestInformation().getVnfInstanceName();
+        String preloadType = input.getVnfInstanceRequestInformation().getVnfModelId();
 
         if (input.getSdncRequestHeader() != null) {
             responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
@@ -1067,7 +842,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
 
         // Get vnf-instance-preload-data
         VnfInstancePreloadDataBuilder vnfInstancePreloadDataBuilder = new VnfInstancePreloadDataBuilder();
-        getVnfInstancePreloadData(preload_name, preload_type, vnfInstancePreloadDataBuilder);
+        getVnfInstancePreloadData(preloadName, preloadType, vnfInstancePreloadDataBuilder);
 
         // Get service-data
         VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder = new VnfInstanceServiceDataBuilder();
@@ -1083,7 +858,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
 
         //
         // setup a service-data object builder
-        // ACTION vnf-topology-operation
+        // ACTION vnf-topology-operationa
         // INPUT:
         //  USES sdnc-request-header;
         //  USES request-information;
@@ -1098,16 +873,16 @@ 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_STR + svcOperation + " [" + viid + INPUT_STR + input);
         VnfInstanceTopologyOperationInputBuilder inputBuilder = new VnfInstanceTopologyOperationInputBuilder(input);
         VnfSdnUtil.toProperties(parms, inputBuilder.build());
 
-        log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + viid + "] operational-data: " + operDataBuilder
+        log.info(ADDING_OPERATIONAL_DATA_STR + svcOperation + " [" + viid + OPERATIONAL_DATA_STR + operDataBuilder
             .build());
-        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+        VnfSdnUtil.toProperties(parms, OPERATIONAL_DATA, operDataBuilder);
 
         log.info(
-            "Adding CONFIG data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preload-data: "
+            ADDING_CONFIG_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType + "] preload-data: "
                 + vnfInstancePreloadDataBuilder.build());
         VnfSdnUtil.toProperties(parms, "vnf-instance-preload-data", vnfInstancePreloadDataBuilder);
 
@@ -1119,20 +894,17 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         String ackFinal = "Y";
 
         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);
-                    errorMessage = e.getMessage();
-                    errorCode = "500";
-                }
+            if (svcLogicClient.hasGraph(VNF_API, svcOperation, null, "sync")) {
+                respProps = svcLogicClient
+                    .execute(VNF_API, svcOperation, null, "sync", vnfInstanceServiceDataBuilder, parms);
             } else {
-                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorMessage = "No service logic active for VNF-API: '" + svcOperation + "'";
                 errorCode = "503";
             }
+        } catch (SvcLogicException e) {
+            log.error("Caught exception executing service logic for " + svcOperation, e);
+            errorMessage = e.getMessage();
+            errorCode = "500";
         } catch (Exception e) {
             errorCode = "500";
             errorMessage = e.getMessage();
@@ -1157,14 +929,15 @@ 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_STR + svcOperation + " [" + viid + "] \n", e);
             }
-            log.error("Returned FAILED for " + SVC_OPERATION + " [" + viid + "] " + responseBuilder.build());
-            RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
-                RpcResultBuilder.<VnfInstanceTopologyOperationOutput>status(true).withResult(responseBuilder.build())
-                    .build();
+            log.error(RETURNED_FAILED_STR + svcOperation + " [" + viid + "] " + responseBuilder.build());
+            RpcResult<VnfInstanceTopologyOperationOutput> rpcResult = RpcResultBuilder
+                .<VnfInstanceTopologyOperationOutput>status(true)
+                .withResult(responseBuilder.build())
+                .build();
             // return error
             return Futures.immediateFuture(rpcResult);
         }
@@ -1172,21 +945,20 @@ 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: "
+            log.info(UPDATING_MD_SAL_STR + svcOperation + " [" + 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);
+            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)) {
-                    log.info("Updating OPERATIONAL tree.");
-                    SaveVnfInstanceList(vnfInstanceListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+                    log.info(UPDATING_OPERATIONAL_TREE_STR);
+                    saveVnfInstanceList(vnfInstanceListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
                 }
             }
             VnfInstanceInformationBuilder vnfInstanceInformationBuilder = new VnfInstanceInformationBuilder();
@@ -1194,14 +966,15 @@ 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_STR + svcOperation + " [" + viid + "] \n", e);
             responseBuilder.setResponseCode("500");
             responseBuilder.setResponseMessage(e.toString());
             responseBuilder.setAckFinalIndicator("Y");
-            log.error("Returned FAILED for " + SVC_OPERATION + " [" + viid + "] " + responseBuilder.build());
-            RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
-                RpcResultBuilder.<VnfInstanceTopologyOperationOutput>status(true).withResult(responseBuilder.build())
-                    .build();
+            log.error(RETURNED_FAILED_STR + svcOperation + " [" + viid + "] " + responseBuilder.build());
+            RpcResult<VnfInstanceTopologyOperationOutput> rpcResult = RpcResultBuilder
+                .<VnfInstanceTopologyOperationOutput>status(true)
+                .withResult(responseBuilder.build())
+                .build();
             // return error
             return Futures.immediateFuture(rpcResult);
         }
@@ -1212,58 +985,61 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         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_STR + svcOperation + " [" + viid + "] ");
+        log.info(RETURNED_SUCCESS_STR + svcOperation + " [" + viid + "] " + responseBuilder.build());
 
-        RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
-            RpcResultBuilder.<VnfInstanceTopologyOperationOutput>status(true).withResult(responseBuilder.build())
-                .build();
+        RpcResult<VnfInstanceTopologyOperationOutput> rpcResult = 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(
+    @Override
+    public ListenableFuture<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation(
         VfModuleTopologyOperationInput input) {
 
-        final String SVC_OPERATION = "vf-module-topology-operation";
-        VfModuleServiceData vfModuleServiceData = null;
-        VnfInstanceServiceData vnfInstanceServiceData = null;
+        final String svcOperation = "vf-module-topology-operation";
+        VfModuleServiceData vfModuleServiceData;
         ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
         Properties parms = new Properties();
 
-        log.info(SVC_OPERATION + " called.");
+        log.info(svcOperation + CALLED_STR);
         // 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");
+            log.debug(EXITING_STR + svcOperation + " because of invalid input, null or empty vf-module-id");
             responseBuilder.setResponseCode("403");
-            responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id");
+            responseBuilder.setResponseMessage(INVALID_INPUT_VF_MODULE_STR);
             responseBuilder.setAckFinalIndicator("Y");
-            RpcResult<VfModuleTopologyOperationOutput> rpcResult =
-                RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build())
-                    .build();
+            RpcResult<VfModuleTopologyOperationOutput> rpcResult = 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 preload_type = input.getVfModuleRequestInformation().getVfModuleModelId();
+        String preloadName = input.getVfModuleRequestInformation().getVfModuleName();
+        String preloadType = 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");
+            log.debug(EXITING_STR + svcOperation + " because of invalid vf-module-id");
             responseBuilder.setResponseCode("403");
-            responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id");
+            responseBuilder.setResponseMessage(INVALID_INPUT_VF_MODULE_STR);
             responseBuilder.setAckFinalIndicator("Y");
-            RpcResult<VfModuleTopologyOperationOutput> rpcResult =
-                RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build())
-                    .build();
+            RpcResult<VfModuleTopologyOperationOutput> rpcResult = RpcResultBuilder
+                .<VfModuleTopologyOperationOutput>status(true)
+                .withResult(responseBuilder.build())
+                .build();
             // return error
             return Futures.immediateFuture(rpcResult);
         }
@@ -1272,13 +1048,14 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         String viid = input.getVfModuleRequestInformation().getVnfInstanceId();
 
         if (viid == null || viid.length() == 0) {
-            log.debug("exiting " + SVC_OPERATION + " because of invalid vnf-instance-id");
+            log.debug(EXITING_STR + svcOperation + " because of invalid vnf-instance-id");
             responseBuilder.setResponseCode("403");
-            responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id");
+            responseBuilder.setResponseMessage(INVALID_INPUT_VNF_INSTANCE_STR);
             responseBuilder.setAckFinalIndicator("Y");
-            RpcResult<VfModuleTopologyOperationOutput> rpcResult =
-                RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build())
-                    .build();
+            RpcResult<VfModuleTopologyOperationOutput> rpcResult = RpcResultBuilder
+                .<VfModuleTopologyOperationOutput>status(true)
+                .withResult(responseBuilder.build())
+                .build();
             // return error
             return Futures.immediateFuture(rpcResult);
         }
@@ -1290,7 +1067,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
 
         // Get vf-module-preload-data
         VfModulePreloadDataBuilder vfModulePreloadDataBuilder = new VfModulePreloadDataBuilder();
-        getVfModulePreloadData(preload_name, preload_type, vfModulePreloadDataBuilder);
+        getVfModulePreloadData(preloadName, preloadType, vfModulePreloadDataBuilder);
 
         // Get vf-module-service-data
         VfModuleServiceDataBuilder vfModuleServiceDataBuilder = new VfModuleServiceDataBuilder();
@@ -1300,10 +1077,6 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         VfModuleServiceDataBuilder operDataBuilder = new VfModuleServiceDataBuilder();
         getVfModuleServiceData(vfid, operDataBuilder, LogicalDatastoreType.OPERATIONAL);
 
-        // save service-data builder object for rollback
-        VfModuleServiceDataBuilder rb_vfModuleServiceDataBuilder = vfModuleServiceDataBuilder;
-        VfModuleServiceDataBuilder rb_operDataBuilder = operDataBuilder;
-
         // 1610 Need to pull vnf-instance-list.vf-module-relationship-list from MD-SAL
         VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder = new VnfInstanceServiceDataBuilder();
         getVnfInstanceServiceData(viid, vnfInstanceServiceDataBuilder);
@@ -1312,10 +1085,6 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         VnfInstanceServiceDataBuilder vnfInstanceOperDataBuilder = new VnfInstanceServiceDataBuilder();
         getVnfInstanceServiceData(viid, vnfInstanceOperDataBuilder, LogicalDatastoreType.OPERATIONAL);
 
-        // save operational builder object for rollback
-        VnfInstanceServiceDataBuilder rb_vnfInstanceServiceDataBuilder = vnfInstanceServiceDataBuilder;
-        VnfInstanceServiceDataBuilder rb_vnfInstanceOperDataBuilder = vnfInstanceOperDataBuilder;
-
         // Set the serviceStatus based on input
         setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader());
         setServiceStatus(serviceStatusBuilder, input.getRequestInformation());
@@ -1324,36 +1093,32 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         // setup a service-data object builder
         // ACTION vnf-topology-operation
         // INPUT:
-        //  USES sdnc-request-header;
         //  USES request-information;
         //  USES service-information;
         //  USES vnf-request-information
         // OUTPUT:
-        //  USES vnf-topology-response-body;
         //  USES vnf-information
         //  USES service-information
         //
         // container service-data
-        //   uses vnf-configuration-information;
-        //   uses oper-status;
 
-        log.info("Adding INPUT data for " + SVC_OPERATION + " [" + vfid + "] input: " + input);
+        log.info(ADDING_INPUT_DATA_STR + svcOperation + " [" + vfid + INPUT_STR + input);
         VfModuleTopologyOperationInputBuilder inputBuilder = new VfModuleTopologyOperationInputBuilder(input);
         VnfSdnUtil.toProperties(parms, inputBuilder.build());
 
-        log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + vfid + "] vf-module operational-data: "
+        log.info(ADDING_OPERATIONAL_DATA_STR + svcOperation + " [" + vfid + "] vf-module operational-data: "
             + operDataBuilder.build());
-        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+        VnfSdnUtil.toProperties(parms, OPERATIONAL_DATA, operDataBuilder);
 
-        log.info("Adding CONFIG data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type
+        log.info(ADDING_CONFIG_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType
             + "] 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: "
+        log.info("Adding vnf-instance CONFIG data for " + svcOperation + " [" + 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
+        log.info("Adding vnf-instance OPERATIONAL data for " + svcOperation + " [" + viid
             + "] vnf-instance operational-data: " + vnfInstanceOperDataBuilder.build());
         VnfSdnUtil.toProperties(parms, "vnf-instance-operational-data", vnfInstanceOperDataBuilder);
 
@@ -1366,28 +1131,23 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         String ackFinal = "Y";
 
         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);
-                    errorMessage = e.getMessage();
-                    errorCode = "500";
-                }
-
+            if (svcLogicClient.hasGraph(VNF_API, svcOperation, null, "sync")) {
+                respProps = svcLogicClient
+                    .execute(VNF_API, svcOperation, null, "sync", vfModuleServiceDataBuilder, parms);
             } else {
-                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorMessage = "No service logic active for VNF-API: '" + svcOperation + "'";
                 errorCode = "503";
             }
+        } catch (SvcLogicException e) {
+            log.error("Caught exception executing service logic for " + svcOperation, e);
+            errorMessage = e.getMessage();
+            errorCode = "500";
         } catch (Exception e) {
             errorCode = "500";
             errorMessage = e.getMessage();
             log.error("Caught exception looking for service logic", e);
         }
 
-
         if (respProps != null) {
             errorCode = respProps.getProperty("error-code");
             errorMessage = respProps.getProperty("error-message");
@@ -1398,7 +1158,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         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 && !("0".equals(errorCode) || "200".equals(errorCode))) {
             responseBuilder.setResponseCode(errorCode);
             responseBuilder.setResponseMessage(errorMessage);
             responseBuilder.setAckFinalIndicator(ackFinal);
@@ -1406,11 +1166,11 @@ 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_STR + svcOperation + " [" + vfid + "] \n", e);
             }
-            log.error("Returned FAILED for " + SVC_OPERATION + " [" + vfid + "] " + responseBuilder.build());
+            log.error(RETURNED_FAILED_STR + svcOperation + " [" + vfid + "] " + responseBuilder.build());
             RpcResult<VfModuleTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build())
                     .build();
@@ -1423,20 +1183,19 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         try {
             vfModuleServiceData = vfModuleServiceDataBuilder.build();
             log.info(
-                "Updating MD-SAL for " + SVC_OPERATION + " [" + vfid + "] VfModuleServiceData: " + vfModuleServiceData);
+                UPDATING_MD_SAL_STR + svcOperation + " [" + 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);
+            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)) {
-                    log.info("Updating OPERATIONAL tree.");
-                    SaveVfModuleList(vfModuleListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+                    log.info(UPDATING_OPERATIONAL_TREE_STR);
+                    saveVfModuleList(vfModuleListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
                 }
             }
             VfModuleInformationBuilder vfModuleInformationBuilder = new VfModuleInformationBuilder();
@@ -1444,11 +1203,11 @@ 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_STR + svcOperation + " [" + 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_STR + svcOperation + " [" + vfid + "] " + responseBuilder.build());
             RpcResult<VfModuleTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build())
                     .build();
@@ -1462,8 +1221,8 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         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 " + svcOperation + " [" + vfid + "] ");
+        log.info(RETURNED_SUCCESS_STR + svcOperation + " [" + vfid + "] " + responseBuilder.build());
 
         RpcResult<VfModuleTopologyOperationOutput> rpcResult =
             RpcResultBuilder.<VfModuleTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build();
@@ -1471,24 +1230,24 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         return Futures.immediateFuture(rpcResult);
     }
 
-
     @Override
-    public Future<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(VnfTopologyOperationInput input) {
-        final String SVC_OPERATION = "vnf-topology-operation";
-        ServiceData serviceData = null;
+    public ListenableFuture<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(
+        VnfTopologyOperationInput input) {
+        final String svcOperation = "vnf-topology-operation";
+        ServiceData serviceData;
         ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
         Properties parms = new Properties();
 
-        log.info(SVC_OPERATION + " called.");
+        log.info(svcOperation + CALLED_STR);
         // 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");
+            log.debug(EXITING_STR + svcOperation + " because of invalid input, null or empty service-instance-id");
             responseBuilder.setResponseCode("403");
-            responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
+            responseBuilder.setResponseMessage(INVALID_INPUT_NULL_OR_EMPTY_SERVICE_INSTANCE_ID);
             responseBuilder.setAckFinalIndicator("Y");
             RpcResult<VnfTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<VnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build();
@@ -1498,7 +1257,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
 
         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");
+            log.debug(EXITING_STR + svcOperation + " 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");
@@ -1510,8 +1269,8 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
 
         // Grab the service instance ID from the input buffer
         String siid = input.getVnfRequestInformation().getVnfId();
-        String preload_name = input.getVnfRequestInformation().getVnfName();
-        String preload_type = input.getVnfRequestInformation().getVnfType();
+        String preloadName = input.getVnfRequestInformation().getVnfName();
+        String preloadType = input.getVnfRequestInformation().getVnfType();
 
         if (input.getSdncRequestHeader() != null) {
             responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
@@ -1519,7 +1278,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
-        getPreloadData(preload_name, preload_type, preloadDataBuilder);
+        getPreloadData(preloadName, preloadType, preloadDataBuilder);
 
         ServiceDataBuilder serviceDataBuilder = new ServiceDataBuilder();
         getServiceData(siid, serviceDataBuilder);
@@ -1535,29 +1294,25 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         // setup a service-data object builder
         // ACTION vnf-topology-operation
         // INPUT:
-        //  USES sdnc-request-header;
         //  USES request-information;
-        //  USES service-information;
         //  USES vnf-request-information
         // OUTPUT:
-        //  USES vnf-topology-response-body;
         //  USES vnf-information
         //  USES service-information
         //
         // container service-data
-        //   uses vnf-configuration-information;
         //   uses oper-status;
 
-        log.info("Adding INPUT data for " + SVC_OPERATION + " [" + siid + "] input: " + input);
+        log.info(ADDING_INPUT_DATA_STR + svcOperation + " [" + siid + INPUT_STR + input);
         VnfTopologyOperationInputBuilder inputBuilder = new VnfTopologyOperationInputBuilder(input);
         VnfSdnUtil.toProperties(parms, inputBuilder.build());
 
-        log.info("Adding OPERATIONAL data for " + SVC_OPERATION + " [" + siid + "] operational-data: " + operDataBuilder
+        log.info(ADDING_OPERATIONAL_DATA_STR + svcOperation + " [" + siid + OPERATIONAL_DATA_STR + operDataBuilder
             .build());
-        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+        VnfSdnUtil.toProperties(parms, OPERATIONAL_DATA, operDataBuilder);
 
         log.info(
-            "Adding CONFIG data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preload-data: "
+            "Adding CONFIG data for " + svcOperation + " [" + preloadName + "," + preloadType + "] preload-data: "
                 + preloadDataBuilder.build());
         VnfSdnUtil.toProperties(parms, "preload-data", preloadDataBuilder);
 
@@ -1569,20 +1324,16 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         String ackFinal = "Y";
 
         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);
-                    errorMessage = e.getMessage();
-                    errorCode = "500";
-                }
+            if (svcLogicClient.hasGraph(VNF_API, svcOperation, null, "sync")) {
+                respProps = svcLogicClient.execute(VNF_API, svcOperation, null, "sync", serviceDataBuilder, parms);
             } else {
-                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorMessage = "No service logic active for VNF-API: '" + svcOperation + "'";
                 errorCode = "503";
             }
+        } catch (SvcLogicException e) {
+            log.error("Caught exception executing service logic for " + siid, e);
+            errorMessage = e.getMessage();
+            errorCode = "500";
         } catch (Exception e) {
             errorCode = "500";
             errorMessage = e.getMessage();
@@ -1599,7 +1350,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         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 && !("0".equals(errorCode) || "200".equals(errorCode))) {
             responseBuilder.setResponseCode(errorCode);
             responseBuilder.setResponseMessage(errorMessage);
             responseBuilder.setAckFinalIndicator(ackFinal);
@@ -1607,11 +1358,11 @@ 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_STR + svcOperation + " [" + siid + "] \n", e);
             }
-            log.error("Returned FAILED for " + SVC_OPERATION + " [" + siid + "] " + responseBuilder.build());
+            log.error(RETURNED_FAILED_STR + svcOperation + " [" + siid + "] " + responseBuilder.build());
             RpcResult<VnfTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<VnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build();
             // return error
@@ -1621,24 +1372,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_STR + svcOperation + " [" + 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);
+            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);
+                    log.info(UPDATING_OPERATIONAL_TREE_STR);
+                    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);
+                    deleteVnfList(vnfListBuilder.build(), LogicalDatastoreType.CONFIGURATION);
+                    deleteVnfList(vnfListBuilder.build(), LogicalDatastoreType.OPERATIONAL);
                 }
             }
             VnfInformationBuilder vnfInformationBuilder = new VnfInformationBuilder();
@@ -1646,11 +1397,11 @@ 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_STR + svcOperation + " [" + 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_STR + svcOperation + " [" + siid + "] " + responseBuilder.build());
             RpcResult<VnfTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<VnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build();
             // return error
@@ -1663,8 +1414,8 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         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_STR + svcOperation + " [" + siid + "] ");
+        log.info(RETURNED_SUCCESS_STR + svcOperation + " [" + siid + "] " + responseBuilder.build());
 
         RpcResult<VnfTopologyOperationOutput> rpcResult =
             RpcResultBuilder.<VnfTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build();
@@ -1672,24 +1423,25 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         return Futures.immediateFuture(rpcResult);
     }
 
-    @Override public Future<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
+    @Override
+    public ListenableFuture<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
         NetworkTopologyOperationInput input) {
 
-        final String SVC_OPERATION = "network-topology-operation";
-        ServiceData serviceData = null;
+        final String svcOperation = "network-topology-operation";
+        ServiceData serviceData;
         ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
         Properties parms = new Properties();
 
-        log.info(SVC_OPERATION + " called.");
+        log.info(svcOperation + CALLED_STR);
         // 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");
+            log.debug(EXITING_STR + svcOperation + " because of invalid input, null or empty service-instance-id");
             responseBuilder.setResponseCode("403");
-            responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
+            responseBuilder.setResponseMessage(INVALID_INPUT_NULL_OR_EMPTY_SERVICE_INSTANCE_ID);
             responseBuilder.setAckFinalIndicator("Y");
             RpcResult<NetworkTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build())
@@ -1700,9 +1452,9 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
 
         if (input.getNetworkRequestInformation() == null
             || input.getNetworkRequestInformation().getNetworkName() == null) {
-            log.debug("exiting " + SVC_OPERATION + " because of invalid input, null or empty service-instance-id");
+            log.debug(EXITING_STR + svcOperation + " because of invalid input, null or empty service-instance-id");
             responseBuilder.setResponseCode("403");
-            responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
+            responseBuilder.setResponseMessage(INVALID_INPUT_NULL_OR_EMPTY_SERVICE_INSTANCE_ID);
             responseBuilder.setAckFinalIndicator("Y");
             RpcResult<NetworkTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build())
@@ -1712,14 +1464,14 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         // Grab the service instance ID from the input buffer
-        String siid = null;
+        String siid;
         if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Assign)) {
             siid = input.getNetworkRequestInformation().getNetworkName();
         } else {
             siid = input.getNetworkRequestInformation().getNetworkId();
         }
-        String preload_name = input.getNetworkRequestInformation().getNetworkName();
-        String preload_type = input.getNetworkRequestInformation().getNetworkType();
+        String preloadName = input.getNetworkRequestInformation().getNetworkName();
+        String preloadType = input.getNetworkRequestInformation().getNetworkType();
 
         if (input.getSdncRequestHeader() != null) {
             responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
@@ -1727,9 +1479,9 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
-        getPreloadData(preload_name, preload_type, preloadDataBuilder);
+        getPreloadData(preloadName, preloadType, preloadDataBuilder);
 
-        log.info("Adding INPUT data for " + SVC_OPERATION + " [" + siid + "] input: " + input);
+        log.info(ADDING_INPUT_DATA_STR + svcOperation + " [" + siid + INPUT_STR + input);
         NetworkTopologyOperationInputBuilder inputBuilder = new NetworkTopologyOperationInputBuilder(input);
         VnfSdnUtil.toProperties(parms, inputBuilder.build());
 
@@ -1742,20 +1494,16 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         String networkId = "error";
 
         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";
-                }
+            if (svcLogicClient.hasGraph(VNF_API, svcOperation, null, "sync")) {
+                respProps = svcLogicClient.execute(VNF_API, svcOperation, null, "sync", preloadDataBuilder, parms);
             } else {
-                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorMessage = "No service logic active for VNF-API: '" + svcOperation + "'";
                 errorCode = "503";
             }
+        } catch (SvcLogicException e) {
+            log.error("Caught exception executing service logic for " + svcOperation, e);
+            errorMessage = e.getMessage();
+            errorCode = "500";
         } catch (Exception e) {
             errorCode = "500";
             errorMessage = e.getMessage();
@@ -1769,12 +1517,12 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
             networkId = respProps.getProperty("networkId", "0");
         }
 
-        if (errorCode != null && errorCode.length() != 0 && !(errorCode.equals("0") || errorCode.equals("200"))) {
+        if (errorCode != null && errorCode.length() != 0 && !("0".equals(errorCode) || "200".equals(errorCode))) {
             responseBuilder.setResponseCode(errorCode);
             responseBuilder.setResponseMessage(errorMessage);
             responseBuilder.setAckFinalIndicator(ackFinal);
 
-            log.error("Returned FAILED for " + SVC_OPERATION + " [" + siid + "] " + responseBuilder.build());
+            log.error(RETURNED_FAILED_STR + svcOperation + " [" + siid + "] " + responseBuilder.build());
 
             RpcResult<NetworkTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build())
@@ -1790,11 +1538,11 @@ 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_STR + svcOperation + " [" + 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_STR + svcOperation + " [" + siid + "] " + responseBuilder.build());
             RpcResult<NetworkTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build())
                     .build();
@@ -1808,8 +1556,8 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         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_STR + svcOperation + " [" + siid + "] ");
+        log.info(RETURNED_SUCCESS_STR + svcOperation + " [" + siid + "] " + responseBuilder.build());
 
         RpcResult<NetworkTopologyOperationOutput> rpcResult =
             RpcResultBuilder.<NetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build()).build();
@@ -1817,25 +1565,25 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         return Futures.immediateFuture(rpcResult);
     }
 
-    @Override public Future<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation(
+    @Override
+    public ListenableFuture<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation(
         PreloadVnfTopologyOperationInput input) {
 
-        final String SVC_OPERATION = "preload-vnf-topology-operation";
-        PreloadData preloadData = null;
+        final String svcOperation = "preload-vnf-topology-operation";
+        PreloadData preloadData;
         Properties parms = new Properties();
 
-        log.info(SVC_OPERATION + " called.");
+        log.info(svcOperation + CALLED_STR);
         // 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 or vnf-type");
+            log.debug(EXITING_STR + svcOperation + " because of invalid input, null or empty vnf-name or vnf-type");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("invalid input, null or empty vnf-name or vnf-type");
             responseBuilder.setAckFinalIndicator("Y");
@@ -1846,24 +1594,25 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         // Grab the name and type from the input buffer
-        String preload_name = input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfName();
-        String preload_type = input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfType();
+        String preloadName = input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfName();
+        String preloadType = 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 (preloadName == null || preloadName.length() == 0) {
+            log.debug(EXITING_STR + svcOperation + " because of invalid preload-name");
             responseBuilder.setResponseCode("403");
-            responseBuilder.setResponseMessage("invalid input, invalid preload-name");
+            responseBuilder.setResponseMessage(INVALID_INPUT_INVALID_PRELOAD_TYPE);
             responseBuilder.setAckFinalIndicator("Y");
             RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
                 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 (preloadType == null || preloadType.length() == 0) {
+            log.debug(EXITING_STR + svcOperation + " because of invalid preload-type");
             responseBuilder.setResponseCode("403");
-            responseBuilder.setResponseMessage("invalid input, invalid preload-type");
+            responseBuilder.setResponseMessage(INVALID_INPUT_INVALID_PRELOAD_TYPE);
             responseBuilder.setAckFinalIndicator("Y");
             RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<PreloadVnfTopologyOperationOutput>status(true).withResult(responseBuilder.build())
@@ -1877,31 +1626,26 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
-        getPreloadData(preload_name, preload_type, preloadDataBuilder);
-        //preloadData = preloadDataBuilder.build();
-
+        getPreloadData(preloadName, preloadType, preloadDataBuilder);
         PreloadDataBuilder operDataBuilder = new PreloadDataBuilder();
-        getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL);
+        getPreloadData(preloadName, preloadType, operDataBuilder, LogicalDatastoreType.OPERATIONAL);
 
         //
         // setup a preload-data object builder
         // ACTION vnf-topology-operation
         // INPUT:
-        //  USES sdnc-request-header;
         //  USES request-information;
         //  uses vnf-topology-information;
         // OUTPUT:
-        //  USES vnf-topology-response-body;
         //
         // container preload-data
-        //   uses vnf-configuration-information;
         log.info(
-            "Adding INPUT data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] input: " + input);
+            ADDING_INPUT_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType + INPUT_STR + 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());
-        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+        log.info(ADDING_OPERATIONAL_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType
+            + OPERATIONAL_DATA_STR + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, OPERATIONAL_DATA, operDataBuilder);
 
         // Call SLI sync method
         // Get SvcLogicService reference
@@ -1911,20 +1655,16 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         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);
-                    errorMessage = e.getMessage();
-                    errorCode = "500";
-                }
+            if (svcLogicClient.hasGraph(VNF_API, svcOperation, null, "sync")) {
+                respProps = svcLogicClient.execute(VNF_API, svcOperation, null, "sync", preloadDataBuilder, parms);
             } else {
-                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorMessage = "No service logic active for VNF-API: '" + svcOperation + "'";
                 errorCode = "503";
             }
+        } catch (SvcLogicException e) {
+            log.error("Caught exception executing service logic for " + svcOperation, e);
+            errorMessage = e.getMessage();
+            errorCode = "500";
         } catch (Exception e) {
             errorCode = "500";
             errorMessage = e.getMessage();
@@ -1935,30 +1675,29 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
             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 && !("0".equals(errorCode) || "200".equals(errorCode))) {
 
             responseBuilder.setResponseCode(errorCode);
             responseBuilder.setResponseMessage(errorMessage);
             responseBuilder.setAckFinalIndicator(ackFinal);
 
             VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
-            preloadVnfListBuilder.setVnfName(preload_name);
-            preloadVnfListBuilder.setVnfType(preload_type);
+            preloadVnfListBuilder.setVnfName(preloadName);
+            preloadVnfListBuilder.setVnfType(preloadType);
             preloadVnfListBuilder.setPreloadData(preloadDataBuilder.build());
             log.error(
-                "Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] error code: '"
+                RETURNED_FAILED_STR + svcOperation + " [" + preloadName + "," + preloadType + "] 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
+                    CAUGHT_EXCEPTION_STR + svcOperation + " [" + preloadName + "," + preloadType
                         + "] \n", e);
             }
-            log.debug("Sending Success rpc result due to external error");
+            log.debug(SENDING_SUCCESS_RPC);
             RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<PreloadVnfTopologyOperationOutput>status(true).withResult(responseBuilder.build())
                     .build();
@@ -1969,25 +1708,25 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         try {
             preloadData = preloadDataBuilder.build();
             log.info(
-                "Updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preloadData: "
+                UPDATING_MD_SAL_STR + svcOperation + " [" + preloadName + "," + preloadType + "] preloadData: "
                     + preloadData);
             // svc-configuration-list
             VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
-            preloadVnfListBuilder.setVnfName(preload_name);
-            preloadVnfListBuilder.setVnfType(preload_type);
+            preloadVnfListBuilder.setVnfName(preloadName);
+            preloadVnfListBuilder.setVnfType(preloadType);
             preloadVnfListBuilder.setPreloadData(preloadData);
 
             // SDNGC-989 set merge flag to false
-            SavePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
-            log.info("Updating OPERATIONAL tree.");
-            SavePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+            savePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
+            log.info(UPDATING_OPERATIONAL_TREE_STR);
+            savePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
         } catch (Exception e) {
-            log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type
+            log.error(CAUGHT_EXCEPTION_STR + svcOperation + " [" + preloadName + "," + preloadType
                 + "] \n", e);
             responseBuilder.setResponseCode("500");
             responseBuilder.setResponseMessage(e.toString());
             responseBuilder.setAckFinalIndicator("Y");
-            log.error("Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] "
+            log.error(RETURNED_FAILED_STR + svcOperation + " [" + preloadName + "," + preloadType + "] "
                 + responseBuilder.build());
             RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<PreloadVnfTopologyOperationOutput>status(false).withResult(responseBuilder.build())
@@ -2001,9 +1740,9 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         if (errorMessage != null) {
             responseBuilder.setResponseMessage(errorMessage);
         }
-        log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] ");
+        log.info(UPDATED_MD_SAL_STR + svcOperation + " [" + preloadName + "," + preloadType + "] ");
         log.info(
-            "Returned SUCCESS for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + responseBuilder
+            RETURNED_SUCCESS_STR + svcOperation + " [" + preloadName + "," + preloadType + "] " + responseBuilder
                 .build());
 
         RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
@@ -2013,25 +1752,23 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
     }
 
     //1610 preload-vnf-instance-topology-operation
-    @Override public Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation(
+    @Override
+    public ListenableFuture<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation(
         PreloadVnfInstanceTopologyOperationInput input) {
 
-        final String SVC_OPERATION = "preload-vnf-instance-topology-operation";
-        VnfInstancePreloadData vnfInstancePreloadData = null;
+        final String svcOperation = "preload-vnf-instance-topology-operation";
+        VnfInstancePreloadData vnfInstancePreloadData;
         Properties parms = new Properties();
 
-        log.info(SVC_OPERATION + " called.");
+        log.info(svcOperation + CALLED_STR);
         // create a new response object
         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
+            log.debug(EXITING_STR + svcOperation
                 + " because of invalid input, null or empty vnf-instance-name or vnf-model-id");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-name or vnf-model-id");
@@ -2043,13 +1780,13 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         // Grab the name and type from the input buffer
-        String preload_name =
+        String preloadName =
             input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfInstanceName();
-        String preload_type = input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfModelId();
+        String preloadType = 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");
+        // Make sure we have a preloadName and preloadType
+        if (preloadName == null || preloadName.length() == 0) {
+            log.debug(EXITING_STR + svcOperation + " because of invalid preload-name");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("invalid input, invalid preload-name");
             responseBuilder.setAckFinalIndicator("Y");
@@ -2058,8 +1795,9 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
                     .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 (preloadType == null || preloadType.length() == 0) {
+            log.debug(EXITING_STR + svcOperation + " because of invalid preload-type");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("invalid input, invalid preload-type");
             responseBuilder.setAckFinalIndicator("Y");
@@ -2075,32 +1813,25 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         VnfInstancePreloadDataBuilder vnfInstancePreloadDataBuilder = new VnfInstancePreloadDataBuilder();
-        getVnfInstancePreloadData(preload_name, preload_type, vnfInstancePreloadDataBuilder);
-        //preloadData = preloadDataBuilder.build();
-
+        getVnfInstancePreloadData(preloadName, preloadType, vnfInstancePreloadDataBuilder);
         VnfInstancePreloadDataBuilder operDataBuilder = new VnfInstancePreloadDataBuilder();
-        getVnfInstancePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL);
+        getVnfInstancePreloadData(preloadName, preloadType, operDataBuilder, LogicalDatastoreType.OPERATIONAL);
 
         //
         // setup a preload-data object builder
         // ACTION vnf-topology-operation
         // INPUT:
-        //  USES sdnc-request-header;
-        //  USES request-information;
         //  uses vnf-topology-information;
         // OUTPUT:
-        //  USES vnf-topology-response-body;
-        //
         // container preload-data
-        //   uses vnf-configuration-information;
         log.info(
-            "Adding INPUT data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] input: " + input);
+            ADDING_CONFIG_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType + INPUT_STR + 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());
-        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+        log.info(ADDING_OPERATIONAL_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType
+            + OPERATIONAL_DATA_STR + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, OPERATIONAL_DATA, operDataBuilder);
 
         // Call SLI sync method
         // Get SvcLogicService reference
@@ -2110,20 +1841,17 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         String ackFinal = "Y";
 
         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);
-                    errorMessage = e.getMessage();
-                    errorCode = "500";
-                }
+            if (svcLogicClient.hasGraph(VNF_API, svcOperation, null, "sync")) {
+                respProps = svcLogicClient
+                    .execute(VNF_API, svcOperation, null, "sync", vnfInstancePreloadDataBuilder, parms);
             } else {
-                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorMessage = "No service logic active for VNF-API: '" + svcOperation + "'";
                 errorCode = "503";
             }
+        } catch (SvcLogicException e) {
+            log.error("Caught exception executing service logic for " + svcOperation, e);
+            errorMessage = e.getMessage();
+            errorCode = "500";
         } catch (Exception e) {
             errorCode = "500";
             errorMessage = e.getMessage();
@@ -2134,31 +1862,30 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
             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 && !("0".equals(errorCode) || "200".equals(errorCode))) {
 
             responseBuilder.setResponseCode(errorCode);
             responseBuilder.setResponseMessage(errorMessage);
             responseBuilder.setAckFinalIndicator(ackFinal);
 
             VnfInstancePreloadListBuilder vnfInstancePreloadListBuilder = new VnfInstancePreloadListBuilder();
-            vnfInstancePreloadListBuilder.setVnfInstanceName(preload_name);
-            vnfInstancePreloadListBuilder.setVnfModelId(preload_type);
+            vnfInstancePreloadListBuilder.setVnfInstanceName(preloadName);
+            vnfInstancePreloadListBuilder.setVnfModelId(preloadType);
             vnfInstancePreloadListBuilder.setVnfInstancePreloadData(vnfInstancePreloadDataBuilder.build());
             log.error(
-                "Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] error code: '"
+                RETURNED_FAILED_STR + svcOperation + " [" + preloadName + "," + preloadType + "] error code: '"
                     + errorCode + "', Reason: '" + errorMessage + "'");
             try {
-                SaveVnfInstancePreloadList(vnfInstancePreloadListBuilder.build(), true,
+                saveVnfInstancePreloadList(vnfInstancePreloadListBuilder.build(), true,
                     LogicalDatastoreType.CONFIGURATION);
             } catch (Exception e) {
                 log.error(
-                    "Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type
+                    CAUGHT_EXCEPTION_STR + svcOperation + " [" + preloadName + "," + preloadType
                         + "] \n", e);
             }
-            log.debug("Sending Success rpc result due to external error");
+            log.debug(SENDING_SUCCESS_RPC);
             RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput>status(true)
                     .withResult(responseBuilder.build()).build();
@@ -2169,26 +1896,26 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         try {
             vnfInstancePreloadData = vnfInstancePreloadDataBuilder.build();
             log.info(
-                "Updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preloadData: "
+                UPDATING_MD_SAL_STR + svcOperation + " [" + preloadName + "," + preloadType + "] preloadData: "
                     + vnfInstancePreloadData);
             // svc-configuration-list
             VnfInstancePreloadListBuilder vnfInstancePreloadListBuilder = new VnfInstancePreloadListBuilder();
-            vnfInstancePreloadListBuilder.setVnfInstanceName(preload_name);
-            vnfInstancePreloadListBuilder.setVnfModelId(preload_type);
+            vnfInstancePreloadListBuilder.setVnfInstanceName(preloadName);
+            vnfInstancePreloadListBuilder.setVnfModelId(preloadType);
             vnfInstancePreloadListBuilder.setVnfInstancePreloadData(vnfInstancePreloadData);
 
             // SDNGC-989 set merge flag to false
-            SaveVnfInstancePreloadList(vnfInstancePreloadListBuilder.build(), false,
+            saveVnfInstancePreloadList(vnfInstancePreloadListBuilder.build(), false,
                 LogicalDatastoreType.CONFIGURATION);
-            log.info("Updating OPERATIONAL tree.");
-            SaveVnfInstancePreloadList(vnfInstancePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+            log.info(UPDATING_OPERATIONAL_TREE_STR);
+            saveVnfInstancePreloadList(vnfInstancePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
         } catch (Exception e) {
-            log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type
+            log.error(CAUGHT_EXCEPTION_STR + svcOperation + " [" + preloadName + "," + preloadType
                 + "] \n", e);
             responseBuilder.setResponseCode("500");
             responseBuilder.setResponseMessage(e.toString());
             responseBuilder.setAckFinalIndicator("Y");
-            log.error("Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] "
+            log.error(RETURNED_FAILED_STR + svcOperation + " [" + preloadName + "," + preloadType + "] "
                 + responseBuilder.build());
             RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput>status(false)
@@ -2202,9 +1929,9 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         if (errorMessage != null) {
             responseBuilder.setResponseMessage(errorMessage);
         }
-        log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] ");
+        log.info(UPDATED_MD_SAL_STR + svcOperation + " [" + preloadName + "," + preloadType + "] ");
         log.info(
-            "Returned SUCCESS for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + responseBuilder
+            RETURNED_SUCCESS_STR + svcOperation + " [" + preloadName + "," + preloadType + "] " + responseBuilder
                 .build());
 
         RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
@@ -2215,25 +1942,25 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
 
 
     //1610 preload-vf-module-topology-operation
-    @Override public Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
+    @Override
+    public ListenableFuture<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
         PreloadVfModuleTopologyOperationInput input) {
 
-        final String SVC_OPERATION = "preload-vf-module-topology-operation";
-        VfModulePreloadData vfModulePreloadData = null;
+        final String svcOperation = "preload-vf-module-topology-operation";
+        VfModulePreloadData vfModulePreloadData;
         Properties parms = new Properties();
 
-        log.info(SVC_OPERATION + " called.");
+        log.info(svcOperation + CALLED_STR);
         // create a new response object
         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
+            log.debug(EXITING_STR + svcOperation
                 + " because of invalid input, null or empty vf-module-name or vf-module-model-id");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("invalid input, null or empty vf-module-name or vf-module-model-id");
@@ -2245,12 +1972,12 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         // Grab the name and type from the input buffer
-        String preload_name = input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleName();
-        String preload_type = input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleModelId();
+        String preloadName = input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleName();
+        String preloadType = 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");
+        // Make sure we have a preloadName and preloadType
+        if (preloadName == null || preloadName.length() == 0) {
+            log.debug(EXITING_STR + svcOperation + " because of invalid preload-name");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("invalid input, invalid preload-name");
             responseBuilder.setAckFinalIndicator("Y");
@@ -2259,8 +1986,8 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
                     .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 (preloadType == null || preloadType.length() == 0) {
+            log.debug(EXITING_STR + svcOperation + " because of invalid preload-type");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("invalid input, invalid preload-type");
             responseBuilder.setAckFinalIndicator("Y");
@@ -2276,33 +2003,28 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         VfModulePreloadDataBuilder vfModulePreloadDataBuilder = new VfModulePreloadDataBuilder();
-        getVfModulePreloadData(preload_name, preload_type, vfModulePreloadDataBuilder);
-        //preloadData = preloadDataBuilder.build();
-
+        getVfModulePreloadData(preloadName, preloadType, vfModulePreloadDataBuilder);
         VfModulePreloadDataBuilder operDataBuilder = new VfModulePreloadDataBuilder();
-        getVfModulePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL);
+        getVfModulePreloadData(preloadName, preloadType, operDataBuilder, LogicalDatastoreType.OPERATIONAL);
 
         //
         // setup a preload-data object builder
         // ACTION vnf-topology-operation
         // INPUT:
-        //  USES sdnc-request-header;
         //  USES request-information;
         //  uses vnf-topology-information;
         // OUTPUT:
-        //  USES vnf-topology-response-body;
         //
         // container preload-data
-        //   uses vnf-configuration-information;
 
         log.info(
-            "Adding INPUT data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] input: " + input);
+            ADDING_INPUT_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType + INPUT_STR + 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());
-        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+        log.info(ADDING_OPERATIONAL_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType
+            + OPERATIONAL_DATA_STR + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, OPERATIONAL_DATA, operDataBuilder);
 
         // Call SLI sync method
         // Get SvcLogicService reference
@@ -2312,19 +2034,18 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         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);
-                    errorMessage = e.getMessage();
-                    errorCode = "500";
-                }
+            if (svcLogicClient.hasGraph(VNF_API, svcOperation, null, "sync")) {
+                respProps = svcLogicClient
+                    .execute(VNF_API, svcOperation, null, "sync", vfModulePreloadDataBuilder, parms);
             } else {
-                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorMessage = "No service logic active for VNF-API: '" + svcOperation + "'";
                 errorCode = "503";
             }
+        } catch (SvcLogicException e) {
+            log.error("Caught exception executing service logic for " + svcOperation, e);
+            errorMessage = e.getMessage();
+            errorCode = "500";
+
         } catch (Exception e) {
             errorCode = "500";
             errorMessage = e.getMessage();
@@ -2335,30 +2056,29 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
             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 && !("0".equals(errorCode) || "200".equals(errorCode))) {
 
             responseBuilder.setResponseCode(errorCode);
             responseBuilder.setResponseMessage(errorMessage);
             responseBuilder.setAckFinalIndicator(ackFinal);
 
             VfModulePreloadListBuilder vfModulePreloadListBuilder = new VfModulePreloadListBuilder();
-            vfModulePreloadListBuilder.setVfModuleName(preload_name);
-            vfModulePreloadListBuilder.setVfModuleModelId(preload_type);
+            vfModulePreloadListBuilder.setVfModuleName(preloadName);
+            vfModulePreloadListBuilder.setVfModuleModelId(preloadType);
             vfModulePreloadListBuilder.setVfModulePreloadData(vfModulePreloadDataBuilder.build());
             log.error(
-                "Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] error code: '"
+                RETURNED_FAILED_STR + svcOperation + " [" + preloadName + "," + preloadType + "] 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
+                    CAUGHT_EXCEPTION_STR + svcOperation + " [" + preloadName + "," + preloadType
                         + "] \n", e);
             }
-            log.debug("Sending Success rpc result due to external error");
+            log.debug(SENDING_SUCCESS_RPC);
             RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput>status(true)
                     .withResult(responseBuilder.build()).build();
@@ -2369,25 +2089,25 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         try {
             vfModulePreloadData = vfModulePreloadDataBuilder.build();
             log.info(
-                "Updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preloadData: "
+                UPDATING_MD_SAL_STR + svcOperation + " [" + preloadName + "," + preloadType + "] preloadData: "
                     + vfModulePreloadData);
             // svc-configuration-list
             VfModulePreloadListBuilder vfModulePreloadListBuilder = new VfModulePreloadListBuilder();
-            vfModulePreloadListBuilder.setVfModuleName(preload_name);
-            vfModulePreloadListBuilder.setVfModuleModelId(preload_type);
+            vfModulePreloadListBuilder.setVfModuleName(preloadName);
+            vfModulePreloadListBuilder.setVfModuleModelId(preloadType);
             vfModulePreloadListBuilder.setVfModulePreloadData(vfModulePreloadData);
 
             // SDNGC-989 set merge flag to false
-            SaveVfModulePreloadList(vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
-            log.info("Updating OPERATIONAL tree.");
-            SaveVfModulePreloadList(vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+            saveVfModulePreloadList(vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
+            log.info(UPDATING_OPERATIONAL_TREE_STR);
+            saveVfModulePreloadList(vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
         } catch (Exception e) {
-            log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type
+            log.error(CAUGHT_EXCEPTION_STR + svcOperation + " [" + preloadName + "," + preloadType
                 + "] \n", e);
             responseBuilder.setResponseCode("500");
             responseBuilder.setResponseMessage(e.toString());
             responseBuilder.setAckFinalIndicator("Y");
-            log.error("Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] "
+            log.error(RETURNED_FAILED_STR + svcOperation + " [" + preloadName + "," + preloadType + "] "
                 + responseBuilder.build());
             RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput>status(false)
@@ -2401,9 +2121,9 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         if (errorMessage != null) {
             responseBuilder.setResponseMessage(errorMessage);
         }
-        log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] ");
+        log.info(UPDATED_MD_SAL_STR + svcOperation + " [" + preloadName + "," + preloadType + "] ");
         log.info(
-            "Returned SUCCESS for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + responseBuilder
+            RETURNED_SUCCESS_STR + svcOperation + " [" + preloadName + "," + preloadType + "] " + responseBuilder
                 .build());
 
         RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
@@ -2413,27 +2133,27 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
     }
 
 
-    @Override public Future<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
+    @Override
+    public ListenableFuture<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
         PreloadNetworkTopologyOperationInput input) {
 
-        final String SVC_OPERATION = "preload-network-topology-operation";
+        final String svcOperation = "preload-network-topology-operation";
         PreloadData preloadData = null;
         Properties parms = new Properties();
 
-        log.info(SVC_OPERATION + " called.");
+        log.info(svcOperation + CALLED_STR);
         // create a new response object
         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 network-name or network-type");
+            log.debug(EXITING_STR + svcOperation + " because of invalid input, null or" +
+                " empty network-name or network-type");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("input, null or empty network-name or network-type");
             responseBuilder.setAckFinalIndicator("Y");
@@ -2444,12 +2164,12 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         // Grab the name and type from the input buffer
-        String preload_name = input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkName();
-        String preload_type = input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkType();
+        String preloadName = input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkName();
+        String preloadType = 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");
+        // Make sure we have a preloadName and preloadType
+        if (preloadName == null || preloadName.length() == 0) {
+            log.debug(EXITING_STR + svcOperation + " because of invalid preload-name");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("input, invalid preload-name");
             responseBuilder.setAckFinalIndicator("Y");
@@ -2459,8 +2179,8 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
             return Futures.immediateFuture(rpcResult);
         }
 
-        if (preload_type == null || preload_type.length() == 0) {
-            log.debug("exiting " + SVC_OPERATION + " because of invalid preload-type");
+        if (preloadType == null || preloadType.length() == 0) {
+            log.debug(EXITING_STR + svcOperation + " because of invalid preload-type");
             responseBuilder.setResponseCode("403");
             responseBuilder.setResponseMessage("input, invalid preload-type");
             responseBuilder.setAckFinalIndicator("Y");
@@ -2476,31 +2196,28 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         }
 
         PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
-        getPreloadData(preload_name, preload_type, preloadDataBuilder);
+        getPreloadData(preloadName, preloadType, preloadDataBuilder);
 
         PreloadDataBuilder operDataBuilder = new PreloadDataBuilder();
-        getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL);
+        getPreloadData(preloadName, preloadType, operDataBuilder, LogicalDatastoreType.OPERATIONAL);
 
         //
         // setup a preload-data object builder
         // ACTION vnf-topology-operation
         // INPUT:
-        //  USES sdnc-request-header;
         //  USES request-information;
         //  uses vnf-topology-information;
         // OUTPUT:
-        //  USES vnf-topology-response-body;
         //
         // container preload-data
-        //   uses vnf-configuration-information;
         log.info(
-            "Adding INPUT data for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] input: " + input);
+            ADDING_INPUT_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType + INPUT_STR + 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());
-        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+        log.info(ADDING_OPERATIONAL_DATA_STR + svcOperation + " [" + preloadName + "," + preloadType
+            + OPERATIONAL_DATA_STR + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, OPERATIONAL_DATA, operDataBuilder);
 
         // Call SLI sync method
         // Get SvcLogicService reference
@@ -2510,54 +2227,49 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         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);
-                    errorMessage = e.getMessage();
-                    errorCode = "500";
-                }
+            if (svcLogicClient.hasGraph(VNF_API, svcOperation, null, "sync")) {
+                respProps = svcLogicClient.execute(VNF_API, svcOperation, null, "sync", preloadDataBuilder, parms);
             } else {
-                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorMessage = "No service logic active for VNF-API: '" + svcOperation + "'";
                 errorCode = "503";
             }
+        } catch (SvcLogicException e) {
+            log.error("Caught exception executing service logic for " + svcOperation, e);
+            errorMessage = e.getMessage();
+            errorCode = "500";
         } catch (Exception e) {
             errorCode = "500";
             errorMessage = e.getMessage();
             log.error("Caught exception looking for service logic", e);
         }
 
-
         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 && !("0".equals(errorCode) || "200".equals(errorCode))) {
             responseBuilder.setResponseCode(errorCode);
             responseBuilder.setResponseMessage(errorMessage);
             responseBuilder.setAckFinalIndicator(ackFinal);
 
             VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
-            preloadVnfListBuilder.setVnfName(preload_name);
-            preloadVnfListBuilder.setVnfType(preload_type);
+            preloadVnfListBuilder.setVnfName(preloadName);
+            preloadVnfListBuilder.setVnfType(preloadType);
             preloadVnfListBuilder.setPreloadData(preloadDataBuilder.build());
             log.error(
-                "Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] error code: '"
+                RETURNED_FAILED_STR + svcOperation + " [" + preloadName + "," + preloadType + "] 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
+                    CAUGHT_EXCEPTION_STR + svcOperation + " [" + preloadName + "," + preloadType
                         + "] \n", e);
 
             }
-            log.debug("Sending Success rpc result due to external error");
+            log.debug(SENDING_SUCCESS_RPC);
             RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<PreloadNetworkTopologyOperationOutput>status(true).withResult(responseBuilder.build())
                     .build();
@@ -2568,25 +2280,25 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         try {
             preloadData = preloadDataBuilder.build();
             log.info(
-                "Updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] preloadData: "
+                UPDATING_MD_SAL_STR + svcOperation + " [" + preloadName + "," + preloadType + "] preloadData: "
                     + preloadData);
             // svc-configuration-list
             VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
-            preloadVnfListBuilder.setVnfName(preload_name);
-            preloadVnfListBuilder.setVnfType(preload_type);
+            preloadVnfListBuilder.setVnfName(preloadName);
+            preloadVnfListBuilder.setVnfType(preloadType);
             preloadVnfListBuilder.setPreloadData(preloadData);
 
             // SDNGC-989 set merge flag to false
-            SavePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
-            log.info("Updating OPERATIONAL tree.");
-            SavePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+            savePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
+            log.info(UPDATING_OPERATIONAL_TREE_STR);
+            savePreloadList(preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
         } catch (Exception e) {
-            log.error("Caught Exception updating MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type
+            log.error(CAUGHT_EXCEPTION_STR + svcOperation + " [" + preloadName + "," + preloadType
                 + "] \n", e);
             responseBuilder.setResponseCode("500");
             responseBuilder.setResponseMessage(e.toString());
             responseBuilder.setAckFinalIndicator("Y");
-            log.error("Returned FAILED for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] "
+            log.error(RETURNED_FAILED_STR + svcOperation + " [" + preloadName + "," + preloadType + "] "
                 + responseBuilder.build());
             RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
                 RpcResultBuilder.<PreloadNetworkTopologyOperationOutput>status(false)
@@ -2600,9 +2312,9 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
         if (errorMessage != null) {
             responseBuilder.setResponseMessage(errorMessage);
         }
-        log.info("Updated MD-SAL for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] ");
+        log.info(UPDATED_MD_SAL_STR + svcOperation + " [" + preloadName + "," + preloadType + "] ");
         log.info(
-            "Returned SUCCESS for " + SVC_OPERATION + " [" + preload_name + "," + preload_type + "] " + responseBuilder
+            RETURNED_SUCCESS_STR + svcOperation + " [" + preloadName + "," + preloadType + "] " + responseBuilder
                 .build());
 
         RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
@@ -2610,4 +2322,6 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
                 .build();
         return Futures.immediateFuture(rpcResult);
     }
+
+
 }