Rework SDC calls and model
[clamp.git] / src / main / java / org / onap / clamp / clds / client / SdcSendReqDelegate.java
index 93b6e95..47a4ddc 100644 (file)
@@ -5,16 +5,16 @@
  * Copyright (C) 2017 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); 
- * you may not use this file except in compliance with the License. 
+ * 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 
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============LICENSE_END============================================
  * ===================================================================
 
 package org.onap.clamp.clds.client;
 
+import java.util.List;
+
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.camunda.bpm.engine.delegate.JavaDelegate;
 import org.onap.clamp.clds.client.req.SdcReq;
-import org.onap.clamp.clds.model.CldsAsdcServiceDetail;
+import org.onap.clamp.clds.model.CldsSdcServiceDetail;
 import org.onap.clamp.clds.model.DcaeEvent;
 import org.onap.clamp.clds.model.prop.Global;
 import org.onap.clamp.clds.model.prop.ModelProperties;
 import org.onap.clamp.clds.model.refprop.RefProp;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import java.util.List;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
 
 /**
  * Send control loop model to dcae proxy.
  */
 public class SdcSendReqDelegate implements JavaDelegate {
-    // currently uses the java.util.logging.Logger like the Camunda engine
-    private static final Logger logger = LoggerFactory.getLogger(SdcSendReqDelegate.class);
+    protected static final EELFLogger logger        = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class);
+    protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
 
     @Autowired
-    private RefProp refProp;
+    private RefProp                 refProp;
 
     @Autowired
-    private SdcCatalogServices asdcCatalogServices;
+    private SdcCatalogServices      sdcCatalogServices;
 
-    private String baseUrl;
-    private String artifactType;
-    private String locationArtifactType;
-    private String artifactLabel;
-    private String locationArtifactLabel;
+    private String                  baseUrl;
+    private String                  artifactType;
+    private String                  locationArtifactType;
+    private String                  artifactLabel;
+    private String                  locationArtifactLabel;
 
     /**
-     * Perform activity.  Send to asdc proxy.
+     * Perform activity. Send to sdc proxy.
      *
      * @param execution
      */
