Update vnf package process part
[vfc/nfvo/driver/vnfm/svnfm.git] / nokia / vnfmdriver / vfcadaptorservice / vfcadaptor / src / main / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / cbam / impl / CbamMgmrImpl.java
index 1e2cecf..6afa6c8 100644 (file)
@@ -17,9 +17,9 @@
 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.log4j.Logger;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -37,8 +37,10 @@ import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMTerminateVnfRequest;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMTerminateVnfResponse;
 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.common.util.CommonUtil;
 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;
@@ -55,19 +57,18 @@ public class CbamMgmrImpl implements CbamMgmrInf {
        private AdaptorEnv adaptorEnv;
        
        @Autowired
-       private HttpClientBuilder httpClientBuilder;// = HttpClientUtils.createHttpClientBuilder();
+       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);
+               String url= adaptorEnv.getCbamApiUriFront() + CommonConstants.CbamRetrieveTokenPath;
+               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 bodyPostStr = String.format(CommonConstants.CbamRetrieveTokenPostStr, adaptorEnv.getGrantType(), adaptorEnv.getClientId(), adaptorEnv.getClientSecret(), adaptorEnv.getCbamUserName(), adaptorEnv.getCbamPassword());
                
-               String responseStr = processor.process(url);
+               String responseStr = httpClientProcessor.process(url, RequestMethod.POST, map, bodyPostStr).getContent();
                
                logger.info("CbamMgmrImpl -> retrieveToken, responseStr is " + responseStr);
                
@@ -82,10 +83,16 @@ public class CbamMgmrImpl implements CbamMgmrInf {
                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;
@@ -98,10 +105,16 @@ public class CbamMgmrImpl implements CbamMgmrInf {
                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;
@@ -111,10 +124,16 @@ public class CbamMgmrImpl implements CbamMgmrInf {
                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;
@@ -123,18 +142,29 @@ public class CbamMgmrImpl implements CbamMgmrInf {
        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;
@@ -144,10 +174,16 @@ public class CbamMgmrImpl implements CbamMgmrInf {
                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;
@@ -157,16 +193,23 @@ public class CbamMgmrImpl implements CbamMgmrInf {
                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();
@@ -175,28 +218,75 @@ public class CbamMgmrImpl implements CbamMgmrInf {
                }
        
                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));
                
-               String responseStr = processor.process(url);
+               HashMap<String, String> map = new HashMap<>();
+               map.put(CommonConstants.AUTHORIZATION, "bearer " + token);
+               map.put(CommonConstants.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
                
-               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;
+       }
+
+       @Override
+       public void uploadVnfPackage(String cbamPackageFilePath) throws ClientProtocolException, IOException {
+               String httpPath = CommonConstants.CbamUploadVnfPackagePath;
+               RequestMethod method = RequestMethod.POST;
+               
+               HttpResult httpResult = operateCbamHttpUploadTask(cbamPackageFilePath, httpPath, method);
+               String responseStr = httpResult.getContent();
+               
+               logger.info("CbamMgmrImpl -> uploadVnfPackage, responseStr is " + responseStr);
+               
+               int code = httpResult.getStatusCode();
+               if(code == 200) {
+                       logger.info("CbamMgmrImpl -> uploadVnfPackage, success" );
+                       logger.info("Upload vnf package " + cbamPackageFilePath + " to CBAM is successful.");
+               }else {
+                       logger.error("CbamMgmrImpl -> uploadVnfPackage, error" );
+               }
+       }
+
+       private HttpResult operateCbamHttpUploadTask(String filePath, String httpPath, RequestMethod method) throws ClientProtocolException, IOException {
+               String token = null;
+               try {
+                       token = retrieveToken();
+               } catch (JSONException e) {
+                       logger.error("retrieveTokenError ", e);
+               }
        
+               String url = adaptorEnv.getCbamApiUriFront() + httpPath;
+               
+               HashMap<String, String> map = new HashMap<>();
+               map.put(CommonConstants.AUTHORIZATION, "bearer " + token);
+               map.put(CommonConstants.CONTENT_TYPE, "multipart/form-data, boundary=--fsgdsfgjgjdsgdfjgjgj");
+               byte[] fileBytes = CommonUtil.getBytes(filePath);
+               return httpClientProcessor.processBytes(url, method, map, fileBytes);
+       }
 }