From: Tomas Olvecky Date: Wed, 7 May 2014 17:54:42 +0000 (+0200) Subject: Bug:969 - Add fake read to block thread to sync with BI broker. X-Git-Tag: autorelease-tag-v20140601202136_82eb3f9~121 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=d42fd9e9ced129aef69d4df9b685ce6e5ca4ff8f Bug:969 - Add fake read to block thread to sync with BI broker. Block netconf client until Binding Independent broker loads inventory models. Change-Id: I8b2bcb82bcdf97598665b0b45f8fdfed19072e3c Signed-off-by: Tomas Olvecky --- diff --git a/opendaylight/md-sal/sal-netconf-connector/pom.xml b/opendaylight/md-sal/sal-netconf-connector/pom.xml index ef485bbadf..d8a76b971d 100644 --- a/opendaylight/md-sal/sal-netconf-connector/pom.xml +++ b/opendaylight/md-sal/sal-netconf-connector/pom.xml @@ -13,6 +13,7 @@ + ${project.groupId} netconf-client ${netconf.version} @@ -47,10 +48,18 @@ org.opendaylight.controller netty-threadgroup-config + + org.opendaylight.controller + sal-binding-api + org.opendaylight.controller threadpool-config-api + + org.opendaylight.controller.model + model-inventory + org.opendaylight.yangtools yang-data-impl diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java index 6e924221cf..a3717a13fe 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java @@ -10,35 +10,38 @@ package org.opendaylight.controller.config.yang.md.sal.connector.netconf; import static org.opendaylight.controller.config.api.JmxAttributeValidationException.checkCondition; import static org.opendaylight.controller.config.api.JmxAttributeValidationException.checkNotNull; +import com.google.common.net.InetAddresses; import io.netty.util.HashedWheelTimer; import io.netty.util.concurrent.GlobalEventExecutor; - import java.io.File; import java.io.InputStream; import java.net.InetAddress; import java.net.InetSocketAddress; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; - import org.opendaylight.controller.netconf.client.NetconfClientDispatcher; import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl; import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration; import org.opendaylight.controller.netconf.client.conf.NetconfClientConfigurationBuilder; import org.opendaylight.controller.netconf.util.handler.ssh.authentication.LoginPassword; +import org.opendaylight.controller.sal.binding.api.data.DataProviderService; import org.opendaylight.controller.sal.connect.netconf.NetconfDevice; import org.opendaylight.controller.sal.connect.netconf.NetconfDeviceListener; import org.opendaylight.protocol.framework.ReconnectStrategy; import org.opendaylight.protocol.framework.TimedReconnectStrategy; +import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; +import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.inventory.rev140108.NetconfNode; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.model.util.repo.AbstractCachingSchemaSourceProvider; import org.opendaylight.yangtools.yang.model.util.repo.FilesystemSchemaCachingProvider; import org.opendaylight.yangtools.yang.model.util.repo.SchemaSourceProvider; import org.opendaylight.yangtools.yang.model.util.repo.SchemaSourceProviders; import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.net.InetAddresses; - /** * */ @@ -88,6 +91,13 @@ public final class NetconfConnectorModule extends org.opendaylight.controller.co @Override public java.lang.AutoCloseable createInstance() { + ServiceReference serviceReference = bundleContext.getServiceReference(DataProviderService.class); + + DataProviderService dataProviderService = + bundleContext.getService(serviceReference); + + dataProviderService.readOperationalData(InstanceIdentifier.builder( + Nodes.class).child(Node.class).augmentation(NetconfNode.class).build()); getDomRegistryDependency(); NetconfDevice device = new NetconfDevice(getIdentifier().getInstanceName());