From: Lott, Christopher (cl778h) Date: Fri, 16 Aug 2019 19:05:26 +0000 (-0400) Subject: Synch front-end and back-end method paths for AC X-Git-Tag: R2~39 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=544be71b3471028c9d7d2143e51235da54980d04;p=portal%2Fric-dashboard.git Synch front-end and back-end method paths for AC Get/Put use the same method name. The front-end was calling method "catime", which never existed. Change-Id: I72ee2fe14c2f91dffaead7cc7bd7b96fbd4b8db0 Signed-off-by: Lott, Christopher (cl778h) --- diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 07e420df..90e1b732 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -23,7 +23,7 @@ Version 1.2.1, ? Aug 2019 ------------------------- * Add EPSDK-FW user management and Portal security -Version 1.2.0, 15 Aug 2019 +Version 1.2.0, 16 Aug 2019 -------------------------- * Split URL properties into prefix/suffix parts * Add jacoco plugin to back-end for code coverage @@ -39,6 +39,7 @@ Version 1.2.0, 15 Aug 2019 * Extend E2 mock configuration for demo purposes * Add pattern for matching AC/admin application name * Add custom (plain but not white-label) error page +* Synch A1 method paths in front-end and back-end Version 1.0.5, 5 July 2019 -------------------------- diff --git a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AcXappController.java b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AcXappController.java index 570bd418..8868d2b7 100644 --- a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AcXappController.java +++ b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AcXappController.java @@ -59,9 +59,9 @@ public class AcXappController { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); // Publish paths in constants so tests are easy to write - public static final String CONTROLLER_PATH = DashboardConstants.ENDPOINT_PREFIX + "/xapp/ac"; + public static final String CONTROLLER_PATH = DashboardConstants.ENDPOINT_PREFIX + "/xapp/admctrl"; // Endpoints - public static final String ADMCTRL_METHOD = "/admctrl"; + public static final String POLICY_METHOD = "policy"; public static final String VERSION_METHOD = DashboardConstants.VERSION_METHOD; // A "control" is an element in the XApp descriptor @@ -89,7 +89,7 @@ public class AcXappController { * GET policy is not supported at present by A1 Mediator! Always returns 501. */ @ApiOperation(value = "Gets the admission control policy for AC xApp via the A1 Mediator") - @GetMapping(ADMCTRL_METHOD) + @GetMapping(POLICY_METHOD) @Secured({ DashboardConstants.ROLE_ADMIN, DashboardConstants.ROLE_STANDARD }) public Object getAdmissionControlPolicy(HttpServletResponse response) { logger.debug("getAdmissionControlPolicy"); @@ -102,11 +102,11 @@ public class AcXappController { * fields are defined in the ACAdmissionIntervalControl Typescript interface. */ @ApiOperation(value = "Sets the admission control policy for AC xApp via the A1 Mediator") - @PutMapping(ADMCTRL_METHOD) + @PutMapping(POLICY_METHOD) @Secured({ DashboardConstants.ROLE_ADMIN }) - public void setAdmissionControlPolicy(@ApiParam(value = "Admission control policy") @RequestBody JsonNode acPolicy, // + public void putAdmissionControlPolicy(@ApiParam(value = "Admission control policy") @RequestBody JsonNode acPolicy, // HttpServletResponse response) { - logger.debug("setAdmissionControlPolicy {}", acPolicy); + logger.debug("putAdmissionControlPolicy {}", acPolicy); a1MediatorApi.a1ControllerPutHandler(AC_CONTROL_NAME, acPolicy); response.setStatus(a1MediatorApi.getApiClient().getStatusCode().value()); } diff --git a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/AcXappControllerTest.java b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/AcXappControllerTest.java index 8f8292f1..7de3bcdd 100644 --- a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/AcXappControllerTest.java +++ b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/AcXappControllerTest.java @@ -50,7 +50,7 @@ public class AcXappControllerTest extends AbstractControllerTest { @Test public void getTest() throws IOException { // Always returns 501; surprised that no exception is thrown. - URI uri = buildUri(null, AcXappController.CONTROLLER_PATH, AcXappController.ADMCTRL_METHOD); + URI uri = buildUri(null, AcXappController.CONTROLLER_PATH, AcXappController.POLICY_METHOD); logger.info("Invoking {}", uri); ResponseEntity response = testRestTemplateStandardRole().exchange(uri, HttpMethod.GET, null, String.class); @@ -61,7 +61,7 @@ public class AcXappControllerTest extends AbstractControllerTest { public void putTest() throws IOException { ObjectMapper mapper = new ObjectMapper(); JsonNode body = mapper.readTree("{ \"policy\" : true }"); - URI uri = buildUri(null, AcXappController.CONTROLLER_PATH, AcXappController.ADMCTRL_METHOD); + URI uri = buildUri(null, AcXappController.CONTROLLER_PATH, AcXappController.POLICY_METHOD); HttpEntity entity = new HttpEntity<>(body); logger.info("Invoking {}", uri); ResponseEntity voidResponse = testRestTemplateAdminRole().exchange(uri, HttpMethod.PUT, entity, diff --git a/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.ts b/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.ts index 907c3258..19e5fc94 100644 --- a/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.ts +++ b/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.ts @@ -33,7 +33,8 @@ import { DashboardSuccessTransport } from '../../interfaces/dashboard.types'; }) export class ACXappService { - private basePath = 'api/xapp/ac'; + private basePath = 'api/xapp/admctl'; + private policyPath = 'policy'; private buildPath(...args: any[]) { let result = this.basePath; @@ -59,13 +60,22 @@ export class ACXappService { ); } + /** + * Gets admission control parameters. + * @returns Observable that should yield an ACAdmissionIntervalControl + */ + getPolicy(): Observable { + const url = this.buildPath(this.policyPath); + return this.httpClient.get(url); + } + /** * Puts admission control parameters. * @param policy an instance of ACAdmissionIntervalControl * @returns Observable that should yield a response code, no data */ putPolicy(policy: ACAdmissionIntervalControl): Observable { - const url = this.buildPath('catime'); + const url = this.buildPath(this.policyPath); return this.httpClient.put(url, policy, { observe: 'response' }); }