Adding ITM internal/external tunnel build logic
[vpnservice.git] / itm / itm-impl / src / main / java / org / opendaylight / vpnservice / itm / impl / ItmProvider.java
index a53b760e284fe7d3745ee991e0a2f5cc7fe584a2..441979ea2a2123a12aa813a9a2a47283529b5f13 100644 (file)
@@ -19,13 +19,14 @@ import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderCo
 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
 import org.opendaylight.vpnservice.interfacemgr.interfaces.IInterfaceManager;
 import org.opendaylight.vpnservice.itm.api.IITMProvider;
-
+import org.opendaylight.vpnservice.itm.listeners.TransportZoneListener;
+import org.opendaylight.vpnservice.itm.rpc.ItmManagerRpcService;
 import org.opendaylight.vpnservice.mdsalutil.interfaces.IMdsalApiManager;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.itm.op.rev150701.GetTunnelIdInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.itm.op.rev150701.GetTunnelIdOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.itm.op.rev150701.ItmStateService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.itm.op.rev150701.TunnelsState;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.itm.rev150701.TransportZones;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.itm.rev150701.transport.zones.transport.zone.*;;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,20 +39,25 @@ public class ItmProvider implements BindingAwareProvider, AutoCloseable, IITMPro
     private IMdsalApiManager mdsalManager;
     private DataBroker dataBroker;
     private NotificationPublishService notificationPublishService;
+    private ItmManagerRpcService itmRpcService ;
     private NotificationService notificationService;
-        
+    private TransportZoneListener tzChangeListener;
+
     @Override
     public void onSessionInitiated(ProviderContext session) {
         LOG.info("ItmProvider Session Initiated");
         try {
             dataBroker = session.getSALService(DataBroker.class);
-           
+
             itmManager = new ITMManager(dataBroker);
-            
+            tzChangeListener = new TransportZoneListener(dataBroker) ;
+            itmRpcService = new ItmManagerRpcService(dataBroker);
+
             itmManager.setMdsalManager(mdsalManager);
             itmManager.setNotificationPublishService(notificationPublishService);
             itmManager.setMdsalManager(mdsalManager);
-                       
+            tzChangeListener.setItmManager(itmManager);
+            tzChangeListener.registerListener(LogicalDatastoreType.CONFIGURATION, dataBroker);
         } catch (Exception e) {
             LOG.error("Error initializing services", e);
         }
@@ -77,15 +83,18 @@ public class ItmProvider implements BindingAwareProvider, AutoCloseable, IITMPro
         if (itmManager != null) {
             itmManager.close();
         }
-                
+        if (tzChangeListener != null) {
+            tzChangeListener.close();
+        }
+
         LOG.info("ItmProvider Closed");
     }
 
-       @Override
-       public Future<RpcResult<GetTunnelIdOutput>> getTunnelId(
-                       GetTunnelIdInput input) {
-               // TODO Auto-generated method stub
-               return null;
-       }
+    @Override
+    public Future<RpcResult<GetTunnelIdOutput>> getTunnelId(
+         GetTunnelIdInput input) {
+         // TODO Auto-generated method stub
+         return null;
+    }
 
 }