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

(Updated July 17, 2015, 6:09 a.m.)


Review request for Ambari, Dmitro Lisnichenko, Jonathan Hurley, John Speidel, 
Nate Cole, Sumit Mohanty, and Sid Wagle.


Changes
-------

Checked for == null instead of catching NPE exception


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

Reply via email to