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

Ship it!


Ship It!

- Robert Nettleton


On July 20, 2015, 1:21 p.m., Robert Levas wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36581/
> -----------------------------------------------------------
> 
> (Updated July 20, 2015, 1:21 p.m.)
> 
> 
> Review request for Ambari, John Speidel, Robert Nettleton, and Tom Beerbower.
> 
> 
> Bugs: AMBARI-12450
>     https://issues.apache.org/jira/browse/AMBARI-12450
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> When querying for information about services installed in a Kerberized 
> cluster via the REST API, the ServiceResourceProvider always attempts to 
> contact the KDC (or Active Directory) if the KERBEROS service is selected 
> within the query. 
> 
> This can be seen about every 15 seconds,  when the UI queries for the state 
> of the services in a Kerberized cluster using the following query:
> ```
> GET  
> /api/v1/clusters/{cluster_name}/services?fields=ServiceInfo/state,ServiceInfo/maintenance_state&minimal_response=true
> ```
> 
> The result from this query does not contain the KDC connectivity attributes 
> (which is expected), yet the detail are obtained.  
> 
> This issue causes excess overhead in Ambari as well as on the relevant KDC or 
> Active Directory. Also the kdamin.log fills up with messages like:
> 
> ```
> Jun 29 14:31:42 some-host-1 kadmind[2383](Notice): Request: kadm5_init, 
> admin/[email protected], success, client=admin/[email protected], 
> service=kadmin/[email protected], 
> addr=10.240.70.128, vers=3, flavor=6
> Jun 29 14:31:42 some-host-1 kadmind[2383](Notice): Request: 
> kadm5_get_principal, admin/[email protected], success, 
> client=admin/[email protected], 
> service=kadmin/[email protected], 
> addr=10.240.70.128
> Jun 29 14:31:42 some-host-1 kadmind[2383](info): closing down fd 29
> Jun 29 14:32:49 some-host-1 kadmind[2383](Notice): Request: kadm5_init, 
> admin/[email protected], success, client=admin/[email protected], 
> service=kadmin/[email protected], 
> addr=10.240.70.128, vers=3, flavor=6
> Jun 29 14:32:49 some-host-1 kadmind[2383](Notice): Request: 
> kadm5_get_principal, admin/[email protected], success, 
> client=admin/[email protected], 
> service=kadmin/[email protected], 
> addr=10.240.70.128
> Jun 29 14:32:49 some-host-1 kadmind[2383](info): closing down fd 29
> Jun 29 14:34:35 some-host-1 kadmind[2383](Notice): Request: kadm5_init, 
> admin/[email protected], success, client=admin/[email protected], 
> service=kadmin/[email protected], 
> addr=10.240.70.128, vers=3, flavor=6
> Jun 29 14:34:35 some-host-1 kadmind[2383](Notice): Request: 
> kadm5_get_principal, admin/[email protected], success, 
> client=admin/[email protected], 
> service=kadmin/[email protected], 
> addr=10.240.70.128
> Jun 29 14:34:35 some-host-1 kadmind[2383](info): closing down fd 29
> Jun 29 14:35:28 some-host-1 kadmind[2383](Notice): Request: kadm5_init, 
> admin/[email protected], success, client=admin/[email protected], 
> service=kadmin/[email protected], 
> addr=10.240.70.128, vers=3, flavor=6
> Jun 29 14:35:28 some-host-1 kadmind[2383](Notice): Request: 
> kadm5_get_principal, admin/[email protected], success, 
> client=admin/[email protected], 
> service=kadmin/[email protected], 
> addr=10.240.70.128
> Jun 29 14:35:28 some-host-1 kadmind[2383](info): closing down fd 29
> ```
> 
> #Solution
> Only query for the KDC attributes when explicitly or implicitly queried. This 
> can be done by conditionally setting the relevant properties near 
> `org/apache/ambari/server/controller/internal/ServiceResourceProvider.java:1394`
>  by inspecting the request for relevant identifiers using something like the 
> following:
> 
> ```
> requestedIds.contains(propertyId) || isPropertyCategoryRequested(propertyId, 
> requestedIds) || isPropertyEntryRequested(propertyId, requestedIds)
> ```
> 
> 
> Diffs
> -----
> 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BaseProvider.java
>  ca5e70e 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
>  a13bbd3 
>   
> ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java
>  9ec1610 
> 
> Diff: https://reviews.apache.org/r/36581/diff/
> 
> 
> Testing
> -------
> 
> Manually tested using various query strings.
> 
> #Local test results:
> 
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 46:16.723s
> [INFO] Finished at: Fri Jul 17 15:51:36 EDT 2015
> [INFO] Final Memory: 47M/724M
> [INFO] 
> ------------------------------------------------------------------------
> 
> #Jenkins test results:
> 
> Tests run: 3121, Failures: 0, Errors: 0, Skipped: 28
> 
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 01:28 h
> [INFO] Finished at: 2015-07-17T23:29:02+00:00
> [INFO] Final Memory: 46M/516M
> [INFO] 
> ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Robert Levas
> 
>

Reply via email to