Ravi Nori has uploaded a new change for review.

Change subject: restapi : 'list' command does not work as expected(#947482)
......................................................................

restapi : 'list' command does not work as expected(#947482)

List command with --max does not throw error message
when the value passed is not a valid integer

Change-Id: I9f2ae614f7119a2d6c0cf832cc82f305a21b63a7
Bug-Url: https://bugzilla.redhat.com/947482
Signed-off-by: Ravi Nori <rn...@redhat.com>
---
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java
4 files changed, 26 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/50/13950/1

diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
index 40dd464..a1969d6 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
@@ -88,8 +88,12 @@
             }
         }
 
-        if (QueryHelper.hasMatrixParam(getUriInfo(), MAX) && 
getMaxResults()!=NO_LIMIT) {
-            searchParams.setMaxCount(getMaxResults());
+        try {
+            if (QueryHelper.hasMatrixParam(getUriInfo(), MAX) && 
getMaxResults()!=NO_LIMIT) {
+                searchParams.setMaxCount(getMaxResults());
+            }
+        } catch (MalformedNumberException ex) {
+            handleError(ex, false);
         }
         return searchParams;
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
index 0689f1d..13edcf8 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
@@ -120,15 +120,15 @@
         }
     }
 
-    protected int getMaxResults() {
+    protected int getMaxResults() throws MalformedNumberException {
         if (getUriInfo()!=null && QueryHelper.hasMatrixParam(getUriInfo(), 
MAX)) {
             HashMap<String,String> matrixConstraints = 
QueryHelper.getMatrixConstraints(getUriInfo(), MAX);
             String maxString = matrixConstraints.get(MAX);
             try {
                 return Integer.valueOf(maxString);
             } catch (NumberFormatException e) {
-                LOG.error("Max number of results is not a valid number: '" + 
maxString + "'. Resorting to default behavior - no limit on number of query 
results.");
-                return NO_LIMIT;
+                LOG.error("Max number of results is not a valid number: " + 
maxString);
+                throw new MalformedNumberException("Max number of results is 
not a valid number: " + maxString);
             }
         } else {
             return NO_LIMIT;
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
index ecd9e63..d0e414d 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BaseBackendResource.java
@@ -157,6 +157,12 @@
         }
     }
 
+    protected class MalformedNumberException extends BackendFailureException {
+        public MalformedNumberException(String msg) {
+            super(msg);
+        }
+    }
+
     protected class WebFaultException extends WebApplicationException {
 
         private static final long serialVersionUID = 394735369823915802L;
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java
index 7254d37..cc4562c 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java
@@ -17,6 +17,7 @@
 
 import org.ovirt.engine.api.model.Tag;
 import org.ovirt.engine.api.model.TagParent;
+import 
org.ovirt.engine.api.restapi.resource.BaseBackendResource.WebFaultException;
 
 import org.ovirt.engine.core.common.queries.GetTagByTagIdParameters;
 import org.ovirt.engine.core.common.queries.GetTagByTagNameParameters;
@@ -54,14 +55,19 @@
         assertEquals(3, results.size());
     }
 
-    @Test
+    @Test(expected = WebFaultException.class)
     public void testList_LimitResults_BadFormat() throws Exception {
         UriInfo uriInfo = setUpUriExpectationsWithMax(true);
-        setUpQueryExpectations("");
+        setUpEntityQueryExpectations(VdcQueryType.GetAllTags,
+                                     VdcQueryParametersBase.class,
+                                     new String[] { },
+                                     new Object[] { },
+                                     setUpTags(),
+                                     null);
+        control.replay();
         collection.setUriInfo(uriInfo);
-        List<Tag> results = getCollection();
-        assertNotNull(collection);
-        assertEquals(4, results.size());
+        getCollection();
+        fail("Expected WebFaultException");
     }
 
     @Test


--
To view, visit http://gerrit.ovirt.org/13950
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9f2ae614f7119a2d6c0cf832cc82f305a21b63a7
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ravi Nori <rn...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to