use of org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams in project netconf by opendaylight.
the class CreateSubscription method handleWithNoSubsequentOperations.
@Override
protected Element handleWithNoSubsequentOperations(final Document document, final XmlElement operationElement) throws DocumentedException {
operationElement.checkName(CREATE_SUBSCRIPTION);
operationElement.checkNamespace(CreateSubscriptionInput.QNAME.getNamespace().toString());
// FIXME reimplement using CODEC_REGISTRY and parse everything into generated class instance
// Binding doesn't support anyxml nodes yet, so filter could not be retrieved
// xml -> normalized node -> CreateSubscriptionInput conversion could be slower than current approach
final Optional<XmlElement> filter = operationElement.getOnlyChildElementWithSameNamespaceOptionally("filter");
// Replay not supported
final Optional<XmlElement> startTime = operationElement.getOnlyChildElementWithSameNamespaceOptionally("startTime");
checkArgument(startTime.isEmpty(), "StartTime element not yet supported");
// Stop time not supported
final Optional<XmlElement> stopTime = operationElement.getOnlyChildElementWithSameNamespaceOptionally("stopTime");
checkArgument(stopTime.isEmpty(), "StopTime element not yet supported");
final StreamNameType streamNameType = parseStreamIfPresent(operationElement);
requireNonNull(netconfSession);
// Premature streams are allowed (meaning listener can register even if no provider is available yet)
if (!notifications.isStreamAvailable(streamNameType)) {
LOG.warn("Registering premature stream {}. No publisher available yet for session {}", streamNameType, getNetconfSessionIdForReporting());
}
final NotificationListenerRegistration notificationListenerRegistration = notifications.registerNotificationListener(streamNameType, new NotificationSubscription(netconfSession, filter));
subscriptions.add(notificationListenerRegistration);
return document.createElement(XmlNetconfConstants.OK);
}
use of org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams in project netconf by opendaylight.
the class NotificationToMdsalWriter method close.
@Override
public void close() {
final WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
tx.delete(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Netconf.class));
tx.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
public void onSuccess(final CommitInfo info) {
LOG.debug("Streams cleared successfully");
}
@Override
public void onFailure(final Throwable throwable) {
LOG.warn("Unable to clear streams", throwable);
}
}, MoreExecutors.directExecutor());
notificationRegistration.close();
}
Aggregations