- return Mono.just(createOscA1Client(ric));
- } else if (version == A1ProtocolType.SDNC_OSC) {
- return Mono.just(createSdncOscA1Client(ric));
- } else { // A1ProtocolType.SDNC_ONAP
- return Mono.just(createSdncOnapA1Client(ric));
- }
- }
-
- private Mono<A1Client.A1ProtocolType> getProtocolVersion(Ric ric) {
- if (ric.getProtocolVersion() == A1ProtocolType.UNKNOWN) {
- return fetchVersion(createSdncOnapA1Client(ric)) //
- .onErrorResume(notUsed -> fetchVersion(createSdncOscA1Client(ric))) //
- .onErrorResume(notUsed -> fetchVersion(createOscA1Client(ric))) //
- .onErrorResume(notUsed -> fetchVersion(createStdA1ClientImpl(ric))) //
- .doOnNext(ric::setProtocolVersion)
- .doOnNext(version -> logger.debug("Recover ric: {}, protocol version:{}", ric.name(), version)) //
- .doOnError(notUsed -> logger.warn("Could not get protocol version from RIC: {}", ric.name())); //
+ assertNoControllerConfig(ric, version);
+ return new OscA1Client(ric.getConfig());
+ } else if (version == A1ProtocolType.SDNC_OSC_STD_V1_1 || version == A1ProtocolType.SDNC_OSC_OSC_V1) {
+ return new SdncOscA1Client(version, ric.getConfig(), getControllerConfig(ric));
+ } else if (version == A1ProtocolType.SDNC_ONAP) {
+ return new SdncOnapA1Client(ric.getConfig(), getControllerConfig(ric));