Search in sources :

Example 1 with GetWithFieldsRequest

use of org.opendaylight.netconf.topology.singleton.messages.netconf.GetWithFieldsRequest 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);
    }
}
Also used : GetWithFieldsRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.GetWithFieldsRequest) MergeEditConfigRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.MergeEditConfigRequest) CommitRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.CommitRequest) Optional(java.util.Optional) ReplaceEditConfigRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.ReplaceEditConfigRequest) CreateEditConfigRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.CreateEditConfigRequest) GetConfigRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.GetConfigRequest) DeleteEditConfigRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.DeleteEditConfigRequest) RemoveEditConfigRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.RemoveEditConfigRequest) ReceiveTimeout(akka.actor.ReceiveTimeout) YangInstanceIdentifier(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier) UnlockRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.UnlockRequest) GetConfigWithFieldsRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.GetConfigWithFieldsRequest) GetRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.GetRequest) ListenableFuture(com.google.common.util.concurrent.ListenableFuture) DiscardChangesRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.DiscardChangesRequest) NormalizedNode(org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode) LockRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.LockRequest)

Example 2 with GetWithFieldsRequest

use of org.opendaylight.netconf.topology.singleton.messages.netconf.GetWithFieldsRequest in project netconf by opendaylight.

the class ActorProxyNetconfServiceFacade method get.

@Override
public ListenableFuture<Optional<NormalizedNode>> get(final YangInstanceIdentifier path, final List<YangInstanceIdentifier> fields) {
    LOG.debug("{}: Get {} {} with fields {} via actor {}", id, OPERATIONAL, path, fields, masterActor);
    final Future<Object> future = Patterns.ask(masterActor, new GetWithFieldsRequest(path, fields), askTimeout);
    return read(future, OPERATIONAL, path);
}
Also used : GetWithFieldsRequest(org.opendaylight.netconf.topology.singleton.messages.netconf.GetWithFieldsRequest)

Aggregations

GetWithFieldsRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.GetWithFieldsRequest)2 ReceiveTimeout (akka.actor.ReceiveTimeout)1 ListenableFuture (com.google.common.util.concurrent.ListenableFuture)1 Optional (java.util.Optional)1 CommitRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.CommitRequest)1 CreateEditConfigRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.CreateEditConfigRequest)1 DeleteEditConfigRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.DeleteEditConfigRequest)1 DiscardChangesRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.DiscardChangesRequest)1 GetConfigRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.GetConfigRequest)1 GetConfigWithFieldsRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.GetConfigWithFieldsRequest)1 GetRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.GetRequest)1 LockRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.LockRequest)1 MergeEditConfigRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.MergeEditConfigRequest)1 RemoveEditConfigRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.RemoveEditConfigRequest)1 ReplaceEditConfigRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.ReplaceEditConfigRequest)1 UnlockRequest (org.opendaylight.netconf.topology.singleton.messages.netconf.UnlockRequest)1 YangInstanceIdentifier (org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier)1 NormalizedNode (org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode)1