package org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.impl;
import java.io.IOException;
+import java.util.HashMap;
import org.apache.http.client.ClientProtocolException;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.log4j.Logger;
import org.json.JSONException;
import org.json.JSONObject;
import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMCreateVnfRequest;
import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.inf.CbamMgmrInf;
import org.onap.vfc.nfvo.driver.vnfm.svnfm.common.bo.AdaptorEnv;
import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonConstants;
-import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpRequestProcessor;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpClientProcessorInf;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
@Component
public class CbamMgmrImpl implements CbamMgmrInf {
- private static final Logger logger = LogManager.getLogger("CbamMgmrImpl");
+ private static final Logger logger = Logger.getLogger(CbamMgmrImpl.class);
private Gson gson = new Gson();
@Autowired
private AdaptorEnv adaptorEnv;
@Autowired
- private HttpClientBuilder httpClientBuilder;
+ HttpClientProcessorInf httpClientProcessor;
private String retrieveToken() throws ClientProtocolException, IOException, JSONException {
String result = null;
String url= adaptorEnv.getCbamApiUriFront() + CommonConstants.RetrieveCbamTokenPath;
- HttpRequestProcessor processor = new HttpRequestProcessor(httpClientBuilder, RequestMethod.POST);
- processor.addHdeader(CommonConstants.ACCEPT, "*/*");
- processor.addHdeader(CommonConstants.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE);
+ HashMap<String, String> map = new HashMap<>();
+ map.put(CommonConstants.ACCEPT, "*/*");
+ map.put(CommonConstants.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE);
String bodyPostStr = String.format(CommonConstants.RetrieveCbamTokenPostStr, adaptorEnv.getGrantType(), adaptorEnv.getClientId(), adaptorEnv.getClientSecret());
- processor.addPostEntity(bodyPostStr);
- String responseStr = processor.process(url);
+ String responseStr = httpClientProcessor.process(url, RequestMethod.GET, map, bodyPostStr).getContent();
logger.info("CbamMgmrImpl -> retrieveToken, responseStr is " + responseStr);
String httpPath = CommonConstants.CbamCreateVnfPath;
RequestMethod method = RequestMethod.POST;
- String responseStr = operateCbamHttpTask(cbamRequest, httpPath, method);
+ HttpResult httpResult = operateCbamHttpTask(cbamRequest, httpPath, method);
+ String responseStr = httpResult.getContent();
logger.info("CbamMgmrImpl -> createVnf, responseStr is " + responseStr);
-
+ int code = httpResult.getStatusCode();
+ if(code == 201) {
+ logger.info("CbamMgmrImpl -> createVnf success");
+ }else {
+ logger.error("CbamMgmrImpl -> createVnf error ");
+ }
CBAMCreateVnfResponse response = gson.fromJson(responseStr, CBAMCreateVnfResponse.class);
return response;
String httpPath = String.format(CommonConstants.CbamInstantiateVnfPath, vnfInstanceId);
RequestMethod method = RequestMethod.POST;
- String responseStr = operateCbamHttpTask(cbamRequest, httpPath, method);
+ HttpResult httpResult = operateCbamHttpTask(cbamRequest, httpPath, method);
+ String responseStr = httpResult.getContent();
logger.info("CbamMgmrImpl -> instantiateVnf, responseStr is " + responseStr);
-
+ int code = httpResult.getStatusCode();
+ if(code == 202) {
+ logger.info("CbamMgmrImpl -> instantiateVnf success " );
+ }else {
+ logger.error("CbamMgmrImpl -> instantiateVnf error " );
+ }
CBAMInstantiateVnfResponse response = gson.fromJson(responseStr, CBAMInstantiateVnfResponse.class);
return response;
String httpPath = String.format(CommonConstants.CbamTerminateVnfPath, vnfInstanceId);
RequestMethod method = RequestMethod.POST;
- String responseStr = operateCbamHttpTask(cbamRequest, httpPath, method);
+ HttpResult httpResult = operateCbamHttpTask(cbamRequest, httpPath, method);
+ String responseStr = httpResult.getContent();
logger.info("CbamMgmrImpl -> terminateVnf, responseStr is " + responseStr);
-
+ int code = httpResult.getStatusCode();
+ if(code == 202) {
+ logger.info("CbamMgmrImpl -> terminateVnf sucess " );
+ }else {
+ logger.error("CbamMgmrImpl -> terminateVnf error " );
+ }
CBAMTerminateVnfResponse response = gson.fromJson(responseStr, CBAMTerminateVnfResponse.class);
return response;
public void deleteVnf(String vnfInstanceId) throws ClientProtocolException, IOException {
String httpPath = String.format(CommonConstants.CbamDeleteVnfPath, vnfInstanceId);
RequestMethod method = RequestMethod.DELETE;
+ HttpResult httpResult = operateCbamHttpTask(null, httpPath, method);
- operateCbamHttpTask(null, httpPath, method);
+ int code = httpResult.getStatusCode();
+ if(code == 204) {
+ logger.info("CbamMgmrImpl -> deleteVnf success.");
+ }else {
+ logger.error("CbamMgmrImpl -> deleteVnf error. detail info is " + httpResult.getContent());
+ }
- logger.info("CbamMgmrImpl -> deleteVnf.");
}
public CBAMScaleVnfResponse scaleVnf(CBAMScaleVnfRequest cbamRequest, String vnfInstanceId) throws ClientProtocolException, IOException {
String httpPath = String.format(CommonConstants.CbamScaleVnfPath, vnfInstanceId);
RequestMethod method = RequestMethod.POST;
- String responseStr = operateCbamHttpTask(cbamRequest, httpPath, method);
-
+ HttpResult httpResult = operateCbamHttpTask(cbamRequest, httpPath, method);
+ String responseStr = httpResult.getContent();
+ int code = httpResult.getStatusCode();
+ if(code == 202) {
+ logger.info("CbamMgmrImpl -> scaleVnf success.");
+ }else {
+ logger.error("CbamMgmrImpl -> scaleVnf error. " );
+ }
CBAMScaleVnfResponse response = gson.fromJson(responseStr, CBAMScaleVnfResponse.class);
return response;
String httpPath = String.format(CommonConstants.CbamHealVnfPath, vnfInstanceId);
RequestMethod method = RequestMethod.POST;
- String responseStr = operateCbamHttpTask(cbamRequest, httpPath, method);
+ HttpResult httpResult = operateCbamHttpTask(cbamRequest, httpPath, method);
+ String responseStr = httpResult.getContent();
logger.info("CbamMgmrImpl -> healVnf, responseStr is " + responseStr);
-
+ int code = httpResult.getStatusCode();
+ if(code == 202) {
+ logger.info("CbamMgmrImpl -> healVnf success.");
+ }else {
+ logger.error("CbamMgmrImpl -> healVnf error. " );
+ }
CBAMHealVnfResponse response = gson.fromJson(responseStr, CBAMHealVnfResponse.class);
return response;
String httpPath = String.format(CommonConstants.CbamQueryVnfPath, vnfInstanceId);
RequestMethod method = RequestMethod.GET;
- String responseStr = operateCbamHttpTask(null, httpPath, method);
+ HttpResult httpResult = operateCbamHttpTask(null, httpPath, method);
+ String responseStr = httpResult.getContent();
logger.info("CbamMgmrImpl -> queryVnf, responseStr is " + responseStr);
+ int code = httpResult.getStatusCode();
+ if(code == 200) {
+ logger.info("CbamMgmrImpl -> queryVnf success.");
+ }else {
+ logger.error("CbamMgmrImpl -> queryVnf error. " );
+ }
CBAMQueryVnfResponse response = gson.fromJson(responseStr, CBAMQueryVnfResponse.class);
return response;
}
- public String operateCbamHttpTask(Object httpBodyObj, String httpPath, RequestMethod method) throws ClientProtocolException, IOException {
+ public HttpResult operateCbamHttpTask(Object httpBodyObj, String httpPath, RequestMethod method) throws ClientProtocolException, IOException {
String token = null;
try {
token = retrieveToken();
}
String url= adaptorEnv.getCbamApiUriFront() + httpPath;
- HttpRequestProcessor processor = new HttpRequestProcessor(httpClientBuilder, method);
- processor.addHdeader(CommonConstants.AUTHORIZATION, "bearer " + token);
- processor.addHdeader(CommonConstants.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
- processor.addPostEntity(gson.toJson(httpBodyObj));
+ HashMap<String, String> map = new HashMap<>();
+ map.put(CommonConstants.AUTHORIZATION, "bearer " + token);
+ map.put(CommonConstants.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
- String responseStr = processor.process(url);
-
- return responseStr;
+ return httpClientProcessor.process(url, method, map, gson.toJson(httpBodyObj));
}
public CBAMQueryOperExecutionResponse queryOperExecution(String execId) throws ClientProtocolException, IOException{
String httpPath = String.format(CommonConstants.CbamGetOperStatusPath, execId);
RequestMethod method = RequestMethod.GET;
- String responseStr = operateCbamHttpTask(null, httpPath, method);
+ HttpResult httpResult = operateCbamHttpTask(null, httpPath, method);
+ String responseStr = httpResult.getContent();
logger.info("CbamMgmrImpl -> CBAMQueryOperExecutionResponse, responseStr is " + responseStr);
+ int code = httpResult.getStatusCode();
+ if(code == 200) {
+ logger.info("CbamMgmrImpl -> CBAMQueryOperExecutionResponse, success" );
+ }else if(code == 202) {
+ logger.info("CbamMgmrImpl -> CBAMQueryOperExecutionResponse, ongoing" );
+ }else {
+ logger.error("CbamMgmrImpl -> CBAMQueryOperExecutionResponse, error" );
+ }
+
+
CBAMQueryOperExecutionResponse response = gson.fromJson(responseStr, CBAMQueryOperExecutionResponse.class);
return response;
}
+
+ public void setAdaptorEnv(AdaptorEnv adaptorEnv) {
+ this.adaptorEnv = adaptorEnv;
+ }
}