Explorar el Código

AMBARI-12038 Windows unit tests: Server unit tests: fix the imports & failing patches

Fixed the imports. Coalesced the OS mock. Excluded the obviously inapplicable Windows tests (Atlas, Ganglia, Kerberos, Mahout, NFSGateway, Phoenix, Ranger, Spark).
Florian Barca hace 10 años
padre
commit
fe55b9c955
Se han modificado 24 ficheros con 78 adiciones y 25 borrados
  1. 10 3
      ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params_windows.py
  2. 6 5
      ambari-server/src/test/python/TestAmbariServer.py
  3. 2 2
      ambari-server/src/test/python/TestBootstrap.py
  4. 4 1
      ambari-server/src/test/python/TestValidateConfigs.py
  5. 1 4
      ambari-server/src/test/python/custom_actions/TestCheckHost.py
  6. 6 2
      ambari-server/src/test/python/custom_actions/TestInstallPackages.py
  7. 1 5
      ambari-server/src/test/python/host_scripts/TestAlertDiskSpace.py
  8. 2 0
      ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_monitor.py
  9. 3 0
      ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_server.py
  10. 3 2
      ambari-server/src/test/python/stacks/2.0.6/HBASE/test_phoenix_queryserver.py
  11. 3 0
      ambari-server/src/test/python/stacks/2.0.6/HDFS/test_nfsgateway.py
  12. 3 0
      ambari-server/src/test/python/stacks/2.0.6/HIVE/test_mysql_server.py
  13. 2 0
      ambari-server/src/test/python/stacks/2.2/ACCUMULO/test_accumulo_client.py
  14. 3 0
      ambari-server/src/test/python/stacks/2.2/KAFKA/test_kafka_broker.py
  15. 2 0
      ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py
  16. 3 0
      ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_server.py
  17. 3 0
      ambari-server/src/test/python/stacks/2.2/RANGER/test_ranger_admin.py
  18. 3 0
      ambari-server/src/test/python/stacks/2.2/RANGER/test_ranger_usersync.py
  19. 3 0
      ambari-server/src/test/python/stacks/2.2/SPARK/test_job_history_server.py
  20. 3 0
      ambari-server/src/test/python/stacks/2.2/SPARK/test_spark_client.py
  21. 3 0
      ambari-server/src/test/python/stacks/2.2/SPARK/test_spark_service_check.py
  22. 2 0
      ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py
  23. 3 0
      ambari-server/src/test/python/stacks/2.3/MAHOUT/test_mahout_client.py
  24. 4 1
      ambari-server/src/test/python/stacks/2.3/MAHOUT/test_mahout_service_check.py

+ 10 - 3
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params_windows.py

@@ -46,8 +46,15 @@ except:
   ams_monitor_conf_dir = None
   ams_monitor_home_dir = None
 
-hadoop_native_lib = os.path.join(os.environ["HADOOP_HOME"], "bin")
-hadoop_bin_dir = os.path.join(os.environ["HADOOP_HOME"], "bin")
-hadoop_conf_dir = os.path.join(os.environ["HADOOP_HOME"], "conf")
+hadoop_native_lib = None
+hadoop_bin_dir = None
+hadoop_conf_dir = None
+
+try:
+  hadoop_native_lib = os.path.join(os.environ["HADOOP_HOME"], "bin")
+  hadoop_bin_dir = os.path.join(os.environ["HADOOP_HOME"], "bin")
+  hadoop_conf_dir = os.path.join(os.environ["HADOOP_HOME"], "conf")
+except:
+  pass
 
 from service_mapping import *

+ 6 - 5
ambari-server/src/test/python/TestAmbariServer.py

@@ -34,14 +34,10 @@ import StringIO
 import tempfile
 from unittest import TestCase
 
