Initial clustering feature 50/10550/9
authorEd Warnicke <eaw@cisco.com>
Wed, 27 Aug 2014 21:09:18 +0000 (16:09 -0500)
committerMoiz Raja <moraja@cisco.com>
Thu, 4 Sep 2014 20:51:07 +0000 (13:51 -0700)
commit2cfa8aed573b09cfc6ab6ba9edc02476635b0896
tree07901ff38015a03830e84cb29170c3aa447072ff
parentf71a2c712690ecfd1260543ab58d8e16453f7918
Initial clustering feature

Besides the clustering feature changes a couple of other changes
had to be made to the distributed data store and remote rpc modules
to make the solution work with karaf

1. The akka.conf in sal-clustering-config has now been changed so that
it works in a single node cluster out of the box. Specifically the hostnames
have been set to 127.0.0.1 and the member role has been set to member-1

2. The distributed-data-store and the remote-rpcconnector now load akka
configuration from the configuration/initial folder. The positive thing about
this is that even in a multi-node cluster one does not need to pass the location
of akka.conf on the command line. The negative thing about this is that you
cannot change the location from which the akka configuration can be picked up.
Though this should be ok because we specifically pick modules.conf and
module-shards.conf from the configuration/initial folder as well.

3. The Protobuf bundle has now been wrapped and a Dynamic Import has been
added to it so that it can deserialized specific protocol buffer messages

4. The RestConfProvider was not written to shutdown correctly. While this is
not normally an issue it does become an issue when the clustering feature is
loaded for the first time because in that case the RestConfProvider may need
to be shutdown by the config sub-system

Change-Id: I1701ae8e9508c82779483963fb73b6af91095d7d
Signed-off-by: Ed Warnicke <eaw@cisco.com>
Signed-off-by: Moiz Raja <moraja@cisco.com>
28 files changed:
features/akka/pom.xml [new file with mode: 0644]
features/akka/src/main/resources/features.xml [new file with mode: 0644]
features/mdsal/pom.xml
features/mdsal/src/main/resources/features.xml
features/pom.xml
opendaylight/commons/opendaylight/pom.xml
opendaylight/distribution/opendaylight/pom.xml
opendaylight/md-sal/sal-akka-raft/pom.xml
opendaylight/md-sal/sal-clustering-commons/pom.xml
opendaylight/md-sal/sal-clustering-config/pom.xml
opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/akka.conf
opendaylight/md-sal/sal-distributed-datastore/pom.xml
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ActorSystemFactory.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreFactory.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedConfigDataStoreProviderModule.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedConfigDataStoreProviderModuleFactory.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedOperationalDataStoreProviderModule.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedOperationalDataStoreProviderModuleFactory.java
opendaylight/md-sal/sal-remoterpc-connector/pom.xml
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/ActorSystemFactory.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteRpcProviderFactory.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/utils/AkkaConfigurationReader.java [new file with mode: 0644]
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/utils/DefaultAkkaConfigurationReader.java [new file with mode: 0644]
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/ActorSystemFactoryTest.java
opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/rest/connector/RestConnectorModule.java
opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfProviderImpl.java
opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/streams/websockets/WebSocketServer.java