Bug 2834: Fix Restconf POST to wait for completion
[controller.git] / opendaylight / md-sal / sal-rest-connector / src / main / java / org / opendaylight / controller / sal / restconf / impl / RestconfImpl.java
index 8856cce7df6968df413076a924a01ccc2f090e00..75c61d1c196d720401236dba043ec518d38b7fc4 100644 (file)
@@ -549,15 +549,14 @@ public class RestconfImpl implements RestconfService {
 
         final DOMRpcResult result = checkRpcResponse(response);
 
-        DataSchemaNode resultNodeSchema = null;
+        RpcDefinition resultNodeSchema = null;
         final NormalizedNode<?, ?> resultData = result.getResult();
         if (result != null && result.getResult() != null) {
-            final RpcDefinition rpcDef = (RpcDefinition) payload.getInstanceIdentifierContext().getSchemaNode();
-            resultNodeSchema = rpcDef.getOutput();
+            resultNodeSchema = (RpcDefinition) payload.getInstanceIdentifierContext().getSchemaNode();
         }
 
-        return new NormalizedNodeContext(new InstanceIdentifierContext(null, resultNodeSchema, mountPoint,
-                schemaContext), resultData);
+        return new NormalizedNodeContext(new InstanceIdentifierContext<RpcDefinition>(null,
+                resultNodeSchema, mountPoint, schemaContext), resultData);
     }
 
     private DOMRpcResult checkRpcResponse(final CheckedFuture<DOMRpcResult, DOMRpcException> response) {
@@ -732,7 +731,7 @@ public class RestconfImpl implements RestconfService {
 
         if (rpc.getInput() != null) {
             // FIXME : find a correct Error from specification
-            throw new IllegalStateException("RPC " + rpc + " needs input value!");
+            throw new IllegalStateException("RPC " + rpc + " does'n need input value!");
         }
 
         final CheckedFuture<DOMRpcResult, DOMRpcException> response;
@@ -1213,10 +1212,9 @@ public class RestconfImpl implements RestconfService {
         final YangInstanceIdentifier resultII;
         try {
             if (mountPoint != null) {
-                broker.commitConfigurationDataPost(mountPoint, normalizedII, payload.getData());
-
+                broker.commitConfigurationDataPost(mountPoint, normalizedII, payload.getData()).checkedGet();
             } else {
-                broker.commitConfigurationDataPost(normalizedII, payload.getData());
+                broker.commitConfigurationDataPost(normalizedII, payload.getData()).checkedGet();
             }
         } catch(final RestconfDocumentedException e) {
             throw e;