From 81082e4e3cca0fd92ae6fec17b53e3a9acb25b0b Mon Sep 17 00:00:00 2001 From: Bharat saraswal Date: Wed, 20 Sep 2017 11:38:37 +0530 Subject: Fix Sonar Issue code refactoring and exception handling and redundant code removal Issue-Id: CCSDK-87 Change-Id: I764ff5c990baaf7f03907a4f83815f0417036cc0 Signed-off-by: Bharat saraswal --- .../onap/ecomp/main/cloudify/CloudifyClient.java | 572 ++++++++++----------- 1 file changed, 267 insertions(+), 305 deletions(-) (limited to 'src/main/org/onap/ecomp/main/cloudify/CloudifyClient.java') diff --git a/src/main/org/onap/ecomp/main/cloudify/CloudifyClient.java b/src/main/org/onap/ecomp/main/cloudify/CloudifyClient.java index 78f4008..0a4a4fa 100644 --- a/src/main/org/onap/ecomp/main/cloudify/CloudifyClient.java +++ b/src/main/org/onap/ecomp/main/cloudify/CloudifyClient.java @@ -21,6 +21,8 @@ *******************************************************************************/ package org.onap.ecomp.main.cloudify; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; @@ -29,315 +31,275 @@ import java.net.URL; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; - +import org.apache.commons.codec.binary.Base64; import org.json.JSONException; import org.json.JSONObject; import org.onap.ecomp.main.APIHConfig; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -import org.apache.commons.codec.binary.Base64; - public class CloudifyClient { - private static CloudifyClient client = null; - final static EELFLogger logger = EELFManager.getInstance().getLogger(CloudifyClient.class); - HttpURLConnection connection = null; - - public static CloudifyClient getInstance() { - if (client == null) - return new CloudifyClient(); - else - return client; - } - - public JSONObject doGET(String urlString) { - - URL url; - JSONObject returnObj = null; - try { - urlString = getManagerID() + urlString; - url = new URL(urlString); - connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("GET"); - connection.setDoOutput(true); - connection.setConnectTimeout(10000); - connection.setReadTimeout(10000); - connection.setRequestProperty("Authorization", getAuthString()); - - BufferedReader in = new BufferedReader(new InputStreamReader( - connection.getInputStream())); - StringBuilder check = new StringBuilder(); - String inputLine; - - while ((inputLine = in.readLine()) != null) - check.append(inputLine); - - // get the Response code from the HTTP - int responseCode = connection.getResponseCode(); - - returnObj = new JSONObject(); - returnObj.put("responseMsg",check.toString()); - returnObj.put("responseCode", responseCode); - returnObj.put("timestamp", getCurrentDataAndTime()); - return returnObj; - - } catch (Exception e) { - logger.error("Exception found : " + e.getLocalizedMessage()); - returnObj = new JSONObject(); - String responseMsg = ""; - int responseCode; - try { - responseMsg = connection.getResponseMessage(); - JSONObject errorSteam = getErrorSteam(); - if (errorSteam != null) - responseMsg = errorSteam.optString("message"); - responseCode = connection.getResponseCode(); - returnObj.put("responseMsg", responseMsg); - returnObj.put("responseCode", responseCode); - } catch (Exception e1) { - responseMsg = "Some Exception while retreiving the response"; - responseCode = 500; - } - return returnObj; - }finally{ - connection.disconnect(); - } - } - - public JSONObject doPOST(String urlString, JSONObject outputJSON) { - URL url; - JSONObject returnObj = null; - try { - urlString = getManagerID() + urlString; - url = new URL(urlString); - connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("POST"); - connection.setDoOutput(true); - connection.setConnectTimeout(10000); - connection.setReadTimeout(10000); - connection.setRequestProperty("Authorization", getAuthString()); - - connection.setRequestProperty("Content-Type", "application/json"); - OutputStreamWriter out = new OutputStreamWriter( - connection.getOutputStream()); - out.write(outputJSON.toString()); - out.close(); - - BufferedReader in = new BufferedReader(new InputStreamReader( - connection.getInputStream())); - StringBuilder check = new StringBuilder(); - String inputLine; - - while ((inputLine = in.readLine()) != null) - check.append(inputLine); - - // get the Response code from the HTTP - int responseCode = connection.getResponseCode(); - - returnObj = new JSONObject(); - returnObj.put("responseMsg",check.toString()); - returnObj.put("responseCode", responseCode); - returnObj.put("timestamp", getCurrentDataAndTime()); - - return returnObj; - - } catch (Exception e) { - logger.error("Exception found : " + e.getLocalizedMessage()); - returnObj = new JSONObject(); - String responseMsg = ""; - int responseCode; - try { - responseMsg = connection.getResponseMessage(); - JSONObject errorSteam = getErrorSteam(); - if (errorSteam != null) - responseMsg = errorSteam.optString("message"); - responseCode = connection.getResponseCode(); - returnObj.put("responseMsg", responseMsg); - returnObj.put("responseCode", responseCode); - } catch (Exception e1) { - responseMsg = "Some Exception while retreiving the response"; - responseCode = 500; - } - return returnObj; - } finally{ - connection.disconnect(); - } - - } - - public JSONObject doPUT(String urlString, JSONObject outputJson) { - - URL url; - JSONObject returnObj = null; - try { - urlString = getManagerID() + urlString; - url = new URL(urlString); - connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("PUT"); - connection.setDoOutput(true); - connection.setConnectTimeout(10000); - connection.setReadTimeout(10000); - connection.setRequestProperty("Authorization", getAuthString()); - - if (outputJson != null) { - connection.setRequestProperty("Content-Type", - "application/json"); - OutputStreamWriter out = new OutputStreamWriter( - connection.getOutputStream()); - out.write(outputJson.toString()); - out.close(); - } - - System.out.println(connection.getResponseMessage()); - BufferedReader in = new BufferedReader(new InputStreamReader( - connection.getInputStream())); - StringBuilder check = new StringBuilder(); - String inputLine; - - while ((inputLine = in.readLine()) != null) - check.append(inputLine); - - // get the Response code from the HTTP - int responseCode = connection.getResponseCode(); - - returnObj = new JSONObject(); - returnObj.put("responseMsg",check.toString()); - returnObj.put("responseCode", responseCode); - returnObj.put("timestamp", getCurrentDataAndTime()); - - return returnObj; - - } catch (Exception e) { - logger.error("Exception found : " + e.getLocalizedMessage()); - returnObj = new JSONObject(); - String responseMsg = ""; - int responseCode; - try { - responseMsg = connection.getResponseMessage(); - JSONObject errorSteam = getErrorSteam(); - if (errorSteam != null) - responseMsg = errorSteam.optString("message"); - responseCode = connection.getResponseCode(); - returnObj.put("responseMsg", responseMsg); - returnObj.put("responseCode", responseCode); - } catch (Exception e1) { - responseMsg = "Some Exception while retreiving the response"; - responseCode = 500; - } - return returnObj; - }finally{ - connection.disconnect(); - } - } - - public JSONObject doDELETE(String urlString) { - URL url; - JSONObject returnObj = null; - try { - urlString = getManagerID() + urlString; - url = new URL(urlString); - connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("DELETE"); - connection.setDoOutput(true); - connection.setConnectTimeout(10000); - connection.setReadTimeout(10000); - connection.setRequestProperty("Authorization", getAuthString()); - - BufferedReader in = new BufferedReader(new InputStreamReader( - connection.getInputStream())); - StringBuilder check = new StringBuilder(); - String inputLine; - - while ((inputLine = in.readLine()) != null) - check.append(inputLine); - - // get the Response code from the HTTP - int responseCode = connection.getResponseCode(); - - returnObj = new JSONObject(); - returnObj.put("responseMsg",check.toString()); - returnObj.put("responseCode", responseCode); - returnObj.put("timestamp", getCurrentDataAndTime()); - - return returnObj; - - } catch (Exception e) { - logger.error("Exception found : " + e.getLocalizedMessage()); - returnObj = new JSONObject(); - String responseMsg = ""; - int responseCode; - try { - responseMsg = connection.getResponseMessage(); - JSONObject errorSteam = getErrorSteam(); - if (errorSteam != null) - responseMsg = errorSteam.optString("message"); - responseCode = connection.getResponseCode(); - returnObj.put("responseMsg", responseMsg); - returnObj.put("responseCode", responseCode); - } catch (Exception e1) { - responseMsg = "Some Exception while retreiving the response"; - responseCode = 500; - } - return returnObj; - }finally{ - connection.disconnect(); - } - } - - private String getCurrentDataAndTime() { - DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); - Date date = new Date(); - return dateFormat.format(date); - } - - private String getManagerID() { - String manager_ip = ""; - String api_version = ""; - manager_ip = APIHConfig.getInstance().getConfigObject().optString("manager_ip"); - api_version = APIHConfig.getInstance().getConfigObject().optString("api_version"); - return "http://" + manager_ip + "/api/" + api_version; - } - - private String getManagerUsername() { - String manager_username = ""; - manager_username = APIHConfig.getInstance().getConfigObject().optString("manager_username"); - return manager_username; - } - - private String getManagerPassword() { - String manager_password = ""; - manager_password = APIHConfig.getInstance().getConfigObject().optString("manager_password"); - return manager_password; - } - - private String getAuthString(){ - String username = getManagerUsername(); - String password = getManagerPassword(); - String authString = username + ":" + password; - byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); - String authStringEnc = new String(authEncBytes); - return "Basic " + authStringEnc; - } - private JSONObject getErrorSteam() { - BufferedReader in = new BufferedReader(new InputStreamReader( - connection.getErrorStream())); - StringBuilder check = new StringBuilder(); - try { - - String inputLine; - while ((inputLine = in.readLine()) != null) - check.append(inputLine); - } catch (Exception ex) { - - } - - try { - return new JSONObject(check.toString()); - } catch (JSONException e) { - return null; - } - } - + private static final String MESSAGE = "message"; + private static final String AUTHORIZATION = "Authorization"; + private static final String RESPONSE_MSG = "responseMsg"; + private static final String RESPONSE_CODE = "responseCode"; + private static final String TIME_STAMP = "timestamp"; + private static final String EXCEPTION_FOUND = "Exception found : "; + private static final String ERROR_RESPONSE_MSG = "Some Exception while retrieving the response "; + private static final int ERROR_RESPONSE_CODE = 500; + + private static CloudifyClient client = null; + private static final EELFLogger logger = EELFManager.getInstance().getLogger(CloudifyClient.class); + private HttpURLConnection connection = null; + + public static CloudifyClient getInstance() { + if (client == null) { + return new CloudifyClient(); + } else { + return client; + } + } + + public JSONObject doGET(String urlString) { + + URL url; + JSONObject returnObj; + try { + url = new URL(getManagerID() + urlString); + connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("GET"); + connection.setDoOutput(true); + connection.setConnectTimeout(10000); + connection.setReadTimeout(10000); + connection.setRequestProperty(AUTHORIZATION, getAuthString()); + + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + StringBuilder check = new StringBuilder(); + String inputLine; + + while ((inputLine = in.readLine()) != null) { + check.append(inputLine); + } + + // get the Response code from the HTTP + int responseCode = connection.getResponseCode(); + + returnObj = new JSONObject(); + returnObj.put(RESPONSE_MSG, check.toString()); + returnObj.put(RESPONSE_CODE, responseCode); + returnObj.put(TIME_STAMP, getCurrentDataAndTime()); + in.close(); + return returnObj; + } catch (Exception e) { + logger.error(EXCEPTION_FOUND + e.getLocalizedMessage(), e); + return buildReturnObjectWhenExceptionOccurred(); + } finally { + connection.disconnect(); + } + } + + public JSONObject doPOST(String urlString, JSONObject outputJSON) { + URL url; + JSONObject returnObj; + try { + url = new URL(getManagerID() + urlString); + connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("POST"); + connection.setDoOutput(true); + connection.setConnectTimeout(10000); + connection.setReadTimeout(10000); + connection.setRequestProperty(AUTHORIZATION, getAuthString()); + + connection.setRequestProperty("Content-Type", "application/json"); + OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); + out.write(outputJSON.toString()); + out.close(); + + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + StringBuilder check = new StringBuilder(); + String inputLine; + + while ((inputLine = in.readLine()) != null) { + check.append(inputLine); + } + + // get the Response code from the HTTP + int responseCode = connection.getResponseCode(); + + returnObj = new JSONObject(); + returnObj.put(RESPONSE_MSG, check.toString()); + returnObj.put(RESPONSE_CODE, responseCode); + returnObj.put(TIME_STAMP, getCurrentDataAndTime()); + in.close(); + + return returnObj; + } catch (Exception e) { + logger.error(EXCEPTION_FOUND + e.getLocalizedMessage()); + return buildReturnObjectWhenExceptionOccurred(); + } finally { + connection.disconnect(); + } + } + + public JSONObject doPUT(String urlString, JSONObject outputJson) { + + URL url; + JSONObject returnObj; + try { + url = new URL(getManagerID() + urlString); + connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("PUT"); + connection.setDoOutput(true); + connection.setConnectTimeout(10000); + connection.setReadTimeout(10000); + connection.setRequestProperty(AUTHORIZATION, getAuthString()); + + if (outputJson != null) { + connection.setRequestProperty("Content-Type", + "application/json"); + OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); + out.write(outputJson.toString()); + out.close(); + } + + logger.info(connection.getResponseMessage()); + BufferedReader in = new BufferedReader(new InputStreamReader( + connection.getInputStream())); + StringBuilder check = new StringBuilder(); + String inputLine; + + while ((inputLine = in.readLine()) != null) { + check.append(inputLine); + } + + // get the Response code from the HTTP + int responseCode = connection.getResponseCode(); + + returnObj = new JSONObject(); + returnObj.put(RESPONSE_MSG, check.toString()); + returnObj.put(RESPONSE_CODE, responseCode); + returnObj.put(TIME_STAMP, getCurrentDataAndTime()); + in.close(); + + return returnObj; + } catch (Exception e) { + logger.error(EXCEPTION_FOUND + e.getLocalizedMessage()); + return buildReturnObjectWhenExceptionOccurred(); + } finally { + connection.disconnect(); + } + } + + public JSONObject doDELETE(String urlString) { + URL url; + JSONObject returnObj; + try { + url = new URL(getManagerID() + urlString); + connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("DELETE"); + connection.setDoOutput(true); + connection.setConnectTimeout(10000); + connection.setReadTimeout(10000); + connection.setRequestProperty(AUTHORIZATION, getAuthString()); + + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + StringBuilder check = new StringBuilder(); + String inputLine; + + while ((inputLine = in.readLine()) != null) { + check.append(inputLine); + } + + // get the Response code from the HTTP + int responseCode = connection.getResponseCode(); + + returnObj = new JSONObject(); + returnObj.put(RESPONSE_MSG, check.toString()); + returnObj.put(RESPONSE_CODE, responseCode); + returnObj.put(TIME_STAMP, getCurrentDataAndTime()); + + in.close(); + return returnObj; + } catch (Exception e) { + logger.error(EXCEPTION_FOUND + e.getLocalizedMessage()); + return buildReturnObjectWhenExceptionOccurred(); + } finally { + connection.disconnect(); + } + } + + private JSONObject buildReturnObjectWhenExceptionOccurred() { + JSONObject returnObj = new JSONObject(); + String responseMsg; + int responseCode; + try { + responseMsg = connection.getResponseMessage(); + JSONObject errorSteam = getErrorSteam(); + if (errorSteam != null) { + responseMsg = errorSteam.optString(MESSAGE); + } + responseCode = connection.getResponseCode(); + returnObj.put(RESPONSE_MSG, responseMsg); + returnObj.put(RESPONSE_CODE, responseCode); + } catch (Exception e1) { + responseMsg = ERROR_RESPONSE_MSG; + responseCode = ERROR_RESPONSE_CODE; + logger.error(responseMsg + responseCode, e1); + } + return returnObj; + } + + private String getCurrentDataAndTime() { + DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + Date date = new Date(); + return dateFormat.format(date); + } + + private String getManagerID() { + String managerIp; + String apiVersion; + managerIp = APIHConfig.getInstance().getConfigObject().optString("manager_ip"); + apiVersion = APIHConfig.getInstance().getConfigObject().optString("api_version"); + return "http://" + managerIp + "/api/" + apiVersion; + } + + private String getManagerUsername() { + String managerUsername; + managerUsername = APIHConfig.getInstance().getConfigObject().optString("manager_username"); + return managerUsername; + } + + private String getManagerPassword() { + String managerPassword; + managerPassword = APIHConfig.getInstance().getConfigObject().optString("manager_password"); + return managerPassword; + } + + private String getAuthString() { + String username = getManagerUsername(); + String password = getManagerPassword(); + String authString = username + ":" + password; + byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); + String authStringEnc = new String(authEncBytes); + return "Basic " + authStringEnc; + } + + private JSONObject getErrorSteam() { + StringBuilder check = new StringBuilder(); + try (BufferedReader in = new BufferedReader(new InputStreamReader( + connection.getErrorStream()))) { + + String inputLine; + while ((inputLine = in.readLine()) != null) { + check.append(inputLine); + } + } catch (Exception ex) { + logger.error(ex.getLocalizedMessage(), ex); + } + + try { + return new JSONObject(check.toString()); + } catch (JSONException e) { + return null; + } + } } \ No newline at end of file -- cgit 1.2.3-korg