Updated Branches: refs/heads/branch-1.2.5 2f447aedc -> 6f4f16849
AMBARI-2685. Add oracle default properties to setup. (ncole) Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/6f4f1684 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/6f4f1684 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/6f4f1684 Branch: refs/heads/branch-1.2.5 Commit: 6f4f1684984b60c7a93e9e61094932540378be3e Parents: 2f447ae Author: Nate Cole <[email protected]> Authored: Thu Jul 18 15:42:59 2013 -0400 Committer: Nate Cole <[email protected]> Committed: Thu Jul 18 15:42:59 2013 -0400 ---------------------------------------------------------------------- ambari-server/src/main/python/ambari-server.py | 17 +++++ .../src/test/python/TestAmbaryServer.py | 65 ++++++++++++++++++++ 2 files changed, 82 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/6f4f1684/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 36a6007..2fdfb05 100755 --- a/ambari-server/src/main/python/ambari-server.py +++ b/ambari-server/src/main/python/ambari-server.py @@ -276,6 +276,17 @@ DATABASE_DROP_SCRIPTS = ['/var/lib/ambari-server/resources/Ambari-DDL-Postgres-R '/var/lib/ambari-server/resources/Ambari-DDL-Oracle-DROP.sql', '/var/lib/ambari-server/resources/Ambari-DDL-MySQL-DROP.sql'] +JDBC_PROPERTIES_PREFIX = "server.jdbc.properties." +DATABASE_JDBC_PROPERTIES = [ + [ ], + [ + ["oracle.net.CONNECT_TIMEOUT", "2000"], # socket level timeout + ["oracle.net.READ_TIMEOUT", "2000"], # socket level timeout + ["oracle.jdbc.ReadTimeout", "8000"] # query fetch timeout + ], + [ ] + ] + REGEX_IP_ADDRESS = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" REGEX_HOSTNAME = "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$" REGEX_HOSTNAME_PORT = "^(.*:[0-9]{1,5}$)" @@ -1145,6 +1156,12 @@ def store_remote_properties(args): properties.process_pair(JDBC_USER_NAME_PROPERTY, args.database_username) properties.process_pair(JDBC_PASSWORD_PROPERTY, store_password_file(args.database_password, JDBC_PASSWORD_FILENAME)) + + # save any other defined properties to pass to JDBC + if DATABASE_INDEX < len(DATABASE_JDBC_PROPERTIES): + for pair in DATABASE_JDBC_PROPERTIES[DATABASE_INDEX]: + properties.process_pair(JDBC_PROPERTIES_PREFIX + pair[0], pair[1]) + if isSecure: encrypted_password = encrypt_password(JDBC_RCA_PASSWORD_ALIAS, args.database_password) if encrypted_password != args.database_password: http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/6f4f1684/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 21543f7..c5070d5 100644 --- a/ambari-server/src/test/python/TestAmbaryServer.py +++ b/ambari-server/src/test/python/TestAmbaryServer.py @@ -2685,6 +2685,71 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV # Expected self.assertTrue("The cli was not found" in fe.reason) + @patch.object(ambari_server, 'verify_setup_allowed') + @patch("sys.exit") + @patch.object(ambari_server, "get_YN_input") + @patch.object(ambari_server, "get_db_cli_tool") + @patch.object(ambari_server, "is_local_database") + @patch.object(ambari_server, "check_iptables") + @patch.object(ambari_server, "check_jdbc_drivers") + @patch.object(ambari_server, "is_root") + @patch.object(ambari_server, "check_ambari_user") + @patch.object(ambari_server, "download_jdk") + @patch.object(ambari_server, "configure_os_settings") + @patch('__builtin__.raw_input') + def test_store_remote_properties(self,raw_input, configure_os_settings_mock, + download_jdk_mock, check_ambari_user_mock, is_root_mock, + check_jdbc_drivers_mock, check_iptables_mock, is_local_db_mock, + get_db_cli_tool_mock, get_YN_input, exit_mock, verify_setup_allowed_method): + + raw_input.return_value ="" + is_root_mock.return_value = True + is_local_db_mock.return_value = False + get_YN_input.return_value = False + check_iptables_mock.return_value = (0, "other") + get_db_cli_tool_mock.return_value = None + check_jdbc_drivers_mock.return_value=0 + check_ambari_user_mock.return_value = 0 + download_jdk_mock.return_value = 0 + configure_os_settings_mock.return_value = 0 + verify_setup_allowed_method.return_value = 0 + + import optparse + + args = optparse.Values() + args.database = "oracle" + args.database_host = "localhost" + args.database_port = "1234" + args.database_name = "ambari" + args.sid_or_sname = "foo" + args.database_username = "foo" + args.database_password = "foo" + + tempdir = tempfile.gettempdir() + + prop_file = os.path.join(tempdir, "ambari.properties") + + with open(prop_file, "w") as f: + f.write("dummy=dummy") + f.close() + + os.environ[ambari_server.AMBARI_CONF_VAR] = tempdir + ambari_server.DATABASE_INDEX = 1 + + ambari_server.store_remote_properties(args) + + properties = ambari_server.get_ambari_properties() + + found = False + for n in properties.propertyNames(): + if not found and n.startswith("server.jdbc.properties"): + found = True + + ambari_server.DATABASE_INDEX = 0 + del os.environ[ambari_server.AMBARI_CONF_VAR] + os.remove(prop_file) + + self.assertTrue(found) @patch.object(ambari_server, "parse_properties_file") @patch.object(ambari_server, "get_db_cli_tool")
