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=af3c2a6ddf8764bb532d32f7bdb35b1bff26c624;hpb=99dbc2588e004ad1c5a6bac78265e3875a669878;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 af3c2a6d..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,8 +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()); @@ -74,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 @@ -94,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, @@ -127,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) { @@ -142,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) { @@ -163,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,