Repository: ambari Updated Branches: refs/heads/trunk f704351be -> 913bf4ed6
AMBARI-9743. Storm service check failed after enabling security with existing AD (rlevas) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/913bf4ed Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/913bf4ed Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/913bf4ed Branch: refs/heads/trunk Commit: 913bf4ed6cfeb7c5f2884f54feb266849905bef6 Parents: f704351 Author: Robert Levas <rle...@hortonworks.com> Authored: Mon Feb 23 09:50:37 2015 -0500 Committer: Robert Levas <rle...@hortonworks.com> Committed: Mon Feb 23 09:50:37 2015 -0500 ---------------------------------------------------------------------- .../STORM/0.9.1.2.1/package/scripts/params.py | 32 +++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/913bf4ed/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params.py index 887132d..8ad95cc 100644 --- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params.py @@ -17,12 +17,31 @@ See the License for the specific language governing permissions and limitations under the License. """ - from resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions from resource_management.libraries.functions.default import default from resource_management.libraries.script import Script from resource_management.libraries.functions import default, format import status_params +import re + +def get_bare_principal(normalized_principal_name): + """ + Given a normalized principal name (nimbus/c6501.ambari.apache....@example.com) returns just the + primary component (nimbus) + :param normalized_principal_name: a string containing the principal name to process + :return: a string containing the primary component value or None if not valid + """ + + bare_principal = None + + if normalized_principal_name: + match = re.match(r"([^/@]+)(?:/[^@])?(?:@.*)?", normalized_principal_name) + + if match: + bare_principal = match.group(1) + + return bare_principal + # server configurations config = Script.get_config() @@ -73,24 +92,21 @@ security_enabled = config['configurations']['cluster-env']['security_enabled'] if security_enabled: _hostname_lowercase = config['hostname'].lower() - kerberos_domain = config['configurations']['cluster-env']['kerberos_domain'] _storm_principal_name = config['configurations']['storm-env']['storm_principal_name'] storm_jaas_principal = _storm_principal_name.replace('_HOST',_hostname_lowercase) storm_keytab_path = config['configurations']['storm-env']['storm_keytab'] - + if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0: storm_ui_keytab_path = config['configurations']['storm-env']['storm_ui_keytab'] _storm_ui_jaas_principal_name = config['configurations']['storm-env']['storm_ui_principal_name'] storm_ui_host = default("/clusterHostInfo/storm_ui_server_hosts", []) storm_ui_jaas_principal = _storm_ui_jaas_principal_name.replace('_HOST',storm_ui_host[0].lower()) - storm_bare_jaas_principal = _storm_principal_name.replace('_HOST','').replace('@'+kerberos_domain,'') - - - + storm_bare_jaas_principal = get_bare_principal(_storm_principal_name) + _nimbus_principal_name = config['configurations']['storm-env']['nimbus_principal_name'] nimbus_jaas_principal = _nimbus_principal_name.replace('_HOST', _hostname_lowercase) - nimbus_bare_jaas_principal = _nimbus_principal_name.replace('/_HOST','').replace('@'+kerberos_domain,'') + nimbus_bare_jaas_principal = get_bare_principal(_nimbus_principal_name) nimbus_keytab_path = config['configurations']['storm-env']['nimbus_keytab'] ams_collector_hosts = default("/clusterHostInfo/metrics_collector_hosts", [])