X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FA1ClientFactory.java;h=cd53f838d60d092b23de80425c7f16581f03dae2;hb=d1623c5066ebb6152c6a2ba0fe889e32c75d8890;hp=cb8f9dd4d67080f8082e9c06de16e0acc5d105c0;hpb=e8c7fa0b02b0918b3b56a1fc162968a3eef282dc;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/A1ClientFactory.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/A1ClientFactory.java index cb8f9dd4..cd53f838 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/clients/A1ClientFactory.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/clients/A1ClientFactory.java @@ -41,13 +41,16 @@ public class A1ClientFactory { return Mono.just(createStdA1ClientImpl(ric)); } else if (version == A1ProtocolType.OSC_V1) { return Mono.just(new OscA1Client(ric.getConfig())); + } else if (version == A1ProtocolType.CONTROLLER) { + return Mono.just(createControllerA1Client(ric)); } return Mono.error(new ServiceException("Not supported protocoltype: " + version)); } private Mono getProtocolVersion(Ric ric) { if (ric.getProtocolVersion() == A1ProtocolType.UNKNOWN) { - return fetchVersion(ric, new OscA1Client(ric.getConfig())) // + return fetchVersion(ric, createControllerA1Client(ric)) // + .onErrorResume(err -> fetchVersion(ric, new OscA1Client(ric.getConfig()))) .onErrorResume(err -> fetchVersion(ric, createStdA1ClientImpl(ric))) .doOnNext(version -> ric.setProtocolVersion(version)) .doOnNext(version -> logger.debug("Recover ric: {}, protocol version:{}", ric.name(), version)) // @@ -61,6 +64,10 @@ public class A1ClientFactory { return new StdA1Client(ric.getConfig()); } + protected A1Client createControllerA1Client(Ric ric) { + return new ControllerA1Client(ric.getConfig()); + } + private Mono fetchVersion(Ric ric, A1Client a1Client) { return Mono.just(a1Client) // .flatMap(client -> a1Client.getProtocolVersion());