2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
20 * ===================================================================
21 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
24 package org.onap.clamp.clds.client;
26 import java.util.List;
28 import org.camunda.bpm.engine.delegate.DelegateExecution;
29 import org.camunda.bpm.engine.delegate.JavaDelegate;
30 import org.onap.clamp.clds.client.req.SdcReq;
31 import org.onap.clamp.clds.model.DcaeEvent;
32 import org.onap.clamp.clds.model.prop.ModelProperties;
33 import org.onap.clamp.clds.model.refprop.RefProp;
34 import org.springframework.beans.factory.annotation.Autowired;
36 import com.att.eelf.configuration.EELFLogger;
37 import com.att.eelf.configuration.EELFManager;
40 * Send control loop model to dcae proxy.
42 public class SdcSendReqDelegate implements JavaDelegate {
43 protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class);
44 protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
47 private RefProp refProp;
50 private SdcCatalogServices sdcCatalogServices;
52 private String baseUrl;
53 private String artifactType;
54 private String locationArtifactType;
55 private String artifactLabel;
56 private String locationArtifactLabel;
59 * Perform activity. Send to sdc proxy.
64 public void execute(DelegateExecution execution) throws Exception {
65 String userid = (String) execution.getVariable("userid");
66 logger.info("userid=" + userid);
67 String docText = new String((byte[]) execution.getVariable("docText"));
68 String artifactName = (String) execution.getVariable("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
69 execution.setVariable("artifactName", artifactName);
70 getSdcAttributes((String) execution.getVariable("controlName"));
71 ModelProperties prop = ModelProperties.create(execution);
72 String bluprintPayload = SdcReq.formatBlueprint(refProp, prop, docText);
73 // no need to upload blueprint for Holmes, thus blueprintPayload for Holmes is empty
74 if (!bluprintPayload.isEmpty()) {
75 String formattedSdcReq = SdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
76 if (formattedSdcReq != null) {
77 execution.setVariable("formattedArtifactReq", formattedSdcReq.getBytes());
79 List<String> sdcReqUrlsList = SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution);
81 String sdcLocationsPayload = SdcReq.formatSdcLocationsReq(prop, artifactName);
82 String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json";
83 String formattedSdcLocationReq = SdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName,
84 locationArtifactLabel, locationArtifactType);
85 if (formattedSdcLocationReq != null) {
86 execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes());
88 sdcCatalogServices.uploadToSdc(prop, userid, sdcReqUrlsList, formattedSdcReq, formattedSdcLocationReq,
89 artifactName, locationArtifactName);
94 * Method to get sdc service values from properties file.
97 private void getSdcAttributes(String controlName) {
98 baseUrl = refProp.getStringValue("sdc.serviceUrl");
99 artifactLabel = SdcReq
100 .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName);
101 locationArtifactLabel = SdcReq
102 .normalizeResourceInstanceName(refProp.getStringValue("sdc.locationArtifactLabel") + "-" + controlName);
103 artifactType = refProp.getStringValue("sdc.artifactType");
104 locationArtifactType = refProp.getStringValue("sdc.locationArtifactType");