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 2014/01/21 14:35:02 UTC

git commit: AMBARI-4368. Write unnitests for WEBHCAT install script on HDP1 and HDP2 (Arsen Babych via aonishuk)

Updated Branches:
  refs/heads/trunk 85dd6783b -> e1dffdc50


AMBARI-4368. Write unnitests for WEBHCAT install script on HDP1 and HDP2
(Arsen Babych via aonishuk)


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

Branch: refs/heads/trunk
Commit: e1dffdc50fa226992eeaf39c28487ef752238c08
Parents: 85dd678
Author: Andrew Onischuk <ao...@hortonworks.com>
Authored: Tue Jan 21 05:33:35 2014 -0800
Committer: Andrew Onischuk <ao...@hortonworks.com>
Committed: Tue Jan 21 05:34:37 2014 -0800

----------------------------------------------------------------------
 .../stacks/1.3.3/WEBHCAT/test_webhcat_server.py | 188 +++++++++++++++++++
 .../stacks/2.1.1/WEBHCAT/test_webhcat_server.py | 188 +++++++++++++++++++
 2 files changed, 376 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/e1dffdc5/ambari-server/src/test/python/stacks/1.3.3/WEBHCAT/test_webhcat_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/1.3.3/WEBHCAT/test_webhcat_server.py b/ambari-server/src/test/python/stacks/1.3.3/WEBHCAT/test_webhcat_server.py
