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;
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;
@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();
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) {
}
}
- 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;
}
}