-------------------------
* 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
* 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
--------------------------
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
* 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");
* 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());
}
@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<String> response = testRestTemplateStandardRole().exchange(uri, HttpMethod.GET, null,
String.class);
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<JsonNode> entity = new HttpEntity<>(body);
logger.info("Invoking {}", uri);
ResponseEntity<Void> voidResponse = testRestTemplateAdminRole().exchange(uri, HttpMethod.PUT, entity,
})
export class ACXappService {
- private basePath = 'api/xapp/ac';
+ private basePath = 'api/xapp/admctl';
+ private policyPath = 'policy';
private buildPath(...args: any[]) {
let result = this.basePath;
);
}
+ /**
+ * Gets admission control parameters.
+ * @returns Observable that should yield an ACAdmissionIntervalControl
+ */
+ getPolicy(): Observable<ACAdmissionIntervalControl> {
+ const url = this.buildPath(this.policyPath);
+ return this.httpClient.get<ACAdmissionIntervalControl>(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<any> {
- const url = this.buildPath('catime');
+ const url = this.buildPath(this.policyPath);
return this.httpClient.put<ACAdmissionIntervalControlAck>(url, policy, { observe: 'response' });
}