1 package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask;
3 import okhttp3.RequestBody;
4 import okhttp3.ResponseBody;
5 import org.camunda.bpm.engine.delegate.DelegateExecution;
6 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.NetworkTopologyOperationOutput;
7 import org.opendaylight.yangtools.yang.binding.DataObject;
8 import org.openecomp.mso.bpmn.core.WorkflowException;
9 import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.GenericResourceApi;
10 import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.builder.NetworkTopologyRequestBodyBuilder;
11 import org.openecomp.mso.requestsdb.RequestsDbConstant;
12 import org.openecomp.mso.yangDecoder.transform.api.ITransformJava2StringService;
13 import org.openecomp.mso.yangDecoder.transform.impl.TransfromJava2StringFactory;
18 * Created by 10112215 on 2017/9/20.
20 public class SdncVlOperationTaskYangToolsImpl extends AbstractSdncVlOperationTask {
22 public void sendRestrequestAndHandleResponse(DelegateExecution execution,
23 Map<String, String> inputs,
24 GenericResourceApi genericResourceApiClient) throws Exception {
25 updateProgress(execution, null, null, "40", "sendRestrequestAndHandleResponse begin!");
26 NetworkTopologyRequestBodyBuilder builder = new NetworkTopologyRequestBodyBuilder();
27 RequestBody body = builder.build(inputs);
28 updateProgress(execution, null, null, "50", "RequestBody build finished!");
29 ResponseBody responseBody = genericResourceApiClient.postNetworkTopologyPeration(body).execute().body();
30 updateProgress(execution, null, null, "90", "sendRestrequestAndHandleResponse finished!");
31 saveResponse(execution, responseBody);
34 private void saveResponse(DelegateExecution execution, ResponseBody responseBody) throws Exception {
35 ITransformJava2StringService java2jsonService = TransfromJava2StringFactory.getJava2jsonService();
36 NetworkTopologyOperationOutput output = (NetworkTopologyOperationOutput) java2jsonService.
37 transformRpcDataObjectFromString(NetworkTopologyRequestBodyBuilder.URI_PATH, responseBody.string());
38 String responseCode = output.getResponseCode();
39 if (!responseCode.equals("200")) {
40 String processKey = getProcessKey(execution);
41 int errorCode = Integer.valueOf(responseCode);
42 String errorMessage = output.getResponseMessage();
43 WorkflowException workflowException = new WorkflowException(processKey, errorCode, errorMessage);
44 execution.setVariable("SDNCA_SuccessIndicator", workflowException);
45 updateProgress(execution, RequestsDbConstant.Status.ERROR, String.valueOf(errorCode), null, errorMessage);
46 throw new Exception("");