[ https://issues.apache.org/jira/browse/AMBARI-22481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16273045#comment-16273045 ]
Hudson commented on AMBARI-22481: --------------------------------- SUCCESS: Integrated in Jenkins build Ambari-trunk-Commit #8469 (See [https://builds.apache.org/job/Ambari-trunk-Commit/8469/]) AMBARI-22481. Make Ambari LDAP configuration API consistent with (rlevas: [http://git-wip-us.apache.org/repos/asf?p=ambari.git&a=commit&h=4240f8496175bf9fb369b9411e71ad1127e356ad]) * (add) ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AmbariServerLDAPConfigurationHandler.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/ads/detectors/UserGroupMemberAttrDetector.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/LdapFacade.java * (delete) ambari-server/src/test/java/org/apache/ambari/server/ldap/domain/TestAmbariLdapConfigurationFactory.java * (delete) ambari-server/src/main/java/org/apache/ambari/server/api/services/ldap/LdapRequestInfo.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/api/services/stackadvisor/commands/StackAdvisorCommand.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/api/services/RootServiceComponentConfigurationService.java * (delete) ambari-server/src/main/java/org/apache/ambari/server/api/services/ldap/AmbariConfiguration.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/AmbariLdapConfigurationProvider.java * (add) ambari-server/src/main/java/org/apache/ambari/server/controller/internal/OperationStatusMetaData.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/ads/detectors/GroupMemberAttrDetector.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/ads/detectors/GroupObjectClassDetector.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/ads/detectors/UserNameAttrDetector.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/ads/DefaultLdapAttributeDetectionService.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/ads/DefaultLdapConfigurationService.java * (delete) ambari-server/src/main/java/org/apache/ambari/server/api/services/ldap/LdapConfigOperation.java * (add) ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationHandlerFactory.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/LdapModule.java * (edit) ambari-server/src/test/java/org/apache/ambari/server/api/services/stackadvisor/commands/StackAdvisorCommandTest.java * (add) ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AmbariServerConfigurationHandler.java * (edit) ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationResourceProviderTest.java * (edit) ambari-server/src/test/java/org/apache/ambari/server/ldap/service/ads/DefaultLdapAttributeDetectionServiceTest.java * (add) ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AmbariServerConfigurationCategory.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/AmbariLdapFacade.java * (add) ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationHandler.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/domain/AmbariLdapConfiguration.java * (delete) ambari-server/src/main/java/org/apache/ambari/server/ldap/domain/AmbariLdapConfigKeys.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/ads/detectors/UserObjectClassDetector.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/ldap/service/ads/detectors/GroupNameAttrDetector.java * (edit) ambari-server/src/test/java/org/apache/ambari/server/ldap/service/AmbariLdapFacadeTest.java * (edit) ambari-server/src/test/java/org/apache/ambari/server/ldap/service/ads/DefaultLdapConfigurationServiceTest.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/api/handlers/CreateHandler.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationResourceProvider.java * (delete) ambari-server/src/main/java/org/apache/ambari/server/ldap/domain/AmbariLdapConfigurationFactory.java * (add) ambari-server/src/main/java/org/apache/ambari/server/ldap/domain/AmbariLdapConfigurationKeys.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java * (delete) ambari-server/src/main/java/org/apache/ambari/server/api/services/ldap/LdapConfigurationService.java * (edit) ambari-server/src/main/java/org/apache/ambari/server/api/handlers/UpdateHandler.java * (delete) ambari-server/src/main/java/org/apache/ambari/server/api/services/ldap/LdapConfigurationRequest.java * (edit) ambari-server/src/test/java/org/apache/ambari/server/ldap/LdapModuleFunctionalTest.java > Make Ambari LDAP configuration API consistent with existing API > --------------------------------------------------------------- > > Key: AMBARI-22481 > URL: https://issues.apache.org/jira/browse/AMBARI-22481 > Project: Ambari > Issue Type: Task > Components: ambari-server > Affects Versions: 3.0.0 > Reporter: Robert Levas > Assignee: Robert Levas > Priority: Critical > Fix For: 3.0.0 > > Attachments: AMBARI-22481_trunk_01.patch, AMBARI-22481_trunk_02.patch > > > Make Ambari configuration API consistent with existing API. > The current API entry point (as of AMBARI-21307) to set and test the LDAP > configuration is {{/api/v1/ldapconfigs}}. This should be more inline with the > existing entry point for Ambari server related data... > {{/api/v1/services/AMBARI/components/AMBARI_SERVER}}. > The new API entry point for Ambari server related configuration data should > be {{/api/v1/services/AMBARI/components/AMBARI_SERVER/configurations}}. For > the LDAP-specific configuration, the configuration category is > *_"ldap-configuration"_*. > See AMBARI-22418 for examples on setting and getting this configuration. > For testing the configuration, the following directives should be used: > * {{op=test-connection}} > * {{op=test-attributes}} > * {{op=detect-attributes}} > For example: > *Test the connection for a new set of configuration data* > {noformat:title=URL} > POST > /api/v1/services/AMBARI/components/AMBARI_SERVER/configurations?op=test-connection > {noformat} > {code:title=Payload} > { > "Configuration": { > "category" : "ldap-configuration", > "properties": { > "ambari.ldap.connectivity.server.host": "ldap.forumsys.com", > "ambari.ldap.connectivity.server.port": "389", > "ambari.ldap.connectivity.anonymous_bind": "true", > "ambari.ldap.attributes.user.search_base": "dc=example,dc=com", > "ambari.ldap.attributes.user.object_class": "person", > "ambari.ldap.attributes.user.name_attr": "uid", > "ambari.ldap.attributes.group.object_class": "groupOfUniqueNames", > "ambari.ldap.attributes.group.name_attr": "cn", > "ambari.ldap.attributes.group.member_attr": "uniqueMember", > "ambari.ldap.attributes.group.search_base": "dc=example,dc=com" > } > } > } > {code} > {code:title=Success Response} > Status 201: Created > { > "operationResults" : { > "test-connection" : { > "status" : "success" > } > } > } > {code} > {code:title=Error Response} > Status 201: Created > { > "operationResults" : { > "test-connection" : { > "status" : "error", > "message" : "An unexpected error has occurred." > } > } > } > {code} > *Test the connection for an updated set of configuration data* > {noformat:title=URL} > PUT > /api/v1/services/AMBARI/components/AMBARI_SERVER/configurations/ldap-configuration?op=test-connection > {noformat} > {code:title=Payload} > { > "Configuration": { > "category" : "ldap-configuration", > "properties": { > "ambari.ldap.connectivity.server.host": "new.ldap.host.com" > } > } > } > {code} > {code:title=Success Response} > Status 200: OK > { > "operationResults" : { > "test-connection" : { > "status" : "success" > } > } > } > {code} > {code:title=Error Response} > Status 200: OK > { > "operationResults" : { > "test-connection" : { > "status" : "error", > "message" : "An unexpected error has occurred." > } > } > } > {code} > *Test the attributes of a user for a new set of configuration data* > {noformat:title=URL} > POST > /api/v1/services/AMBARI/components/AMBARI_SERVER/configurations?op=test-attributes > {noformat} > {code:title=Payload} > { > "Configuration": { > "category" : "ldap-configuration", > "properties": { > "ambari.ldap.connectivity.server.host": "ldap.forumsys.com", > "ambari.ldap.connectivity.server.port": "389", > "ambari.ldap.connectivity.anonymous_bind": "true", > "ambari.ldap.attributes.user.search_base": "dc=example,dc=com", > "ambari.ldap.attributes.user.object_class": "person", > "ambari.ldap.attributes.user.name_attr": "uid", > "ambari.ldap.attributes.group.object_class": "groupOfUniqueNames", > "ambari.ldap.attributes.group.name_attr": "cn", > "ambari.ldap.attributes.group.member_attr": "uniqueMember", > "ambari.ldap.attributes.group.search_base": "dc=example,dc=com" > } > }, > "RequestInfo":{ > "parameters":{ > "ambari.ldap.test.user.name": "euclid" > } > } > } > {code} > {code:title=Success Response} > Status 201: Created > { > "operationResults" : { > "test-attributes" : { > "status" : "success", > "response" : { > "groups" : [ > "Mathematicians" > ] > } > } > } > } > {code} > {code:title=Error Response} > Status 201: Created > { > "operationResults" : { > "test-attributes" : { > "status" : "error", > "message" : "An unexpected error has occurred." > } > } > } > {code} > *Test the attributes of a user for an updated set of configuration data* > {noformat:title=URL} > PUT > /api/v1/services/AMBARI/components/AMBARI_SERVER/configurations/ldap-configuration?op=test-attributes > {noformat} > {code:title=Payload} > { > "Configuration": { > "category" : "ldap-configuration", > "properties": { > "ambari.ldap.attributes.group.member_attr": "uniqueMember" > } > }, > "RequestInfo":{ > "parameters":{ > "ambari.ldap.test.user.name": "euclid" > } > } > } > {code} > {code:title=Success Response} > Status 200: OK > { > "operationResults" : { > "test-attributes" : { > "status" : "success", > "response" : { > "groups" : [ > "Mathematicians" > ] > } > } > } > } > {code} > {code:title=Error Response} > Status 200: OK > { > "operationResults" : { > "test-attributes" : { > "status" : "error", > "message" : "An unexpected error has occurred." > } > } > } > {code} > *Detect the attributes for a user and a group for a new set of configuration > data* > {noformat:title=URL} > POST > /api/v1/services/AMBARI/components/AMBARI_SERVER/configurations?op=detect-attributes > {noformat} > {code:title=Payload} > { > "Configuration": { > "category" : "ldap-configuration", > "properties": { > "ambari.ldap.connectivity.server.host": "ldap.forumsys.com", > "ambari.ldap.connectivity.server.port": "389", > "ambari.ldap.connectivity.anonymous_bind": "true", > "ambari.ldap.attributes.user.search_base": "dc=example,dc=com", > "ambari.ldap.attributes.group.search_base": "dc=example,dc=com" > } > } > } > {code} > {code:title=Success Response} > Status 201: Created > { > "operationResults" : { > "detect-attributes" : { > "status" : "success", > "response" : { > "attributes" : { > "ambari.ldap.attributes.group.name_attr" : "cn", > "ambari.ldap.attributes.user.object_class" : "person", > "ambari.ldap.attributes.group.member_attr" : "memberUid", > "ambari.ldap.attributes.user.group_member_attr" : "N/A", > "ambari.ldap.attributes.user.search_base" : "dc=example,dc=com", > "ambari.ldap.attributes.group.object_class" : "posixGroup", > "ambari.ldap.attributes.group.search_base" : "dc=example,dc=com", > "ambari.ldap.connectivity.server.host" : "ldap.forumsys.com", > "ambari.ldap.connectivity.anonymous_bind" : "true", > "ambari.ldap.connectivity.server.port" : "389", > "ambari.ldap.attributes.user.name_attr" : "sAMAccountName" > } > } > } > } > } > {code} > {code:title=Error Response} > Status 201: Created > { > "operationResults" : { > "detect-attributes" : { > "status" : "error", > "message" : "An unexpected error has occurred." > } > } > } > {code} > *Detect the attributes for a user and a group for an updated set of > configuration data* > {noformat:title=URL} > PUT > /api/v1/services/AMBARI/components/AMBARI_SERVER/configurations/ldap-configuration?op=test-attributes > {noformat} > {code:title=Payload} > { > "Configuration": { > "category" : "ldap-configuration", > "properties": { > "ambari.ldap.connectivity.anonymous_bind": "false", > "ambari.ldap.connectivity.bind_dn": > "cn=read-only-admin,dc=example,dc=com", > "ambari.ldap.connectivity.bind_password": "password" > } > } > } > {code} > {code:title=Success Response} > Status 200: OK > { > "operationResults" : { > "detect-attributes" : { > "status" : "success", > "response" : { > "attributes" : { > "ambari.ldap.connectivity.bind_password" : "password", > "ambari.ldap.attributes.group.name_attr" : "cn", > "ambari.ldap.attributes.user.object_class" : "person", > "ambari.ldap.attributes.group.member_attr" : "memberUid", > "ambari.ldap.attributes.user.group_member_attr" : "N/A", > "ambari.ldap.attributes.user.search_base" : "dc=example,dc=com", > "ambari.ldap.connectivity.bind_dn" : > "cn=read-only-admin,dc=example,dc=com", > "ambari.ldap.attributes.group.object_class" : "posixGroup", > "ambari.ldap.attributes.group.search_base" : "dc=example,dc=com", > "ambari.ldap.connectivity.server.host" : "ldap.forumsys.com", > "ambari.ldap.connectivity.anonymous_bind" : "false", > "ambari.ldap.connectivity.server.port" : "389", > "ambari.ldap.attributes.user.name_attr" : "sAMAccountName" > } > } > } > } > } > {code} > {code:title=Error Response} > Status 200: OK > { > "operationResults" : { > "detect-attributes" : { > "status" : "error", > "message" : "An unexpected error has occurred." > } > } > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)