Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Merge "BUG 2849 : Reduce sending of duplicate replication messages"
[controller.git]
/
opendaylight
/
netconf
/
mdsal-netconf-connector
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
netconf
/
mdsal
/
connector
/
ops
/
get
/
Get.java
diff --git
a/opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/ops/get/Get.java
b/opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/ops/get/Get.java
index cebd8c88837547f0f2d2f573ca0e2e81ed03e67a..1daccd265cc2c094d1617df94a2b1e1951e3508f 100644
(file)
--- a/
opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/ops/get/Get.java
+++ b/
opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/ops/get/Get.java
@@
-16,10
+16,12
@@
import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorSeverity;
import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorTag;
import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorType;
import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorSeverity;
import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorTag;
import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorType;
+import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants;
import org.opendaylight.controller.netconf.mdsal.connector.CurrentSchemaContext;
import org.opendaylight.controller.netconf.mdsal.connector.TransactionProvider;
import org.opendaylight.controller.netconf.mdsal.connector.ops.Datastore;
import org.opendaylight.controller.netconf.util.xml.XmlElement;
import org.opendaylight.controller.netconf.mdsal.connector.CurrentSchemaContext;
import org.opendaylight.controller.netconf.mdsal.connector.TransactionProvider;
import org.opendaylight.controller.netconf.mdsal.connector.ops.Datastore;
import org.opendaylight.controller.netconf.util.xml.XmlElement;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.slf4j.Logger;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.slf4j.Logger;
@@
-32,7
+34,6
@@
public class Get extends AbstractGet {
private static final Logger LOG = LoggerFactory.getLogger(Get.class);
private static final String OPERATION_NAME = "get";
private static final Logger LOG = LoggerFactory.getLogger(Get.class);
private static final String OPERATION_NAME = "get";
-
private final TransactionProvider transactionProvider;
public Get(final String netconfSessionIdForReporting, final CurrentSchemaContext schemaContext, final TransactionProvider transactionProvider) {
private final TransactionProvider transactionProvider;
public Get(final String netconfSessionIdForReporting, final CurrentSchemaContext schemaContext, final TransactionProvider transactionProvider) {
@@
-42,21
+43,24
@@
public class Get extends AbstractGet {
@Override
protected Element handleWithNoSubsequentOperations(Document document, XmlElement operationElement) throws NetconfDocumentedException {
@Override
protected Element handleWithNoSubsequentOperations(Document document, XmlElement operationElement) throws NetconfDocumentedException {
- GetConfigExecution getConfigExecution = null;
- try {
- getConfigExecution = GetConfigExecution.fromXml(operationElement, OPERATION_NAME);
- } catch (final NetconfDocumentedException e) {
- LOG.warn("Get request processing failed on session: {}", getNetconfSessionIdForReporting(), e);
-
throw e
;
+ final Optional<YangInstanceIdentifier> dataRootOptional = getDataRootFromFilter(operationElement);
+ if (!dataRootOptional.isPresent()) {
+
return XmlUtil.createElement(document, XmlNetconfConstants.DATA_KEY, Optional.<String>absent())
;
}
}
- final YangInstanceIdentifier dataRoot = ROOT;
+ final YangInstanceIdentifier dataRoot = dataRootOptional.get();
+
DOMDataReadWriteTransaction rwTx = getTransaction(Datastore.running);
try {
final Optional<NormalizedNode<?, ?>> normalizedNodeOptional = rwTx.read(LogicalDatastoreType.OPERATIONAL, dataRoot).checkedGet();
transactionProvider.abortRunningTransaction(rwTx);
DOMDataReadWriteTransaction rwTx = getTransaction(Datastore.running);
try {
final Optional<NormalizedNode<?, ?>> normalizedNodeOptional = rwTx.read(LogicalDatastoreType.OPERATIONAL, dataRoot).checkedGet();
transactionProvider.abortRunningTransaction(rwTx);
- return (Element) transformNormalizedNode(document, normalizedNodeOptional.get(), dataRoot);
+
+ if (!normalizedNodeOptional.isPresent()) {
+ return XmlUtil.createElement(document, XmlNetconfConstants.DATA_KEY, Optional.<String>absent());
+ }
+
+ return serializeNodeWithParentStructure(document, dataRoot, normalizedNodeOptional.get());
} catch (ReadFailedException e) {
LOG.warn("Unable to read data: {}", dataRoot, e);
throw new IllegalStateException("Unable to read data " + dataRoot, e);
} catch (ReadFailedException e) {
LOG.warn("Unable to read data: {}", dataRoot, e);
throw new IllegalStateException("Unable to read data " + dataRoot, e);