Changes to vnfc reference processing 37/21037/2
authorRamya Balaji <rb111y@att.com>
Fri, 27 Oct 2017 15:49:49 +0000 (11:49 -0400)
committerSkip Wonnell <skip@att.com>
Fri, 27 Oct 2017 19:10:28 +0000 (19:10 +0000)
Logic changed to delete existing records for vnf
then insert new records per incoming reference
artifact.

Issue-ID: APPC-297
Change-Id: Iaec59463a41113923cb330c922e83a6061050dd2
Signed-off-by: Ramya Balaji <rb111y@att.com>
appc-inbound/appc-artifact-handler/provider/src/main/java/org/openecomp/appc/artifact/handler/dbservices/DBService.java
appc-inbound/appc-artifact-handler/provider/src/main/java/org/openecomp/appc/artifact/handler/node/ArtifactHandlerNode.java

index 41ff4a2..b915fd9 100644 (file)
@@ -512,4 +512,20 @@ public class DBService {
         log.info(fn + "download_config_dg::" + downloadConfigDg);
         return downloadConfigDg;
     }
+
+    public void cleanUpVnfcReferencesForVnf(SvcLogicContext context) throws SvcLogicException {
+        String key1 = "delete from " + SdcArtifactHandlerConstants.DB_VNFC_REFERENCE
+                + " where action = 'Configure' and vnf_type = $" + SdcArtifactHandlerConstants.VNF_TYPE;
+        QueryStatus status = null;
+        log.info("cleanUpVnfcReferencesForVnf()::Query:" + key1);
+        if (serviceLogic != null && context != null) {
+            status = serviceLogic.save("SQL", false, false, key1, null, null, context);
+            if (status.toString().equals("FAILURE")) {
+                log.debug("Error deleting from VNFC_REFERENCE table");
+                throw new SvcLogicException("Error While processing VNFC_REFERENCE table ");
+            }
+        }
+    }
+
+
 }
index d945769..920476b 100644 (file)
@@ -368,6 +368,7 @@ public class ArtifactHandlerNode implements SvcLogicJavaPlugin {
                 if (content.has(SdcArtifactHandlerConstants.VM)
                         && content.get(SdcArtifactHandlerConstants.VM) instanceof JSONArray) {
                     JSONArray vmList = (JSONArray) content.get(SdcArtifactHandlerConstants.VM);
+                    dbservice.cleanUpVnfcReferencesForVnf(context);
                     for (int i = 0; i < vmList.length(); i++) {
                         JSONObject vmInstance = (JSONObject) vmList.get(i);
                         context.setAttribute(SdcArtifactHandlerConstants.VM_INSTANCE,
@@ -392,8 +393,9 @@ public class ArtifactHandlerNode implements SvcLogicJavaPlugin {
                                 if (vnfcInstance.has(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE))
                                     context.setAttribute(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE,
                                             vnfcInstance.getString(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE));
-                                dbservice.processVnfcReference(context, dbservice.isArtifactUpdateRequired(context,
-                                        SdcArtifactHandlerConstants.DB_VNFC_REFERENCE));
+                                if (content.getString(SdcArtifactHandlerConstants.ACTION).equals("Configure")) {
+                                    dbservice.processVnfcReference(context,false);
+                                }
                                 cleanVnfcInstance(context);
                             }
                             context.setAttribute(SdcArtifactHandlerConstants.VM_INSTANCE, null);