use of org.opendaylight.netconf.topology.singleton.messages.netconf.DiscardChangesRequest in project netconf by opendaylight.
the class NetconfDataTreeServiceActor method onReceive.
@Override
public void onReceive(final Object message) {
if (message instanceof GetWithFieldsRequest) {
final GetWithFieldsRequest getRequest = (GetWithFieldsRequest) message;
final YangInstanceIdentifier path = getRequest.getPath();
final ListenableFuture<Optional<NormalizedNode>> future = netconfService.get(getRequest.getPath(), getRequest.getFields());
context().stop(self());
sendResult(future, path, sender(), self());
} else if (message instanceof GetRequest) {
final GetRequest getRequest = (GetRequest) message;
final YangInstanceIdentifier path = getRequest.getPath();
final ListenableFuture<Optional<NormalizedNode>> future = netconfService.get(path);
context().stop(self());
sendResult(future, path, sender(), self());
} else if (message instanceof GetConfigWithFieldsRequest) {
final GetConfigWithFieldsRequest getConfigRequest = (GetConfigWithFieldsRequest) message;
final YangInstanceIdentifier path = getConfigRequest.getPath();
final ListenableFuture<Optional<NormalizedNode>> future = netconfService.getConfig(path, getConfigRequest.getFields());
context().stop(self());
sendResult(future, path, sender(), self());
} else if (message instanceof GetConfigRequest) {
final GetConfigRequest getConfigRequest = (GetConfigRequest) message;
final YangInstanceIdentifier path = getConfigRequest.getPath();
final ListenableFuture<Optional<NormalizedNode>> future = netconfService.getConfig(path);
context().stop(self());
sendResult(future, path, sender(), self());
} else if (message instanceof LockRequest) {
invokeRpcCall(netconfService::lock, sender(), self());
} else if (message instanceof MergeEditConfigRequest) {
final MergeEditConfigRequest request = (MergeEditConfigRequest) message;
netconfService.merge(request.getStore(), request.getNormalizedNodeMessage().getIdentifier(), request.getNormalizedNodeMessage().getNode(), Optional.ofNullable(request.getDefaultOperation()));
} else if (message instanceof ReplaceEditConfigRequest) {
final ReplaceEditConfigRequest request = (ReplaceEditConfigRequest) message;
netconfService.replace(request.getStore(), request.getNormalizedNodeMessage().getIdentifier(), request.getNormalizedNodeMessage().getNode(), Optional.ofNullable(request.getDefaultOperation()));
} else if (message instanceof CreateEditConfigRequest) {
final CreateEditConfigRequest request = (CreateEditConfigRequest) message;
netconfService.create(request.getStore(), request.getNormalizedNodeMessage().getIdentifier(), request.getNormalizedNodeMessage().getNode(), Optional.ofNullable(request.getDefaultOperation()));
} else if (message instanceof DeleteEditConfigRequest) {
final DeleteEditConfigRequest request = (DeleteEditConfigRequest) message;
netconfService.delete(request.getStore(), request.getPath());
} else if (message instanceof RemoveEditConfigRequest) {
final RemoveEditConfigRequest request = (RemoveEditConfigRequest) message;
netconfService.remove(request.getStore(), request.getPath());
} else if (message instanceof CommitRequest) {
submit(sender(), self());
} else if (message instanceof DiscardChangesRequest) {
invokeRpcCall(netconfService::discardChanges, sender(), self());
} else if (message instanceof UnlockRequest) {
context().stop(self());
invokeRpcCall(netconfService::unlock, sender(), self());
} else if (message instanceof ReceiveTimeout) {
LOG.warn("Haven't received any message for {} seconds, cancelling transaction and stopping actor", idleTimeout);
invokeRpcCall(netconfService::discardChanges, sender(), self());
invokeRpcCall(netconfService::unlock, sender(), self());
context().stop(self());
} else {
unhandled(message);
}
}
use of org.opendaylight.netconf.topology.singleton.messages.netconf.DiscardChangesRequest in project netconf by opendaylight.
the class ActorProxyNetconfServiceFacade method discardChanges.
@Override
public ListenableFuture<DOMRpcResult> discardChanges() {
LOG.debug("{}: Discard changes via actor {}", id, masterActor);
final SettableFuture<DOMRpcResult> discardChangesResult = SettableFuture.create();
final Future<Object> future = Patterns.ask(masterActor, new DiscardChangesRequest(), askTimeout);
future.onComplete(new OnComplete<>() {
@Override
public void onComplete(final Throwable failure, final Object response) {
if (failure != null) {
discardChangesResult.setException(failure);
} else if (response instanceof InvokeRpcMessageReply) {
discardChangesResult.set(mapInvokeRpcMessageReplyToDOMRpcResult((InvokeRpcMessageReply) response));
} else {
discardChangesResult.setException(new ClusteringRpcException("Discard changes operation returned unexpected type"));
LOG.error("{}: Discard changes via actor {} returned unexpected type", id, masterActor);
}
}
}, executionContext);
return discardChangesResult;
}
Aggregations