Add api /query multicloud proxy 04/121604/6
authorGrzegorz Wielgosinski <g.wielgosins@samsung.com>
Tue, 1 Jun 2021 07:22:54 +0000 (09:22 +0200)
committerGrzegorz Wielgosinski <g.wielgosins@samsung.com>
Thu, 1 Jul 2021 11:57:08 +0000 (13:57 +0200)
Issue-ID: SO-3644

Signed-off-by: Grzegorz Wielgosinski <g.wielgosins@samsung.com>
Change-Id: Ic112686748f7436ac65ae188d14b9ab74efb9202

so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java
so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/rest/CnfAdapterRestTest.java

index e3431ef..430a5e5 100644 (file)
@@ -115,6 +115,15 @@ public class CnfAdapterRest {
 
     }
 
+    @ResponseBody
+    @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instanceId}/query"}, method = RequestMethod.GET,
+            produces = "application/json")
+    public String getInstanceQueryByInstanceId(@PathVariable("instanceId") String instanceId) {
+        logger.info("getInstanceQueryByInstanceId called.");
+
+        return cnfAdapterService.getInstanceQueryByInstanceId(instanceId);
+    }
+
     @RequestMapping(value = {"/api/cnf-adapter/v1/instance"}, method = RequestMethod.GET, produces = "application/json")
     public String getInstanceByRBNameOrRBVersionOrProfileName(
             @RequestParam(value = "rb-name", required = false) String rbName,
index d1314dd..bfb84c3 100644 (file)
@@ -72,7 +72,7 @@ public class CnfAdapterService {
             }
             throw e;
         } catch (HttpStatusCodeException e) {
-            logger.error("Error in Multicloud, e");
+            logger.error("Error in Multicloud", e);
             throw e;
         }
     }
@@ -115,7 +115,7 @@ public class CnfAdapterService {
             }
             throw e;
         } catch (HttpStatusCodeException e) {
-            logger.error("Error in Multicloud, e");
+            logger.error("Error in Multicloud", e);
             throw e;
         }
     }
@@ -143,7 +143,7 @@ public class CnfAdapterService {
             }
             throw e;
         } catch (HttpStatusCodeException e) {
-            logger.error("Error in Multicloud, e");
+            logger.error("Error in Multicloud", e);
             throw e;
         }
     }
@@ -171,12 +171,30 @@ public class CnfAdapterService {
             }
             throw e;
         } catch (HttpStatusCodeException e) {
-            logger.error("Error in Multicloud, e");
+            logger.error("Error in Multicloud", e);
             throw e;
         }
 
     }
 
+    public String getInstanceQueryByInstanceId(String instanceId) {
+        logger.info("CnfAdapterService getInstanceQueryByInstanceId called");
+        ResponseEntity<String> instanceResponse = null;
+        try {
+            String uri = "http://multicloud-k8s:9015";
+            String path = "/v1/instance/" + instanceId + "/query";
+            String endpoint = UriBuilder.fromUri(uri).path(path).build().toString();
+            HttpEntity<?> requestEntity = new HttpEntity<>(getHttpHeaders());
+            instanceResponse = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class);
+            return instanceResponse.getBody();
+        } catch (HttpClientErrorException e) {
+            if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+                throw new EntityNotFoundException(e.getResponseBodyAsString());
+            }
+            throw e;
+        }
+    }
+
     public String getInstanceByRBNameOrRBVersionOrProfileName(String rbName, String rbVersion, String profileName)
             throws JsonParseException, JsonMappingException, IOException {
 
@@ -201,7 +219,7 @@ public class CnfAdapterService {
             }
             throw e;
         } catch (HttpStatusCodeException e) {
-            logger.error("Error in Multicloud, e");
+            logger.error("Error in Multicloud", e);
             throw e;
         }
     }
@@ -229,7 +247,7 @@ public class CnfAdapterService {
             }
             throw e;
         } catch (HttpStatusCodeException e) {
-            logger.error("Error in Multicloud, e");
+            logger.error("Error in Multicloud", e);
             throw e;
         }
     }
index a04d236..cfd6ba1 100644 (file)
@@ -31,13 +31,13 @@ import org.onap.so.adapters.cnf.service.CnfAdapterService;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.test.util.ReflectionTestUtils;
 import org.springframework.web.multipart.MultipartFile;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import static org.junit.Assert.assertEquals;
+import static org.assertj.core.api.Java6Assertions.assertThat;
 
 
 @RunWith(SpringRunner.class)
@@ -134,6 +134,17 @@ public class CnfAdapterRestTest {
         assertEquals(HttpStatus.OK, instanceStatusResponse.getStatusCode());
     }
 
+    @Test
+    public void getInstanceQueryByInstanceIdTest() {
+        String instanceId = "123";
+        String queryResponseMock = "queryResponseMock";
+
+        Mockito.when(cnfAdapterService.getInstanceQueryByInstanceId(instanceId)).thenReturn(queryResponseMock);
+
+        String result = cnfAdapterRest.getInstanceQueryByInstanceId(instanceId);
+        assertThat(result).isEqualTo(queryResponseMock);
+    }
+
     @Test
     public void getInstanceByRBNameOrRBVersionOrProfileNameTest() throws Exception {
 
@@ -560,3 +571,4 @@ public class CnfAdapterRestTest {
 }
 
 
+