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