X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FOscA1Client.java;h=5a0bdc961f086746d0b0566ae0a60fff4c4029b5;hb=refs%2Fchanges%2F98%2F3498%2F1;hp=9384726db41ba8ec49a70cb68f98f9cc167712bd;hpb=d15a3b60b7dc968bd17f32063508c7dc6defc03a;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/OscA1Client.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/OscA1Client.java index 9384726d..5a0bdc96 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/clients/OscA1Client.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/clients/OscA1Client.java @@ -23,7 +23,6 @@ package org.oransc.policyagent.clients; import java.lang.invoke.MethodHandles; import java.util.List; -import org.json.JSONObject; import org.oransc.policyagent.configuration.RicConfig; import org.oransc.policyagent.repository.Policy; import org.slf4j.Logger; @@ -32,6 +31,9 @@ import org.slf4j.LoggerFactory; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +/** + * Client for accessing OSC A1 REST API + */ @SuppressWarnings("squid:S2629") // Invoke method(s) only conditionally public class OscA1Client implements A1Client { @@ -47,6 +49,9 @@ public class OscA1Client implements A1Client { return createPolicyUri(type, policyId); } + /** + * /a1-p/policytypes/{policy_type_id}/policies + */ public String createGetPolicyIdsUri(String type) { return createPolicyTypeUri(type) + "/policies"; } @@ -56,27 +61,45 @@ public class OscA1Client implements A1Client { return createPolicyUri(type, policyId); } + /** + * ​/a1-p​/policytypes​/{policy_type_id}​/policies​/{policy_instance_id}​/status + */ @Override public String createGetPolicyStatusUri(String type, String policyId) { return createPolicyUri(type, policyId) + "/status"; } + /** + * ​/a1-p​/healthcheck + */ public String createHealtcheckUri() { return baseUri() + "/healthcheck"; } + /** + * /a1-p/policytypes/{policy_type_id} + */ public String createGetSchemaUri(String type) { return this.createPolicyTypeUri(type); } + /** + * ​/a1-p​/policytypes​/{policy_type_id} + */ public String createPolicyTypesUri() { return baseUri() + "/policytypes"; } + /** + * ​/a1-p​/policytypes​/{policy_type_id}​/policies​/{policy_instance_id} + */ private String createPolicyUri(String type, String id) { return createPolicyTypeUri(type) + "/policies/" + id; } + /** + * /a1-p/policytypes/{policy_type_id} + */ private String createPolicyTypeUri(String type) { return createPolicyTypesUri() + "/" + type; } @@ -119,7 +142,7 @@ public class OscA1Client implements A1Client { public Mono getPolicyTypeSchema(String policyTypeId) { String schemaUri = uri.createGetSchemaUri(policyTypeId); return restClient.get(schemaUri) // - .flatMap(response -> getCreateSchema(response, policyTypeId)); + .flatMap(response -> SdncJsonHelper.getCreateSchema(response, policyTypeId)); } @Override @@ -154,25 +177,12 @@ public class OscA1Client implements A1Client { private Flux getPolicyTypeIds() { return restClient.get(uri.createPolicyTypesUri()) // - .flatMapMany(JsonHelper::parseJsonArrayOfString); + .flatMapMany(SdncJsonHelper::parseJsonArrayOfString); } private Flux getPolicyIdentitiesByType(String typeId) { return restClient.get(uri.createGetPolicyIdsUri(typeId)) // - .flatMapMany(JsonHelper::parseJsonArrayOfString); - } - - private Mono getCreateSchema(String policyTypeResponse, String policyTypeId) { - try { - JSONObject obj = new JSONObject(policyTypeResponse); - JSONObject schemaObj = obj.getJSONObject("create_schema"); - schemaObj.put(TITLE, policyTypeId); - return Mono.just(schemaObj.toString()); - } catch (Exception e) { - String exceptionString = e.toString(); - logger.error("Unexpected response for policy type: {}, exception: {}", policyTypeResponse, exceptionString); - return Mono.error(e); - } + .flatMapMany(SdncJsonHelper::parseJsonArrayOfString); } private Mono deletePolicyById(String typeId, String policyId) {