-from only_for_platform import get_platform, not_for_platform, only_for_platform, PLATFORM_LINUX, PLATFORM_WINDOWS
+from only_for_platform import get_platform, not_for_platform, only_for_platform, os_distro_value, PLATFORM_LINUX, PLATFORM_WINDOWS
 
 if get_platform() != PLATFORM_WINDOWS:
-  os_distro_value = ('Suse','11','Final')
   from pwd import getpwnam
-else:
-  #No Windows tests for now, but start getting prepared
-  os_distro_value = ('win2012serverr2','6.3','WindowsServer')
 
 # We have to use this import HACK because the filename contains a dash
 with patch("platform.linux_distribution", return_value = os_distro_value):
@@ -4060,6 +4056,11 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
       del args.database_name
       del args.database_username
       del args.database_password
+      del args.database_windows_auth
+      del args.default_database_host
+      del args.init_db_script_file
+      del args.cleanup_db_script_file
+      del args.must_set_database_options
       del args.sid_or_sname
       del args.jdbc_url
 

+ 2 - 2
ambari-server/src/test/python/TestBootstrap.py

@@ -33,9 +33,9 @@ from bootstrap import AMBARI_PASSPHRASE_VAR_NAME
 from mock.mock import MagicMock, call
 from mock.mock import patch
 from mock.mock import create_autospec
-from only_for_platform import only_for_platform, PLATFORM_LINUX
+from only_for_platform import not_for_platform, os_distro_value, PLATFORM_WINDOWS
 
-@only_for_platform(PLATFORM_LINUX)
+@not_for_platform(PLATFORM_WINDOWS)
 class TestBootstrap(TestCase):
 
   def setUp(self):

+ 4 - 1
ambari-server/src/test/python/TestValidateConfigs.py

@@ -17,10 +17,13 @@ limitations under the License.
 '''
 import tempfile
 
-from validate_configs import ValidateConfigs
 from unittest import TestCase
 from mock.mock import patch
 
+from only_for_platform import get_platform, not_for_platform, PLATFORM_WINDOWS
+
+if get_platform() != PLATFORM_WINDOWS:
+  from validate_configs import ValidateConfigs
 
 
 class TestValidateConfigs(TestCase):

+ 1 - 4
ambari-server/src/test/python/custom_actions/TestCheckHost.py

@@ -34,10 +34,7 @@ from check_host import CheckHost
 from only_for_platform import only_for_platform, get_platform, PLATFORM_LINUX, PLATFORM_WINDOWS
 from ambari_agent.HostCheckReportFileHandler import HostCheckReportFileHandler
 
-if get_platform() != PLATFORM_WINDOWS:
-  os_distro_value = ('Suse','11','Final')
-else:
-  os_distro_value = ('win2012serverr2','6.3','WindowsServer')
+from only_for_platform import get_platform, not_for_platform, only_for_platform, os_distro_value, PLATFORM_LINUX, PLATFORM_WINDOWS
 
 
 @patch.object(HostCheckReportFileHandler, "writeHostChecksCustomActionsFile", new=MagicMock())

+ 6 - 2
ambari-server/src/test/python/custom_actions/TestInstallPackages.py

@@ -19,7 +19,6 @@ limitations under the License.
 '''
 import json
 import os
-import pty
 import subprocess
 import select
 import install_packages
@@ -35,6 +34,11 @@ OLD_VERSION_STUB = '2.1.0.0-400'
 VERSION_STUB_WITHOUT_BUILD_NUMBER = '2.2.0.1'
 VERSION_STUB = '2.2.0.1-885'
 
+from only_for_platform import get_platform, not_for_platform, only_for_platform, os_distro_value, PLATFORM_WINDOWS
+
+if get_platform() != PLATFORM_WINDOWS:
+  import pty
+
 subproc_mock = MagicMock()
 subproc_mock.return_value = MagicMock()
 subproc_stdout = MagicMock()
@@ -42,7 +46,7 @@ subproc_mock.return_value.stdout = subproc_stdout
 
 @patch.object(os, "read", new=MagicMock(return_value=None))
 @patch.object(select, "select", new=MagicMock(return_value=([subproc_stdout], None, None)))
