0665a257aa82f3b983ada9fe9d6959b5b83ba096
[so.git] /
1 package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask;
2
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;
14
15 import java.util.Map;
16
17 /**
18  * Created by 10112215 on 2017/9/20.
19  */
20 public class SdncVlOperationTaskYangToolsImpl extends AbstractSdncVlOperationTask {
21
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);
32     }
33
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("");
47         }
48     }
49 }