Explorar o 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 %!s(int64=10) %!d(string=hai) anos
pai
achega
fe55b9c955
Modificáronse 24 ficheiros con 78 adicións e 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"