X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FStdA1ClientVersion1.java;h=f5486a58e949057c968b61db476d31f41b913592;hb=643ba188e7c1d0c8ce097adfd94ced47b2da615e;hp=6b9ef17c7a04c3c201f9ca6e56a8096c22988d6f;hpb=beb7ba7d7fbccc421d7c2c16b8942bb5da7fc71c;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion1.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion1.java index 6b9ef17c..f5486a58 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion1.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion1.java @@ -29,10 +29,60 @@ import org.oransc.policyagent.repository.Policy; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +/** + * Client for accessing standard A1 REST API version 1.1 + */ public class StdA1ClientVersion1 implements A1Client { - private final AsyncRestClient restClient; - private final A1UriBuilder uri; + public static class UriBuilder implements A1UriBuilder { + + private final RicConfig ricConfig; + + public UriBuilder(RicConfig ricConfig) { + this.ricConfig = ricConfig; + } + + /** + * /A1-P/v1/policies/{policyId} + */ + @Override + public String createPutPolicyUri(String type, String policyId) { + return policiesBaseUri() + policyId; + } + + /** + * /A1-P/v1/policies + */ + public String createGetPolicyIdsUri() { + return baseUri() + "/policies"; + } + + /** + * /A1-P/v1/policies/{policyId} + */ + @Override + public String createDeleteUri(String type, String policyId) { + return policiesBaseUri() + policyId; + } + + /** + * /A1-P/v1/policies/{policyId}/status + */ + public String createGetPolicyStatusUri(String type, String policyId) { + return policiesBaseUri() + policyId + "/status"; + } + + private String baseUri() { + return ricConfig.baseUrl() + "/A1-P/v1"; + } + + private String policiesBaseUri() { + return createGetPolicyIdsUri() + "/"; + } + } + + private final AsyncRestClient restClient; + private final UriBuilder uri; public StdA1ClientVersion1(RicConfig ricConfig) { this(new AsyncRestClient(""), ricConfig); @@ -40,7 +90,7 @@ public class StdA1ClientVersion1 implements A1Client { public StdA1ClientVersion1(AsyncRestClient restClient, RicConfig ricConfig) { this.restClient = restClient; - this.uri = new StdA1UriBuilderVersion1(ricConfig); + this.uri = new UriBuilder(ricConfig); } @Override @@ -51,9 +101,7 @@ public class StdA1ClientVersion1 implements A1Client { @Override public Mono putPolicy(Policy policy) { - - return restClient.put(uri.createPutPolicyUri(policy), policy.json()) // - .flatMap(JsonHelper::validateJson); + return restClient.put(uri.createPutPolicyUri(policy.type().name(), policy.id()), policy.json()); } @Override @@ -85,15 +133,15 @@ public class StdA1ClientVersion1 implements A1Client { @Override public Mono getPolicyStatus(Policy policy) { - return restClient.get(uri.createGetPolicyStatusUri(policy.id())); + return restClient.get(uri.createGetPolicyStatusUri(policy.type().name(), policy.id())); } private Flux getPolicyIds() { return restClient.get(uri.createGetPolicyIdsUri()) // - .flatMapMany(JsonHelper::parseJsonArrayOfString); + .flatMapMany(SdncJsonHelper::parseJsonArrayOfString); } private Mono deletePolicyById(String policyId) { - return restClient.delete(uri.createDeleteUri(policyId)); + return restClient.delete(uri.createDeleteUri("", policyId)); } }