Re: Review Request 43927: Add support for bulk delete host API

2016-04-20 Thread Nate Cole

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43927/#review129823
---


Ship it!




Ship It!

- Nate Cole


On April 12, 2016, 2:37 p.m., Ajit Kumar wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43927/
> ---
> 
> (Updated April 12, 2016, 2:37 p.m.)
> 
> 
> Review request for Ambari, Alejandro Fernandez, Zhe (Joe) Wang, Nate Cole, 
> Sumit Mohanty, and Yusaku Sako.
> 
> 
> Bugs: AMBARI-15847
> https://issues.apache.org/jira/browse/AMBARI-15847
> 
> 
> Repository: ambari
> 
> 
> Description
> ---
> 
> Currently if anyone has to delete more than 1 host, a script is required to 
> call delete host api in a loop for each host. This api takes in query and 
> instead of failing fast on the first error, puts the best effort to delete 
> all requested hosts. Response is a json object which has deleted keys and 
> keys which failed to delete with exception. 
> 
> As there is a json response, it will always return 200 OK. It is backward 
> compatible, for request with only one host it won't return json object and 
> will return error code in case of exception instead of 200 OK.
> 
> 
> Diffs
> -
> 
>   
> ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java
>  c54d30f 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java
>  322eab8 
> 
> Diff: https://reviews.apache.org/r/43927/diff/
> 
> 
> Testing
> ---
> 
> Tested different usecases including backward compatibility:
> {code}
> curl -u admin:admin  -H 'X-Requested-By: ambari' -X DELETE 
> http://c6401.ambari.apache.org:8080/api/v1/clusters/a/hosts/c6401.ambari.apache.org
> {
>   "status" : 500,
>   "message" : "org.apache.ambari.server.controller.spi.SystemException: An 
> internal system exception occurred: 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"
> }
> 
> 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" : [
> {
>   "error" : {
> "key" : "c6402.ambari.apache.org",
> "code" : 404,
> "message" : "org.apache.ambari.server.HostNotFoundException: Host not 
> found, hostname=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"
>   }
> }
>   ]
> }
> 
> 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}
> 
> 
> Thanks,
> 
> Ajit Kumar
> 
>



Re: Review Request 43927: Add support for bulk delete host API

2016-04-12 Thread Ajit Kumar

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43927/
---

(Updated April 12, 2016, 6:37 p.m.)


Review request for Ambari, Alejandro Fernandez, Zhe (Joe) Wang, Nate Cole, 
Sumit Mohanty, and Yusaku Sako.


Bugs: AMBARI-15847
https://issues.apache.org/jira/browse/AMBARI-15847


Repository: ambari


Description (updated)
---

Currently if anyone has to delete more than 1 host, a script is required to 
call delete host api in a loop for each host. This api takes in query and 
instead of failing fast on the first error, puts the best effort to delete all 
requested hosts. Response is a json object which has deleted keys and keys 
which failed to delete with exception. 

As there is a json response, it will always return 200 OK. It is backward 
compatible, for request with only one host it won't return json object and will 
return error code in case of exception instead of 200 OK.


Diffs (updated)
-

  
ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java
 c54d30f 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java
 322eab8 

Diff: https://reviews.apache.org/r/43927/diff/


Testing (updated)
---

Tested different usecases including backward compatibility:
{code}
curl -u admin:admin  -H 'X-Requested-By: ambari' -X DELETE 
http://c6401.ambari.apache.org:8080/api/v1/clusters/a/hosts/c6401.ambari.apache.org
{
  "status" : 500,
  "message" : "org.apache.ambari.server.controller.spi.SystemException: An 
internal system exception occurred: 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"
}

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" : [
{
  "error" : {
"key" : "c6402.ambari.apache.org",
"code" : 404,
"message" : "org.apache.ambari.server.HostNotFoundException: Host not 
found, hostname=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"
  }
}
  ]
}

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}


Thanks,

Ajit Kumar