----------------------------------------------------------- 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