Sonar Fix- AnsibleServerEmulator.java
[appc.git] / appc-adapters / appc-ansible-adapter / appc-ansible-adapter-bundle / src / main / java / org / onap / appc / adapter / ansible / model / AnsibleServerEmulator.java
index 7b7d955..ccba34a 100644 (file)
  * ============LICENSE_START=======================================================
  * ONAP : APPC
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * 
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ *
  * ============LICENSE_END=========================================================
  */
 
 
 
-
-/* Class to emulate responses  from the Ansible Server that is compliant with the APP-C Ansible Server
  Interface. Used for jUnit tests to verify code is working. In tests it can be used
  as a replacement for methods from ConnectionBuilder class
-*/
+/*
+ * Class to emulate responses from the Ansible Server that is compliant with the APP-C Ansible Server
* Interface. Used for jUnit tests to verify code is working. In tests it can be used
* as a replacement for methods from ConnectionBuilder class
+ */
 
 package org.onap.appc.adapter.ansible.model;
 
-import java.util.*;
-import java.util.regex.Pattern;
 import java.util.regex.Matcher;
-
-import org.json.JSONObject;
+import java.util.regex.Pattern;
+import org.apache.commons.lang.StringUtils;
 import org.json.JSONException;
-import org.onap.appc.adapter.ansible.model.AnsibleResult;
+import org.json.JSONObject;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
 
 public class AnsibleServerEmulator {
 
-    
+    private final EELFLogger logger = EELFManager.getInstance().getLogger(AnsibleServerEmulator.class);
+
+    private static final String PLAYBOOK_NAME = "PlaybookName";
+    private static final String STATUS_CODE = "StatusCode";
+    private static final String STATUS_MESSAGE = "StatusMessage";
+
     private String playbookName = "test_playbook.yaml";
-    private String TestId;
 
     /**
      * Method that emulates the response from an Ansible Server
-     when presented with a request to execute a playbook 
-     Returns an ansible object result. The response code is always the http code 200 (i.e connection successful)
-     payload is json string as would be sent back by Ansible Server
-    **/
-    
-    public AnsibleResult Post(String AgentUrl, String payload){
-       AnsibleResult result = new AnsibleResult() ;
-       
-       try{
-           // Request must be a JSON object
-           
-           JSONObject message = new JSONObject(payload);
-           if (message.isNull("Id")){
-               RejectRequest(result, "Must provide a valid Id");
-           }
-           else if(message.isNull("PlaybookName")){
-               RejectRequest(result, "Must provide a playbook Name");
-           }
-           else if(!message.getString("PlaybookName").equals(playbookName)){
-               RejectRequest(result, "Playbook " + message.getString("PlaybookName") + "  not found in catalog");
-           }
-           else{
-               AcceptRequest(result);
-           }
-       }
-       catch (JSONException e){
-           RejectRequest(result, e.getMessage());
-       }
-
-       return result;
+     * when presented with a request to execute a playbook
+     * Returns an ansible object result. The response code is always the http code 200 (i.e connection successful)
+     * payload is json string as would be sent back by Ansible Server
+     **/
+    public AnsibleResult post(String agentUrl, String payload) {
+        AnsibleResult result = new AnsibleResult();
+
+        try {
+            // Request must be a JSON object
+
+            JSONObject message = new JSONObject(payload);
+            if (message.isNull("Id")) {
+                rejectRequest(result, "Must provide a valid Id");
+            } else if (message.isNull(PLAYBOOK_NAME)) {
+                rejectRequest(result, "Must provide a playbook Name");
+            } else if (!message.getString(PLAYBOOK_NAME).equals(playbookName)) {
+                rejectRequest(result, "Playbook " + message.getString(PLAYBOOK_NAME) + "  not found in catalog");
+            } else {
+                acceptRequest(result);
+            }
+        } catch (JSONException e) {
+            logger.error("JSONException caught", e);
+            rejectRequest(result, e.getMessage());
+        }
+        return result;
     }
 
+    /**
+     * Method to emulate response from an Ansible
+     * Server when presented with a GET request
+     * Returns an ansibl object result. The response code is always the http code 200 (i.e connection successful)
+     * payload is json string as would be sent back by Ansible Server
+     *
+     **/
+    public AnsibleResult get(String agentUrl) {
 
-    /** Method to emulate response from an Ansible
-       Server when presented with a GET request
-       Returns an ansibl object result. The response code is always the http code 200 (i.e connection successful)
-       payload is json string as would be sent back by Ansible Server
-
-    **/
-    public AnsibleResult Get(String AgentUrl){
+        Pattern pattern = Pattern.compile(".*?\\?Id=(.*?)&Type.*");
+        Matcher matcher = pattern.matcher(agentUrl);
+        String id = StringUtils.EMPTY;
+        String vmAddress = "192.168.1.10";
 
-       // Extract id
-       Pattern pattern = Pattern.compile(".*?\\?Id=(.*?)&Type.*");
-       Matcher matcher = pattern.matcher(AgentUrl);
-       String Id = "";
-       
-       if (matcher.find()){
-           Id = matcher.group(1);
-       }
+        if (matcher.find()) {
+            id = matcher.group(1);
+        }
 
-       AnsibleResult get_result = new AnsibleResult();
+        AnsibleResult getResult = new AnsibleResult();
 
-       JSONObject response = new JSONObject();
-       response.put("StatusCode", 200);
-       response.put("StatusMessage", "FINISHED");
+        JSONObject response = new JSONObject();
+        response.put(STATUS_CODE, 200);
+        response.put(STATUS_MESSAGE, "FINISHED");
 
-       JSONObject results = new JSONObject();
+        JSONObject results = new JSONObject();
 
-       JSONObject vm_results = new JSONObject();
-       vm_results.put("StatusCode", 200);
-       vm_results.put("StatusMessage", "SUCCESS");
-       vm_results.put("Id", Id);
-       results.put("192.168.1.10", vm_results);
-       
+        JSONObject vmResults = new JSONObject();
+        vmResults.put(STATUS_CODE, 200);
+        vmResults.put(STATUS_MESSAGE, "SUCCESS");
+        vmResults.put("Id", id);
+        results.put(vmAddress, vmResults);
 
-       response.put("Results", results);
+        response.put("Results", results);
 
-       get_result.setStatusCode(200);
-       get_result.setStatusMessage(response.toString());
+        getResult.setStatusCode(200);
+        getResult.setStatusMessage(response.toString());
 
-       return get_result;
-       
+        return getResult;
     }
 
-    
-    private void RejectRequest(AnsibleResult result, String Message){
-       result.setStatusCode(200);
-       JSONObject response = new JSONObject();
-       response.put("StatusCode", AnsibleResultCodes.REJECTED.getValue());
-       response.put("StatusMessage", Message);
-       result.setStatusMessage(response.toString());
-       
+    private void rejectRequest(AnsibleResult result, String message) {
+        result.setStatusCode(200);
+        JSONObject response = new JSONObject();
+        response.put(STATUS_CODE, AnsibleResultCodes.REJECTED.getValue());
+        response.put(STATUS_MESSAGE, message);
+        result.setStatusMessage(response.toString());
     }
 
-    private void AcceptRequest(AnsibleResult result){
-       result.setStatusCode(200);
-       JSONObject response = new JSONObject();
-       response.put("StatusCode", AnsibleResultCodes.PENDING.getValue());
-       response.put("StatusMessage", "PENDING");
-       result.setStatusMessage(response.toString());
-
+    private void acceptRequest(AnsibleResult result) {
+        result.setStatusCode(200);
+        JSONObject response = new JSONObject();
+        response.put(STATUS_CODE, AnsibleResultCodes.PENDING.getValue());
+        response.put(STATUS_MESSAGE, "PENDING");
+        result.setStatusMessage(response.toString());
     }
-
-};
-    
+}
\ No newline at end of file