-@patch.object(pty, "openpty", new = MagicMock(return_value=(1,5)))
+@patch("pty.openpty", new = MagicMock(return_value=(1,5)))
 @patch.object(os, "close", new=MagicMock())
 @patch.object(subprocess, "Popen", new=subproc_mock)
 class TestInstallPackages(RMFTestCase):

+ 1 - 5
ambari-server/src/test/python/host_scripts/TestAlertDiskSpace.py

@@ -22,14 +22,10 @@ from mock.mock import patch, MagicMock
 from ambari_commons.os_check import OSCheck
 from stacks.utils.RMFTestCase import *
 
-from only_for_platform import get_platform, not_for_platform, only_for_platform, PLATFORM_LINUX, PLATFORM_WINDOWS
+from only_for_platform import get_platform, not_for_platform, os_distro_value, PLATFORM_WINDOWS
 
 if get_platform() != PLATFORM_WINDOWS:
-  os_distro_value = ('Suse','11','Final')
   from pwd import getpwnam
-else:
-  #No Windows tests for now, but start getting prepared
-  os_distro_value = ('win2012serverr2','6.3','WindowsServer')
 
 class TestAlertDiskSpace(RMFTestCase):
 

+ 2 - 0
ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_monitor.py

@@ -20,7 +20,9 @@ limitations under the License.
 
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
 
