Upgrade to ODL Aluminum
[sdnc/northbound.git] / generic-resource-api / provider / src / main / java / org / onap / sdnc / northbound / GenericResourceApiSvcLogicServiceClient.java
index 8ba70de..225f8e6 100644 (file)
@@ -1,5 +1,5 @@
 /*-
- * ============LICENSE_START=======================================================
+z * ============LICENSE_START=======================================================
  * openECOMP : SDN-C
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights
@@ -33,11 +33,12 @@ import java.util.Properties;
 public class GenericResourceApiSvcLogicServiceClient {
     static final String FAILURE_RESULT = "failure";
     static final String SVC_LOGIC_STATUS_KEY = "SvcLogic.status";
+    static final String SKIP_MDSAL_UPDATE_PROP = "skip-mdsal-update";
 
-    private final Logger LOG = LoggerFactory
+    // Next 2 fields protected so they can be overridden in jUnit without resorting to Java reflection
+    protected Logger LOG = LoggerFactory
             .getLogger(GenericResourceApiSvcLogicServiceClient.class);
-
-    private SvcLogicService svcLogic = null;
+    protected SvcLogicService svcLogic = null;
 
     public GenericResourceApiSvcLogicServiceClient(SvcLogicService svcLogic)
     {
@@ -77,7 +78,12 @@ public class GenericResourceApiSvcLogicServiceClient {
             return respProps;
         }
 
-        GenericResourceApiUtil.toBuilder(respProps, serviceData);
+        String skipMdsalUpdate = respProps.getProperty(SKIP_MDSAL_UPDATE_PROP);
+        if ((skipMdsalUpdate == null) || !skipMdsalUpdate.equals("Y")) {
+            GenericResourceApiUtil.toBuilder(respProps, serviceData);
+        } else {
+            LOG.debug("Skipping call to MdsalHelper.toBuilder");
+        }
 
         return respProps;
     }
@@ -106,6 +112,21 @@ public class GenericResourceApiSvcLogicServiceClient {
         return respProps;
     }
 
+       public Properties execute(String module, String rpc, String version, String mode, Properties properties)
+                       throws SvcLogicException {
+
+               printPropsDebugLogs(properties, "Parameters passed to SLI");
+
+               Properties respProps = svcLogic.execute(module, rpc, version, mode, properties);
+               printPropsDebugLogs(respProps, "Parameters returned by SLI");
+               if (respProps == null || FAILURE_RESULT.equalsIgnoreCase(respProps.getProperty(SVC_LOGIC_STATUS_KEY))) {
+                       return (respProps);
+               }
+
+               return respProps;
+       }
+
+
     private void printPropsDebugLogs(Properties properties, String msg) {
         if (!LOG.isDebugEnabled()) {
             return;
@@ -118,7 +139,7 @@ public class GenericResourceApiSvcLogicServiceClient {
         LOG.debug(msg);
         for (Object key : properties.keySet()) {
             String paramName = (String) key;
-            LOG.debug(paramName, " = ", properties.getProperty(paramName));
+            LOG.debug(paramName + " = " + properties.getProperty(paramName));
         }
     }
 }