You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2013/08/23 22:59:06 UTC
git commit: AMBARI-3018. ambari-server setup-ldap continues to prompt
for the password for the truststore after showing the error that the
specified file does not exist. (Myroslav Papirkovskyy via swagle)
Updated Branches:
refs/heads/trunk 8d822cb69 -> 01b1b682e
AMBARI-3018. ambari-server setup-ldap continues to prompt for the password for the truststore after showing the error that the specified file does not exist. (Myroslav Papirkovskyy via swagle)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/01b1b682
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/01b1b682
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/01b1b682
Branch: refs/heads/trunk
Commit: 01b1b682e2ea7b61df00caa3e2b248fa9a9feec8
Parents: 8d822cb
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Fri Aug 23 13:58:47 2013 -0700
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Fri Aug 23 13:58:47 2013 -0700
----------------------------------------------------------------------
ambari-server/src/main/python/ambari-server.py | 7 +-
.../src/test/python/TestAmbaryServer.py | 67 +++++++++++++++++++-
2 files changed, 71 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/01b1b682/ambari-server/src/main/python/ambari-server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/python/ambari-server.py b/ambari-server/src/main/python/ambari-server.py
index afbe501..4a8af1b 100755
--- a/ambari-server/src/main/python/ambari-server.py
+++ b/ambari-server/src/main/python/ambari-server.py
@@ -2518,13 +2518,16 @@ def setup_ldap():
SSL_TRUSTSTORE_TYPE_DEFAULT,
"^(jks|jceks|pkcs12)?$", "Wrong type", False)
ts_path = None
- while not ts_path:
+ while True:
ts_path = get_validated_string_input(
"Path to TrustStore file {0}:".format(get_prompt_default(SSL_TRUSTSTORE_PATH_DEFAULT)),
SSL_TRUSTSTORE_PATH_DEFAULT,
".*", False, False)
- if not os.path.exists(ts_path):
+ if os.path.exists(ts_path):
+ break
+ else:
print 'File not found.'
+
ts_password = read_password("", ".*", "Password for TrustStore:", "Invalid characters in password")
ldap_property_value_map[SSL_TRUSTSTORE_TYPE_PROPERTY] = ts_type
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/01b1b682/ambari-server/src/test/python/TestAmbaryServer.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/TestAmbaryServer.py b/ambari-server/src/test/python/TestAmbaryServer.py
index a671123..f20f878 100644
--- a/ambari-server/src/test/python/TestAmbaryServer.py
+++ b/ambari-server/src/test/python/TestAmbaryServer.py
@@ -3595,7 +3595,9 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
@patch.object(ambari_server, 'search_file')
@patch.object(ambari_server, 'get_ambari_properties')
@patch.object(ambari_server, 'is_root')
- def test_setup_ldap(self, is_root_method, get_ambari_properties_method,
+ @patch.object(ambari_server, 'read_password')
+ @patch("os.path.exists")
+ def test_setup_ldap(self, exists_method, read_password_method, is_root_method, get_ambari_properties_method,
search_file_message, setup_master_key_method,
get_validated_string_input_method,
configure_ldap_password_method, update_properties_method,
@@ -3604,6 +3606,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
out = StringIO.StringIO()
sys.stdout = out
+
# Testing call under non-root
is_root_method.return_value = False
try:
@@ -3675,6 +3678,68 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
self.assertTrue(get_validated_string_input_method.called)
self.assertTrue(get_YN_input_method.called)
+ # truststore not found case
+
+ def os_path_exists(*args, **kwargs):
+ if "bogus" in args[0]:
+ return False
+ else:
+ return True
+ pass
+
+ def input_enable_ssl(*args, **kwargs):
+ if 'Bind anonymously' in args[0]:
+ return 'false'
+ if "SSL" in args[0]:
+ return "true"
+ if "Path to TrustStore file" in args[0]:
+ if input_enable_ssl.path_counter < 2:
+ input_enable_ssl.path_counter += 1
+ return "bogus"
+ else:
+ return "valid"
+ if args[1] == "true" or args[1] == "false":
+ return args[1]
+ else:
+ return "test"
+ pass
+
+ input_enable_ssl.path_counter = 0
+
+
+ exists_method.side_effect = os_path_exists
+ get_validated_string_input_method.side_effect = input_enable_ssl
+ read_password_method.return_value = "password"
+ get_YN_input_method.reset_mock()
+ get_YN_input_method.side_effect = [True, True]
+ update_properties_method.reset_mock()
+
+
+ ambari_server.setup_ldap()
+
+ self.assertTrue(read_password_method.called)
+
+ ldap_properties_map = \
+ {
+ "authentication.ldap.primaryUrl" : "test",
+ "authentication.ldap.secondaryUrl" : "test",
+ "authentication.ldap.useSSL" : "true",
+ "authentication.ldap.usernameAttribute" : "test",
+ "authentication.ldap.baseDn" : "test",
+ "authentication.ldap.bindAnonymously" : "false",
+ "authentication.ldap.managerDn" : "test",
+ "client.security" : "ldap",
+ "ssl.trustStore.type" : "test",
+ "ssl.trustStore.path" : "valid",
+ "ssl.trustStore.password" : "password",
+ ambari_server.LDAP_MGR_PASSWORD_PROPERTY : ambari_server.get_alias_string( \
+ ambari_server.LDAP_MGR_PASSWORD_ALIAS)
+ }
+
+ sorted_x = sorted(ldap_properties_map.iteritems(), key=operator.itemgetter(0))
+ sorted_y = sorted(update_properties_method.call_args[0][1].iteritems(),
+ key=operator.itemgetter(0))
+
sys.stdout = sys.__stdout__