import com.google.common.base.Optional;
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 java.util.concurrent.ExecutionException;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult;
import org.opendaylight.netconf.sal.connect.netconf.util.NetconfBaseOps;
+import org.opendaylight.netconf.sal.connect.netconf.util.NetconfRpcFutureCallback;
import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
import org.opendaylight.yangtools.util.concurrent.MappingCheckedFuture;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
private final NetconfBaseOps netconfOps;
private final RemoteDeviceId id;
- private final FutureCallback<DOMRpcResult> loggingCallback;
public ReadOnlyTx(final NetconfBaseOps netconfOps, final RemoteDeviceId id) {
this.netconfOps = netconfOps;
this.id = id;
-
- // Simple logging callback to log result of read operation
- loggingCallback = new FutureCallback<DOMRpcResult>() {
- @Override
- public void onSuccess(final DOMRpcResult result) {
- if(AbstractWriteTx.isSuccess(result)) {
- LOG.trace("{}: Reading data successful", id);
- } else {
- LOG.warn("{}: Reading data unsuccessful: {}", id, result.getErrors());
- }
-
- }
-
- @Override
- public void onFailure(final Throwable t) {
- LOG.warn("{}: Reading data failed", id, t);
- }
- };
}
private CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> readConfigurationData(
final YangInstanceIdentifier path) {
- final ListenableFuture<Optional<NormalizedNode<?, ?>>> configRunning = netconfOps.getConfigRunningData(loggingCallback, Optional.fromNullable(path));
+ final ListenableFuture<Optional<NormalizedNode<?, ?>>> configRunning = netconfOps.getConfigRunningData(
+ new NetconfRpcFutureCallback("Data read", id), Optional.fromNullable(path));
return MappingCheckedFuture.create(configRunning, ReadFailedException.MAPPER);
}
private CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> readOperationalData(
final YangInstanceIdentifier path) {
- final ListenableFuture<Optional<NormalizedNode<?, ?>>> configCandidate = netconfOps.getData(loggingCallback, Optional.fromNullable(path));
+ final ListenableFuture<Optional<NormalizedNode<?, ?>>> configCandidate = netconfOps.getData(
+ new NetconfRpcFutureCallback("Data read", id), Optional.fromNullable(path));
return MappingCheckedFuture.create(configCandidate, ReadFailedException.MAPPER);
}