Ori Liel has uploaded a new change for review.
Change subject: restapi: RSDL - report 'delete' on collections where exists
......................................................................
restapi: RSDL - report 'delete' on collections where exists
Currently RSDL does not report existing DELETE signatures on collection
level (e.g: DELETE
.../api/clusters/{cluster:id}/glustervolumes/{glustervolume:id}/bricks)
This patch enhances RSDL to be able to deal with such signatures.
Bug-Url: http://bugzilla.redhat.com/1038663
Change-Id: I23461cb72df75766d1c09d2f9d979cfb0d8df38c
Signed-off-by: Ori Liel <[email protected]>
---
M
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java
M
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
2 files changed, 12 insertions(+), 4 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/02/40002/1
diff --git
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java
index 90d0d56..481dbe5 100644
---
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java
+++
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java
@@ -17,7 +17,6 @@
import org.ovirt.engine.api.model.GlusterBricks;
import org.ovirt.engine.api.resource.ActionResource;
import org.ovirt.engine.api.resource.ApiMediaType;
-import org.ovirt.engine.api.resource.RsdlIgnore;
/**
* Resource interface for the
"clusters/{cluster_id}/glustervolumes/{volume_id}/bricks" resource
@@ -51,7 +50,6 @@
* @return
*/
@DELETE
- @RsdlIgnore //TODO: remove this when we have support for delete at
collection level in yaml metadata
public Response remove(GlusterBricks bricks);
/**
diff --git
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
index eaa95ab..f743ddf 100644
---
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
+++
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
@@ -347,18 +347,28 @@
}
private void handleDelete(String prefix, Collection<DetailedLink> results,
Method m) {
+ boolean collectionLevel = m.getAnnotation(Path.class) == null;
if (m.getParameterTypes().length>1) {
Class<?>[] parameterTypes = m.getParameterTypes();
Annotation[][] parameterAnnotations = m.getParameterAnnotations();
for (int i=0; i<parameterTypes.length; i++) {
//ignore the id parameter (string), that's annotated with
@PathParam
if (!( parameterTypes[i].equals(String.class) &&
(!(parameterAnnotations[i].length==0)))) {
- results.add(new RsdlBuilder.LinkBuilder().url(prefix +
"/{" + getSingleForm(prefix) +
":id}").rel(DELETE).requestParameter(parameterTypes[i].getSimpleName()).httpMethod(HttpMethod.DELETE).build());
+ results.add(new RsdlBuilder.LinkBuilder().url(prefix
+ + (collectionLevel ? "" : "/{" +
getSingleForm(prefix) + ":id}"))
+ .rel(DELETE)
+
.requestParameter(parameterTypes[i].getSimpleName())
+ .httpMethod(HttpMethod.DELETE)
+ .build());
return; //we can break, because we excpect only one
parameter.
}
}
} else {
- results.add(new RsdlBuilder.LinkBuilder().url(prefix + "/{" +
getSingleForm(prefix) +
":id}").rel(DELETE).httpMethod(HttpMethod.DELETE).build());
+ results.add(new RsdlBuilder.LinkBuilder().url(prefix
+ + (collectionLevel ? "" : "/{" + getSingleForm(prefix) +
":id}"))
+ .rel(DELETE)
+ .httpMethod(HttpMethod.DELETE)
+ .build());
}
}
--
To view, visit https://gerrit.ovirt.org/40002
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I23461cb72df75766d1c09d2f9d979cfb0d8df38c
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ori Liel <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches