Fixed response errors for HTTP PUT 59/83759/3
authorJaroslav Tóth <jtoth@frinx.io>
Mon, 12 Aug 2019 15:10:52 +0000 (17:10 +0200)
committerRobert Varga <nite@hq.sk>
Thu, 5 Sep 2019 14:03:10 +0000 (14:03 +0000)
- Added correct error types and tags that previously weren't
  specified at all so it always returned 500 status code.

Change-Id: Ie77d324ee6b2fc149714e24451f40b01b3e47827
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
(cherry picked from commit 0c41499f46507f3e59f472aa955eaccf3f21f67e)

restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfDataServiceImpl.java
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java

index ab6f26d8555f60e0dbf3be220b68097bf0dc71fa..075fd1a09dcbeab16814071f8a1bc8466d10c7cd 100644 (file)
@@ -194,7 +194,8 @@ public class RestconfDataServiceImpl implements RestconfDataService {
                         insertUsed = true;
                         insert = entry.getValue().iterator().next();
                     } else {
-                        throw new RestconfDocumentedException("Insert parameter can be used only once.");
+                        throw new RestconfDocumentedException("Insert parameter can be used only once.",
+                                RestconfError.ErrorType.PROTOCOL, RestconfError.ErrorTag.BAD_ELEMENT);
                     }
                     break;
                 case "point":
@@ -202,11 +203,13 @@ public class RestconfDataServiceImpl implements RestconfDataService {
                         pointUsed = true;
                         point = entry.getValue().iterator().next();
                     } else {
-                        throw new RestconfDocumentedException("Point parameter can be used only once.");
+                        throw new RestconfDocumentedException("Point parameter can be used only once.",
+                                RestconfError.ErrorType.PROTOCOL, RestconfError.ErrorTag.BAD_ELEMENT);
                     }
                     break;
                 default:
-                    throw new RestconfDocumentedException("Bad parameter for post: " + entry.getKey());
+                    throw new RestconfDocumentedException("Bad parameter for post: " + entry.getKey(),
+                            RestconfError.ErrorType.PROTOCOL, RestconfError.ErrorTag.BAD_ELEMENT);
             }
         }
 
index d8cd95f35ed34080962c67fbb2c0b1b8ecba9e98..10217a07f357b88b1100f2a5c9741c7f3247870d 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.restconf.common.context.InstanceIdentifierContext;
 import org.opendaylight.restconf.common.context.NormalizedNodeContext;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
+import org.opendaylight.restconf.common.errors.RestconfError;
 import org.opendaylight.restconf.common.errors.RestconfError.ErrorTag;
 import org.opendaylight.restconf.common.errors.RestconfError.ErrorType;
 import org.opendaylight.restconf.common.validation.RestconfValidationUtils;
@@ -287,8 +288,9 @@ public final class PutDataTransactionUtil {
                     }
                 }
             default:
-                throw new RestconfDocumentedException("Used bad value of insert parameter. Possible values are "
-                        + "first, last, before or after, but was: " + insert);
+                throw new RestconfDocumentedException(
+                        "Used bad value of insert parameter. Possible values are first, last, before or after, "
+                                + "but was: " + insert, RestconfError.ErrorType.PROTOCOL, ErrorTag.BAD_ATTRIBUTE);
         }
     }
 
@@ -408,17 +410,20 @@ public final class PutDataTransactionUtil {
 
         if (dataSchemaNode instanceof ListSchemaNode) {
             if (!((ListSchemaNode) dataSchemaNode).isUserOrdered()) {
-                throw new RestconfDocumentedException("Insert parameter can be used only with ordered-by user list.");
+                throw new RestconfDocumentedException("Insert parameter can be used only with ordered-by user list.",
+                        RestconfError.ErrorType.PROTOCOL, ErrorTag.BAD_ELEMENT);
             }
             return dataSchemaNode;
         }
         if (dataSchemaNode instanceof LeafListSchemaNode) {
             if (!((LeafListSchemaNode) dataSchemaNode).isUserOrdered()) {
                 throw new RestconfDocumentedException(
-                        "Insert parameter can be used only with ordered-by user leaf-list.");
+                        "Insert parameter can be used only with ordered-by user leaf-list.",
+                        RestconfError.ErrorType.PROTOCOL, ErrorTag.BAD_ELEMENT);
             }
             return dataSchemaNode;
         }
-        throw new RestconfDocumentedException("Insert parameter can be used only with list or leaf-list");
+        throw new RestconfDocumentedException("Insert parameter can be used only with list or leaf-list",
+                RestconfError.ErrorType.PROTOCOL, ErrorTag.BAD_ELEMENT);
     }
 }