package org.oransc.policyagent.clients;
import java.lang.invoke.MethodHandles;
+import java.util.Arrays;
import java.util.List;
import org.oransc.policyagent.configuration.RicConfig;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
+@SuppressWarnings("squid:S2629") // Invoke method(s) only conditionally
public class SdncOscA1Client implements A1Client {
- private static final String URL_PREFIX = "/A1-ADAPTER-API:";
+ private static final String URL_PREFIX = "/A1-ADAPTER-API:";
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
private final String a1ControllerUsername;
private final String a1ControllerPassword;
private final RicConfig ricConfig;
public SdncOscA1Client(RicConfig ricConfig, String baseUrl, String username, String password) {
this(ricConfig, username, password, new AsyncRestClient(baseUrl + "/restconf/operations"));
- if (logger.isDebugEnabled()) {
- logger.debug("SdncOscA1Client for ric: {}, a1ControllerBaseUrl: {}", ricConfig.name(), baseUrl);
- }
+ logger.debug("SdncOscA1Client for ric: {}, a1ControllerBaseUrl: {}", ricConfig.name(), baseUrl);
}
public SdncOscA1Client(RicConfig ricConfig, String username, String password, AsyncRestClient restClient) {
@Override
public Mono<List<String>> getPolicyTypeIdentities() {
- SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
- .nearRtRicUrl(ricConfig.baseUrl()) //
- .build();
- String inputJsonString = JsonHelper.createInputJsonString(inputParams);
- logger.debug("POST getPolicyTypeIdentities inputJsonString = {}", inputJsonString);
-
- return restClient
- .postWithAuthHeader(URL_PREFIX + "getPolicyTypeIdentities", inputJsonString, a1ControllerUsername,
- a1ControllerPassword) //
- .flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-type-id-list")) //
- .flatMapMany(JsonHelper::parseJsonArrayOfString) //
- .collectList();
+ return Mono.just(Arrays.asList(""));
}
@Override
@Override
public Mono<String> getPolicyTypeSchema(String policyTypeId) {
- SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
- .nearRtRicUrl(ricConfig.baseUrl()) //
- .policyTypeId(policyTypeId) //
- .build();
- String inputJsonString = JsonHelper.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);
+ return Mono.just("{}");
}
@Override
.policy(policy.json()) //
.build();
String inputJsonString = JsonHelper.createInputJsonString(inputParams);
- logger.debug("POST putPolicy inputJsonString = {}", inputJsonString);
-
return restClient
.postWithAuthHeader(URL_PREFIX + "putPolicy", inputJsonString, a1ControllerUsername, a1ControllerPassword)
.flatMap(response -> JsonHelper.getValueFromResponse(response, "returned-policy")) //
@Override
public Mono<A1ProtocolType> getProtocolVersion() {
- return getPolicyTypeIdentities() //
+ return getPolicyIdentities() //
.flatMap(x -> Mono.just(A1ProtocolType.SDNC_OSC));
}
@Override
public Mono<String> getPolicyStatus(Policy policy) {
- return Mono.error(new Exception("Status not implemented in the SDNC controller"));
+ SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
+ .nearRtRicUrl(ricConfig.baseUrl()) //
+ .policyId(policy.id()) //
+ .build();
+ String inputJsonString = JsonHelper.createInputJsonString(inputParams);
+ logger.debug("POST getPolicyStatus inputJsonString = {}", inputJsonString);
+
+ return restClient
+ .postWithAuthHeader(URL_PREFIX + "getPolicyStatus", inputJsonString, a1ControllerUsername,
+ a1ControllerPassword) //
+ .flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-status"));
}
private Flux<String> getPolicyIds() {
.nearRtRicUrl(ricConfig.baseUrl()) //
.build();
String inputJsonString = JsonHelper.createInputJsonString(inputParams);
- logger.debug("POST getPolicyIdentities inputJsonString = {}", inputJsonString);
-
return restClient
- .postWithAuthHeader("/A1-ADAPTER-API:getPolicyIdentities", inputJsonString, a1ControllerUsername,
+ .postWithAuthHeader(URL_PREFIX + "getPolicyIdentities", inputJsonString, a1ControllerUsername,
a1ControllerPassword) //
.flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-id-list")) //
.flatMapMany(JsonHelper::parseJsonArrayOfString);
.build();
String inputJsonString = JsonHelper.createInputJsonString(inputParams);
- logger.debug("POST deletePolicy inputJsonString = {}", inputJsonString);
-
return restClient.postWithAuthHeader(URL_PREFIX + "deletePolicy", inputJsonString, a1ControllerUsername,
a1ControllerPassword);
}