DBService sonar fixes 31/31431/6
authorJakub Dudycz <jakub.dudycz@nokia.com>
Mon, 12 Feb 2018 13:47:37 +0000 (14:47 +0100)
committerPatrick Brady <pb071s@att.com>
Wed, 21 Feb 2018 17:42:22 +0000 (17:42 +0000)
Change-Id: I6c58803ab47ff411d7ff29097a7e64a489dfed03
Issue-ID: APPC-605
Signed-off-by: Jakub Dudycz <jakub.dudycz@nokia.com>
appc-inbound/appc-artifact-handler/provider/src/main/java/org/onap/appc/artifact/handler/dbservices/DBException.java [new file with mode: 0644]
appc-inbound/appc-artifact-handler/provider/src/main/java/org/onap/appc/artifact/handler/dbservices/DBService.java
appc-inbound/appc-artifact-handler/provider/src/main/java/org/onap/appc/artifact/handler/node/ArtifactHandlerNode.java

diff --git a/appc-inbound/appc-artifact-handler/provider/src/main/java/org/onap/appc/artifact/handler/dbservices/DBException.java b/appc-inbound/appc-artifact-handler/provider/src/main/java/org/onap/appc/artifact/handler/dbservices/DBException.java
new file mode 100644 (file)
index 0000000..e158f86
--- /dev/null
@@ -0,0 +1,32 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.appc.artifact.handler.dbservices;
+
+public class DBException extends Exception {
+
+    public DBException(String message, Throwable cause) {
+        super(message, cause);
+    }
+}
index 9b2d80d..ef11895 100644 (file)
@@ -26,32 +26,35 @@ package org.onap.appc.artifact.handler.dbservices;
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
-import java.util.Optional;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.lang.StringUtils;
+import org.onap.appc.artifact.handler.utils.SdcArtifactHandlerConstants;
 import org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource;
 import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus;
