Modify vnf package extract 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 ee6b011..dc6a618 100644 (file)
@@ -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.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;
@@ -57,16 +59,19 @@ public class CbamMgmrImpl implements CbamMgmrInf {
        @Autowired
        HttpClientProcessorInf httpClientProcessor;
        
-       private String retrieveToken() throws ClientProtocolException, IOException, JSONException {
+       public String retrieveToken() throws ClientProtocolException, IOException, JSONException {
                String result = null;
-               String url= adaptorEnv.getCbamApiUriFront() + CommonConstants.RetrieveCbamTokenPath;
-               HashMap<String, String> map = new HashMap<String, String>();
+               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());
+               String bodyPostStr = String.format(CommonConstants.CbamRetrieveTokenPostStr, adaptorEnv.getClientId(), adaptorEnv.getClientSecret(), adaptorEnv.getCbamUserName(), adaptorEnv.getCbamPassword());
                
-               String responseStr = httpClientProcessor.process(url, RequestMethod.GET, map, bodyPostStr).getContent();
+               logger.debug("CbamMgmrImpl -> retrieveToken, url is " + url);
+               logger.debug("CbamMgmrImpl -> retrieveToken, bodyPostStr is " + bodyPostStr);
+               
+               String responseStr = httpClientProcessor.process(url, RequestMethod.POST, map, bodyPostStr).getContent();
                
                logger.info("CbamMgmrImpl -> retrieveToken, responseStr is " + responseStr);
                
@@ -81,10 +86,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;
@@ -97,10 +108,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;
@@ -110,10 +127,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;
@@ -122,18 +145,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;
@@ -143,10 +177,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;
@@ -156,16 +196,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,23 +222,32 @@ public class CbamMgmrImpl implements CbamMgmrInf {
        
                String url= adaptorEnv.getCbamApiUriFront() + httpPath;
                
-               HashMap<String, String> map = new HashMap<String, String>();
+               HashMap<String, String> map = new HashMap<>();
                map.put(CommonConstants.AUTHORIZATION, "bearer " + token);
                map.put(CommonConstants.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
                
-               String responseStr = httpClientProcessor.process(url, method, map, gson.toJson(httpBodyObj)).getContent();
-               
-               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;
@@ -200,5 +256,52 @@ public class CbamMgmrImpl implements CbamMgmrInf {
        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, statusCode is " + httpResult.getStatusCode() + ", cause is " + httpResult.getStatusCause() + ". 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" );
+               }
+       }
+
+       public 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);
+               logger.info("CbamMgmrImpl -> operateCbamHttpUploadTask, url is " + url);
+               logger.info("CbamMgmrImpl -> operateCbamHttpUploadTask, token is " + token);
+               logger.info("CbamMgmrImpl -> operateCbamHttpUploadTask, bodyPostStr byte lenth is " + fileBytes.length);
+               
+               return httpClientProcessor.processBytes(url, method, map, fileBytes);
+       }
+
+       public HttpClientProcessorInf getHttpClientProcessor() {
+               return httpClientProcessor;
+       }
+
+       public void setHttpClientProcessor(HttpClientProcessorInf httpClientProcessor) {
+               this.httpClientProcessor = httpClientProcessor;
+       }
 }