+    @Override
     public void execute(DelegateExecution execution) throws Exception {
         String userid = (String) execution.getVariable("userid");
         logger.info("userid=" + userid);
-        String docText = (String) execution.getVariable("docText");
-        String artifactName = execution.getVariable("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
+        String docText = new String((byte[]) execution.getVariable("docText"));
+        String artifactName = (String) execution.getVariable("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
         execution.setVariable("artifactName", artifactName);
-        getAsdcAttributes();
+        getSdcAttributes((String) execution.getVariable("controlName"));
         ModelProperties prop = ModelProperties.create(execution);
         String bluprintPayload = SdcReq.formatBlueprint(refProp, prop, docText);
-        String formatttedAsdcReq = SdcReq.formatAsdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
-        if (formatttedAsdcReq != null) {
-            execution.setVariable("formattedArtifactReq", formatttedAsdcReq.getBytes());
+        String formatttedSdcReq = SdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
+        if (formatttedSdcReq != null) {
+            execution.setVariable("formattedArtifactReq", formatttedSdcReq.getBytes());
         }
-        List<String> asdcReqUrlsList = SdcReq.getAsdcReqUrlsList(prop, baseUrl, asdcCatalogServices, execution);
+        List<String> sdcReqUrlsList = SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution);
 
-        String asdcLocationsPayload = SdcReq.formatAsdcLocationsReq(prop, artifactName);
-        String locationArtifactName = execution.getVariable("controlName") + "-location.json";
-        String formattedAsdcLocationReq = SdcReq.formatAsdcReq(asdcLocationsPayload, locationArtifactName, locationArtifactLabel, locationArtifactType);
-        if (formattedAsdcLocationReq != null) {
-            execution.setVariable("formattedLocationReq", formattedAsdcLocationReq.getBytes());
+        String sdcLocationsPayload = SdcReq.formatSdcLocationsReq(prop, artifactName);
+        String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json";
+        String formattedSdcLocationReq = SdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName,
+                locationArtifactLabel, locationArtifactType);
+        if (formattedSdcLocationReq != null) {
+            execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes());
         }
         String serviceInvariantUUID = getServiceInvariantUUIDFromProps(prop);
-        uploadToAsdc(prop, serviceInvariantUUID, userid, asdcReqUrlsList, formatttedAsdcReq, formattedAsdcLocationReq, artifactName, locationArtifactName);
+        uploadToSdc(prop, serviceInvariantUUID, userid, sdcReqUrlsList, formatttedSdcReq, formattedSdcLocationReq,
+                artifactName, locationArtifactName);
     }
 
     private String getServiceInvariantUUIDFromProps(ModelProperties props) {
@@ -97,42 +101,53 @@ public class SdcSendReqDelegate implements JavaDelegate {
         return invariantUUID;
     }
 
-    private void uploadToAsdc(ModelProperties prop, String serviceInvariantUUID, String userid, List<String> asdcReqUrlsList, String formatttedAsdcReq, String formattedAsdcLocationReq, String artifactName, String locationArtifactName) throws Exception {
+    private void uploadToSdc(ModelProperties prop, String serviceInvariantUUID, String userid,
+            List<String> sdcReqUrlsList, String formatttedSdcReq, String formattedSdcLocationReq, String artifactName,
+            String locationArtifactName) throws Exception {
         logger.info("userid=" + userid);
-        if (asdcReqUrlsList != null && asdcReqUrlsList.size() > 0) {
-            for (String url : asdcReqUrlsList) {
+        if (sdcReqUrlsList != null && sdcReqUrlsList.size() > 0) {
+            for (String url : sdcReqUrlsList) {
                 if (url != null) {
-                    String originalServiceUUID = asdcCatalogServices.getServiceUUIDFromServiceInvariantID(serviceInvariantUUID);
+                    String originalServiceUUID = sdcCatalogServices
+                            .getServiceUuidFromServiceInvariantId(serviceInvariantUUID);
                     logger.info("ServiceUUID used before upload in url:" + originalServiceUUID);
-                    String asdcServicesInformation = asdcCatalogServices.getAsdcServicesInformation(originalServiceUUID);
-                    CldsAsdcServiceDetail cldsAsdcServiceDetail = asdcCatalogServices.getCldsAsdcServiceDetailFromJson(asdcServicesInformation);
-                    String uploadedArtifactUUID = asdcCatalogServices.getArtifactIdIfArtifactAlreadyExists(cldsAsdcServiceDetail, artifactName);
-                    // Upload artifacts to asdc
+                    String sdcServicesInformation = sdcCatalogServices.getSdcServicesInformation(originalServiceUUID);
+                    CldsSdcServiceDetail CldsSdcServiceDetail = sdcCatalogServices
+                            .getCldsSdcServiceDetailFromJson(sdcServicesInformation);
+                    String uploadedArtifactUUID = sdcCatalogServices
+                            .getArtifactIdIfArtifactAlreadyExists(CldsSdcServiceDetail, artifactName);
+                    // Upload artifacts to sdc
                     String updateUrl = uploadedArtifactUUID != null ? url + "/" + uploadedArtifactUUID : url;
-                    String responseStr = asdcCatalogServices.uploadArtifactToAsdc(prop, userid, updateUrl, formatttedAsdcReq);
-                    logger.info("value of asdc Response of uploading to asdc :" + responseStr);
-                    String updatedServiceUUID = asdcCatalogServices.getServiceUUIDFromServiceInvariantID(serviceInvariantUUID);
+                    String responseStr = sdcCatalogServices.uploadArtifactToSdc(prop, userid, updateUrl,
+                            formatttedSdcReq);
+                    logger.info("value of sdc Response of uploading to sdc :" + responseStr);
+                    String updatedServiceUUID = sdcCatalogServices
+                            .getServiceUuidFromServiceInvariantId(serviceInvariantUUID);
                     if (!originalServiceUUID.equalsIgnoreCase(updatedServiceUUID)) {
                         url = url.replace(originalServiceUUID, updatedServiceUUID);
                     }
                     logger.info("ServiceUUID used after upload in ulr:" + updatedServiceUUID);
-                    asdcServicesInformation = asdcCatalogServices.getAsdcServicesInformation(updatedServiceUUID);
-                    cldsAsdcServiceDetail = asdcCatalogServices.getCldsAsdcServiceDetailFromJson(asdcServicesInformation);
-                    uploadedArtifactUUID = asdcCatalogServices.getArtifactIdIfArtifactAlreadyExists(cldsAsdcServiceDetail, locationArtifactName);
-                    //  To send location information also to asdc
+                    sdcServicesInformation = sdcCatalogServices.getSdcServicesInformation(updatedServiceUUID);
+                    CldsSdcServiceDetail = sdcCatalogServices.getCldsSdcServiceDetailFromJson(sdcServicesInformation);
+                    uploadedArtifactUUID = sdcCatalogServices.getArtifactIdIfArtifactAlreadyExists(CldsSdcServiceDetail,
+                            locationArtifactName);
+                    // To send location information also to sdc
                     updateUrl = uploadedArtifactUUID != null ? url + "/" + uploadedArtifactUUID : url;
-                    responseStr = asdcCatalogServices.uploadArtifactToAsdc(prop, userid, updateUrl, formattedAsdcLocationReq);
-                    logger.info("value of asdc Response of uploading location to asdc :" + responseStr);
+                    responseStr = sdcCatalogServices.uploadArtifactToSdc(prop, userid, updateUrl,
+                            formattedSdcLocationReq);
+                    logger.info("value of sdc Response of uploading location to sdc :" + responseStr);
                 }
             }
         }
     }
 
-    private void getAsdcAttributes() {
-        baseUrl = refProp.getStringValue("asdc.serviceUrl");
-        artifactLabel = refProp.getStringValue("asdc.artifactLabel");
-        locationArtifactLabel = refProp.getStringValue("asdc.locationArtifactLabel");
-        artifactType = refProp.getStringValue("asdc.artifactType");
-        locationArtifactType = refProp.getStringValue("asdc.locationArtifactType");
+    private void getSdcAttributes(String controlName) {
+        baseUrl = refProp.getStringValue("sdc.serviceUrl");
+        artifactLabel = SdcReq
+                .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName);
+        locationArtifactLabel = SdcReq
+                .normalizeResourceInstanceName(refProp.getStringValue("sdc.locationArtifactLabel") + "-" + controlName);
+        artifactType = refProp.getStringValue("sdc.artifactType");
+        locationArtifactType = refProp.getStringValue("sdc.locationArtifactType");
     }
 }