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 com.att.eelf.configuration.EELFLogger;
27 import com.att.eelf.configuration.EELFManager;
29 import java.util.List;
31 import org.camunda.bpm.engine.delegate.DelegateExecution;
32 import org.camunda.bpm.engine.delegate.JavaDelegate;
33 import org.onap.clamp.clds.client.req.SdcReq;
34 import org.onap.clamp.clds.model.DcaeEvent;
35 import org.onap.clamp.clds.model.prop.ModelProperties;
36 import org.onap.clamp.clds.model.refprop.RefProp;
37 import org.springframework.beans.factory.annotation.Autowired;
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();
46 private SdcReq sdcReq;
48 private RefProp refProp;
50 private SdcCatalogServices sdcCatalogServices;
51 private String baseUrl;
52 private String artifactType;
53 private String locationArtifactType;
54 private String artifactLabel;
55 private String locationArtifactLabel;
58 * Perform activity. Send to sdc proxy.
63 public void execute(DelegateExecution execution) throws Exception {
64 String userid = (String) execution.getVariable("userid");
65 logger.info("userid=" + userid);
66 String docText = new String((byte[]) execution.getVariable("docText"));
67 String artifactName = (String) execution.getVariable("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
68 execution.setVariable("artifactName", artifactName);
69 getSdcAttributes((String) execution.getVariable("controlName"));
70 ModelProperties prop = ModelProperties.create(execution);
71 String bluprintPayload = sdcReq.formatBlueprint(prop, docText);
72 // no need to upload blueprint for Holmes, thus blueprintPayload for
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);
80 String sdcLocationsPayload = sdcReq.formatSdcLocationsReq(prop, artifactName);
81 String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json";
82 String formattedSdcLocationReq = sdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName,
83 locationArtifactLabel, locationArtifactType);
84 if (formattedSdcLocationReq != null) {
85 execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes());
87 sdcCatalogServices.uploadToSdc(prop, userid, sdcReqUrlsList, formattedSdcReq, formattedSdcLocationReq,
88 artifactName, locationArtifactName);
93 * 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");