You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2016/01/19 14:48:15 UTC

ambari git commit: AMBARI-12430. Improve checks for ambari.properties file for missing/needed properties during startup (aonishuk)

Repository: ambari
Updated Branches:
  refs/heads/trunk 1c2c6a9f6 -> 48246c9fb


AMBARI-12430. Improve checks for ambari.properties file for missing/needed properties during startup (aonishuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/48246c9f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/48246c9f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/48246c9f

Branch: refs/heads/trunk
Commit: 48246c9fbdbe13b73e9851df58c1813fc134f635
Parents: 1c2c6a9
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Tue Jan 19 15:48:11 2016 +0200
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Tue Jan 19 15:48:11 2016 +0200

----------------------------------------------------------------------
 .../python/ambari_server/serverConfiguration.py | 15 ++++++--
 .../src/test/python/TestAmbariServer.py         | 38 ++++++++++++++++++--
 2 files changed, 48 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/48246c9f/ambari-server/src/main/python/ambari_server/serverConfiguration.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/python/ambari_server/serverConfiguration.py b/ambari-server/src/main/python/ambari_server/serverConfiguration.py
index aeb4d5b..d5b9e86 100644
--- a/ambari-server/src/main/python/ambari_server/serverConfiguration.py
+++ b/ambari-server/src/main/python/ambari_server/serverConfiguration.py
@@ -177,10 +177,20 @@ SETUP_OR_UPGRADE_MSG = "- If this is a new setup, then run the \"ambari-server s
 
 DEFAULT_DB_NAME = "ambari"
 
+SECURITY_KEYS_DIR = "security.server.keys_dir"
 COMMON_SERVICES_PATH_PROPERTY = 'common.services.path'
 WEBAPP_DIR_PROPERTY = 'webapp.dir'
-REQUIRED_PROPERTIES = [OS_FAMILY_PROPERTY, OS_TYPE_PROPERTY, COMMON_SERVICES_PATH_PROPERTY, SERVER_VERSION_FILE_PATH, \
-                       WEBAPP_DIR_PROPERTY, STACK_LOCATION_KEY]
+SHARED_RESOURCES_DIR = 'shared.resources.dir'
+BOOTSTRAP_SCRIPT = 'bootstrap.script'
+CUSTOM_ACTION_DEFINITIONS = 'custom.action.definitions'
+BOOTSTRAP_SETUP_AGENT_SCRIPT = 'bootstrap.setup_agent.script'
+STACKADVISOR_SCRIPT = 'stackadvisor.script'
+REQUIRED_PROPERTIES = [OS_FAMILY_PROPERTY, OS_TYPE_PROPERTY, COMMON_SERVICES_PATH_PROPERTY, SERVER_VERSION_FILE_PATH,
+                       WEBAPP_DIR_PROPERTY, STACK_LOCATION_KEY, SECURITY_KEYS_DIR, JDBC_DATABASE_NAME_PROPERTY,
+                       NR_USER_PROPERTY, JAVA_HOME_PROPERTY, JDK_NAME_PROPERTY, JCE_NAME_PROPERTY,
+                       JDBC_PASSWORD_PROPERTY, SHARED_RESOURCES_DIR, JDBC_USER_NAME_PROPERTY, BOOTSTRAP_SCRIPT,
+                       RESOURCES_DIR_PROPERTY, CUSTOM_ACTION_DEFINITIONS, BOOTSTRAP_SETUP_AGENT_SCRIPT,
+                       STACKADVISOR_SCRIPT, BOOTSTRAP_DIR_PROPERTY]
 
 class ServerDatabaseType(object):
   internal = 0
@@ -457,7 +467,6 @@ class ServerConfigDefaultsLinux(ServerConfigDefaults):
 configDefaults = ServerConfigDefaults()
 
 # Security
-SECURITY_KEYS_DIR = "security.server.keys_dir"
 SECURITY_MASTER_KEY_LOCATION = "security.master.key.location"
 SECURITY_KEY_IS_PERSISTED = "security.master.key.ispersisted"
 SECURITY_KEY_ENV_VAR_NAME = "AMBARI_SECURITY_MASTER_KEY"

http://git-wip-us.apache.org/repos/asf/ambari/blob/48246c9f/ambari-server/src/test/python/TestAmbariServer.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/TestAmbariServer.py b/ambari-server/src/test/python/TestAmbariServer.py
index 970bcab..ad4505a 100644
--- a/ambari-server/src/test/python/TestAmbariServer.py
+++ b/ambari-server/src/test/python/TestAmbariServer.py
@@ -76,7 +76,9 @@ with patch("platform.linux_distribution", return_value = os_distro_value):
           SSL_TRUSTSTORE_PASSWORD_PROPERTY, SECURITY_IS_ENCRYPTION_ENABLED, SSL_TRUSTSTORE_PASSWORD_ALIAS, \
           SECURITY_MASTER_KEY_LOCATION, SECURITY_KEYS_DIR, LDAP_PRIMARY_URL_PROPERTY, store_password_file, \
           get_pass_file_path, GET_FQDN_SERVICE_URL, JDBC_USE_INTEGRATED_AUTH_PROPERTY, SECURITY_KEY_ENV_VAR_NAME, \
-          JAVA_HOME_PROPERTY, JDK_NAME_PROPERTY, JCE_NAME_PROPERTY
+          JAVA_HOME_PROPERTY, JDK_NAME_PROPERTY, JCE_NAME_PROPERTY, STACK_LOCATION_KEY, SERVER_VERSION_FILE_PATH, \
+          COMMON_SERVICES_PATH_PROPERTY, WEBAPP_DIR_PROPERTY, SHARED_RESOURCES_DIR, BOOTSTRAP_SCRIPT, \
+          CUSTOM_ACTION_DEFINITIONS, BOOTSTRAP_SETUP_AGENT_SCRIPT, STACKADVISOR_SCRIPT, BOOTSTRAP_DIR_PROPERTY
         from ambari_server.serverUtils import is_server_runing, refresh_stack_hash
         from ambari_server.serverSetup import check_selinux, check_ambari_user, proceedJDBCProperties, SE_STATUS_DISABLED, SE_MODE_ENFORCING, configure_os_settings, \
           download_and_install_jdk, prompt_db_properties, setup, \
@@ -4348,6 +4350,7 @@ class TestAmbariServer(TestCase):
       del args.jdbc_url
       del args.debug
       del args.suspend_start
+      args.skip_properties_validation = False
 
       return args
 
@@ -4368,6 +4371,27 @@ class TestAmbariServer(TestCase):
 
     p = Properties()
     p.process_pair(SECURITY_IS_ENCRYPTION_ENABLED, 'False')
+    p.process_pair(JDBC_DATABASE_NAME_PROPERTY, 'some_value')
+    p.process_pair(NR_USER_PROPERTY, 'some_value')
+    p.process_pair(STACK_LOCATION_KEY, 'some_value')
+    p.process_pair(SERVER_VERSION_FILE_PATH, 'some_value')
+    p.process_pair(OS_TYPE_PROPERTY, 'some_value')
+    p.process_pair(JAVA_HOME_PROPERTY, 'some_value')
+    p.process_pair(JDK_NAME_PROPERTY, 'some_value')
+    p.process_pair(JCE_NAME_PROPERTY, 'some_value')
+    p.process_pair(COMMON_SERVICES_PATH_PROPERTY, 'some_value')
+    p.process_pair(JDBC_PASSWORD_PROPERTY, 'some_value')
+    p.process_pair(WEBAPP_DIR_PROPERTY, 'some_value')
+    p.process_pair(SHARED_RESOURCES_DIR, 'some_value')
+    p.process_pair(SECURITY_KEYS_DIR, 'some_value')
+    p.process_pair(JDBC_USER_NAME_PROPERTY, 'some_value')
+    p.process_pair(BOOTSTRAP_SCRIPT, 'some_value')
+    p.process_pair(OS_FAMILY_PROPERTY, 'some_value')
+    p.process_pair(RESOURCES_DIR_PROPERTY, 'some_value')
+    p.process_pair(CUSTOM_ACTION_DEFINITIONS, 'some_value')
+    p.process_pair(BOOTSTRAP_SETUP_AGENT_SCRIPT, 'some_value')
+    p.process_pair(STACKADVISOR_SCRIPT, 'some_value')
+    p.process_pair(BOOTSTRAP_DIR_PROPERTY, 'some_value')
 
     get_ambari_properties_5_mock.return_value = get_ambari_properties_4_mock.return_value = \
       get_ambari_properties_3_mock.return_value = get_ambari_properties_2_mock.return_value = \
@@ -4682,7 +4706,17 @@ class TestAmbariServer(TestCase):
     self.assertTrue(save_master_key_method.called)
     popen_arg = popenMock.call_args[1]['env']
     self.assertEquals(os_environ_mock.copy.return_value, popen_arg)
-    pass
+
+    # Checking situation when required properties not set up
+    args = reset_mocks()
+    p.removeProp(JAVA_HOME_PROPERTY)
+    get_ambari_properties_mock.return_value = p
+    try:
+      _ambari_server_.start(args)
+      self.fail("Should fail with 'Required properties are not found:'")
+    except FatalException as e:
+      # Expected
+      self.assertTrue('Required properties are not found:' in e.reason)
 
 
   @not_for_platform(PLATFORM_WINDOWS)