-import org.onap.appc.artifact.handler.utils.SdcArtifactHandlerConstants;
-import java.sql.SQLException;
-import java.util.HashMap;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.commons.configuration.ConfigurationException;
 
 public class DBService {
 
     private static final EELFLogger log = EELFManager.getInstance().getLogger(DBService.class);
+    private static final String FAILURE_PARAM = "FAILURE";
+    private static final String RECEIVED_AS = "Internal Version received as1 : ";
+    private static final String SET_DOWNLOAD_CONFIG_QUERY_STR = " set DOWNLOAD_CONFIG_DG = $";
+    private static final String WHERE_VNF_TYPE_QUERY_STR = " where VNF_TYPE = $";
+    private static final String ACTION_QUERY_STR = " , ACTION = $";
+    private static final String VNF_TYPE_QUERY_STR = " , VNF_TYPE = $";
+    private static final String INSERT_INTO_QUERY_STR = "insert into ";
+    private static final String AND_ACTION_QUERY_STR = " and ACTION = $";
+    private static final String AND_FILE_CAT_QUERY_STR = " and FILE_CATEGORY = $";
+    private static final String AND_VNF_TYPE_QUERY_STR = " and VNF_TYPE = $";
+    private static final String UPDATE_QUERY_STR = "update ";
+    private static final String AND_VNFC_TYPE_QUERY_STR = " and VNFC_TYPE = $";
+
     private SvcLogicResource serviceLogic;
     private static DBService dgGeneralDBService = null;
 
-    public static DBService initialise() {
-        if (dgGeneralDBService == null) {
-            dgGeneralDBService = new DBService();
-        }
-        return dgGeneralDBService;
-    }
-
     private DBService() {
         if (serviceLogic == null) {
             serviceLogic = new SqlResource();
@@ -64,39 +67,44 @@ public class DBService {
         }
     }
 
+    public static DBService initialise() {
+        if (dgGeneralDBService == null) {
+            dgGeneralDBService = new DBService();
+        }
+        return dgGeneralDBService;
+    }
+
     public String getInternalVersionNumber(SvcLogicContext ctx, String artifactName, String prefix)
         throws SvcLogicException {
-        String fn = "DBService.getInternalVersionNumber";
-        QueryStatus status = null;
+        QueryStatus status;
         String artifactInternalVersion = null;
         if (serviceLogic != null && ctx != null) {
             String key = "select max(internal_version) as maximum from ASDC_ARTIFACTS  WHERE ARTIFACT_NAME = '"
                 + artifactName + "'";
             log.info("Getting internal Versoin :" + key);
             status = serviceLogic.query("SQL", false, null, key, prefix, null, ctx);
-            if (status.toString().equals("FAILURE")) {
+            if (status.toString().equals(FAILURE_PARAM)) {
                 throw new SvcLogicException("Error - getting internal Artifact Number");
             }
             artifactInternalVersion = ctx.getAttribute("maximum");
             log.info("Internal Version received as : " + artifactInternalVersion);
-            log.info("Internal Version received as1 : " + ctx.getAttribute("max(internal_version)"));
-            log.info("Internal Version received as1 : " + ctx.getAttribute("max"));
-            log.info("Internal Version received as1 : " + ctx.getAttribute("internal_version"));
-            log.info("Internal Version received as1 : " + ctx.getAttributeKeySet().toString());
+            log.info(RECEIVED_AS + ctx.getAttribute("max(internal_version)"));
+            log.info(RECEIVED_AS + ctx.getAttribute("max"));
+            log.info(RECEIVED_AS + ctx.getAttribute("internal_version"));
+            log.info(RECEIVED_AS + ctx.getAttributeKeySet().toString());
         }
         return artifactInternalVersion;
     }
 
     public String getArtifactID(SvcLogicContext ctx, String artifactName) throws SvcLogicException {
-        String fn = "DBService.getArtifactID";
-        QueryStatus status = null;
+        QueryStatus status;
         String artifactID = null;
         if (serviceLogic != null && ctx != null) {
             String key = "select max(ASDC_ARTIFACTS_ID) as id from ASDC_ARTIFACTS  WHERE ARTIFACT_NAME = '"
                 + artifactName + "'";
             log.info("Getting Artifact ID String :" + key);
             status = serviceLogic.query("SQL", false, null, key, null, null, ctx);
-            if (status.toString().equals("FAILURE")) {
+            if (status.toString().equals(FAILURE_PARAM)) {
                 throw new SvcLogicException("Error - getting  Artifact ID from database");
             }
             artifactID = ctx.getAttribute("id");
@@ -106,7 +114,6 @@ public class DBService {
     }
 
     public QueryStatus saveArtifacts(SvcLogicContext ctx, int intversion) throws SvcLogicException {
-        String fn = "DBService.saveArtifacts";
         QueryStatus status = null;
         if (serviceLogic != null && ctx != null) {
             String key = "INSERT INTO ASDC_ARTIFACTS " + "SET SERVICE_UUID    =  $service-uuid , "
@@ -120,23 +127,21 @@ public class DBService {
                 + "," + " ARTIFACT_NAME       =  $artifact-name ," + " ARTIFACT_CONTENT    =  $artifact-contents ";
 
             status = serviceLogic.save("SQL", false, false, key, null, null, ctx);
-            if (status.toString().equals("FAILURE")) {
+            if (status.toString().equals(FAILURE_PARAM)) {
                 throw new SvcLogicException("Error While processing storing Artifact: "
                     + ctx.getAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME));
             }
         }
         return status;
-
     }
 
     public QueryStatus logData(SvcLogicContext ctx, String prefix) throws SvcLogicException {
-        String fn = "DBService.saveReferenceData";
         QueryStatus status = null;
         if (serviceLogic != null && ctx != null) {
             String key = "INSERT INTO CONFIG_TRANSACTION_LOG " + " SET request_id = $request-id , "
                 + " message_type = $log-message-type , " + " message = $log-message ;";
             status = serviceLogic.save("SQL", false, false, key, null, prefix, ctx);
-            if (status.toString().equals("FAILURE")) {
+            if (status.toString().equals(FAILURE_PARAM)) {
                 throw new SvcLogicException("Error while loging data");
             }
 
@@ -145,277 +150,300 @@ public class DBService {
     }
 
     public void processConfigureActionDg(SvcLogicContext context, boolean isUpdate) {
-        String fn = "DBService.processConfigureActionDg";
         log.info("Update Parameter for SDC Reference " + isUpdate);
-        String key = "";
-        QueryStatus status = null;
-        if (isUpdate) {
-            ;
-        }
+        //TODO implement this method
     }
 
     public void processSdcReferences(SvcLogicContext context, boolean isUpdate) throws SvcLogicException {
-        String fn = "DBService.processSdcReferences";
-        String key = "";
-        QueryStatus status = null;
+        String key;
+        QueryStatus status;
 
         if (isUpdate && context.getAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY)
             .equals(SdcArtifactHandlerConstants.CAPABILITY)) {
             log.info("Updating capability artifact in ASDC_REFERENCE");
-            key = "update " + SdcArtifactHandlerConstants.DB_SDC_REFERENCE + "  set ARTIFACT_NAME = $"
+            key = UPDATE_QUERY_STR + SdcArtifactHandlerConstants.DB_SDC_REFERENCE + "  set ARTIFACT_NAME = $"
                 + SdcArtifactHandlerConstants.ARTIFACT_NAME + " where " + "FILE_CATEGORY = $"
-                + SdcArtifactHandlerConstants.FILE_CATEGORY + " and VNF_TYPE = $"
+                + SdcArtifactHandlerConstants.FILE_CATEGORY + AND_VNF_TYPE_QUERY_STR
                 + SdcArtifactHandlerConstants.VNF_TYPE;
         } else if (isUpdate) {
-            key = "update " + SdcArtifactHandlerConstants.DB_SDC_REFERENCE + "  set ARTIFACT_NAME = $"
+            key = UPDATE_QUERY_STR + SdcArtifactHandlerConstants.DB_SDC_REFERENCE + "  set ARTIFACT_NAME = $"
                 + SdcArtifactHandlerConstants.ARTIFACT_NAME + " where VNFC_TYPE = $"
-                + SdcArtifactHandlerConstants.VNFC_TYPE + " and FILE_CATEGORY = $"
-                + SdcArtifactHandlerConstants.FILE_CATEGORY + " and ACTION = $" + SdcArtifactHandlerConstants.ACTION
-                + " and VNF_TYPE = $" + SdcArtifactHandlerConstants.VNF_TYPE;
+                + SdcArtifactHandlerConstants.VNFC_TYPE + AND_FILE_CAT_QUERY_STR
+                + SdcArtifactHandlerConstants.FILE_CATEGORY + AND_ACTION_QUERY_STR + SdcArtifactHandlerConstants.ACTION
+                + AND_VNF_TYPE_QUERY_STR + SdcArtifactHandlerConstants.VNF_TYPE;
         } else {
             if (context.getAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY)
                 .equals(SdcArtifactHandlerConstants.CAPABILITY)) {
                 log.info("Inserting new record for capability artifact in ASDC_REFERENCE");
-                key = "insert into " + SdcArtifactHandlerConstants.DB_SDC_REFERENCE + " set VNFC_TYPE = null "
-                    + " , FILE_CATEGORY = $" + SdcArtifactHandlerConstants.FILE_CATEGORY + " , VNF_TYPE = $"
+                key = INSERT_INTO_QUERY_STR + SdcArtifactHandlerConstants.DB_SDC_REFERENCE + " set VNFC_TYPE = null "
+                    + " , FILE_CATEGORY = $" + SdcArtifactHandlerConstants.FILE_CATEGORY + VNF_TYPE_QUERY_STR
                     + SdcArtifactHandlerConstants.VNF_TYPE + " , ACTION = null " + " , ARTIFACT_TYPE = null "
                     + " , ARTIFACT_NAME = $" + SdcArtifactHandlerConstants.ARTIFACT_NAME;
             } else {
-                key = "insert into " + SdcArtifactHandlerConstants.DB_SDC_REFERENCE + " set VNFC_TYPE = $"
+                key = INSERT_INTO_QUERY_STR + SdcArtifactHandlerConstants.DB_SDC_REFERENCE + " set VNFC_TYPE = $"
                     + SdcArtifactHandlerConstants.VNFC_TYPE + " , FILE_CATEGORY = $"
-                    + SdcArtifactHandlerConstants.FILE_CATEGORY + " , VNF_TYPE = $"
-                    + SdcArtifactHandlerConstants.VNF_TYPE + " , ACTION = $" + SdcArtifactHandlerConstants.ACTION
+                    + SdcArtifactHandlerConstants.FILE_CATEGORY + VNF_TYPE_QUERY_STR
+                    + SdcArtifactHandlerConstants.VNF_TYPE + ACTION_QUERY_STR + SdcArtifactHandlerConstants.ACTION
                     + " , ARTIFACT_TYPE = $" + SdcArtifactHandlerConstants.ARTIFACT_TYPE + " , ARTIFACT_NAME = $"
                     + SdcArtifactHandlerConstants.ARTIFACT_NAME;
             }
         }
-        if (serviceLogic != null && context != null) {
+        if (serviceLogic != null) {
             log.info("Insert Key: " + key);
             status = serviceLogic.save("SQL", false, false, key, null, null, context);
-            if (status.toString().equals("FAILURE")) {
+            if (status.toString().equals(FAILURE_PARAM)) {
                 throw new SvcLogicException("Error While processing sdc_reference table ");
             }
         }
     }
 
     public boolean isArtifactUpdateRequired(SvcLogicContext context, String db)
-        throws SvcLogicException, SQLException, ConfigurationException {
-        String fn = "DBService.isArtifactUpdateRequired";
-        log.info("Checking if Update required for this data");
-
-        log.info("db" + db);
-        log.info("ACTION=" + context.getAttribute(SdcArtifactHandlerConstants.ACTION));
-        log.info("VNFC_TYPE=" + context.getAttribute(SdcArtifactHandlerConstants.VNFC_TYPE));
-        log.info("VNFC_INSTANCE=" + context.getAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE));
-        log.info("VM_INSTANCE=" + context.getAttribute(SdcArtifactHandlerConstants.VM_INSTANCE));
-        log.info("VNF_TYPE=" + context.getAttribute(SdcArtifactHandlerConstants.VNF_TYPE));
-        String whereClause = "";
+        throws DBException {
+        try {
+            log.info("Checking if Update required for this data");
+            log.info("db" + db);
+            log.info("ACTION=" + context.getAttribute(SdcArtifactHandlerConstants.ACTION));
+            log.info("VNFC_TYPE=" + context.getAttribute(SdcArtifactHandlerConstants.VNFC_TYPE));
+            log.info("VNFC_INSTANCE=" + context.getAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE));
+            log.info("VM_INSTANCE=" + context.getAttribute(SdcArtifactHandlerConstants.VM_INSTANCE));
+            log.info("VNF_TYPE=" + context.getAttribute(SdcArtifactHandlerConstants.VNF_TYPE));
+            String whereClause;
+            QueryStatus status;
+            whereClause = WHERE_VNF_TYPE_QUERY_STR + SdcArtifactHandlerConstants.VNF_TYPE;
+            whereClause = resolveWhereClause(context, db, whereClause);
+            if (validate(db)) {
+                if (!db.equals(SdcArtifactHandlerConstants.DB_DEVICE_AUTHENTICATION)) {
+                    String key = "select COUNT(*) from " + db + whereClause;
+                    log.info("SELECT String : " + key);
+                    status = serviceLogic.query("SQL", false, null, key, null, null, context);
+                    checkForFailure(db, status);
+                    String count = context.getAttribute("COUNT(*)");
+                    log.info("Number of row Returned : " + count + ": " + status + ":");
+                    return tryAddCountAttribute(context, count);
+                } else {
+                    log.info("Check for update or insert for properties file");
+                    String protocol = context.getAttribute(SdcArtifactHandlerConstants.DEVICE_PROTOCOL);
+                    String action = context.getAttribute(SdcArtifactHandlerConstants.ACTION);
+                    String vnfType = context.getAttribute(SdcArtifactHandlerConstants.VNF_TYPE);
+                    PropertiesConfiguration conf = new PropertiesConfiguration(
+                        System.getenv("APPC_CONFIG_DIR") + "/appc_southbound.properties");
+                    String property = tryCreatePropertyStr(protocol, action, vnfType);
+                    return keyExists(conf, property);
+                }
+            }
+            return false;
+        } catch (SvcLogicException | ConfigurationException e) {
+            throw new DBException("An error occurred while checking for artifact update", e);
+        }
+    }
 
-        QueryStatus status = null;
-        whereClause = " where VNF_TYPE = $" + SdcArtifactHandlerConstants.VNF_TYPE;
+    private void checkForFailure(String db, QueryStatus status) throws SvcLogicException {
+        if (status.toString().equals(FAILURE_PARAM)) {
+            throw new SvcLogicException("Error while reading data from " + db);
+        }
+    }
+
+    private boolean validate(String db) {
+        return db != null && serviceLogic != null;
+    }
+
+    private boolean keyExists(PropertiesConfiguration conf, String property) {
+        if (conf.subset(property) != null) {
+            if (conf.containsKey(property)) {
+                log.info("Key Exists for property" + property + "in southbound.properties file");
+                return true;
+            }
+        } else {
+            log.info("Key Does not exists and need to add the key  for property" + property
+                + "in southbound.properties file");
+        }
+        return false;
+    }
+
+    private boolean tryAddCountAttribute(SvcLogicContext context, String count) {
+        if (count != null && Integer.parseInt(count) > 0) {
+            context.setAttribute(count, null);
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    private String tryCreatePropertyStr(String protocol, String action, String vnfType) {
+
+        if (StringUtils.isNotBlank(vnfType) && StringUtils.isNotBlank(protocol) && StringUtils
+            .isNotBlank(action)) {
+            return vnfType + "." + protocol + "." + action;
+        }
+        return "";
+    }
 
+    private String resolveWhereClause(SvcLogicContext context, String db, String whereClause) {
         if (db != null) {
-            if (db.equals(SdcArtifactHandlerConstants.DB_SDC_REFERENCE)
-                && context.getAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY)
-                .equals(SdcArtifactHandlerConstants.CAPABILITY)
-                && context.getAttribute(SdcArtifactHandlerConstants.ACTION) == null) {
-                whereClause = whereClause + " and FILE_CATEGORY = $" + SdcArtifactHandlerConstants.FILE_CATEGORY;
+            if (hasValidAttributes(context, db)) {
+                return whereClause + AND_FILE_CAT_QUERY_STR + SdcArtifactHandlerConstants.FILE_CATEGORY;
             } else if (db.equals(SdcArtifactHandlerConstants.DB_SDC_REFERENCE)) {
-                whereClause = whereClause + " and VNFC_TYPE = $" + SdcArtifactHandlerConstants.VNFC_TYPE
-                    + " and FILE_CATEGORY = $" + SdcArtifactHandlerConstants.FILE_CATEGORY + " and ACTION = $"
+                return whereClause + AND_VNFC_TYPE_QUERY_STR + SdcArtifactHandlerConstants.VNFC_TYPE
+                    + AND_FILE_CAT_QUERY_STR + SdcArtifactHandlerConstants.FILE_CATEGORY + AND_ACTION_QUERY_STR
                     + SdcArtifactHandlerConstants.ACTION;
             } else if (db.equals(SdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE)) {
-                whereClause = " where PROTOCOL = $" + SdcArtifactHandlerConstants.DEVICE_PROTOCOL;
+                return " where PROTOCOL = $" + SdcArtifactHandlerConstants.DEVICE_PROTOCOL;
             } else if (db.equals(SdcArtifactHandlerConstants.DB_CONFIG_ACTION_DG)) {
-                whereClause = whereClause + " and ACTION = $" + SdcArtifactHandlerConstants.ACTION;
+                return whereClause + AND_ACTION_QUERY_STR + SdcArtifactHandlerConstants.ACTION;
             } else if (db.equals(SdcArtifactHandlerConstants.DB_VNFC_REFERENCE)) {
-                int vm_instance = -1;
-                if (context.getAttribute(SdcArtifactHandlerConstants.VM_INSTANCE) != null) {
-                    vm_instance = Integer.parseInt(context.getAttribute(SdcArtifactHandlerConstants.VM_INSTANCE));
-                }
-                int vnfc_instance = -1;
-                if (context.getAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE) != null) {
-                    vnfc_instance = Integer.parseInt(context.getAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE));
-                }
-                whereClause = whereClause + " and ACTION = $" + SdcArtifactHandlerConstants.ACTION
-                    + " and VNFC_TYPE = $" + SdcArtifactHandlerConstants.VNFC_TYPE + " and VNFC_INSTANCE = $"
+                return whereClause + AND_ACTION_QUERY_STR + SdcArtifactHandlerConstants.ACTION
+                    + AND_VNFC_TYPE_QUERY_STR + SdcArtifactHandlerConstants.VNFC_TYPE + " and VNFC_INSTANCE = $"
                     + SdcArtifactHandlerConstants.VNFC_INSTANCE + " and VM_INSTANCE = $"
                     + SdcArtifactHandlerConstants.VM_INSTANCE;
-
-            }
-        }
-
-        if (!db.equals(SdcArtifactHandlerConstants.DB_DEVICE_AUTHENTICATION) && serviceLogic != null
-            && context != null) {
-            String key = "select COUNT(*) from " + db + whereClause;
-            log.info("SELECT String : " + key);
-            status = serviceLogic.query("SQL", false, null, key, null, null, context);
-            if (status.toString().equals("FAILURE")) {
-                throw new SvcLogicException("Error while reading data from " + db);
-            }
-            String count = context.getAttribute("COUNT(*)");
-            log.info("Number of row Returned : " + count + ": " + status + ":");
-            if (count != null && Integer.parseInt(count) > 0) {
-                context.setAttribute(count, null);
-                return true;
-            } else {
-                return false;
             }
         }
-        if (db.equals(SdcArtifactHandlerConstants.DB_DEVICE_AUTHENTICATION) && serviceLogic != null
-            && context != null) {
-            log.info("Check for update or insert for properties file");
-            String protocol = context.getAttribute(SdcArtifactHandlerConstants.DEVICE_PROTOCOL);
-            String action = context.getAttribute(SdcArtifactHandlerConstants.ACTION);
-            String vnf_type = context.getAttribute(SdcArtifactHandlerConstants.VNF_TYPE);
-            PropertiesConfiguration conf =
-                new PropertiesConfiguration(System.getenv("APPC_CONFIG_DIR") + "/appc_southbound.properties");
-            String property = "";
-            if (StringUtils.isNotBlank(vnf_type)) {
+        return whereClause;
+    }
 
-                if (StringUtils.isNotBlank(protocol)) {
-                    if (StringUtils.isNotBlank(action)) {
-                        property = vnf_type + "." + protocol + "." + action;
-                    }
-                }
-            }
-            if (conf.subset(property) != null) {
-                if (conf.containsKey(property)) {
-                    log.info("Key Exists for property" + property + "in southbound.properties file");
-                    return true;
-                }
-            } else {
-                log.info("Key Doesnot exists and need to add the key  for property" + property
-                    + "in southbound.properties file");
-            }
-            return false;
-        }
-        return false;
+    private boolean hasValidAttributes(SvcLogicContext context, String db) {
+        return db.equals(SdcArtifactHandlerConstants.DB_SDC_REFERENCE)
+            && context.getAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY)
+            .equals(SdcArtifactHandlerConstants.CAPABILITY)
+            && context.getAttribute(SdcArtifactHandlerConstants.ACTION) == null;
     }
 
     public void processDeviceInterfaceProtocol(SvcLogicContext context, boolean isUpdate) throws SvcLogicException {
-        String fn = "DBService.processDeviceInterfaceProtocol";
         log.info("Starting DB operation for Device Interface Protocol " + isUpdate);
-        String key = "";
-        QueryStatus status = null;
+        String key;
+        QueryStatus status;
         if (isUpdate) {
-            key = "update " + SdcArtifactHandlerConstants.DB_DEVICE_INTERFACE_PROTOCOL + " set PROTOCOL = $"
+            key = UPDATE_QUERY_STR + SdcArtifactHandlerConstants.DB_DEVICE_INTERFACE_PROTOCOL + " set PROTOCOL = $"
                 + SdcArtifactHandlerConstants.DEVICE_PROTOCOL + " , DG_RPC = 'getDeviceRunningConfig' "
-                + " , MODULE = 'APPC' " + " where VNF_TYPE = $" + SdcArtifactHandlerConstants.VNF_TYPE;
+                + " , MODULE = 'APPC' " + WHERE_VNF_TYPE_QUERY_STR + SdcArtifactHandlerConstants.VNF_TYPE;
         } else {
-            key = "insert into " + SdcArtifactHandlerConstants.DB_DEVICE_INTERFACE_PROTOCOL + " set  VNF_TYPE = $"
-                + SdcArtifactHandlerConstants.VNF_TYPE + " , PROTOCOL = $"
-                + SdcArtifactHandlerConstants.DEVICE_PROTOCOL + " , DG_RPC = 'getDeviceRunningConfig' "
-                + " , MODULE = 'APPC' ";
+            key =
+                INSERT_INTO_QUERY_STR + SdcArtifactHandlerConstants.DB_DEVICE_INTERFACE_PROTOCOL + " set  VNF_TYPE = $"
+                    + SdcArtifactHandlerConstants.VNF_TYPE + " , PROTOCOL = $"
+                    + SdcArtifactHandlerConstants.DEVICE_PROTOCOL + " , DG_RPC = 'getDeviceRunningConfig' "
+                    + " , MODULE = 'APPC' ";
         }
 
         if (serviceLogic != null && context != null) {
 
             status = serviceLogic.save("SQL", false, false, key, null, null, context);
-            if (status.toString().equals("FAILURE")) {
+            if (status.toString().equals(FAILURE_PARAM)) {
                 throw new SvcLogicException("Error While processing DEVICE_INTERFACE_PROTOCOL table ");
             }
         }
-
     }
 
     public void processDeviceAuthentication(SvcLogicContext context, boolean isUpdate)
-        throws SvcLogicException, ConfigurationException {
-        String fn = "DBService.processDeviceAuthentication";
-        log.info(fn + "Starting DB operation for Device Authentication " + isUpdate);
-        String protocol = context.getAttribute(SdcArtifactHandlerConstants.DEVICE_PROTOCOL);
-        String action = context.getAttribute(SdcArtifactHandlerConstants.ACTION);
-        String vnf_type = context.getAttribute(SdcArtifactHandlerConstants.VNF_TYPE);
-        String url = context.getAttribute(SdcArtifactHandlerConstants.URL);
-        String port = context.getAttribute(SdcArtifactHandlerConstants.PORT_NUMBER);
-        String user = context.getAttribute(SdcArtifactHandlerConstants.USER_NAME);
-        String property = vnf_type + "." + protocol + "." + action;
-        log.info("property :" + property);
-        if (StringUtils.isBlank(url)) {
-            url = "";
-        }
-        if (StringUtils.isBlank(port)) {
-            port = "";
-        }
-        if (StringUtils.isBlank(user)) {
-            user = "";
-        }
-        if (((vnf_type == null) || ("".equals(vnf_type))) && ((action == null) || ("".equals(action)))
-            && ((protocol == null) || ("".equals(protocol)))) {
-            throw new SvcLogicException(
-                "Error While processing refernce File as few or all of parameters VNF_TYPE,PROTOCOL,ACTION are missing ");
-        }
-        PropertiesConfiguration conf =
-            new PropertiesConfiguration(System.getenv("APPC_CONFIG_DIR") + "/appc_southbound.properties");
-        log.info("is Updating to southbound  properties : " + isUpdate);
-        if (conf.containsKey(property + "." + "user")) {
-            if (user != null && !user.isEmpty()) {
-                conf.setProperty(property + "." + "user", user);
+        throws DBException {
+        try {
+            String fn = "DBService.processDeviceAuthentication";
+            log.info(fn + "Starting DB operation for Device Authentication " + isUpdate);
+            String protocol = context.getAttribute(SdcArtifactHandlerConstants.DEVICE_PROTOCOL);
+            String action = context.getAttribute(SdcArtifactHandlerConstants.ACTION);
+            String vnfType = context.getAttribute(SdcArtifactHandlerConstants.VNF_TYPE);
+            String url = context.getAttribute(SdcArtifactHandlerConstants.URL);
+            String port = context.getAttribute(SdcArtifactHandlerConstants.PORT_NUMBER);
+            String user = context.getAttribute(SdcArtifactHandlerConstants.USER_NAME);
+            String property = vnfType + "." + protocol + "." + action;
+            log.info("property :" + property);
+            if (StringUtils.isBlank(url)) {
+                url = "";
             }
-        } else {
-            log.info("is Adding to southbound.properties" + isUpdate);
+            if (StringUtils.isBlank(port)) {
+                port = "";
+            }
+            if (StringUtils.isBlank(user)) {
+                user = "";
+            }
+            if (isInvalidInput(protocol, action, vnfType)) {
+                throw new SvcLogicException(
+                    "Error While processing reference File as few or all of parameters VNF_TYPE,PROTOCOL,ACTION are missing ");
+            }
+            PropertiesConfiguration conf =
+                new PropertiesConfiguration(System.getenv("APPC_CONFIG_DIR") + "/appc_southbound.properties");
+            log.info("is Updating to southbound  properties : " + isUpdate);
 
-            conf.addProperty(property + "." + "user", user);
+            resolveUserAction(isUpdate, user, property, conf);
+            resolvePortAction(port, property, conf);
+            resolveUrlAction(url, property, conf);
+            tryAddPasswordProperty(property, conf);
+
+            log.info("About to save to properties file");
+            conf.save();
+            log.info("saved to properties file");
+        } catch (SvcLogicException | ConfigurationException e) {
+            throw new DBException("An error occurred when processing device authentication", e);
         }
+    }
 
-        if (conf.containsKey(property + "." + "port")) {
-            if (port != null && !port.isEmpty()) {
-                conf.setProperty(property + "." + "port", port);
-            }
-        } else {
-            conf.addProperty(property + "." + "port", port);
+    private void tryAddPasswordProperty(String property, PropertiesConfiguration conf) {
+        if (!conf.containsKey(property + "." + "password")) {
+            conf.addProperty(property + "." + "password", "");
         }
-        if (conf.containsKey(property + "." + "password")) {
+    }
+
+    private void resolveUrlAction(String url, String property, PropertiesConfiguration conf) {
+        if (conf.containsKey(property + "." + "url") && !url.isEmpty()) {
+            conf.setProperty(property + "." + "url", url);
         } else {
-            conf.addProperty(property + "." + "password", "");
+            conf.addProperty(property + "." + "url", url);
         }
-        if (conf.containsKey(property + "." + "url")) {
-            if (url != null && !url.isEmpty()) {
-                conf.setProperty(property + "." + "url", url);
-            }
+    }
 
+    private void resolvePortAction(String port, String property, PropertiesConfiguration conf) {
+        if (conf.containsKey(property + "." + "port") && !port.isEmpty()) {
+            conf.setProperty(property + "." + "port", port);
         } else {
+            conf.addProperty(property + "." + "port", port);
+        }
+    }
 
-            conf.addProperty(property + "." + "url", url);
+    private void resolveUserAction(boolean isUpdate, String user, String property, PropertiesConfiguration conf) {
+        if (conf.containsKey(property + "." + "user") && !user.isEmpty()) {
+            conf.setProperty(property + "." + "user", user);
+        } else {
+            log.info("is Adding to southbound.properties" + isUpdate);
+            conf.addProperty(property + "." + "user", user);
         }
-        log.info("About to save to properties file");
-        conf.save();
-        log.info("saved to properties file");
+    }
+
+    private boolean isInvalidInput(String protocol, String action, String vnfType) {
+        return isInvalid(vnfType) && isInvalid(action) && isInvalid(protocol);
+    }
+
+    private boolean isInvalid(String str) {
+        return (str == null) || ("".equals(str));
     }
 
     public void processVnfcReference(SvcLogicContext context, boolean isUpdate) throws SvcLogicException {
         String fn = "DBService.processVnfcReference";
         log.info(fn + "Starting DB operation for Vnfc Reference " + isUpdate);
-        String key = "";
-        int vm_instance = -1;
-        String templateId="";
+        String key;
 
+        int vmInstance = -1;
         if (context.getAttribute(SdcArtifactHandlerConstants.VM_INSTANCE) != null) {
-            vm_instance = Integer.parseInt(context.getAttribute(SdcArtifactHandlerConstants.VM_INSTANCE));
+            vmInstance = Integer.parseInt(context.getAttribute(SdcArtifactHandlerConstants.VM_INSTANCE));
         }
-        int vnfc_instance = -1;
+
+        int vnfcInstance = -1;
         if (context.getAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE) != null) {
-            vnfc_instance = Integer.parseInt(context.getAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE));
-        } 
-        if (context.getAttribute(SdcArtifactHandlerConstants.TEMPLATE_ID) != null) {
-            templateId = context.getAttribute(SdcArtifactHandlerConstants.TEMPLATE_ID);
+            vnfcInstance = Integer.parseInt(context.getAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE));
         }
 
-        QueryStatus status = null;
+        QueryStatus status;
         if (isUpdate) {
-            key = "update " + SdcArtifactHandlerConstants.DB_VNFC_REFERENCE + " set VM_INSTANCE = " + vm_instance
-                + " , VNFC_INSTANCE = " + vnfc_instance + " , VNFC_TYPE = $" + SdcArtifactHandlerConstants.VNFC_TYPE
+            key = UPDATE_QUERY_STR + SdcArtifactHandlerConstants.DB_VNFC_REFERENCE + " set VM_INSTANCE = " + vmInstance
+                + " , VNFC_INSTANCE = " + vnfcInstance + " , VNFC_TYPE = $" + SdcArtifactHandlerConstants.VNFC_TYPE
                 + " , VNFC_FUNCTION_CODE = $" + SdcArtifactHandlerConstants.VNFC_FUNCTION_CODE
                 + " , GROUP_NOTATION_TYPE = $" + SdcArtifactHandlerConstants.GROUP_NOTATION_TYPE
                 + " , GROUP_NOTATION_VALUE = $" + SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE
                 + " , IPADDRESS_V4_OAM_VIP = $" + SdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP
-                + " where VNF_TYPE = $" + SdcArtifactHandlerConstants.VNF_TYPE + " and ACTION = $"
-                + SdcArtifactHandlerConstants.ACTION + " and VNFC_TYPE = $" + SdcArtifactHandlerConstants.VNFC_TYPE
+                + WHERE_VNF_TYPE_QUERY_STR + SdcArtifactHandlerConstants.VNF_TYPE + AND_ACTION_QUERY_STR
+                + SdcArtifactHandlerConstants.ACTION + AND_VNFC_TYPE_QUERY_STR + SdcArtifactHandlerConstants.VNFC_TYPE
                 + " and VNFC_INSTANCE = $" + SdcArtifactHandlerConstants.VNFC_INSTANCE + " and VM_INSTANCE = $"
                 + SdcArtifactHandlerConstants.VM_INSTANCE;
         } else {
-            key = "insert into " + SdcArtifactHandlerConstants.DB_VNFC_REFERENCE + " set  VNF_TYPE = $"
-                + SdcArtifactHandlerConstants.VNF_TYPE + " , ACTION = $" + SdcArtifactHandlerConstants.ACTION
+            key = INSERT_INTO_QUERY_STR + SdcArtifactHandlerConstants.DB_VNFC_REFERENCE + " set  VNF_TYPE = $"
+                + SdcArtifactHandlerConstants.VNF_TYPE + ACTION_QUERY_STR + SdcArtifactHandlerConstants.ACTION
                 + " , VM_INSTANCE = $" + SdcArtifactHandlerConstants.VM_INSTANCE + " , VNFC_INSTANCE = $"
                 + SdcArtifactHandlerConstants.VNFC_INSTANCE + " , VNFC_TYPE = $"
                 + SdcArtifactHandlerConstants.VNFC_TYPE + " , VNFC_FUNCTION_CODE = $"
@@ -426,27 +454,29 @@ public class DBService {
                 + SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE;
         }
 
-        if (serviceLogic != null && context != null) {
+        if (serviceLogic != null) {
             status = serviceLogic.save("SQL", false, false, key, null, null, context);
-            if (status.toString().equals("FAILURE")) {
+            if (status.toString().equals(FAILURE_PARAM)) {
                 throw new SvcLogicException("Error While processing VNFC_REFERENCE table ");
             }
         }
     }
 
     public void processDownloadDgReference(SvcLogicContext context, boolean isUpdate)
-        throws SvcLogicException, SQLException {
+        throws SvcLogicException {
         String fn = "DBService.processDownloadDgReference";
         log.info(fn + "Starting DB operation for Download DG Reference " + isUpdate);
-        String key = "";
+        String key;
         QueryStatus status = null;
 
         if (isUpdate) {
-            key = "update " + SdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE + " set DOWNLOAD_CONFIG_DG = $"
-                + SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE + " where PROTOCOL = $"
-                + SdcArtifactHandlerConstants.DEVICE_PROTOCOL;
+            key =
+                UPDATE_QUERY_STR + SdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE + SET_DOWNLOAD_CONFIG_QUERY_STR
+                    + SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE + " where PROTOCOL = $"
+                    + SdcArtifactHandlerConstants.DEVICE_PROTOCOL;
         } else {
-            key = "insert into " + SdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE + " set DOWNLOAD_CONFIG_DG = $"
+            key = INSERT_INTO_QUERY_STR + SdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE
+                + SET_DOWNLOAD_CONFIG_QUERY_STR
                 + SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE + " , PROTOCOL = $"
                 + SdcArtifactHandlerConstants.DEVICE_PROTOCOL;
         }
@@ -454,7 +484,7 @@ public class DBService {
         if (serviceLogic != null && context != null) {
             status = serviceLogic.save("SQL", false, false, key, null, null, context);
         }
-        if ((status == null) || status.toString().equals("FAILURE")) {
+        if ((status == null) || status.toString().equals(FAILURE_PARAM)) {
             throw new SvcLogicException("Error While processing DOWNLOAD_DG_REFERENCE table ");
         }
     }
@@ -462,26 +492,27 @@ public class DBService {
     public void processConfigActionDg(SvcLogicContext context, boolean isUpdate) throws SvcLogicException {
         String fn = "DBService.processConfigActionDg";
         log.info(fn + "Starting DB operation for Config DG Action " + isUpdate);
-        String key = "";
+        String key;
         QueryStatus status = null;
 
         if (context.getAttribute(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE) != null
             && context.getAttribute(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE).length() > 0) {
             if (isUpdate) {
-                key = "update " + SdcArtifactHandlerConstants.DB_CONFIG_ACTION_DG + " set DOWNLOAD_CONFIG_DG = $"
+                key = UPDATE_QUERY_STR + SdcArtifactHandlerConstants.DB_CONFIG_ACTION_DG + SET_DOWNLOAD_CONFIG_QUERY_STR
                     + SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE + " where ACTION = $"
-                    + SdcArtifactHandlerConstants.ACTION + " and VNF_TYPE = $"
+                    + SdcArtifactHandlerConstants.ACTION + AND_VNF_TYPE_QUERY_STR
                     + SdcArtifactHandlerConstants.VNF_TYPE;
             } else {
-                key = "insert into " + SdcArtifactHandlerConstants.DB_CONFIG_ACTION_DG + " set DOWNLOAD_CONFIG_DG = $"
-                    + SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE + " , ACTION = $"
-                    + SdcArtifactHandlerConstants.ACTION + " , VNF_TYPE = $" + SdcArtifactHandlerConstants.VNF_TYPE;
+                key = INSERT_INTO_QUERY_STR + SdcArtifactHandlerConstants.DB_CONFIG_ACTION_DG
+                    + SET_DOWNLOAD_CONFIG_QUERY_STR
+                    + SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE + ACTION_QUERY_STR
+                    + SdcArtifactHandlerConstants.ACTION + VNF_TYPE_QUERY_STR + SdcArtifactHandlerConstants.VNF_TYPE;
             }
 
-            if (serviceLogic != null && context != null) {
+            if (serviceLogic != null) {
                 status = serviceLogic.save("SQL", false, false, key, null, null, context);
             }
-            if ((status == null) || status.toString().equals("FAILURE")) {
+            if ((status == null) || status.toString().equals(FAILURE_PARAM)) {
                 throw new SvcLogicException("Error While processing Configure DG Action table ");
             }
         } else {
@@ -490,36 +521,33 @@ public class DBService {
 
     }
 
-    public String getModelDataInformationbyArtifactName(String artifact_name) throws SvcLogicException {
+    public String getModelDataInformationbyArtifactName(String artifactName) throws SvcLogicException {
         String fn = "DBService.getVnfData";
-        String key = "";
         SvcLogicContext con = new SvcLogicContext();
-        HashMap<String, String> modelData = new HashMap<String, String>();
-        QueryStatus status = null;
+        String key;
+        QueryStatus status;
         key =
             "select VNF_TYPE, VNFC_TYPE, ACTION, FILE_CATEGORY, ARTIFACT_TYPE from ASDC_REFERENCE where  ARTIFACT_NAME = "
-                + artifact_name;
+                + artifactName;
 
-        if (serviceLogic != null && con != null) {
+        if (serviceLogic != null) {
             log.info(fn + "select Key: " + key);
             status = serviceLogic.query("SQL", false, null, key, null, null, con);
-            if (status.toString().equals("FAILURE")) {
+            if (status.toString().equals(FAILURE_PARAM)) {
                 throw new SvcLogicException("Error While processing is ArtifactUpdateRequiredforPD table ");
             }
 
         }
-
         log.info(fn + "Vnf_received :" + con.getAttribute("VNF_TYPE"));
 
         return con.getAttribute("VNF_TYPE");
-
     }
 
     public void updateYangContents(SvcLogicContext context, String artifactId, String yangContents)
         throws SvcLogicException {
         String fn = "DBService.updateYangContents";
         log.info(fn + "Starting DB operation for  updateYangContents");
-        String key = "";
+        String key;
         QueryStatus status = null;
 
         key = "update ASDC_ARTIFACTS " + " set ARTIFACT_CONTENT = '" + yangContents + "'"
@@ -528,7 +556,7 @@ public class DBService {
         if (serviceLogic != null && context != null) {
             status = serviceLogic.save("SQL", false, false, key, null, null, context);
         }
-        if ((status == null) || status.toString().equals("FAILURE")) {
+        if ((status == null) || status.toString().equals(FAILURE_PARAM)) {
             throw new SvcLogicException("Error While processing Configure DG Action table ");
         }
 
@@ -536,90 +564,89 @@ public class DBService {
 
 
     public void insertProtocolReference(SvcLogicContext context, String vnfType, String protocol, String action,
-        String action_level, String template) throws SvcLogicException {
+        String actionLevel, String template) throws SvcLogicException {
         String fn = "DBService.insertProtocolReference";
         log.info(fn + "Starting DB operation for  insertProtocolReference");
-        String key = "";
+        String key;
         QueryStatus status = null;
 
         key = "insert into PROTOCOL_REFERENCE (ACTION, VNF_TYPE, PROTOCOL, UPDATED_DATE, TEMPLATE, ACTION_LEVEL)"
             + " values  (" + "'" + action + "', '" + vnfType + "', '" + protocol + "', now(),'" + template + "', '"
-            + action_level + "')";
+            + actionLevel + "')";
 
         if (serviceLogic != null && context != null) {
             status = serviceLogic.save("SQL", false, false, key, null, null, context);
         }
-        if ((status == null) || status.toString().equals("FAILURE")) {
+        if ((status == null) || status.toString().equals(FAILURE_PARAM)) {
             throw new SvcLogicException("Error While processing insertProtocolReference ");
         }
 
     }
 
     public boolean isProtocolReferenceUpdateRequired(SvcLogicContext context, String vnfType, String protocol,
-        String action, String action_level, String template) throws SvcLogicException {
+        String action, String actionLevel, String template) throws SvcLogicException {
         SvcLogicContext localContext = new SvcLogicContext();
         String fn = "DBService.isProtocolReferenceUpdateRequired";
         log.info(fn + "Starting DB operation for  isProtocolReferenceUpdateRequired");
-        String key = "";
-        QueryStatus status = null;
 
-        key = "select COUNT(*) from PROTOCOL_REFERENCE where ACTION='" + action + "' and ACTION_LEVEL='" + action_level
+        String key = "select COUNT(*) from PROTOCOL_REFERENCE where ACTION='" + action + "' and ACTION_LEVEL='" + actionLevel
             + "' and VNF_TYPE='" + vnfType + "'";
-        status = serviceLogic.query("SQL", false, null, key, null, null, localContext);
+        serviceLogic.query("SQL", false, null, key, null, null, localContext);
+
         String countStr = localContext.getAttribute("COUNT(*)");
         int count = Integer.parseInt(countStr);
-        if (count > 0) {
-            return true;
-        } else {
-            return false;
-        }
+        return count > 0;
     }
 
     public void updateProtocolReference(SvcLogicContext context, String vnfType, String protocol, String action,
-        String action_level, String template) throws SvcLogicException {
+        String actionLevel, String template) throws SvcLogicException {
 
         String fn = "DBService.isProtocolReferenceUpdateRequired";
         log.info(fn + "Starting DB operation for  isProtocolReferenceUpdateRequired");
-        String key = "";
-        QueryStatus status = null;
+        String key;
+        QueryStatus status;
 
         key = "update PROTOCOL_REFERENCE set UPDATED_DATE=now(), template='" + template + "', protocol ='" + protocol
-            + "' where ACTION='" + action + "' and ACTION_LEVEL='" + action_level + "' and VNF_TYPE='" + vnfType
+            + "' where ACTION='" + action + "' and ACTION_LEVEL='" + actionLevel + "' and VNF_TYPE='" + vnfType
             + "'";
         status = serviceLogic.save("SQL", false, false, key, null, null, context);
         if (status == QueryStatus.FAILURE) {
             log.info("updateProtocolReference:: Error updating protocol reference");
             throw new SvcLogicException("Error - updating PROTOCOL_REFERENCE_TABLE in updateProtocolReference");
         }
-        return;
     }
 
-    public String getDownLoadDGReference(SvcLogicContext context) throws SvcLogicException, ConfigurationException {
-        String fn = "DBService.setDownLoadDGReference";
-        String downloadConfigDg = null;
-        log.info(fn + "Setting Download DG Reference from DB");
-        String key = "";
-        QueryStatus status = null;
-        String protocol = context.getAttribute(SdcArtifactHandlerConstants.DEVICE_PROTOCOL);
-        if (StringUtils.isBlank(protocol)) {
-            log.info(fn + " :: Protocol is Blank!! Returning without querying DB");
-            throw new ConfigurationException(fn + ":: Protocol is Blank!! Returning without querying DB");
-        }
-        key = "select download_config_dg from " + SdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE
-            + " where protocol = '" + protocol + "'";
-        SvcLogicContext localContext = new SvcLogicContext();
-        status = serviceLogic.query("SQL", false, null, key, null, null, localContext);
-        if (status == QueryStatus.FAILURE) {
-            log.info(fn + ":: Error retrieving download_config_dg");
-            throw new SvcLogicException("Error retrieving download_config_dg");
-        }
-        if (status == QueryStatus.NOT_FOUND) {
-            log.info(fn + ":: NOT_FOUND! No data found for download_config_dg!!");
-            throw new SvcLogicException(fn + ":: NOT_FOUND! No data found for download_config_dg!");
+    public String getDownLoadDGReference(SvcLogicContext context) throws DBException {
+        try {
+
+            String fn = "DBService.setDownLoadDGReference";
+            String downloadConfigDg;
+            log.info(fn + "Setting Download DG Reference from DB");
+            String key;
+            QueryStatus status;
+            String protocol = context.getAttribute(SdcArtifactHandlerConstants.DEVICE_PROTOCOL);
+            if (StringUtils.isBlank(protocol)) {
+                log.info(fn + " :: Protocol is Blank!! Returning without querying DB");
+                throw new ConfigurationException(fn + ":: Protocol is Blank!! Returning without querying DB");
+            }
+            key = "select download_config_dg from " + SdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE
+                + " where protocol = '" + protocol + "'";
+            SvcLogicContext localContext = new SvcLogicContext();
+            status = serviceLogic.query("SQL", false, null, key, null, null, localContext);
+            if (status == QueryStatus.FAILURE) {
+                log.info(fn + ":: Error retrieving download_config_dg");
+                throw new SvcLogicException("Error retrieving download_config_dg");
+            }
+            if (status == QueryStatus.NOT_FOUND) {
+                log.info(fn + ":: NOT_FOUND! No data found for download_config_dg!!");
+                throw new SvcLogicException(fn + ":: NOT_FOUND! No data found for download_config_dg!");
+            }
+            downloadConfigDg = localContext.getAttribute("download-config-dg");
+            log.info(fn + "download_config_dg::" + downloadConfigDg);
+            return downloadConfigDg;
+        } catch (SvcLogicException | ConfigurationException e) {
+            throw new DBException("An error occurred when getting DG reference", e);
         }
-        downloadConfigDg = localContext.getAttribute("download-config-dg");
-        log.info(fn + "download_config_dg::" + downloadConfigDg);
-        return downloadConfigDg;
     }
 
     public void cleanUpVnfcReferencesForVnf(SvcLogicContext context) throws SvcLogicException {
@@ -628,20 +655,19 @@ public class DBService {
                 + SdcArtifactHandlerConstants.ACTION + " and vnf_type = $" + SdcArtifactHandlerConstants.VNF_TYPE;
             log.debug("Action : " + context.getAttribute(SdcArtifactHandlerConstants.ACTION));
             log.debug("vnfType: " + context.getAttribute(SdcArtifactHandlerConstants.VNF_TYPE));
-            QueryStatus status = null;
+            QueryStatus status;
             log.info("cleanUpVnfcReferencesForVnf()::Query:" + key1);
-            if (serviceLogic != null && context != null) {
+            if (serviceLogic != null) {
                 status = serviceLogic.save("SQL", false, false, key1, null, null, context);
-                if (status.toString().equals("FAILURE")) {
+                if (status.toString().equals(FAILURE_PARAM)) {
                     log.debug("Error deleting from VNFC_REFERENCE table");
                     throw new SvcLogicException("Error While processing VNFC_REFERENCE table ");
                 }
-                status = null;
             }
         } catch (Exception e) {
             log.debug("Error deleting from VNFC_REFERENCE table  : "
                 + context.getAttribute(SdcArtifactHandlerConstants.ACTION) + " and "
-                + context.getAttribute(SdcArtifactHandlerConstants.VNF_TYPE));
+                + context.getAttribute(SdcArtifactHandlerConstants.VNF_TYPE), e);
         }
     }
 }
index 2441e4f..c476505 100644 (file)
@@ -89,6 +89,7 @@ import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.lang.StringUtils;
 import org.json.JSONArray;
 import org.json.JSONObject;
+import org.onap.appc.artifact.handler.dbservices.DBException;
 import org.onap.appc.artifact.handler.dbservices.DBService;
 import org.onap.appc.artifact.handler.utils.ArtifactHandlerProviderUtil;
 import org.onap.appc.yang.YANGGenerator;
@@ -418,7 +419,7 @@ public class ArtifactHandlerNode implements SvcLogicJavaPlugin {
     }
 
     private void doProcessArtifactList(DBService dbservice, SvcLogicContext context, JSONArray artifactLists)
-        throws SvcLogicException, SQLException, ConfigurationException {
+        throws SvcLogicException, SQLException, ConfigurationException, DBException {
         boolean pdFile = false;
         String suffix = null;
 
@@ -445,7 +446,7 @@ public class ArtifactHandlerNode implements SvcLogicJavaPlugin {
     }
 
     private void tryUpdateContext(DBService dbservice, SvcLogicContext context, boolean pdFile, String suffix)
-        throws SvcLogicException, SQLException, ConfigurationException {
+        throws SvcLogicException, SQLException, ConfigurationException, DBException {
         if (pdFile) {
             context.setAttribute(ARTIFACT_NAME, "Tosca".concat(suffix));
             context.setAttribute(FILE_CATEGORY, TOSCA_MODEL);
@@ -488,7 +489,7 @@ public class ArtifactHandlerNode implements SvcLogicJavaPlugin {
     }
 
     private void tryProcessInterfaceProtocol(JSONObject content, DBService dbservice, SvcLogicContext context)
-        throws SvcLogicException, SQLException, ConfigurationException {
+        throws SvcLogicException, SQLException, ConfigurationException, DBException {
 
         if (contentsActionEquals(content, CONFIGURE_PARAM) || contentsActionEquals(content, CONFIG_SCALE_OUT_PARAM)) {
             boolean isUpdateRequired = dbservice.isArtifactUpdateRequired(context, DB_DEVICE_INTERFACE_PROTOCOL);