X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FA1Client.java;h=db048fb39e1d47d06623c0a6ecd136e7a3d3381b;hb=bfd3c5bf6e2c70caf62dc98ca6d69a9b6586825b;hp=39fbc37b4d2b2c9345f521b5df172b80d392c12b;hpb=01cf1b466e7eebf51789b83fbab5139880c20107;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/A1Client.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/A1Client.java index 39fbc37b..db048fb3 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/clients/A1Client.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/clients/A1Client.java @@ -22,12 +22,11 @@ package org.oransc.policyagent.clients; import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.List; - import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -62,6 +61,11 @@ public class A1Client { public Mono putPolicy(String nearRtRicUrl, String policyId, String policyString) { logger.debug("putPolicy nearRtRicUrl = {}, policyId = {}, policyString = {}", nearRtRicUrl, policyId, policyString); + try { + new JSONObject(policyString); + } catch (JSONException ex) { // invalid json + return Mono.error(ex); + } AsyncRestClient client = new AsyncRestClient(getBaseUrl(nearRtRicUrl)); Mono response = client.put("/policies/" + policyId, policyString); return response.flatMap(this::createPolicyMono); @@ -74,32 +78,44 @@ public class A1Client { } private Flux createPolicyTypesFlux(String policyTypesString) { - List policyTypesList = new ArrayList<>(); - JSONArray policyTypesArray = new JSONArray(policyTypesString); - for (int i = 0; i < policyTypesArray.length(); i++) { - policyTypesList.add(policyTypesArray.getJSONObject(i).toString()); + try { + List policyTypesList = new ArrayList<>(); + JSONArray policyTypesArray = new JSONArray(policyTypesString); + for (int i = 0; i < policyTypesArray.length(); i++) { + policyTypesList.add(policyTypesArray.getJSONObject(i).toString()); + } + logger.debug("A1 client: policyTypes = {}", policyTypesList); + return Flux.fromIterable(policyTypesList); + } catch (JSONException ex) { // invalid json + return Flux.error(ex); } - logger.debug("A1 client: policyTypes = {}", policyTypesList); - return Flux.fromIterable(policyTypesList); } private Flux createPoliciesFlux(String policiesString, String policyTypeId) { - List policiesList = new ArrayList<>(); - JSONArray policiesArray = new JSONArray(policiesString); - for (int i = 0; i < policiesArray.length(); i++) { - JSONObject policyObject = policiesArray.getJSONObject(i); - if (policyObject.get("policyTypeId").equals(policyTypeId)) { - policiesList.add(policyObject.toString()); + try { + List policiesList = new ArrayList<>(); + JSONArray policiesArray = new JSONArray(policiesString); + for (int i = 0; i < policiesArray.length(); i++) { + JSONObject policyObject = policiesArray.getJSONObject(i); + if (policyObject.get("policyTypeId").equals(policyTypeId)) { + policiesList.add(policyObject.toString()); + } } + logger.debug("A1 client: policies = {}", policiesList); + return Flux.fromIterable(policiesList); + } catch (JSONException ex) { // invalid json + return Flux.error(ex); } - logger.debug("A1 client: policies = {}", policiesList); - return Flux.fromIterable(policiesList); } private Mono createPolicyMono(String policyString) { - // remove white-spaces - policyString = policyString.replaceAll("\\s+", ""); - logger.debug("A1 client: policy = {}", policyString); - return Mono.just(policyString); + try { + JSONObject policyObject = new JSONObject(policyString); + String policy = policyObject.toString(); + logger.debug("A1 client: policy = {}", policy); + return Mono.just(policy); + } catch (JSONException ex) { // invalid json + return Mono.error(ex); + } } }