X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FControllerA1Client.java;h=ddb6fb6747e873b81466d8bf7745def89e1e75d3;hb=d1623c5066ebb6152c6a2ba0fe889e32c75d8890;hp=bc7b56d960922295a63a7a3483ae5c6f9109a272;hpb=ebfa288c54e3de9ffb6e170b599e23ab0dbe479c;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/ControllerA1Client.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/ControllerA1Client.java index bc7b56d9..ddb6fb67 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/clients/ControllerA1Client.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/clients/ControllerA1Client.java @@ -82,7 +82,8 @@ public class ControllerA1Client implements A1Client { logger.debug("POST getPolicyType inputJsonString = {}", inputJsonString); return restClient.post("/A1-ADAPTER-API:getPolicyType", inputJsonString) // - .flatMap(response -> getValueFromResponse(response, "policy-type")); + .flatMap(response -> getValueFromResponse(response, "policy-type")) // + .flatMap(this::extractPolicySchema); } @Override @@ -90,12 +91,14 @@ public class ControllerA1Client implements A1Client { JSONObject paramsJson = new JSONObject(); paramsJson.put("near-rt-ric-url", ricConfig.baseUrl()); paramsJson.put("policy-id", policy.id()); + paramsJson.put("policy-type-id", policy.type().name()); paramsJson.put("policy", policy.json()); String inputJsonString = createInputJsonString(paramsJson); logger.debug("POST putPolicy inputJsonString = {}", inputJsonString); return restClient.post("/A1-ADAPTER-API:putPolicy", inputJsonString) // - .flatMap(response -> getValueFromResponse(response, "returned-policy")); + .flatMap(response -> getValueFromResponse(response, "returned-policy")) // + .flatMap(this::validateJson); } @Override @@ -157,4 +160,24 @@ public class ControllerA1Client implements A1Client { return Mono.error(ex); } } + + private Mono extractPolicySchema(String inputString) { + try { + JSONObject jsonObject = new JSONObject(inputString); + JSONObject schemaObject = jsonObject.getJSONObject("policySchema"); + String schemaString = schemaObject.toString(); + return Mono.just(schemaString); + } catch (JSONException ex) { // invalid json + return Mono.error(ex); + } + } + + private Mono validateJson(String inputString) { + try { + new JSONObject(inputString); + return Mono.just(inputString); + } catch (JSONException ex) { // invalid json + return Mono.error(ex); + } + } }