Adding API support for ELAN 26/71226/3
authorEdw7n <n.edwin.anthony@ericsson.com>
Wed, 25 Apr 2018 03:34:21 +0000 (09:04 +0530)
committerMichael Vorburger <vorburger@redhat.com>
Thu, 26 Apr 2018 14:29:53 +0000 (14:29 +0000)
Support for fetching Interface information from tunnelName

Change-Id: Ibc067c3c05b02fc30cc6bd0e20040457744c3cd4
Signed-off-by: Edw7n <n.edwin.anthony@ericsson.com>
itm/itm-api/src/main/java/org/opendaylight/genius/itm/api/IITMProvider.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmProvider.java
itm/itm-impl/src/main/resources/org/opendaylight/blueprint/itm.xml

index d1407846ceb551cb2c41bca4776f108dc11b7801..cf989527fdf53b64da03e22c78db9a33270f1d5c 100644 (file)
@@ -13,6 +13,7 @@ import java.util.List;
 import org.apache.felix.service.command.CommandSession;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.vtep.config.schemas.VtepConfigSchema;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList;
@@ -87,4 +88,6 @@ public interface IITMProvider {
     void remExternalEndpoint(java.lang.Class<? extends TunnelTypeBase> tunType, IpAddress dcgwIP);
 
     boolean validateIP(String ip);
+
+    Interface getInterface(String tunnelName);
 }
index 913352cffc32d88d032798011840cf828dfcf0ad..b8e7616c5d63153b27b4757dd014cf88993a7ea8 100644 (file)
@@ -24,6 +24,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
 import org.opendaylight.genius.itm.api.IITMProvider;
+import org.opendaylight.genius.itm.cache.DpnTepStateCache;
 import org.opendaylight.genius.itm.cli.TepCommandHelper;
 import org.opendaylight.genius.itm.cli.TepException;
 import org.opendaylight.genius.itm.globals.ITMConstants;
@@ -42,6 +43,7 @@ import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistrati
 import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.CreateIdPoolInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.CreateIdPoolInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
@@ -79,6 +81,7 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi
     static short flag = 0;
     private final TunnelMonitoringConfig tunnelMonitoringConfig;
     private EntityOwnershipCandidateRegistration registryCandidate;
+    private final DpnTepStateCache dpnTepStateCache;
 
     @Inject
     public ItmProvider(DataBroker dataBroker,
@@ -93,7 +96,8 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi
                        VtepConfigSchemaListener vtepConfigSchemaListener,
                        OvsdbNodeListener ovsdbNodeListener,
                        TunnelMonitoringConfig tunnelMonitoringConfig,
-                       EntityOwnershipService entityOwnershipService) {
+                       EntityOwnershipService entityOwnershipService,
+                       DpnTepStateCache dpnTepStateCache) {
         LOG.info("ItmProvider Before register MBean");
         this.dataBroker = dataBroker;
         this.idManager = idManagerService;
@@ -108,6 +112,7 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi
         this.ovsdbChangeListener = ovsdbNodeListener;
         this.tunnelMonitoringConfig = tunnelMonitoringConfig;
         this.entityOwnershipService = entityOwnershipService;
+        this.dpnTepStateCache = dpnTepStateCache;
         ITMBatchingUtils.registerWithBatchManager(this.dataBroker);
     }
 
@@ -349,4 +354,9 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi
         Matcher matcher = pattern.matcher(ip);
         return matcher.matches();
     }
+
+    @Override
+    public Interface getInterface(String tunnelName) {
+        return dpnTepStateCache.getInterfaceFromCache(tunnelName);
+    }
 }
index f7c73dc980b97719742c29be4610c4d463eed9a2..988abc9c8945306a92b96425d2494869f0117e4c 100644 (file)
@@ -39,6 +39,9 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
 
     <odl:rpc-implementation ref="itmManagerRpcService" />
 
+    <service ref="itmProvider"
+             interface="org.opendaylight.genius.itm.api.IITMProvider" />
+
     <odl:clustered-app-config id="itmConfig"
                               binding-class="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.ItmConfig"
                               default-config-file-name="genius-itm-config.xml"