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

Review request for Ambari, Di Li, Jonathan Hurley, Nate Cole, Oliver Szabo, and 
Sandor Magyari.


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


Repository: ambari


Description
-------

When requesting a Kerberos Descriptor via the REST API, 'when' clauses should 
optionally be processed.  If elected to be processed, identities that contain 
`when` clauses will be included or excluded from the resulting descriptor based 
on the result of the evaluation. 

In the event of an _add service_ scenario, the services being added should be 
able to be specified so that they can be included in the data used for 
`when`-clause evaluation.  

#Solution
Add _GET directives_ to specify whether `when` clauses are to be evaluated (or 
not) while building the Kerberos Descriptor using the following API call:
```
GET 
/api/v1/clusters/CLUSTER_NAME/kerberos_descriptors/COMPOSITE?evaluate_when=true
```
If new services are being added, the `additional_services` directive should be 
added to the request so the evaluation can be preformed on the _future_ set of 
services, which may evaluate differently then the _current_ set of services.
```
GET 
/api/v1/clusters/CLUSTER_NAME/kerberos_descriptors/COMPOSITE?evaluate_when=true@additional_services=HIVE,TEZ,PIG
```

#Notes
- A lot of code was moved from ClusterKerberosDescriptorResourceProvider to 
KerberosHelper to reduce the likelyhood of duplication
- The logic to build a Kerberos descriptor (STACK, USER, COMPOSITE) has been 
consolidated in the KerberosHelper
- Some duplicate code in test cases have been conslidated


Diffs
-----

  
ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java
 a2aeffa 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/KerberosHelper.java
 5ffc8a3 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/KerberosHelperImpl.java
 cd79e46 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProvider.java
 1f5d1d8 
  
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/AbstractKerberosDescriptor.java
 79b9a55 
  
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/AbstractKerberosDescriptorContainer.java
 64d9292 
  
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptor.java
 19d3f5e 
  
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/KerberosDescriptor.java
 98f8883 
  
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorType.java
 0677de6 
  
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/KerberosIdentityDescriptor.java
 2631d35 
  
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/KerberosServiceDescriptor.java
 9eeb802 
  
ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
 7281e85 
  
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java
 898cf46 
  
ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java
 9f0f7a1 
  
ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java
 004cd66 
  
ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosServiceDescriptorTest.java
 e5392c0 

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


Testing
-------

Manually testing...  updated unit tests...

# Local test results: PENDING

# Jenkins test results: PENDING


Thanks,

Robert Levas

Reply via email to