BUG 2594 - PUT method returns wrong status on create 93/31693/1
authorTomas Cere <tcere@cisco.com>
Mon, 21 Dec 2015 12:36:43 +0000 (13:36 +0100)
committerTomas Cere <tcere@cisco.com>
Mon, 21 Dec 2015 12:36:43 +0000 (13:36 +0100)
Port of:
https://git.opendaylight.org/gerrit/#/c/19009/

Change-Id: Ic225f9290c49fde29be3fbf7c51ef4cc36d8e532
Signed-off-by: Tomas Cere <tcere@cisco.com>
opendaylight/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/restconf/impl/RestconfImpl.java

index 18b02cfa3449f32954f54320852aa500bf20947d..bc62b3eff9647be25636ae9689613b42bbbea7b4 100644 (file)
@@ -714,11 +714,14 @@ public class RestconfImpl implements RestconfService {
          * document the behavior).
          */
         int tries = 2;
+        Status status = Status.NOT_MODIFIED;
         while(true) {
             try {
                 if (mountPoint != null) {
+                    status = broker.readConfigurationData(mountPoint, normalizedII) != null ? Status.OK : Status.CREATED;
                     broker.commitConfigurationDataPut(mountPoint, normalizedII, payload.getData()).checkedGet();
                 } else {
+                    status = broker.readConfigurationData(normalizedII) != null ? Status.OK : Status.CREATED;
                     broker.commitConfigurationDataPut(controllerContext.getGlobalSchema(), normalizedII, payload.getData()).checkedGet();
                 }
 
@@ -742,7 +745,7 @@ public class RestconfImpl implements RestconfService {
             }
         }
 
-        return Response.status(Status.OK).build();
+        return Response.status(status).build();
     }
 
     private static void validateTopLevelNodeName(final NormalizedNodeContext node,