Pass AC policy content to A1 without parsing 65/765/1
authorLott, Christopher (cl778h) <cl778h@att.com>
Wed, 21 Aug 2019 19:10:08 +0000 (15:10 -0400)
committerLott, Christopher (cl778h) <cl778h@att.com>
Wed, 21 Aug 2019 19:10:08 +0000 (15:10 -0400)
Change-Id: I8213c4c387337c94a8c703f297bc003b4a01ebfc
Signed-off-by: Lott, Christopher (cl778h) <cl778h@att.com>
docs/release-notes.rst
webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AcXappController.java

index 1eb16cb..7ae186c 100644 (file)
@@ -23,7 +23,7 @@ Version 1.2.1, ? Aug 2019
 -------------------------
 * Add EPSDK-FW user management and Portal security
 
-Version 1.2.0, 20 Aug 2019
+Version 1.2.0, 21 Aug 2019
 --------------------------
 * Split URL properties into prefix/suffix parts
 * Add jacoco plugin to back-end for code coverage
@@ -44,6 +44,7 @@ Version 1.2.0, 20 Aug 2019
 * Disable x-frame-options response header
 * Repair app manager undeploy-app method
 * Display AC xAPP metrics data via Kibana source (metrics.url.ac) on dashboard
+* Pass AC policy parameter without parsing as JSON
 
 Version 1.0.5, 5 July 2019
 --------------------------
index 7b97ca0..1054cc8 100644 (file)
@@ -39,8 +39,6 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.fasterxml.jackson.databind.JsonNode;
-
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 
@@ -100,12 +98,14 @@ public class AcXappController {
 
        /*
         * This controller is deliberately kept ignorant of the data expected by AC. The
-        * fields are defined in the ACAdmissionIntervalControl Typescript interface.
+        * fields are defined in the ACAdmissionIntervalControl Typescript interface. AC
+        * uses snake_case keys but Jackson automatically converts to CamelCase on
+        * parse. To avoid this conversion, specify the request parameter as String.
         */
        @ApiOperation(value = "Sets the admission control policy for AC xApp via the A1 Mediator")
        @PutMapping(POLICY_METHOD)
        @Secured({ DashboardConstants.ROLE_ADMIN })
-       public void putAdmissionControlPolicy(@ApiParam(value = "Admission control policy") @RequestBody JsonNode acPolicy, //
+       public void putAdmissionControlPolicy(@ApiParam(value = "Admission control policy") @RequestBody String acPolicy, //
                        HttpServletResponse response) {
                logger.debug("putAdmissionControlPolicy {}", acPolicy);
                a1MediatorApi.a1ControllerPutHandler(AC_CONTROL_NAME, acPolicy);