From 8e7a3d34561301c04f0c727eaea47cbbc915a10d Mon Sep 17 00:00:00 2001 From: Martin Bobak Date: Wed, 4 Dec 2013 15:09:42 +0100 Subject: [PATCH] client IP/port definition in configuration separation new netconf.client properties added to integration tests Change-Id: Ic9517d19ec00b8656c29528903d538d32674a5e9 Signed-off-by: Martin Bobak --- .../main/resources/configuration/config.ini | 3 ++ .../test/sal/binding/it/TestHelper.java | 2 + .../it/ServiceProviderController.java | 3 ++ .../impl/osgi/ConfigPersisterActivator.java | 2 +- .../impl/osgi/NetconfImplActivator.java | 3 +- .../netconf/osgi/NetconfSSHActivator.java | 3 +- .../netconf/util/osgi/NetconfConfigUtil.java | 39 +++++++++++++------ 7 files changed, 40 insertions(+), 15 deletions(-) diff --git a/opendaylight/distribution/opendaylight/src/main/resources/configuration/config.ini b/opendaylight/distribution/opendaylight/src/main/resources/configuration/config.ini index b9b9c7337d..7d57e6005e 100644 --- a/opendaylight/distribution/opendaylight/src/main/resources/configuration/config.ini +++ b/opendaylight/distribution/opendaylight/src/main/resources/configuration/config.ini @@ -17,6 +17,9 @@ osgi.bundles=\ netconf.tcp.address=0.0.0.0 netconf.tcp.port=8383 +netconf.tcp.client.address=127.0.0.1 +netconf.tcp.client.port=8383 + netconf.ssh.address=0.0.0.0 netconf.ssh.port=1830 diff --git a/opendaylight/md-sal/sal-binding-it/src/main/java/org/opendaylight/controller/test/sal/binding/it/TestHelper.java b/opendaylight/md-sal/sal-binding-it/src/main/java/org/opendaylight/controller/test/sal/binding/it/TestHelper.java index 4ef9d80b02..49781ce116 100644 --- a/opendaylight/md-sal/sal-binding-it/src/main/java/org/opendaylight/controller/test/sal/binding/it/TestHelper.java +++ b/opendaylight/md-sal/sal-binding-it/src/main/java/org/opendaylight/controller/test/sal/binding/it/TestHelper.java @@ -111,6 +111,8 @@ public class TestHelper { systemProperty("netconf.tcp.address").value("0.0.0.0"), // systemProperty("netconf.tcp.port").value("18383"), // + systemProperty("netconf.tcp.client.address").value("127.0.0.1"), // + systemProperty("netconf.tcp.client.port").value("18383"), // systemProperty("netconf.config.persister.active").value("1"), // systemProperty("netconf.config.persister.1.storageAdapterClass").value( "org.opendaylight.controller.config.persist.storage.file.FileStorageAdapter"), // diff --git a/opendaylight/md-sal/test/sal-rest-connector-it/src/test/java/org/opendaylight/controller/test/restconf/it/ServiceProviderController.java b/opendaylight/md-sal/test/sal-rest-connector-it/src/test/java/org/opendaylight/controller/test/restconf/it/ServiceProviderController.java index 41ae52b3bf..fda1e264e6 100644 --- a/opendaylight/md-sal/test/sal-rest-connector-it/src/test/java/org/opendaylight/controller/test/restconf/it/ServiceProviderController.java +++ b/opendaylight/md-sal/test/sal-rest-connector-it/src/test/java/org/opendaylight/controller/test/restconf/it/ServiceProviderController.java @@ -151,6 +151,9 @@ public class ServiceProviderController { systemProperty("netconf.tcp.address").value("127.0.0.1"), systemProperty("netconf.tcp.port").value("8383"), + systemProperty("netconf.tcp.client.address").value("127.0.0.1"), + systemProperty("netconf.tcp.client.port").value("8383"), + // Set the systemPackages (used by clustering) systemPackages("sun.reflect", "sun.reflect.misc", "sun.misc"), diff --git a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterActivator.java b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterActivator.java index 5fa0b49d7b..e7916c2d5f 100644 --- a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterActivator.java +++ b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterActivator.java @@ -53,7 +53,7 @@ public class ConfigPersisterActivator implements BundleActivator { PersisterAggregator persister = PersisterAggregator.createFromProperties(propertiesProvider); InetSocketAddress address = NetconfConfigUtil.extractTCPNetconfAddress(context, - "Netconf is not configured, persister is not operational"); + "Netconf is not configured, persister is not operational",true); configPersisterNotificationHandler = new ConfigPersisterNotificationHandler(persister, address, platformMBeanServer, ignoredMissingCapabilityRegex); diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfImplActivator.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfImplActivator.java index 1d18f063bc..b30c80b43d 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfImplActivator.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfImplActivator.java @@ -34,7 +34,8 @@ public class NetconfImplActivator implements BundleActivator { @Override public void start(final BundleContext context) throws Exception { - InetSocketAddress address = NetconfConfigUtil.extractTCPNetconfAddress(context, "TCP is not configured, netconf not available."); + InetSocketAddress address = NetconfConfigUtil.extractTCPNetconfAddress(context, + "TCP is not configured, netconf not available.", false); NetconfOperationServiceFactoryListenerImpl factoriesListener = new NetconfOperationServiceFactoryListenerImpl(); factoriesTracker = new NetconfOperationServiceFactoryTracker(context, factoriesListener); diff --git a/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/osgi/NetconfSSHActivator.java b/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/osgi/NetconfSSHActivator.java index 6f164f93d9..b91824866a 100644 --- a/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/osgi/NetconfSSHActivator.java +++ b/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/osgi/NetconfSSHActivator.java @@ -38,7 +38,8 @@ public class NetconfSSHActivator implements BundleActivator{ logger.trace("Starting netconf SSH bridge."); Optional sshSocketAddressOptional = NetconfConfigUtil.extractSSHNetconfAddress(context,EXCEPTION_MESSAGE); - InetSocketAddress tcpSocketAddress = NetconfConfigUtil.extractTCPNetconfAddress(context,EXCEPTION_MESSAGE); + InetSocketAddress tcpSocketAddress = NetconfConfigUtil.extractTCPNetconfAddress(context, + EXCEPTION_MESSAGE, true); if (sshSocketAddressOptional.isPresent()){ server = NetconfSSHServer.start(sshSocketAddressOptional.get().getPort(),tcpSocketAddress); diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/osgi/NetconfConfigUtil.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/osgi/NetconfConfigUtil.java index b1d902d634..987708d67e 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/osgi/NetconfConfigUtil.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/osgi/NetconfConfigUtil.java @@ -8,12 +8,12 @@ package org.opendaylight.controller.netconf.util.osgi; -import com.google.common.base.Optional; -import java.net.InetSocketAddress; -import org.osgi.framework.BundleContext; -import static com.google.common.base.Preconditions.checkNotNull; + import com.google.common.base.Optional; + import java.net.InetSocketAddress; + import org.osgi.framework.BundleContext; + import static com.google.common.base.Preconditions.checkNotNull; - public class NetconfConfigUtil { +public class NetconfConfigUtil { private static final String PREFIX_PROP = "netconf."; private enum InfixProp { @@ -22,10 +22,11 @@ import static com.google.common.base.Preconditions.checkNotNull; private static final String PORT_SUFFIX_PROP = ".port"; private static final String ADDRESS_SUFFIX_PROP = ".address"; + private static final String CLIENT_PROP = ".client"; - public static InetSocketAddress extractTCPNetconfAddress(BundleContext context, String exceptionMessageIfNotFound) { + public static InetSocketAddress extractTCPNetconfAddress(BundleContext context, String exceptionMessageIfNotFound, boolean forClient) { - Optional inetSocketAddressOptional = extractSomeNetconfAddress(context, InfixProp.tcp, exceptionMessageIfNotFound); + Optional inetSocketAddressOptional = extractSomeNetconfAddress(context, InfixProp.tcp, exceptionMessageIfNotFound, forClient); if (inetSocketAddressOptional.isPresent() == false) { throw new IllegalStateException("Netconf tcp address not found." + exceptionMessageIfNotFound); @@ -34,7 +35,7 @@ import static com.google.common.base.Preconditions.checkNotNull; } public static Optional extractSSHNetconfAddress(BundleContext context, String exceptionMessage) { - return extractSomeNetconfAddress(context, InfixProp.ssh, exceptionMessage); + return extractSomeNetconfAddress(context, InfixProp.ssh, exceptionMessage, false); } /** @@ -47,14 +48,28 @@ import static com.google.common.base.Preconditions.checkNotNull; * if address or port are invalid, or configuration is missing */ private static Optional extractSomeNetconfAddress(BundleContext context, - InfixProp infixProp, String exceptionMessage) { - String address = context.getProperty(PREFIX_PROP + infixProp + ADDRESS_SUFFIX_PROP); - if (address == null) { + InfixProp infixProp, + String exceptionMessage, + boolean client) { + String address = ""; + if (client) { + address = context.getProperty(PREFIX_PROP + infixProp + CLIENT_PROP + ADDRESS_SUFFIX_PROP); + } + if (address == null || address.equals("")){ + address = context.getProperty(PREFIX_PROP + infixProp + ADDRESS_SUFFIX_PROP); + } + if (address == null || address.equals("")) { throw new IllegalStateException("Cannot find initial netconf configuration for parameter " +PREFIX_PROP + infixProp + ADDRESS_SUFFIX_PROP +" in config.ini. "+exceptionMessage); } - String portKey = PREFIX_PROP + infixProp + PORT_SUFFIX_PROP; + String portKey = ""; + if (client) { + portKey = PREFIX_PROP + infixProp + CLIENT_PROP + PORT_SUFFIX_PROP; + } + if (portKey == null || portKey.equals("")){ + portKey = PREFIX_PROP + infixProp + PORT_SUFFIX_PROP; + } String portString = context.getProperty(portKey); checkNotNull(portString, "Netconf port must be specified in properties file with " + portKey); try { -- 2.36.6