Deprecate ask-based protocol messages Since we have removed the ask-based client, we really have no way of testing ask-based messages' interaction with Shard. We keep Shard compatible, but deprecate all ask-based messages and methods/classes dealing with them on the backend. JIRA: CONTROLLER-2054 Change-Id: I5764713b686ae11f8d750e691576b6d20637ab7d Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Migrate users of Optional.get() We have an incoming enforcement patch, prepare to adopt it. Change-Id: If73abd4ceaea71a216a4bc3a3968b400b508ec38 Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Remove commons-lang dependencies Use commons-lang3 instead, as it provides better interface anyway. Change-Id: I8574166cf77f8f40c9a2ada4b06cc0d8b14244a9 Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Assert payload serialized size We want to be in control over the size of our serialization, make sure to add assertions. JIRA: CONTROLLER-2051 JIRA: CONTROLLER-2056 Change-Id: I72957eaf284bfd5498cfdb11301239ac50d612f1 Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Do not reference immutable node builders Use Builders/ImmutableNodes instead of direct implementation reference. Also use fluent nature of builders, which flushes out a number of unused constructs, which we remove here. Change-Id: I8803da6a244f4f4dceaf4da06934b0f8df24b827 Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Bump upstream SNAPSHOTS Adopt: - odlparent-10.0.0 - yangtools-8.0.0-SNAPSHOT - mdsal-9.0.0-SNAPSHOT Change-Id: I60991718a6d1ef6f108c2b1f7b2c09b0c5f973c4 Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Remove support for pre-Sodium SR1 peers The messages exchanged between cluster participants are versioned to maintain backwards compatibility. Trim how far back we can go to Sodium SR1 -- breaking compatibility with Boron, Fluorine and Neon SR2 software. JIRA: CONTROLLER-1985 Change-Id: I11ba4041242650bc3ad70da3f4b2869df0ca5ceb Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Bump odlparent/yangtools/mdsal Adopt latest versions, namely; - odlparent-9.0.1 - yangtools-7.0.1 - mdsal-8.0.0-SNAPSHOT There are a few adjustments needed, which mostly deal with the interface to NormalizedNode. Change-Id: I918fb885a6df62e16e17119a7e04ba1672ef7c39 Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Align tested boolean/Boolean expectations This patch removes implicit boxing/unboxing by aligning boolean/Boolean expectations. Future<Boolean>.get() will return a Boolean, hence use assertEquals() for these (and Optional<Boolean>). Doing that instead of assertTrue()/assertFalse() eliminates a single Eclipse info-level message about Boolean being unboxes. This also has better behavior: if the tested method returns null, we'll get an assertion failure instead of a NPE. For isPersent() and other methods which return a boolean, use assertTrue() or assertFalse(). Doing that instead of assertEquals() eliminates two Eclipse info-level messages about boxing the two arguments to Boolean, for some reason there is no assertEquals(boolean, boolean). Change-Id: If86ef9fb1ecf4cdceb45bc079bba1a86cff311ac Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Fix shard deadlock in 3 nodes JIRA: CONTROLLER-1836 Change-Id: I10a9cb43bcdb35f66abebb054f37c05e7fda54e7 Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
Remove DataChangeListener and friends AsyncDataChangeEvent is being kept for now as ovsdb still independently uses it internally. JIRA: TSC-112 Change-Id: Ia68ac1cdf31dec3645f675442db14b7697d63b64 Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
Migrate test to use javadsl.TestKit Forward-porting of this patch missed the need to change to new TestKit instead of legacy JavaTestKit. Fix that. Change-Id: Ic7bc6edae198c785ca4473eeff83cdbc516c8d2e Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Fix ReadyLocalTransactionSerializer The following exception was seen in the field: 2017-12-20 19:37:05,507 | ERROR | ult-dispatcher-2 | Remoting | 174 - com.typesafe.akka.slf4j - 2.4.7 | java.lang.ClassNotFoundException: org.opendaylight.controller.cluster.datastore.messages.BatchedModifications org.apache.commons.lang3.SerializationException: java.lang.ClassNotFoundException: org.opendaylight.controller.cluster.datastore.messages.BatchedModifications at org.apache.commons.lang3.SerializationUtils.deserialize(SerializationUtils.java:229) at org.apache.commons.lang3.SerializationUtils.deserialize(SerializationUtils.java:267) at org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransactionSerializer.fromBinaryJava(ReadyLocalTransactionSerializer.java:49) at akka.serialization.JSerializer.fromBinary(Serializer.scala:177) at akka.serialization.Serialization$$anonfun$deserialize$2.apply(Serialization.scala:124) at scala.util.Try$.apply(Try.scala:192) at akka.serialization.Serialization.deserialize(Serialization.scala:114) at akka.remote.serialization.MessageContainerSerializer.fromBinary(MessageContainerSerializer.scala:80) at akka.serialization.Serialization$$anonfun$deserialize$2.apply(Serialization.scala:124) at scala.util.Try$.apply(Try.scala:192) at akka.serialization.Serialization.deserialize(Serialization.scala:114) at akka.remote.MessageSerializer$.deserialize(MessageSerializer.scala:24) at akka.remote.DefaultMessageDispatcher.payload$lzycompute$1(Endpoint.scala:60) at akka.remote.DefaultMessageDispatcher.payload$1(Endpoint.scala:60) at akka.remote.DefaultMessageDispatcher.dispatch(Endpoint.scala:78) at akka.remote.EndpointReader$$anonfun$receive$2.applyOrElse(Endpoint.scala:978) at akka.actor.Actor$class.aroundReceive(Actor.scala:484) at akka.remote.EndpointActor.aroundReceive(Endpoint.scala:447) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526) at akka.actor.ActorCell.invoke(ActorCell.scala:495) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) at akka.dispatch.Mailbox.run(Mailbox.scala:224) at akka.dispatch.Mailbox.exec(Mailbox.scala:234) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) Caused by: java.lang.ClassNotFoundException: org.opendaylight.controller.cluster.datastore.messages.BatchedModifications at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:683) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1863) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428) at org.apache.commons.lang3.SerializationUtils.deserialize(SerializationUtils.java:223) ... 26 more As it turns out, ReadyLocalTransactionSerializer is not following JSerializer documentation recommendations of loading classes via ExtendedActorSystem. Change-Id: Idef62f8c7a50d607ef152083693fac63c7e92447 Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Adjust to yangtools-2.0.0 changes Change-Id: Ib86747e5ed19c0c00bb46b8d7e4936f4d90c4364 Signed-off-by: Robert Varga <robert.varga@pantheon.tech> Signed-off-by: Stephen Kitt <skitt@redhat.com>
Remove deprecated Snapshot and related code Carbon will create a new snapshot when it encounters a pre-Carbon Snapshot so we can remove the pre-Carbon Snapshot and related code. Change-Id: Iae5f140aadb458eaa59ea4cc8be6054bbde090e4 Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
Fix test warnings This fixes most raw type warnings. Change-Id: Iaec02aa9f40df6d04b9f1bfa7045c84b6cc40a53 Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Fix checkstyle problems not detected by the current version This change is required for overall move to new Checkstyle version, see https://git.opendaylight.org/gerrit/#/q/topic:bumpCheckstyle Most of the changes are redundant "final" modifiers. Change-Id: I637dd46617ca144f0ed33bd705c6357493b887fe Signed-off-by: David <david.suarez.fuentes@ericsson.com>
BUG-2138: Create DistributedShardFrontend Use the abstract shard implementations from md-sal to create a frontend implementation of a cds shard that forwards requests to backend shards via DistributedDatastoreClient. Change-Id: I7a3485f414368728e71ab2746c84d7a0f83f1436 Signed-off-by: Tomas Cere <tcere@cisco.com>
Bug 7521: Convert byte[] to ShardManagerSnapshot in DatastoreSnapshot Created a new ShardManagerSnapshot class in the persisted package which is now stored in the DatastoreSnapshot in lieu of a serialized byte[]. The previous ShardManagerSnapshot class was deprecated and readResolves to the new class. Change-Id: I1ae363e9711cf3bef6b6dd6257fa56bd41465bf3 Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
Bug 7521: Convert DatastoreSnapshot.ShardSnapshot to store Snapshot Converted the new DatastoreSnapshot.ShardSnapshot class to store a Snapshot instance instead of a serialized byte[] so the Snapshot can be serialized directly to the file when saved. The prior DatastoreSnapshotList was deprecated and readResolves to the new DatastoreSnapshotList. Change-Id: I656eca93bfed07ae99055c67cc3f195b25ea2b11 Signed-off-by: Tom Pantelis <tpanteli@brocade.com>