Add modify vnf feature on driver
[vfc/nfvo/driver/vnfm/svnfm.git] / nokia / vnfmdriver / vfcadaptorservice / vfcadaptor / src / main / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / http / client / HttpRequestProcessor.java
index b2414a5..c553238 100644 (file)
@@ -22,16 +22,21 @@ import java.net.URI;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.HttpPatch;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.entity.ByteArrayEntity;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.util.EntityUtils;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.web.bind.annotation.RequestMethod;
 
 public class HttpRequestProcessor {
+       private static final Logger logger = LoggerFactory.getLogger(HttpRequestProcessor.class);
        private CloseableHttpClient httpClient;
        private HttpRequestBase httpRequest;
        
@@ -41,20 +46,33 @@ public class HttpRequestProcessor {
                httpRequest = HttpClientUtils.getHttpRequest(requestMethod);
        }
        
-       public String process(String url) throws ClientProtocolException, IOException
+       public HttpResult process(String url) throws ClientProtocolException, IOException
        {
                httpRequest.setURI(URI.create(url));
                
                HttpResponse response = httpClient.execute(httpRequest);
+               httpRequest.releaseConnection();
+//             httpClient.close();
+               HttpResult httpResult = buildHttpResult(response);
+               
+               return httpResult;
+       }
+
+       private HttpResult buildHttpResult(HttpResponse response) throws IOException {
                HttpEntity resEntity = response.getEntity();
                String responseContent = "";
                if (resEntity != null) {
                        responseContent = EntityUtils.toString(resEntity, CommonConstants.UTF_8);
                        EntityUtils.consume(resEntity);
                }
-               httpClient.close();
                
-               return responseContent;
+               HttpResult httpResult = new HttpResult();
+               httpResult.setStatusCode(response.getStatusLine().getStatusCode());
+               httpResult.setStatusCause(response.getStatusLine().getReasonPhrase());
+               httpResult.setHeaders(response.getAllHeaders());
+               httpResult.setContent(responseContent);
+               
+               return httpResult;
        }
 
        public void addHdeader(String key, String value) {
@@ -63,7 +81,14 @@ public class HttpRequestProcessor {
        }
 
        public void addPostEntity(String bodyStr) {
-               ((HttpPost)httpRequest).setEntity(new StringEntity(bodyStr, CommonConstants.UTF_8));
-               
+               if(httpRequest instanceof HttpPost) {
+                       ((HttpPost)httpRequest).setEntity(new StringEntity(bodyStr, CommonConstants.UTF_8));
+               } else if(httpRequest instanceof HttpPatch) {
+                       ((HttpPatch)httpRequest).setEntity(new StringEntity(bodyStr, CommonConstants.UTF_8));
+               }
+       }
+       
+       public void addBytesPostEntity(byte[] byteArray) {
+               ((HttpPost)httpRequest).setEntity(new ByteArrayEntity(byteArray));
        }
 }