-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43926/
-----------------------------------------------------------
(Updated April 12, 2016, 6:33 p.m.)
Review request for Ambari, Alejandro Fernandez, Zhe (Joe) Wang, Nate Cole,
Sumit Mohanty, and Yusaku Sako.
Bugs: AMBARI-15150
https://issues.apache.org/jira/browse/AMBARI-15150
Repository: ambari
Description (updated)
-------
Currently DELETE API only returns status code and no body. This doesn't fit
well in bulk delete scenario as user needs to know which keys were deleted and
which one failed and why. For this, ResourceProvider needs to return metadata
as part of RequestStatus object which can be translated to metadata for Result
object at API layer.
At API layer, for all failed keys, reason code (like 404) is required which
will make scripting easy instead of just including error message as string.
API response for bulk delete
{code}
curl -u admin:admin -H 'X-Requested-By: ambari' -X DELETE
http://c6401.ambari.apache.org:8080/api/v1/clusters/a/hosts -d
'{"RequestInfo":{"query":"Hosts/host_name.in(c6401.ambari.apache.org,c6402.ambari.apache.org)"}}'
{
"deleteResult" : [
{
"deleted" : {
"key" : "c6402.ambari.apache.org"
}
},
{
"error" : {
"key" : "c6401.ambari.apache.org",
"code" : 500,
"message" : "org.apache.ambari.server.AmbariException: Cannot remove
host c6401.ambari.apache.org from a. The following roles exist, and these
components must be stopped if running, and then deleted: ZOOKEEPER_SERVER"
}
}
]
}
{code}
Sample code for how each resource provider can set metadata for delete
https://reviews.apache.org/r/43927/.
Diffs (updated)
-----
ambari-server/src/main/java/org/apache/ambari/server/api/handlers/BaseManagementHandler.java
c34f0d7
ambari-server/src/main/java/org/apache/ambari/server/api/handlers/CreateHandler.java
691a3ee
ambari-server/src/main/java/org/apache/ambari/server/api/handlers/DeleteHandler.java
8580196
ambari-server/src/main/java/org/apache/ambari/server/api/handlers/QueryCreateHandler.java
534ee7b
ambari-server/src/main/java/org/apache/ambari/server/api/handlers/UpdateHandler.java
bb66fae
ambari-server/src/main/java/org/apache/ambari/server/api/services/DeleteResultMetadata.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/api/services/Result.java
fabab62
ambari-server/src/main/java/org/apache/ambari/server/api/services/ResultImpl.java
adcbde1
ambari-server/src/main/java/org/apache/ambari/server/api/services/ResultMetadata.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java
c17f162
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractResourceProvider.java
ac9935d
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DeleteStatusMetaData.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestStatusImpl.java
b0fde8a
ambari-server/src/main/java/org/apache/ambari/server/controller/spi/RequestStatus.java
f9847a9
ambari-server/src/main/java/org/apache/ambari/server/controller/spi/RequestStatusMetaData.java
PRE-CREATION
ambari-server/src/test/java/org/apache/ambari/server/api/handlers/DeleteHandlerTest.java
fb70be6
ambari-server/src/test/java/org/apache/ambari/server/api/services/DeleteResultMetaDataTest.java
PRE-CREATION
ambari-server/src/test/java/org/apache/ambari/server/api/services/serializers/JsonSerializerTest.java
d854dcf
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/DeleteStatusMetaDataTest.java
PRE-CREATION
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestStatusImplTest.java
cd61822
Diff: https://reviews.apache.org/r/43926/diff/
Testing (updated)
-------
manual testing
Unit test
Thanks,
Ajit Kumar