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;fp=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FA1Client.java;h=9ad5dd768c284b60ecea55a47c2d5f6a1c2fb64d;hb=4a112834cf7ea69f230fde864856093ecadb9cfe;hp=db048fb39e1d47d06623c0a6ecd136e7a3d3381b;hpb=f0273617b916cdc8633382291b9986e33cc13fa1;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 db048fb3..9ad5dd76 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 @@ -19,103 +19,19 @@ */ 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; -public class A1Client { - private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); +public interface A1Client { - public String getBaseUrl(final String nearRtRicUrl) { - return nearRtRicUrl + "/A1-P/v1"; - } + public Flux getAllPolicyTypes(String nearRtRicUrl); - public Flux getAllPolicyTypes(String nearRtRicUrl) { - logger.debug("getAllPolicyTypes nearRtRicUrl = {}", nearRtRicUrl); - AsyncRestClient client = new AsyncRestClient(getBaseUrl(nearRtRicUrl)); - Mono response = client.get("/policytypes"); - return response.flatMapMany(this::createPolicyTypesFlux); - } + public Flux getPoliciesForType(String nearRtRicUrl, String policyTypeId); - public Flux getPoliciesForType(String nearRtRicUrl, String policyTypeId) { - logger.debug("getPoliciesForType nearRtRicUrl = {}, policyTypeId = {}", nearRtRicUrl, policyTypeId); - AsyncRestClient client = new AsyncRestClient(getBaseUrl(nearRtRicUrl)); - Mono response = client.get("/policies"); - return response.flatMapMany(policiesString -> createPoliciesFlux(policiesString, policyTypeId)); - } + public Mono getPolicy(String nearRtRicUrl, String policyId); - public Mono getPolicy(String nearRtRicUrl, String policyId) { - logger.debug("getPolicy nearRtRicUrl = {}, policyId = {}", nearRtRicUrl, policyId); - AsyncRestClient client = new AsyncRestClient(getBaseUrl(nearRtRicUrl)); - Mono response = client.get("/policies/" + policyId); - return response.flatMap(this::createPolicyMono); - } + public Mono putPolicy(String nearRtRicUrl, String policyId, String policyString); - 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); - } + public Mono deletePolicy(String nearRtRicUrl, String policyId); - public Mono deletePolicy(String nearRtRicUrl, String policyId) { - logger.debug("deletePolicy nearRtRicUrl = {}, policyId = {}", nearRtRicUrl, policyId); - AsyncRestClient client = new AsyncRestClient(getBaseUrl(nearRtRicUrl)); - return client.delete("/policies/" + policyId); - } - - private Flux createPolicyTypesFlux(String policyTypesString) { - 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); - } - } - - private Flux createPoliciesFlux(String policiesString, String policyTypeId) { - 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); - } - } - - private Mono createPolicyMono(String 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); - } - } }