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")

Reply via email to