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 String formattedSdcReq = SdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
74 if (formattedSdcReq != null) {
75 execution.setVariable("formattedArtifactReq", formattedSdcReq.getBytes());
77 List<String> sdcReqUrlsList = SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution);
79 String sdcLocationsPayload = SdcReq.formatSdcLocationsReq(prop, artifactName);
80 String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json";
81 String formattedSdcLocationReq = SdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName,
82 locationArtifactLabel, locationArtifactType);
83 if (formattedSdcLocationReq != null) {
84 execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes());
86 sdcCatalogServices.uploadToSdc(prop, userid, sdcReqUrlsList, formattedSdcReq, formattedSdcLocationReq,
87 artifactName, locationArtifactName);
91 * Method to get sdc service values from properties file.
94 private void getSdcAttributes(String controlName) {
95 baseUrl = refProp.getStringValue("sdc.serviceUrl");
96 artifactLabel = SdcReq
97 .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName);
98 locationArtifactLabel = SdcReq
99 .normalizeResourceInstanceName(refProp.getStringValue("sdc.locationArtifactLabel") + "-" + controlName);
100 artifactType = refProp.getStringValue("sdc.artifactType");
101 locationArtifactType = refProp.getStringValue("sdc.locationArtifactType");