-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36564/
-----------------------------------------------------------
(Updated July 17, 2015, 1:22 a.m.)
Review request for Ambari, John Speidel, Sumit Mohanty, and Sid Wagle.
Bugs: AMBARI-12429
https://issues.apache.org/jira/browse/AMBARI-12429
Repository: ambari
Description
-------
There are 3 issues while deleting hosts.
1. Created a cluster with multiple hosts, then stopped all of the services on 1
host (preferably one with only clients so it has nothing to stop). Then deleted
the host using the API.
E.g., curl -u admin:admin -H "X-Requested-By: ambari" -X DELETE
http://c6401.ambari.apache.org:8080/api/v1/hosts/c6404.ambari.apache.org
This led to Null Pointer Exceptions in ambari-server because the UI is still
generating requests to get the ServiceComponentHost response, which isn't
locking code, and makes request to get the HostState (this record has been
deleted), so a NPE is thrown. This needs to be more robust; adding locks around
here may have other repercussions, so I decided to just check for != null.
2. If a Host with DataNode becomes decommissioned, it will have a record in
the requestoperationlevel table, whose records are not currently being deleted
when a Host is deleted.
3. There are differences between deleting a Host using the /hosts/name and
/clusters/name/hosts/name API. In the former, since no cluster is provided, it
blindly deletes the host without checking if it has any masters/slaves on it,
which need to be stopped and deleted first.
Diffs (updated)
-----
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
de9ae52
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java
4c14426
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestOperationLevel.java
c7c0160
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java
fa49d7f
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RequestOperationLevelDAO.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RequestOperationLevelEntity.java
2c11e55
ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java
665dd56
ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
9f25ad7
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestOperationLevelTest.java
bd4ad90
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestResourceProviderTest.java
ed8336e
Diff: https://reviews.apache.org/r/36564/diff/
Testing
-------
System tests passed, see test matrix in comments of AMBARI-12429.
Waiting for unit test results.
Thanks,
Alejandro Fernandez