summaryrefslogtreecommitdiffstats
path: root/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java')
-rw-r--r--v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java
index b761000de..54acce3f2 100644
--- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java
+++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java
@@ -16,15 +16,18 @@
package io.fd.honeycomb.v3po.impl;
+import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.Futures;
+import io.fd.honeycomb.v3po.impl.data.VppDataBrokerInitializationProvider;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
+import javax.annotation.Nonnull;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -32,6 +35,7 @@ import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFaile
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration;
import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
+import org.opendaylight.controller.sal.core.api.Broker;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.EthernetCsmacd;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.SoftwareLoopback;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfaceType;
@@ -55,12 +59,18 @@ import org.slf4j.LoggerFactory;
public class V3poProvider implements BindingAwareProvider, AutoCloseable {
private static final Logger LOG = LoggerFactory.getLogger(V3poProvider.class);
+ private final Broker domBroker;
private RpcRegistration<V3poService> v3poService;
private VppIetfInterfaceListener vppInterfaceListener;
private VppBridgeDomainListener vppBridgeDomainListener;
private vppApi api;
private DataBroker db;
VppPollOperDataImpl vppPollOperData;
+ private VppDataBrokerInitializationProvider vppDataBrokerInitializationProvider;
+
+ public V3poProvider(@Nonnull final Broker domBroker) {
+ this.domBroker = Preconditions.checkNotNull(domBroker, "domBroker should not be null");
+ }
private void initializeVppConfig() {
@@ -176,6 +186,10 @@ public class V3poProvider implements BindingAwareProvider, AutoCloseable {
v3poService = session.addRpcImplementation(V3poService.class,
vppPollOperData);
startOperationalUpdateTimer();
+
+ // TODO make configurable
+ vppDataBrokerInitializationProvider = new VppDataBrokerInitializationProvider(db);
+ domBroker.registerProvider(vppDataBrokerInitializationProvider);
}
@Override
@@ -187,5 +201,8 @@ public class V3poProvider implements BindingAwareProvider, AutoCloseable {
if (api != null) {
api.close();
}
+ if (vppDataBrokerInitializationProvider != null) {
+ vppDataBrokerInitializationProvider.close();
+ }
}
}