new file mode 100644
index 0000000..8a9c878
--- /dev/null
+++ b/ambari-server/src/test/python/stacks/1.3.3/WEBHCAT/test_webhcat_server.py
@@ -0,0 +1,188 @@
+#!/usr/bin/env python
+
+'''
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+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 mock.mock import MagicMock, patch
+from stacks.utils.RMFTestCase import *
+
+class TestWebHCatServer(RMFTestCase):
+
+  def test_configure_default(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "configure",
+                       config_file="default.json"
+    )
+    self.assert_configure_default()
+    self.assertNoMoreResources()
+
+  def test_start_default(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "start",
+                       config_file="default.json"
+    )
+
+    self.assert_configure_default()
+    self.assertResourceCalled('Execute', 'env HADOOP_HOME=/usr /usr/lib/hcatalog/sbin/webhcat_server.sh start',
+                              not_if = 'ls /var/run/webhcat/webhcat.pid >/dev/null 2>&1 && ps `cat /var/run/webhcat/webhcat.pid` >/dev/null 2>&1',
+                              user = 'hcat'
+    )
+    self.assertNoMoreResources()
+
+  def test_stop_default(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "stop",
+                       config_file="default.json"
+    )
+
+    self.assertResourceCalled('Execute', 'env HADOOP_HOME=/usr /usr/lib/hcatalog/sbin/webhcat_server.sh stop',
+                              user = 'hcat',
+                              )
+    self.assertResourceCalled('Execute', 'rm -f /var/run/webhcat/webhcat.pid')
+    self.assertNoMoreResources()
+
+    def test_configure_secured(self):
+      self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                         classname = "WebHCatServer",
+                         command = "configure",
+                         config_file="secured.json"
+      )
+
+      self.assert_configure_secured()
+      self.assertNoMoreResources()
+
+  def test_start_secured(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "start",
+                       config_file="secured.json"
+    )
+
+    self.assert_configure_secured()
+    self.assertResourceCalled('Execute', 'env HADOOP_HOME=/usr /usr/lib/hcatalog/sbin/webhcat_server.sh start',
+                              not_if = 'ls /var/run/webhcat/webhcat.pid >/dev/null 2>&1 && ps `cat /var/run/webhcat/webhcat.pid` >/dev/null 2>&1',
+                              user = 'hcat'
+    )
+    self.assertNoMoreResources()
+
+  def test_stop_secured(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "stop",
+                       config_file="secured.json"
+    )
+
+    self.assertResourceCalled('Execute', 'env HADOOP_HOME=/usr /usr/lib/hcatalog/sbin/webhcat_server.sh stop',
+                              user = 'hcat',
+                              )
+    self.assertResourceCalled('Execute', 'rm -f /var/run/webhcat/webhcat.pid')
+    self.assertNoMoreResources()
+
+  def assert_configure_default(self):
+    self.assertResourceCalled('Directory', '/var/run/webhcat',
+      owner = 'hcat',
+      group = 'hadoop',
+      recursive = True,
+      mode = 493,
+    )
+    self.assertResourceCalled('Directory', '/var/log/webhcat',
+      owner = 'hcat',
+      group = 'hadoop',
+      recursive = True,
+      mode = 493,
+    )
+    self.assertResourceCalled('Directory', '/etc/hcatalog/conf',
+      owner = 'hcat',
+      group = 'hadoop',
+    )
+    self.assertResourceCalled('XmlConfig', 'webhcat-site.xml',
+      owner = 'hcat',
+      group = 'hadoop',
+      conf_dir = '/etc/hcatalog/conf',
+      configurations = self.getConfig()['configurations']['webhcat-site'], # don't hardcode all the properties
+    )
+    self.assertResourceCalled('File', '/etc/hcatalog/conf/webhcat-env.sh',
+      content = Template('webhcat-env.sh.j2'),
+      owner = 'hcat',
+      group = 'hadoop',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/lib/hadoop-mapreduce/hadoop-streaming*.jar /apps/webhcat/hadoop-streaming.jar',
+      not_if = ' hadoop fs -ls /apps/webhcat/hadoop-streaming.jar >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/share/HDP-webhcat/pig.tar.gz /apps/webhcat/pig.tar.gz',
+      not_if = ' hadoop fs -ls /apps/webhcat/pig.tar.gz >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/share/HDP-webhcat/hive.tar.gz /apps/webhcat/hive.tar.gz',
+      not_if = ' hadoop fs -ls /apps/webhcat/hive.tar.gz >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+
+  def assert_configure_secured(self):
+    self.assertResourceCalled('Directory', '/var/run/webhcat',
+      owner = 'hcat',
+      group = 'hadoop',
+      recursive = True,
+      mode = 493,
+    )
+    self.assertResourceCalled('Directory', '/var/log/webhcat',
+      owner = 'hcat',
+      group = 'hadoop',
+      recursive = True,
+      mode = 493,
+    )
+    self.assertResourceCalled('Directory', '/etc/hcatalog/conf',
+      owner = 'hcat',
+      group = 'hadoop',
+    )
+    self.assertResourceCalled('XmlConfig', 'webhcat-site.xml',
+      owner = 'hcat',
+      group = 'hadoop',
+      conf_dir = '/etc/hcatalog/conf',
+      configurations = self.getConfig()['configurations']['webhcat-site'], # don't hardcode all the properties
+    )
+    self.assertResourceCalled('File', '/etc/hcatalog/conf/webhcat-env.sh',
+      content = Template('webhcat-env.sh.j2'),
+      owner = 'hcat',
+      group = 'hadoop',
+    )
+    self.assertResourceCalled('Execute', ' -kt /etc/security/keytabs/smokeuser.headless.keytab ambari-qa;',
+      path = ['/bin'],
+      user = 'hcat',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/lib/hadoop-mapreduce/hadoop-streaming*.jar /apps/webhcat/hadoop-streaming.jar',
+      not_if = ' -kt /etc/security/keytabs/smokeuser.headless.keytab ambari-qa; hadoop fs -ls /apps/webhcat/hadoop-streaming.jar >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/share/HDP-webhcat/pig.tar.gz /apps/webhcat/pig.tar.gz',
+      not_if = ' hadoop fs -ls /apps/webhcat/pig.tar.gz >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/share/HDP-webhcat/hive.tar.gz /apps/webhcat/hive.tar.gz',
+      not_if = ' hadoop fs -ls /apps/webhcat/hive.tar.gz >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )

http://git-wip-us.apache.org/repos/asf/ambari/blob/e1dffdc5/ambari-server/src/test/python/stacks/2.1.1/WEBHCAT/test_webhcat_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1.1/WEBHCAT/test_webhcat_server.py b/ambari-server/src/test/python/stacks/2.1.1/WEBHCAT/test_webhcat_server.py
new file mode 100644
index 0000000..8a9c878
--- /dev/null
+++ b/ambari-server/src/test/python/stacks/2.1.1/WEBHCAT/test_webhcat_server.py
@@ -0,0 +1,188 @@
+#!/usr/bin/env python
+
+'''
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+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 mock.mock import MagicMock, patch
+from stacks.utils.RMFTestCase import *
+
+class TestWebHCatServer(RMFTestCase):
+
+  def test_configure_default(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "configure",
+                       config_file="default.json"
+    )
+    self.assert_configure_default()
+    self.assertNoMoreResources()
+
+  def test_start_default(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "start",
+                       config_file="default.json"
+    )
+
+    self.assert_configure_default()
+    self.assertResourceCalled('Execute', 'env HADOOP_HOME=/usr /usr/lib/hcatalog/sbin/webhcat_server.sh start',
+                              not_if = 'ls /var/run/webhcat/webhcat.pid >/dev/null 2>&1 && ps `cat /var/run/webhcat/webhcat.pid` >/dev/null 2>&1',
+                              user = 'hcat'
+    )
+    self.assertNoMoreResources()
+
+  def test_stop_default(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "stop",
+                       config_file="default.json"
+    )
+
+    self.assertResourceCalled('Execute', 'env HADOOP_HOME=/usr /usr/lib/hcatalog/sbin/webhcat_server.sh stop',
+                              user = 'hcat',
+                              )
+    self.assertResourceCalled('Execute', 'rm -f /var/run/webhcat/webhcat.pid')
+    self.assertNoMoreResources()
+
+    def test_configure_secured(self):
+      self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                         classname = "WebHCatServer",
+                         command = "configure",
+                         config_file="secured.json"
+      )
+
+      self.assert_configure_secured()
+      self.assertNoMoreResources()
+
+  def test_start_secured(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "start",
+                       config_file="secured.json"
+    )
+
+    self.assert_configure_secured()
+    self.assertResourceCalled('Execute', 'env HADOOP_HOME=/usr /usr/lib/hcatalog/sbin/webhcat_server.sh start',
+                              not_if = 'ls /var/run/webhcat/webhcat.pid >/dev/null 2>&1 && ps `cat /var/run/webhcat/webhcat.pid` >/dev/null 2>&1',
+                              user = 'hcat'
+    )
+    self.assertNoMoreResources()
+
+  def test_stop_secured(self):
+    self.executeScript("2.1.1/services/WEBHCAT/package/scripts/webhcat_server.py",
+                       classname = "WebHCatServer",
+                       command = "stop",
+                       config_file="secured.json"
+    )
+
+    self.assertResourceCalled('Execute', 'env HADOOP_HOME=/usr /usr/lib/hcatalog/sbin/webhcat_server.sh stop',
+                              user = 'hcat',
+                              )
+    self.assertResourceCalled('Execute', 'rm -f /var/run/webhcat/webhcat.pid')
+    self.assertNoMoreResources()
+
+  def assert_configure_default(self):
+    self.assertResourceCalled('Directory', '/var/run/webhcat',
+      owner = 'hcat',
+      group = 'hadoop',
+      recursive = True,
+      mode = 493,
+    )
+    self.assertResourceCalled('Directory', '/var/log/webhcat',
+      owner = 'hcat',
+      group = 'hadoop',
+      recursive = True,
+      mode = 493,
+    )
+    self.assertResourceCalled('Directory', '/etc/hcatalog/conf',
+      owner = 'hcat',
+      group = 'hadoop',
+    )
+    self.assertResourceCalled('XmlConfig', 'webhcat-site.xml',
+      owner = 'hcat',
+      group = 'hadoop',
+      conf_dir = '/etc/hcatalog/conf',
+      configurations = self.getConfig()['configurations']['webhcat-site'], # don't hardcode all the properties
+    )
+    self.assertResourceCalled('File', '/etc/hcatalog/conf/webhcat-env.sh',
+      content = Template('webhcat-env.sh.j2'),
+      owner = 'hcat',
+      group = 'hadoop',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/lib/hadoop-mapreduce/hadoop-streaming*.jar /apps/webhcat/hadoop-streaming.jar',
+      not_if = ' hadoop fs -ls /apps/webhcat/hadoop-streaming.jar >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/share/HDP-webhcat/pig.tar.gz /apps/webhcat/pig.tar.gz',
+      not_if = ' hadoop fs -ls /apps/webhcat/pig.tar.gz >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/share/HDP-webhcat/hive.tar.gz /apps/webhcat/hive.tar.gz',
+      not_if = ' hadoop fs -ls /apps/webhcat/hive.tar.gz >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+
+  def assert_configure_secured(self):
+    self.assertResourceCalled('Directory', '/var/run/webhcat',
+      owner = 'hcat',
+      group = 'hadoop',
+      recursive = True,
+      mode = 493,
+    )
+    self.assertResourceCalled('Directory', '/var/log/webhcat',
+      owner = 'hcat',
+      group = 'hadoop',
+      recursive = True,
+      mode = 493,
+    )
+    self.assertResourceCalled('Directory', '/etc/hcatalog/conf',
+      owner = 'hcat',
+      group = 'hadoop',
+    )
+    self.assertResourceCalled('XmlConfig', 'webhcat-site.xml',
+      owner = 'hcat',
+      group = 'hadoop',
+      conf_dir = '/etc/hcatalog/conf',
+      configurations = self.getConfig()['configurations']['webhcat-site'], # don't hardcode all the properties
+    )
+    self.assertResourceCalled('File', '/etc/hcatalog/conf/webhcat-env.sh',
+      content = Template('webhcat-env.sh.j2'),
+      owner = 'hcat',
+      group = 'hadoop',
+    )
+    self.assertResourceCalled('Execute', ' -kt /etc/security/keytabs/smokeuser.headless.keytab ambari-qa;',
+      path = ['/bin'],
+      user = 'hcat',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/lib/hadoop-mapreduce/hadoop-streaming*.jar /apps/webhcat/hadoop-streaming.jar',
+      not_if = ' -kt /etc/security/keytabs/smokeuser.headless.keytab ambari-qa; hadoop fs -ls /apps/webhcat/hadoop-streaming.jar >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/share/HDP-webhcat/pig.tar.gz /apps/webhcat/pig.tar.gz',
+      not_if = ' hadoop fs -ls /apps/webhcat/pig.tar.gz >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )
+    self.assertResourceCalled('ExecuteHadoop', 'fs -copyFromLocal /usr/share/HDP-webhcat/hive.tar.gz /apps/webhcat/hive.tar.gz',
+      not_if = ' hadoop fs -ls /apps/webhcat/hive.tar.gz >/dev/null 2>&1',
+      user = 'hcat',
+      conf_dir = '/etc/hadoop/conf',
+    )