+@not_for_platform(PLATFORM_WINDOWS)
 class TestGangliaMonitor(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "GANGLIA/3.5.0/package"
   STACK_VERSION = "2.0.6"

+ 3 - 0
ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_server.py

@@ -21,6 +21,9 @@ limitations under the License.
 from stacks.utils.RMFTestCase import *
 from mock.mock import MagicMock, call, patch
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 class TestGangliaServer(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "GANGLIA/3.5.0/package"
   STACK_VERSION = "2.0.6"

+ 3 - 2
ambari-server/src/test/python/stacks/2.0.6/HBASE/test_phoenix_queryserver.py

@@ -18,6 +18,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 '''
 import json
+from unittest import SkipTest
 
 from mock.mock import MagicMock, patch
 from stacks.utils.RMFTestCase import *
@@ -142,8 +143,8 @@ class TestPhoenixQueryServer(RMFTestCase):
 
 
   def test_start_default_24(self):
-    # @skip("there's nothing to upgrade to yet")
-    return
+    raise SkipTest("there's nothing to upgrade to yet")
+
     self.executeScript(
       self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/phoenix_queryserver.py",
       classname = "PhoenixQueryServer",

+ 3 - 0
ambari-server/src/test/python/stacks/2.0.6/HDFS/test_nfsgateway.py

@@ -21,8 +21,11 @@ import os
 from stacks.utils.RMFTestCase import *
 from mock.mock import MagicMock, patch
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
 # NFS GATEWAY is always started by root using jsvc due to rpcbind bugs
 # on Linux such as CentOS6.2. https://bugzilla.redhat.com/show_bug.cgi?id=731542
+@not_for_platform(PLATFORM_WINDOWS)
 class TestNFSGateway(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "HDFS/2.1.0.2.0/package"
   STACK_VERSION = "2.0.6"

+ 3 - 0
ambari-server/src/test/python/stacks/2.0.6/HIVE/test_mysql_server.py

@@ -20,6 +20,9 @@ limitations under the License.
 from mock.mock import MagicMock, call, patch
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 class TestMySqlServer(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "HIVE/0.12.0.2.0/package"
   STACK_VERSION = "2.0.6"

+ 2 - 0
ambari-server/src/test/python/stacks/2.2/ACCUMULO/test_accumulo_client.py

@@ -22,7 +22,9 @@ import json
 from mock.mock import patch
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
 
+@not_for_platform(PLATFORM_WINDOWS)
 class TestAccumuloClient(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "ACCUMULO/1.6.1.2.2.0/package"
   STACK_VERSION = "2.1"

+ 3 - 0
ambari-server/src/test/python/stacks/2.2/KAFKA/test_kafka_broker.py

@@ -21,6 +21,9 @@ import json
 from stacks.utils.RMFTestCase import *
 from mock.mock import patch
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 class TestKafkaBroker(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "KAFKA/0.8.1.2.2/package"
   STACK_VERSION = "2.2"

+ 2 - 0
ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py

@@ -24,7 +24,9 @@ import sys
 import use_cases
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
 
+@not_for_platform(PLATFORM_WINDOWS)
 class TestKerberosClient(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "KERBEROS/1.10.3-10/package"
   STACK_VERSION = "2.2"

+ 3 - 0
ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_server.py

@@ -22,6 +22,9 @@ import use_cases
 
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 class TestKerberosServer(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "KERBEROS/1.10.3-10/package"
   STACK_VERSION = "2.2"

+ 3 - 0
ambari-server/src/test/python/stacks/2.2/RANGER/test_ranger_admin.py

@@ -21,6 +21,9 @@ import json
 from mock.mock import MagicMock, patch
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 class TestRangerAdmin(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "RANGER/0.4.0/package"
   STACK_VERSION = "2.2"

+ 3 - 0
ambari-server/src/test/python/stacks/2.2/RANGER/test_ranger_usersync.py

@@ -22,6 +22,9 @@ import json
 from mock.mock import MagicMock, patch
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 class TestRangerUsersync(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "RANGER/0.4.0/package"
   STACK_VERSION = "2.2"

+ 3 - 0
ambari-server/src/test/python/stacks/2.2/SPARK/test_job_history_server.py

@@ -21,6 +21,9 @@ import json
 from mock.mock import MagicMock, patch
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 @patch("resource_management.libraries.functions.get_hdp_version", new=MagicMock(return_value="2.3.0.0-1597"))
 class TestJobHistoryServer(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "SPARK/1.2.0.2.2/package"

+ 3 - 0
ambari-server/src/test/python/stacks/2.2/SPARK/test_spark_client.py

@@ -21,6 +21,9 @@ import json
 from mock.mock import MagicMock, patch
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 @patch("resource_management.libraries.functions.get_hdp_version", new=MagicMock(return_value="2.3.0.0-1597"))
 class TestSparkClient(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "SPARK/1.2.0.2.2/package"

+ 3 - 0
ambari-server/src/test/python/stacks/2.2/SPARK/test_spark_service_check.py

@@ -20,6 +20,9 @@ limitations under the License.
 from mock.mock import MagicMock, call, patch
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 @patch("resource_management.libraries.functions.get_hdp_version", new=MagicMock(return_value="2.3.0.0-1597"))
 class TestServiceCheck(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "SPARK/1.2.0.2.2/package"

+ 2 - 0
ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py

@@ -23,7 +23,9 @@ from stacks.utils.RMFTestCase import *
 import json
 import sys
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
 
+@not_for_platform(PLATFORM_WINDOWS)
 class TestMetadataServer(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "ATLAS/0.1.0.2.3/package"
   STACK_VERSION = "2.3"

+ 3 - 0
ambari-server/src/test/python/stacks/2.3/MAHOUT/test_mahout_client.py

@@ -22,6 +22,9 @@ import json
 
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
 class TestMahoutClient(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "MAHOUT/1.0.0.2.3/package"
   STACK_VERSION = "2.3"

+ 4 - 1
ambari-server/src/test/python/stacks/2.3/MAHOUT/test_mahout_service_check.py

@@ -17,9 +17,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 '''
-
 from stacks.utils.RMFTestCase import *
 
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+
+@not_for_platform(PLATFORM_WINDOWS)
 class TestMahoutClient(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "MAHOUT/1.0.0.2.3/package"
   STACK_VERSION = "2.3"