Enable log level management via actuator, /cps/api path to use for REST controllers... 35/117035/6
authorRuslan Kashapov <ruslan.kashapov@pantheon.tech>
Thu, 21 Jan 2021 07:37:05 +0000 (09:37 +0200)
committerRuslan Kashapov <ruslan.kashapov@pantheon.tech>
Thu, 21 Jan 2021 15:46:11 +0000 (17:46 +0200)
Issue-ID: CPS-158
Change-Id: I1f9ff4429f331ca4204d1acaf73ac896a68994d0
Signed-off-by: Ruslan Kashapov <ruslan.kashapov@pantheon.tech>
README.md
cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java
cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java
cps-rest/src/main/resources/application.yml
cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy

index d5f0c66..8282d30 100644 (file)
--- a/README.md
+++ b/README.md
@@ -29,5 +29,5 @@ java -DDB_HOST=localhost -DDB_USERNAME=cps -DDB_PASSWORD=cps -jar cps-rest/targe
 ```
 
 * Browse
-  * [Swagger UI](http://localhost:8080/api/cps/swagger-ui/index.html)
-  * [Api Documentation](http://localhost:8080/api/cps/v3/api-docs)
+  * [Swagger UI](http://localhost:8080/swagger-ui/index.html)
+  * [Api Documentation](http://localhost:8080/v3/api-docs)
index 08020ec..1b6f56a 100644 (file)
@@ -33,10 +33,12 @@ import org.onap.cps.spi.model.SchemaSet;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 @RestController
+@RequestMapping("${rest.api.base-path}")
 public class AdminRestController implements CpsAdminApi {
 
     @Autowired
index fcb8ddc..2ecbd4f 100644 (file)
@@ -25,10 +25,12 @@ import org.onap.cps.api.CpsAdminService;
 import org.onap.cps.rest.api.CpsDataApi;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 @RestController
+@RequestMapping("${rest.api.base-path}")
 public class DataRestController implements CpsDataApi {
 
     @Autowired
index e8af0bc..b50a926 100644 (file)
@@ -1,7 +1,9 @@
 server:\r
     port: 8080\r
-    servlet:\r
-        context-path: /api/cps\r
+\r
+rest:\r
+    api:\r
+        base-path: /cps/api\r
 \r
 spring:\r
     main:\r
@@ -27,12 +29,16 @@ management:
     endpoints:\r
         web:\r
             base-path: /manage\r
+            exposure:\r
+                include: health,info,loggers\r
     endpoint:\r
         health:\r
             show-details: always\r
             # kubernetes probes: liveness and readiness\r
             probes:\r
                 enabled: true\r
+        looging:\r
+            enabled: true\r
 \r
 logging:\r
     level:\r
index a95d606..2d4fe9b 100644 (file)
@@ -29,6 +29,7 @@ import org.onap.cps.spi.model.Anchor
 import org.onap.cps.spi.model.SchemaSet
 import org.spockframework.spring.SpringBean
 import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.beans.factory.annotation.Value
 import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
 import org.springframework.http.HttpStatus
 import org.springframework.http.MediaType
@@ -59,6 +60,9 @@ class AdminRestControllerSpec extends Specification {
     @Autowired
     MockMvc mvc
 
+    @Value('${rest.api.base-path}')
+    def basePath
+
     def anchorsEndpoint = '/v1/dataspaces/my_dataspace/anchors'
     def schemaSetsEndpoint = '/v1/dataspaces/test-dataspace/schema-sets'
     def schemaSetEndpoint = schemaSetsEndpoint + '/my_schema_set'
@@ -130,7 +134,7 @@ class AdminRestControllerSpec extends Specification {
 
     def performCreateDataspaceRequest(String dataspaceName) {
         return mvc.perform(
-                post('/v1/dataspaces').param('dataspace-name', dataspaceName)
+                post("$basePath/v1/dataspaces").param('dataspace-name', dataspaceName)
         ).andReturn().response
     }
 
@@ -140,14 +144,14 @@ class AdminRestControllerSpec extends Specification {
 
     def performCreateSchemaSetRequest(multipartFile) {
         return mvc.perform(
-                multipart(schemaSetsEndpoint)
+                multipart("$basePath$schemaSetsEndpoint")
                         .file(multipartFile)
                         .param('schema-set-name', 'test-schema-set')
         ).andReturn().response
     }
 
-    def performDeleteRequest(String uri) {
-        return mvc.perform(delete(uri)).andReturn().response
+    def performDeleteRequest(String deleteEndpoint) {
+        return mvc.perform(delete("$basePath$deleteEndpoint")).andReturn().response
     }
 
     def 'Get existing schema set'() {
@@ -155,7 +159,7 @@ class AdminRestControllerSpec extends Specification {
             mockCpsModuleService.getSchemaSet('test-dataspace', 'my_schema_set') >>
                     new SchemaSet(name: 'my_schema_set', dataspaceName: 'test-dataspace')
         when: 'get schema set API is invoked'
-            def response = mvc.perform(get(schemaSetEndpoint)).andReturn().response
+            def response = mvc.perform(get("$basePath$schemaSetEndpoint")).andReturn().response
         then: 'the correct schema set is returned'
             response.status == HttpStatus.OK.value()
             response.getContentAsString().contains('my_schema_set')
@@ -167,7 +171,7 @@ class AdminRestControllerSpec extends Specification {
             requestParams.add('schema-set-name', 'my_schema-set')
             requestParams.add('anchor-name', 'my_anchor')
         when: 'post is invoked'
-            def response = mvc.perform(post(anchorsEndpoint).contentType(MediaType.APPLICATION_JSON)
+            def response = mvc.perform(post("$basePath$anchorsEndpoint").contentType(MediaType.APPLICATION_JSON)
                     .params(requestParams as MultiValueMap)).andReturn().response
         then: 'Anchor is created successfully'
             1 * mockCpsAdminService.createAnchor('my_dataspace', 'my_schema-set', 'my_anchor')
@@ -179,7 +183,7 @@ class AdminRestControllerSpec extends Specification {
         given:
             mockCpsAdminService.getAnchors('my_dataspace') >> anchorList
         when: 'get all anchors API is invoked'
-            def response = mvc.perform(get(anchorsEndpoint)).andReturn().response
+            def response = mvc.perform(get("$basePath$anchorsEndpoint")).andReturn().response
         then: 'the correct anchor is returned'
             response.status == HttpStatus.OK.value()
             response.getContentAsString().contains('my_anchor')
index d372d3c..edc484b 100644 (file)
@@ -33,6 +33,7 @@ import org.onap.cps.spi.exceptions.SchemaSetAlreadyDefinedException
 import org.onap.cps.spi.exceptions.SchemaSetInUseException
 import org.spockframework.spring.SpringBean
 import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.beans.factory.annotation.Value
 import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
 import org.springframework.test.web.servlet.MockMvc
 import spock.lang.Shared
@@ -60,6 +61,9 @@ class CpsRestExceptionHandlerSpec extends Specification {
     @Autowired
     MockMvc mvc
 
+    @Value('${rest.api.base-path}')
+    def basePath
+
     @Shared
     def errorMessage = 'some error message'
     @Shared
@@ -161,7 +165,7 @@ class CpsRestExceptionHandlerSpec extends Specification {
     }
 
     def performTestRequest() {
-        return mvc.perform(get('/v1/dataspaces/dataspace-name/anchors')).andReturn().response
+        return mvc.perform(get("$basePath/v1/dataspaces/dataspace-name/anchors")).andReturn().response
     }
 
     void assertTestResponse(response, expectedStatus,