X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FSdncOnapA1Client.java;h=cfabf51298e0ba49dd66abd994ac9024c419abe6;hb=643ba188e7c1d0c8ce097adfd94ced47b2da615e;hp=b9d7f3522ee6161a632f3c9fa3f82f946cb8ac7c;hpb=9013ed7ad46ce6927fbf69890487e8df61b7d7ee;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/SdncOnapA1Client.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/SdncOnapA1Client.java index b9d7f352..cfabf512 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/clients/SdncOnapA1Client.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/clients/SdncOnapA1Client.java @@ -23,7 +23,10 @@ package org.oransc.policyagent.clients; import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.List; +import java.util.Optional; +import org.immutables.gson.Gson; +import org.immutables.value.Value; import org.oransc.policyagent.configuration.RicConfig; import org.oransc.policyagent.repository.Policy; import org.slf4j.Logger; @@ -32,7 +35,25 @@ import org.slf4j.LoggerFactory; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +/** + * Client for accessing the A1 adapter in the SDNC controller in ONAP + */ +@SuppressWarnings("squid:S2629") // Invoke method(s) only conditionally public class SdncOnapA1Client implements A1Client { + @Value.Immutable + @Gson.TypeAdapters + interface SdncOnapAdapterInput { + public String nearRtRicId(); + + public Optional policyTypeId(); + + public Optional policyInstanceId(); + + public Optional policyInstance(); + + public Optional> properties(); + } + private static final String URL_PREFIX = "/A1-ADAPTER-API:"; private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); @@ -44,9 +65,7 @@ public class SdncOnapA1Client implements A1Client { public SdncOnapA1Client(RicConfig ricConfig, String baseUrl, String username, String password) { this(ricConfig, username, password, new AsyncRestClient(baseUrl + "/restconf/operations")); - if (logger.isDebugEnabled()) { - logger.debug("SdnrOnapA1Client for ric: {}, a1ControllerBaseUrl: {}", ricConfig.name(), baseUrl); - } + logger.debug("SdncOnapA1Client for ric: {}, a1ControllerBaseUrl: {}", ricConfig.name(), baseUrl); } public SdncOnapA1Client(RicConfig ricConfig, String username, String password, AsyncRestClient restClient) { @@ -75,14 +94,14 @@ public class SdncOnapA1Client implements A1Client { .nearRtRicId(ricConfig.baseUrl()) // .policyTypeId(policyTypeId) // .build(); - String inputJsonString = JsonHelper.createInputJsonString(inputParams); + String inputJsonString = SdncJsonHelper.createInputJsonString(inputParams); logger.debug("POST getPolicyType inputJsonString = {}", inputJsonString); return restClient .postWithAuthHeader(URL_PREFIX + "getPolicyType", inputJsonString, a1ControllerUsername, a1ControllerPassword) // - .flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-type")) // - .flatMap(JsonHelper::extractPolicySchema); + .flatMap(response -> SdncJsonHelper.getValueFromResponse(response, "policy-type")) // + .flatMap(SdncJsonHelper::extractPolicySchema); } @Override @@ -95,7 +114,7 @@ public class SdncOnapA1Client implements A1Client { .properties(new ArrayList()) // .build(); - String inputJsonString = JsonHelper.createInputJsonString(inputParams); + String inputJsonString = SdncJsonHelper.createInputJsonString(inputParams); logger.debug("POST putPolicy inputJsonString = {}", inputJsonString); return restClient.postWithAuthHeader(URL_PREFIX + "createPolicyInstance", inputJsonString, a1ControllerUsername, @@ -128,14 +147,14 @@ public class SdncOnapA1Client implements A1Client { SdncOnapAdapterInput inputParams = ImmutableSdncOnapAdapterInput.builder() // .nearRtRicId(ricConfig.baseUrl()) // .build(); - String inputJsonString = JsonHelper.createInputJsonString(inputParams); + String inputJsonString = SdncJsonHelper.createInputJsonString(inputParams); logger.debug("POST getPolicyTypeIdentities inputJsonString = {}", inputJsonString); return restClient .postWithAuthHeader("/A1-ADAPTER-API:getPolicyTypes", inputJsonString, a1ControllerUsername, a1ControllerPassword) // - .flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-type-id-list")) // - .flatMapMany(JsonHelper::parseJsonArrayOfString); + .flatMap(response -> SdncJsonHelper.getValueFromResponse(response, "policy-type-id-list")) // + .flatMapMany(SdncJsonHelper::parseJsonArrayOfString); } private Flux getPolicyIdentitiesByType(String policyTypeId) { @@ -143,14 +162,14 @@ public class SdncOnapA1Client implements A1Client { .nearRtRicId(ricConfig.baseUrl()) // .policyTypeId(policyTypeId) // .build(); - String inputJsonString = JsonHelper.createInputJsonString(inputParams); + String inputJsonString = SdncJsonHelper.createInputJsonString(inputParams); logger.debug("POST getPolicyIdentities inputJsonString = {}", inputJsonString); return restClient .postWithAuthHeader("/A1-ADAPTER-API:getPolicyInstances", inputJsonString, a1ControllerUsername, a1ControllerPassword) // - .flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-instance-id-list")) // - .flatMapMany(JsonHelper::parseJsonArrayOfString); + .flatMap(response -> SdncJsonHelper.getValueFromResponse(response, "policy-instance-id-list")) // + .flatMapMany(SdncJsonHelper::parseJsonArrayOfString); } private Flux deletePoliciesForType(String typeId) { @@ -164,7 +183,7 @@ public class SdncOnapA1Client implements A1Client { .policyTypeId(policyTypeId) // .policyInstanceId(policyId) // .build(); - String inputJsonString = JsonHelper.createInputJsonString(inputParams); + String inputJsonString = SdncJsonHelper.createInputJsonString(inputParams); logger.debug("POST deletePolicy inputJsonString = {}", inputJsonString); return restClient.postWithAuthHeader("/A1-ADAPTER-API:deletePolicyInstance", inputJsonString,