Changed mount point URI decoding in restconf
[controller.git] / opendaylight / md-sal / sal-rest-connector / src / main / java / org / opendaylight / controller / sal / restconf / impl / BrokerFacade.xtend
index 343601865d80bfeaf3ca5899bdb59c08cee25041..c57505829c5bde05dffbfda95ad8d21c3ac1ba26 100644 (file)
@@ -10,6 +10,7 @@ import org.opendaylight.yangtools.yang.common.RpcResult
 import org.opendaylight.yangtools.yang.data.api.CompositeNode
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier
 import org.slf4j.LoggerFactory
+import org.opendaylight.controller.sal.core.api.mount.MountInstance
 
 class BrokerFacade implements DataReader<InstanceIdentifier, CompositeNode> {
 
@@ -44,12 +45,24 @@ class BrokerFacade implements DataReader<InstanceIdentifier, CompositeNode> {
         LOG.info("Read Configuration via Restconf: {}", path)
         return dataService.readConfigurationData(path);
     }
+    
+    def readConfigurationDataBehindMountPoint(MountInstance mountPoint, InstanceIdentifier path) {
+        checkPreconditions
+        LOG.info("Read Configuration via Restconf: {}", path)
+        return mountPoint.readConfigurationData(path);
+    }
 
     override readOperationalData(InstanceIdentifier path) {
         checkPreconditions
         LOG.info("Read Operational via Restconf: {}", path)
         return dataService.readOperationalData(path);
     }
+    
+    def readOperationalDataBehindMountPoint(MountInstance mountPoint, InstanceIdentifier path) {
+        checkPreconditions
+        LOG.info("Read Operational via Restconf: {}", path)
+        return mountPoint.readOperationalData(path);
+    }
 
     def RpcResult<CompositeNode> invokeRpc(QName type, CompositeNode payload) {
         checkPreconditions
@@ -64,6 +77,14 @@ class BrokerFacade implements DataReader<InstanceIdentifier, CompositeNode> {
         transaction.putConfigurationData(path, payload);
         return transaction.commit
     }
+    
+    def commitConfigurationDataPutBehindMountPoint(MountInstance mountPoint, InstanceIdentifier path, CompositeNode payload) {
+        checkPreconditions
+        val transaction = mountPoint.beginTransaction;
+        LOG.info("Put Configuration via Restconf: {}", path)
+        transaction.putConfigurationData(path, payload);
+        return transaction.commit
+    }
 
     def commitConfigurationDataPost(InstanceIdentifier path, CompositeNode payload) {
         checkPreconditions
@@ -76,6 +97,18 @@ class BrokerFacade implements DataReader<InstanceIdentifier, CompositeNode> {
         LOG.info("Post Configuration via Restconf was not executed because data already exists: {}", path)
         return null;
     }
+    
+    def commitConfigurationDataPostBehindMountPoint(MountInstance mountPoint, InstanceIdentifier path, CompositeNode payload) {
+        checkPreconditions
+        val transaction = mountPoint.beginTransaction;
+        transaction.putConfigurationData(path, payload);
+        if (payload == transaction.createdConfigurationData.get(path)) {
+            LOG.info("Post Configuration via Restconf: {}", path)
+            return transaction.commit
+        }
+        LOG.info("Post Configuration via Restconf was not executed because data already exists: {}", path)
+        return null;
+    }
 
     def commitConfigurationDataDelete(InstanceIdentifier path) {
         checkPreconditions
@@ -83,5 +116,12 @@ class BrokerFacade implements DataReader<InstanceIdentifier, CompositeNode> {
         transaction.removeConfigurationData(path)
         return transaction.commit
     }
+    
+    def commitConfigurationDataDeleteBehindMountPoint(MountInstance mountPoint, InstanceIdentifier path) {
+        checkPreconditions
+        val transaction = mountPoint.beginTransaction;
+        transaction.removeConfigurationData(path)
+        return transaction.commit
+    }
 
 }