From 83744b7572d30eca01bd122c798a9e9e5bd9353e Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Thu, 9 Apr 2020 13:56:45 -0400 Subject: Add special handling for BGP RouteDistinguisher Add special case code in MdsalHelper for BGP RouteDistinguisher class - a custom class implemented by OpenDaylight that does NOT follow the pattern of data object classes generated from Yang models by Yangtools Note: this depends on the following ccsdk/parent change to add OpenDaylight BGP dependencies to the dependencyManagement section of our parent poms: https://gerrit.onap.org/r/c/ccsdk/parent/+/105774 Change-Id: Ifebd03091d9ed9225e37c7242ecf7810abca1feb Issue-ID: CCSDK-2307 Signed-off-by: Dan Timoney --- sli/provider/pom.xml | 10 +++++++++- .../onap/ccsdk/sli/core/sli/provider/MdsalHelper.java | 16 +++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/sli/provider/pom.xml b/sli/provider/pom.xml index 5dc327f1..056d748f 100755 --- a/sli/provider/pom.xml +++ b/sli/provider/pom.xml @@ -67,14 +67,22 @@ org.opendaylight.controller sal-binding-api + provided org.opendaylight.mdsal.binding.model.ietf rfc6991 - + provided + + + org.opendaylight.bgpcep + bgp-concepts + provided + org.opendaylight.controller sal-core-api + provided diff --git a/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelper.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelper.java index 122c8862..d3ab6c33 100755 --- a/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelper.java +++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelper.java @@ -43,6 +43,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types. import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.RouteDistinguisher; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.RouteDistinguisherBuilder; import org.opendaylight.yangtools.yang.binding.Identifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -678,7 +680,19 @@ public class MdsalHelper { + "(" + paramValue + ")", e); } } - } else { + } else if ("RouteDistinguisher".equals(simpleName)) { + if ((paramValue != null) && (paramValue.length() > 0)) { + try { + RouteDistinguisher routeDistinguisher = RouteDistinguisherBuilder.getDefaultInstance(paramValue); + m.invoke(toObj, routeDistinguisher); + foundValue = true; + } catch (Exception e) { + LOG.error("Caught exception calling " + toClass.getName() + "." + m.getName() + + "(" + paramValue + ")", e); + } + } + } + else { // setter expects a yang-generated class. Need // to // create a builder to set it. -- cgit 1.2.3-korg