Update db 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 6afa6c8..49a51f3 100644 (file)
 
 package org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.impl;
 
+import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.util.HashMap;
 
 import org.apache.http.client.ClientProtocolException;
@@ -37,7 +40,6 @@ 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;
@@ -59,14 +61,17 @@ 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.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.CbamRetrieveTokenPostStr, adaptorEnv.getGrantType(), adaptorEnv.getClientId(), adaptorEnv.getClientSecret(), adaptorEnv.getCbamUserName(), adaptorEnv.getCbamPassword());
+               String bodyPostStr = String.format(CommonConstants.CbamRetrieveTokenPostStr, adaptorEnv.getClientId(), adaptorEnv.getClientSecret(), adaptorEnv.getCbamUserName(), adaptorEnv.getCbamPassword());
+               
+               logger.debug("CbamMgmrImpl -> retrieveToken, url is " + url);
+               logger.debug("CbamMgmrImpl -> retrieveToken, bodyPostStr is " + bodyPostStr);
                
                String responseStr = httpClientProcessor.process(url, RequestMethod.POST, map, bodyPostStr).getContent();
                
@@ -262,7 +267,7 @@ public class CbamMgmrImpl implements CbamMgmrInf {
                HttpResult httpResult = operateCbamHttpUploadTask(cbamPackageFilePath, httpPath, method);
                String responseStr = httpResult.getContent();
                
-               logger.info("CbamMgmrImpl -> uploadVnfPackage, responseStr is " + responseStr);
+               logger.info("CbamMgmrImpl -> uploadVnfPackage, statusCode is " + httpResult.getStatusCode() + ", cause is " + httpResult.getStatusCause() + ". responseStr is " + responseStr);
                
                int code = httpResult.getStatusCode();
                if(code == 200) {
@@ -273,20 +278,106 @@ public class CbamMgmrImpl implements CbamMgmrInf {
                }
        }
 
-       private HttpResult operateCbamHttpUploadTask(String filePath, String httpPath, RequestMethod method) throws ClientProtocolException, IOException {
+       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;
+               String command =  "curl --insecure -X POST -H \"Authorization: bearer " + token + "\" --form content=@" + filePath + " " + url;
+               StringBuffer respStr = new StringBuffer();
+               try {
+                       logger.info("start to upload file.");
+                       String os = System.getProperty("os.name"); 
+                       String[] cmd = {"cmd", "/C", command};
+                       if(!os.toLowerCase().startsWith("win")){
+                               cmd = new String[]{"/bin/sh"," -c ", command};
+                       }  
+                       Process process = Runtime.getRuntime().exec(cmd);
+             InputStream fis=process.getInputStream();    
+             InputStreamReader isr=new InputStreamReader(fis);    
+             BufferedReader br=new BufferedReader(isr);    
+             String line=null;    
+            while((line = br.readLine())!=null)    
+             {    
+               respStr.append(line);    
+             }    
+                       
+               } catch (Exception e) {
+                       logger.error("operateCbamHttpUploadTask error", e);
+               }
                
-               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);
+//             HashMap<String, String> map = new HashMap<>();
+//             map.put(CommonConstants.AUTHORIZATION, "bearer " + token);
+//             map.put(CommonConstants.CONTENT_TYPE, "multipart/form-data, boundary=---CFSGSSGGSGdssdfsdhd---");
+//             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);
+               
+               HttpResult hResult = new HttpResult();
+               hResult.setContent(respStr.toString());
+               hResult.setStatusCode(200);
+               return hResult;
+               
+//             String charset = "UTF-8";
+//        File uploadFile1 = new File(filePath);
+//        String requestURL = url;
+//        HttpResult result = new HttpResult();
+// 
+//        try {
+//            MultipartUtility multipart = new MultipartUtility(requestURL, charset);
+//             
+//            multipart.addHeaderField("User-Agent", "CodeJava");
+//            multipart.addHeaderField(CommonConstants.AUTHORIZATION, "bearer " + token);
+//             
+//            multipart.addFilePart("fileUpload", uploadFile1);
+// 
+//            List<String> response = multipart.finish();
+//             
+//            result.setContent(Arrays.deepToString(response.toArray(new String[0])));
+//            result.setStatusCode(200);
+//        } catch (Exception ex) {
+//             logger.error("CbamMgmrImpl -> operateCbamHttpUploadTask, error ", ex);
+//            result.setStatusCode(500);
+//        }
+//        
+//        return result;
+       }
+       
+//     public static String postByHttps(String url, String body, Object contentType) {
+//         String result = "";
+//         Protocol https = new Protocol("https", new HTTPSSecureProtocolSocketFactory(), 443);
+//         Protocol.registerProtocol("https", https);
+//         PostMethod post = new PostMethod(url);
+//         HttpClient client = new HttpClient();
+//         try {
+//             post.setRequestHeader("Content-Type", contentType);
+//             post.setRequestBody(body);
+//             client.executeMethod(post);
+//             result = post.getResponseBodyAsString();
+//             Protocol.unregisterProtocol("https");
+//             return result;
+//         } catch (HttpException e) {
+//             e.printStackTrace();
+//         } catch (IOException e) {
+//             e.printStackTrace();
+//         } catch(Exception e) {
+//             e.printStackTrace();
+//         }
+//      
+//         return "error";
+//     }
+
+       public HttpClientProcessorInf getHttpClientProcessor() {
+               return httpClientProcessor;
+       }
+
+       public void setHttpClientProcessor(HttpClientProcessorInf httpClientProcessor) {
+               this.httpClientProcessor = httpClientProcessor;
        }
 }