From 8b3e9f0c9d33b0bb04b3e605c1c188b0727a46ca Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 23 Apr 2018 17:28:44 +0200 Subject: [PATCH] Adjust to RPC method signature update Input/Output structures are always present and we need to return ListenableFuture. Also cleans up unneeded use of CheckedFuture, reducing the number of warnings and easing future transition. Change-Id: I517b2e6c930735c544c1582c3027891658c9e452 Signed-off-by: Robert Varga --- .../netconf/NetconfEventSource.java | 12 +-- .../util/NetconfSalKeystoreService.java | 79 +++++++++++-------- .../util/NetconfTopologyRPCProvider.java | 22 +++--- 3 files changed, 64 insertions(+), 49 deletions(-) diff --git a/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java b/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java index cdaa00bc13..0722d8ae01 100644 --- a/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java +++ b/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java @@ -16,6 +16,7 @@ import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; +import com.google.common.util.concurrent.ListenableFuture; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -25,7 +26,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import java.util.concurrent.Future; import java.util.regex.Pattern; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; @@ -44,6 +44,8 @@ import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.even import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventaggregator.rev141202.TopicId; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventaggregator.rev141202.TopicNotification; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventsource.rev141202.DisJoinTopicInput; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventsource.rev141202.DisJoinTopicOutput; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventsource.rev141202.DisJoinTopicOutputBuilder; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventsource.rev141202.JoinTopicInput; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventsource.rev141202.JoinTopicOutput; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventsource.rev141202.JoinTopicOutputBuilder; @@ -149,7 +151,7 @@ public class NetconfEventSource implements EventSource, DOMNotificationListener } @Override - public Future> joinTopic(final JoinTopicInput input) { + public ListenableFuture> joinTopic(final JoinTopicInput input) { LOG.debug("Join topic {} on {}", input.getTopicId().getValue(), mount.getNodeId()); final NotificationPattern notificationPattern = input.getNotificationPattern(); final List matchingNotifications = getMatchingNotifications(notificationPattern); @@ -158,14 +160,14 @@ public class NetconfEventSource implements EventSource, DOMNotificationListener } @Override - public Future> disJoinTopic(final DisJoinTopicInput input) { + public ListenableFuture> disJoinTopic(final DisJoinTopicInput input) { for (NotificationTopicRegistration reg : notificationTopicRegistrations.values()) { reg.unRegisterNotificationTopic(input.getTopicId()); } - return Util.resultRpcSuccessFor((Void) null); + return Util.resultRpcSuccessFor(new DisJoinTopicOutputBuilder().build()); } - private synchronized Future> registerTopic( + private synchronized ListenableFuture> registerTopic( final TopicId topicId, final List notificationsToSubscribe) { Preconditions.checkNotNull(notificationsToSubscribe); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfSalKeystoreService.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfSalKeystoreService.java index 88d8efddee..3c3b733a93 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfSalKeystoreService.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfSalKeystoreService.java @@ -11,10 +11,10 @@ package org.opendaylight.netconf.sal.connect.util; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; import java.util.List; -import java.util.concurrent.Future; import java.util.stream.Collectors; import javax.annotation.Nullable; import org.opendaylight.aaa.encrypt.AAAEncryptionService; @@ -23,14 +23,26 @@ import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddKeystoreEntryInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddKeystoreEntryOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddKeystoreEntryOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddPrivateKeyInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddPrivateKeyOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddPrivateKeyOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddTrustedCertificateInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddTrustedCertificateOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.AddTrustedCertificateOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.Keystore; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.KeystoreBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.NetconfKeystoreService; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.RemoveKeystoreEntryInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.RemoveKeystoreEntryOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.RemoveKeystoreEntryOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.RemovePrivateKeyInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.RemovePrivateKeyOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.RemovePrivateKeyOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.RemoveTrustedCertificateInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.RemoveTrustedCertificateOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.RemoveTrustedCertificateOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017._private.keys.PrivateKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017._private.keys.PrivateKeyKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.keystore.entry.KeyCredential; @@ -80,7 +92,8 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { } @Override - public Future> removeKeystoreEntry(final RemoveKeystoreEntryInput input) { + public ListenableFuture> removeKeystoreEntry( + final RemoveKeystoreEntryInput input) { LOG.debug("Removing keypairs: {}", input); final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); @@ -91,15 +104,14 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { keystoreIid.child(KeyCredential.class, new KeyCredentialKey(id))); } - final SettableFuture> rpcResult = SettableFuture.create(); + final SettableFuture> rpcResult = SettableFuture.create(); - final CheckedFuture submit = writeTransaction.submit(); + final ListenableFuture submit = writeTransaction.submit(); Futures.addCallback(submit, new FutureCallback() { @Override public void onSuccess(@Nullable final Void result) { LOG.debug("remove-key-pair success. Input: {}"); - final RpcResult success = RpcResultBuilder.success().build(); - rpcResult.set(success); + rpcResult.set(RpcResultBuilder.success(new RemoveKeystoreEntryOutputBuilder().build()).build()); } @Override @@ -113,7 +125,7 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { } @Override - public Future> addKeystoreEntry(final AddKeystoreEntryInput input) { + public ListenableFuture> addKeystoreEntry(final AddKeystoreEntryInput input) { LOG.debug("Adding keypairs: {}", input); final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); @@ -128,15 +140,14 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { keystoreIid.child(KeyCredential.class, keypair.getKey()), keypair); } - final SettableFuture> rpcResult = SettableFuture.create(); + final SettableFuture> rpcResult = SettableFuture.create(); - final CheckedFuture submit = writeTransaction.submit(); + final ListenableFuture submit = writeTransaction.submit(); Futures.addCallback(submit, new FutureCallback() { @Override public void onSuccess(@Nullable final Void result) { LOG.debug("add-key-pair success. Input: {}"); - final RpcResult success = RpcResultBuilder.success().build(); - rpcResult.set(success); + rpcResult.set(RpcResultBuilder.success(new AddKeystoreEntryOutputBuilder().build()).build()); } @Override @@ -150,7 +161,8 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { } @Override - public Future> addTrustedCertificate(AddTrustedCertificateInput input) { + public ListenableFuture> addTrustedCertificate( + final AddTrustedCertificateInput input) { final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); for (TrustedCertificate certificate : input.getTrustedCertificate()) { @@ -158,15 +170,14 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { keystoreIid.child(TrustedCertificate.class, certificate.getKey()), certificate); } - final SettableFuture> rpcResult = SettableFuture.create(); + final SettableFuture> rpcResult = SettableFuture.create(); - final CheckedFuture submit = writeTransaction.submit(); + final ListenableFuture submit = writeTransaction.submit(); Futures.addCallback(submit, new FutureCallback() { @Override - public void onSuccess(@Nullable Void result) { + public void onSuccess(@Nullable final Void result) { LOG.debug("add-trusted-certificate success. Input: {}", input); - final RpcResult success = RpcResultBuilder.success().build(); - rpcResult.set(success); + rpcResult.set(RpcResultBuilder.success(new AddTrustedCertificateOutputBuilder().build()).build()); } @Override @@ -180,7 +191,8 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { } @Override - public Future> removeTrustedCertificate(RemoveTrustedCertificateInput input) { + public ListenableFuture> removeTrustedCertificate( + final RemoveTrustedCertificateInput input) { final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); final List names = input.getName(); @@ -189,15 +201,14 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { keystoreIid.child(TrustedCertificate.class, new TrustedCertificateKey(name))); } - final SettableFuture> rpcResult = SettableFuture.create(); + final SettableFuture> rpcResult = SettableFuture.create(); - final CheckedFuture submit = writeTransaction.submit(); + final ListenableFuture submit = writeTransaction.submit(); Futures.addCallback(submit, new FutureCallback() { @Override - public void onSuccess(@Nullable Void result) { + public void onSuccess(@Nullable final Void result) { LOG.debug("remove-trusted-certificate success. Input: {}", input); - final RpcResult success = RpcResultBuilder.success().build(); - rpcResult.set(success); + rpcResult.set(RpcResultBuilder.success(new RemoveTrustedCertificateOutputBuilder().build()).build()); } @Override @@ -211,7 +222,7 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { } @Override - public Future> addPrivateKey(AddPrivateKeyInput input) { + public ListenableFuture> addPrivateKey(final AddPrivateKeyInput input) { final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); for (PrivateKey key: input.getPrivateKey()) { @@ -219,15 +230,14 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { keystoreIid.child(PrivateKey.class, key.getKey()), key); } - final SettableFuture> rpcResult = SettableFuture.create(); + final SettableFuture> rpcResult = SettableFuture.create(); - final CheckedFuture submit = writeTransaction.submit(); + final ListenableFuture submit = writeTransaction.submit(); Futures.addCallback(submit, new FutureCallback() { @Override - public void onSuccess(@Nullable Void result) { + public void onSuccess(@Nullable final Void result) { LOG.debug("add-private-key success. Input: {}", input); - final RpcResult success = RpcResultBuilder.success().build(); - rpcResult.set(success); + rpcResult.set(RpcResultBuilder.success(new AddPrivateKeyOutputBuilder().build()).build()); } @Override @@ -241,7 +251,7 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { } @Override - public Future> removePrivateKey(RemovePrivateKeyInput input) { + public ListenableFuture> removePrivateKey(final RemovePrivateKeyInput input) { final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); final List names = input.getName(); @@ -250,15 +260,14 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { keystoreIid.child(PrivateKey.class, new PrivateKeyKey(name))); } - final SettableFuture> rpcResult = SettableFuture.create(); + final SettableFuture> rpcResult = SettableFuture.create(); - final CheckedFuture submit = writeTransaction.submit(); + final ListenableFuture submit = writeTransaction.submit(); Futures.addCallback(submit, new FutureCallback() { @Override - public void onSuccess(@Nullable Void result) { + public void onSuccess(@Nullable final Void result) { LOG.debug("remove-private-key success. Input: {}", input); - final RpcResult success = RpcResultBuilder.success().build(); - rpcResult.set(success); + rpcResult.set(RpcResultBuilder.success(new RemovePrivateKeyOutputBuilder().build()).build()); } @Override diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProvider.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProvider.java index 0c5810aa1e..1683a35f2d 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProvider.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProvider.java @@ -14,13 +14,16 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; -import java.util.concurrent.Future; import org.opendaylight.aaa.encrypt.AAAEncryptionService; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.DeleteDeviceInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.DeleteDeviceOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.DeleteDeviceOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeTopologyService; @@ -43,10 +46,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService { + private static final Logger LOG = LoggerFactory.getLogger(NetconfTopologyRPCProvider.class); + private final AAAEncryptionService encryptionService; private final DataBroker dataBroker; private final String topologyId; - private static final Logger LOG = LoggerFactory.getLogger(NetconfTopologyRPCProvider.class); public NetconfTopologyRPCProvider(final DataBroker dataBroker, final AAAEncryptionService encryptionService, @@ -57,9 +61,9 @@ public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService { } @Override - public Future> createDevice(final CreateDeviceInput input) { + public ListenableFuture> createDevice(final CreateDeviceInput input) { final NetconfNode node = this.encryptPassword(input); - final SettableFuture> futureResult = SettableFuture.create(); + final SettableFuture> futureResult = SettableFuture.create(); final NodeId nodeId = new NodeId(input.getNodeId()); writeToConfigDS(node, nodeId, futureResult); return futureResult; @@ -92,7 +96,7 @@ public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService { } private void writeToConfigDS(final NetconfNode node, final NodeId nodeId, - final SettableFuture> futureResult) { + final SettableFuture> futureResult) { final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); final InstanceIdentifier networkTopologyId = @@ -107,7 +111,7 @@ public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService { @Override public void onSuccess(final Void result) { LOG.info("add-netconf-node RPC: Added netconf node successfully."); - futureResult.set(RpcResultBuilder.success().build()); + futureResult.set(RpcResultBuilder.success(new CreateDeviceOutputBuilder().build()).build()); } @Override @@ -120,7 +124,7 @@ public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService { @Override - public Future> deleteDevice(final DeleteDeviceInput input) { + public ListenableFuture> deleteDevice(final DeleteDeviceInput input) { final NodeId nodeId = new NodeId(input.getNodeId()); final InstanceIdentifier networkTopologyId = @@ -133,14 +137,14 @@ public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService { wtx.delete(LogicalDatastoreType.CONFIGURATION, niid); final ListenableFuture future = wtx.submit(); - final SettableFuture> rpcFuture = SettableFuture.create(); + final SettableFuture> rpcFuture = SettableFuture.create(); Futures.addCallback(future, new FutureCallback() { @Override public void onSuccess(final Void result) { LOG.info("delete-device RPC: Removed netconf node successfully."); - rpcFuture.set(RpcResultBuilder.success().build()); + rpcFuture.set(RpcResultBuilder.success(new DeleteDeviceOutputBuilder().build()).build()); } @Override -- 2.36.6