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',
+ )