X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Fconnect%2Futil%2FNetconfSalKeystoreService.java;h=6608f21e6e9db92ccc1b6123085b7eab3639c4bb;hb=7e1c9a3ba9211a98027bd9da7dc84a4b2136eb84;hp=88d8efddee4d1f261a2c9cc0b36eaa1b2040f7f0;hpb=0aa5fcbdb5cc193fee432a3320d9839595363e74;p=netconf.git 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..6608f21e6e 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 @@ -5,32 +5,41 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - 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.concurrent.ExecutionException; import java.util.stream.Collectors; -import javax.annotation.Nullable; 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.controller.md.sal.common.api.data.TransactionCommitFailedException; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; 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; @@ -69,18 +78,17 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, keystoreIid, keystore); - final CheckedFuture submit = writeTransaction.submit(); - try { - submit.checkedGet(); + writeTransaction.commit().get(); LOG.debug("init keystore done"); - } catch (TransactionCommitFailedException exception) { + } catch (InterruptedException | ExecutionException exception) { LOG.error("Unable to initialize Netconf key-pair store.", exception); } } @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 +99,13 @@ 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(); - Futures.addCallback(submit, new FutureCallback() { + writeTransaction.commit().addCallback(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); + public void onSuccess(final CommitInfo result) { + LOG.debug("remove-key-pair success. Input: {}", input); + rpcResult.set(RpcResultBuilder.success(new RemoveKeystoreEntryOutputBuilder().build()).build()); } @Override @@ -113,7 +119,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(); @@ -125,18 +131,16 @@ public class NetconfSalKeystoreService implements NetconfKeystoreService { for (KeyCredential keypair : keypairs) { writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, - keystoreIid.child(KeyCredential.class, keypair.getKey()), keypair); + keystoreIid.child(KeyCredential.class, keypair.key()), keypair); } - final SettableFuture> rpcResult = SettableFuture.create(); + final SettableFuture> rpcResult = SettableFuture.create(); - final CheckedFuture submit = writeTransaction.submit(); - Futures.addCallback(submit, new FutureCallback() { + writeTransaction.commit().addCallback(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); + public void onSuccess(final CommitInfo result) { + LOG.debug("add-key-pair success. Input: {}", input); + rpcResult.set(RpcResultBuilder.success(new AddKeystoreEntryOutputBuilder().build()).build()); } @Override @@ -150,23 +154,22 @@ 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()) { writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, - keystoreIid.child(TrustedCertificate.class, certificate.getKey()), certificate); + keystoreIid.child(TrustedCertificate.class, certificate.key()), certificate); } - final SettableFuture> rpcResult = SettableFuture.create(); + final SettableFuture> rpcResult = SettableFuture.create(); - final CheckedFuture submit = writeTransaction.submit(); - Futures.addCallback(submit, new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable Void result) { + public void onSuccess(final CommitInfo 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 +183,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 +193,13 @@ 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(); - Futures.addCallback(submit, new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable Void result) { + public void onSuccess(final CommitInfo 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,23 +213,21 @@ 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()) { writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, - keystoreIid.child(PrivateKey.class, key.getKey()), key); + keystoreIid.child(PrivateKey.class, key.key()), key); } - final SettableFuture> rpcResult = SettableFuture.create(); + final SettableFuture> rpcResult = SettableFuture.create(); - final CheckedFuture submit = writeTransaction.submit(); - Futures.addCallback(submit, new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable Void result) { + public void onSuccess(final CommitInfo 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 +241,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 +250,13 @@ 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(); - Futures.addCallback(submit, new FutureCallback() { + writeTransaction.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(@Nullable Void result) { + public void onSuccess(final CommitInfo 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