EntityOwnershipState ownershipState = ownershipStateOpt.get();
if (ownershipState.hasOwner() && !ownershipState.isOwner()) {
ovsdbConnection.registerConnectionListener(cm);
- ovsdbConnection.startOvsdbManager(HwvtepSouthboundConstants.DEFAULT_OVSDB_PORT);
+ ovsdbConnection.startOvsdbManager();
}
}
} catch (CandidateAlreadyRegisteredException e) {
LOG.info("*This* instance of HWVTEP southbound provider is set as a SLAVE instance");
}
ovsdbConnection.registerConnectionListener(cm);
- ovsdbConnection.startOvsdbManager(HwvtepSouthboundConstants.DEFAULT_OVSDB_PORT);
+ ovsdbConnection.startOvsdbManager();
}
private class HwvtepsbPluginInstanceEntityOwnershipListener implements EntityOwnershipListener {
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.Nullable;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
private static Set<OvsdbConnectionListener> connectionListeners = Sets.newHashSet();
private static Map<OvsdbClient, Channel> connections = new ConcurrentHashMap<>();
private static OvsdbConnection connectionService;
- private static volatile boolean singletonCreated = false;
+ private static AtomicBoolean singletonCreated = new AtomicBoolean(false);
private static final int IDLE_READER_TIMEOUT = 30;
private static final int READ_TIMEOUT = 180;
private static final String OVSDB_RPC_TASK_TIMEOUT_PARAM = "ovsdb-rpc-task-timeout";
private static ICertificateManager certManagerSrv = null;
private static int jsonRpcDecoderMaxFrameLength = 100000;
+ private static int listenerPort = 6640;
private static final StalePassiveConnectionService STALE_PASSIVE_CONNECTION_SERVICE =
new StalePassiveConnectionService(executorService);
* be overridden using the ovsdb.listenPort system property.
*/
@Override
- public synchronized boolean startOvsdbManager(final int ovsdbListenPort) {
- if (!singletonCreated) {
+ public synchronized boolean startOvsdbManager() {
+ final int ovsdbListenerPort = this.listenerPort;
+ if (!singletonCreated.getAndSet(true)) {
LOG.info("startOvsdbManager: Starting");
new Thread() {
@Override
public void run() {
- ovsdbManager(ovsdbListenPort);
+ ovsdbManager(ovsdbListenerPort);
}
}.start();
- singletonCreated = true;
return true;
} else {
return false;
@Override
public synchronized boolean startOvsdbManagerWithSsl(final int ovsdbListenPort,
final SSLContext sslContext, String[] protocols, String[] cipherSuites) {
- if (!singletonCreated) {
+ if (!singletonCreated.getAndSet(true)) {
new Thread() {
@Override
public void run() {
ovsdbManagerWithSsl(ovsdbListenPort, sslContext, protocols, cipherSuites);
}
}.start();
- singletonCreated = true;
return true;
} else {
return false;
LOG.info("Json Rpc Decoder Max Frame Length set to : {}", jsonRpcDecoderMaxFrameLength);
}
+ public void setOvsdbListenerPort(int portNumber) {
+ LOG.info("OVSDB port for listening connection is set to : {}", portNumber);
+ listenerPort = portNumber;
+ }
+
public void updateConfigParameter(Map<String, Object> configParameters) {
LOG.debug("Config parameters received : {}", configParameters.entrySet());
if (configParameters != null && !configParameters.isEmpty()) {
or config property is commented out. This will be overridden if user
specify the property in library.cfg file-->
<cm:default-properties>
+ <cm:property name="ovsdb-listener-port" value="6640"/>
<cm:property name="ovsdb-rpc-task-timeout" value="1000"/>
<cm:property name="use-ssl" value="false"/>
<cm:property name="json-rpc-decoder-max-frame-length" value="100000"/>
odl:type="default-certificate-manager"/>
<bean id="library" class="org.opendaylight.ovsdb.lib.impl.OvsdbConnectionService">
+ <property name="ovsdbListenerPort" value="${ovsdb-listener-port}"/>
<property name="ovsdbRpcTaskTimeout" value="${ovsdb-rpc-task-timeout}"/>
<property name="useSsl" value="${use-ssl}"/>
<property name="certificatManager" ref="aaaCertificateManager"/>
EntityOwnershipState ownershipState = ownershipStateOpt.get();
if (ownershipState.hasOwner() && !ownershipState.isOwner()) {
ovsdbConnection.registerConnectionListener(cm);
- ovsdbConnection.startOvsdbManager(SouthboundConstants.DEFAULT_OVSDB_PORT);
+ ovsdbConnection.startOvsdbManager();
LOG.info("*This* instance of OVSDB southbound provider is set as a SLAVE instance");
}
}
LOG.info("*This* instance of OVSDB southbound provider is set as a SLAVE instance");
}
ovsdbConnection.registerConnectionListener(cm);
- ovsdbConnection.startOvsdbManager(SouthboundConstants.DEFAULT_OVSDB_PORT);
+ ovsdbConnection.startOvsdbManager();
}
private class SouthboundPluginInstanceEntityOwnershipListener implements EntityOwnershipListener {