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/20 17:32:23 UTC
git commit: AMBARI-4352. Write unnitests for ZOOKEEPER install script
on HDP1 and HDP2 (Arsen Babych via aonishuk)
Updated Branches:
refs/heads/trunk c3a1a5923 -> aae72dfaf
AMBARI-4352. Write unnitests for ZOOKEEPER 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/aae72dfa
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/aae72dfa
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/aae72dfa
Branch: refs/heads/trunk
Commit: aae72dfafcc09369a9134306af5e996fff517682
Parents: c3a1a59
Author: Andrew Onischuk <ao...@hortonworks.com>
Authored: Mon Jan 20 08:31:40 2014 -0800
Committer: Andrew Onischuk <ao...@hortonworks.com>
Committed: Mon Jan 20 08:31:40 2014 -0800
----------------------------------------------------------------------
.../1.3.3/ZOOKEEPER/test_zookeeper_client.py | 142 +++++++++++++
.../1.3.3/ZOOKEEPER/test_zookeeper_server.py | 210 +++++++++++++++++++
.../python/stacks/1.3.3/configs/default.json | 2 +-
.../python/stacks/1.3.3/configs/secured.json | 2 +-
.../2.1.1/ZOOKEEPER/test_zookeeper_client.py | 142 +++++++++++++
.../2.1.1/ZOOKEEPER/test_zookeeper_server.py | 210 +++++++++++++++++++
6 files changed, 706 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/aae72dfa/ambari-server/src/test/python/stacks/1.3.3/ZOOKEEPER/test_zookeeper_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/1.3.3/ZOOKEEPER/test_zookeeper_client.py b/ambari-server/src/test/python/stacks/1.3.3/ZOOKEEPER/test_zookeeper_client.py
new file mode 100644
index 0000000..7eacc6a
--- /dev/null
+++ b/ambari-server/src/test/python/stacks/1.3.3/ZOOKEEPER/test_zookeeper_client.py
@@ -0,0 +1,142 @@
+#!/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, call, patch
+from stacks.utils.RMFTestCase import *
+
+class TestZookeeperClient(RMFTestCase):
+
+ def test_configure_default(self):
+ self.executeScript("1.3.3/services/ZOOKEEPER/package/scripts/zookeeper_client.py",
+ classname = "ZookeeperClient",
+ command = "configure",
+ config_file="default.json"
+ )
+
+ self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo.cfg',
+ owner = 'zookeeper',
+ content = Template('zoo.cfg.j2'),
+ group = 'hadoop'
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
+ owner = 'zookeeper',
+ content = Template('zookeeper-env.sh.j2'),
+ group = 'hadoop'
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/configuration.xsl',
+ owner = 'zookeeper',
+ content = Template('configuration.xsl.j2'),
+ group = 'hadoop'
+ )
+
+ self.assertResourceCalled('Directory', '/var/run/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True
+ )
+
+ self.assertResourceCalled('Directory', '/var/log/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True
+ )
+
+ self.assertResourceCalled('Directory', '/hadoop/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/log4j.properties',
+ owner = 'zookeeper',
+ content = Template('log4j.properties.j2'),
+ group = 'hadoop'
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo_sample.cfg',
+ owner = 'zookeeper',
+ group = 'hadoop'
+ )
+
+ def test_configure_secured(self):
+
+ self.executeScript("1.3.3/services/ZOOKEEPER/package/scripts/zookeeper_client.py",
+ classname = "ZookeeperClient",
+ command = "configure",
+ config_file="secured.json"
+ )
+
+ self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
+ owner='zookeeper',
+ group='hadoop',
+ recursive=True
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo.cfg',
+ owner='zookeeper',
+ content=Template('zoo.cfg.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
+ owner='zookeeper',
+ content=Template('zookeeper-env.sh.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/configuration.xsl',
+ owner='zookeeper',
+ content=Template('configuration.xsl.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('Directory', '/var/run/zookeeper',
+ owner='zookeeper',
+ group='hadoop',
+ recursive=True,
+ )
+ self.assertResourceCalled('Directory', '/var/log/zookeeper',
+ owner='zookeeper',
+ group='hadoop',
+ recursive=True,
+ )
+ self.assertResourceCalled('Directory', '/hadoop/zookeeper',
+ owner='zookeeper',
+ group='hadoop',
+ recursive=True,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/log4j.properties',
+ owner='zookeeper',
+ content=Template('log4j.properties.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper_client_jaas.conf',
+ owner='zookeeper',
+ content=Template('zookeeper_client_jaas.conf.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo_sample.cfg',
+ owner='zookeeper',
+ group='hadoop',
+ )
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/aae72dfa/ambari-server/src/test/python/stacks/1.3.3/ZOOKEEPER/test_zookeeper_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/1.3.3/ZOOKEEPER/test_zookeeper_server.py b/ambari-server/src/test/python/stacks/1.3.3/ZOOKEEPER/test_zookeeper_server.py
new file mode 100644
index 0000000..021a1e8
--- /dev/null
+++ b/ambari-server/src/test/python/stacks/1.3.3/ZOOKEEPER/test_zookeeper_server.py
@@ -0,0 +1,210 @@
+#!/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 TestZookeeperServer(RMFTestCase):
+
+ def test_configure_default(self):
+ self.executeScript("1.3.3/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "configure",
+ config_file="default.json"
+ )
+
+ self.assert_configure_default()
+ self.assertNoMoreResources()
+
+ def test_start_default(self):
+ self.executeScript("1.3.3/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "start",
+ config_file="default.json"
+ )
+
+ self.assert_configure_default()
+ self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh start',
+ not_if = 'ls /var/run/zookeeper/zookeeper_server.pid >/dev/null 2>&1 && ps `cat /var/run/zookeeper/zookeeper_server.pid` >/dev/null 2>&1',
+ user = 'zookeeper'
+ )
+ self.assertNoMoreResources()
+
+ def test_stop_default(self):
+ self.executeScript("1.3.3/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "stop",
+ config_file="default.json"
+ )
+
+ self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh stop',
+ user = 'zookeeper',
+ )
+ self.assertResourceCalled('Execute', 'rm -f /var/run/zookeeper/zookeeper_server.pid')
+ self.assertNoMoreResources()
+
+ def test_configure_secured(self):
+ self.executeScript("1.3.3/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "configure",
+ config_file="secured.json"
+ )
+
+ self.assert_configure_secured()
+ self.assertNoMoreResources()
+
+ def test_start_secured(self):
+ self.executeScript("1.3.3/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "start",
+ config_file="secured.json"
+ )
+
+ self.assert_configure_secured()
+ self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh start',
+ not_if = 'ls /var/run/zookeeper/zookeeper_server.pid >/dev/null 2>&1 && ps `cat /var/run/zookeeper/zookeeper_server.pid` >/dev/null 2>&1',
+ user = 'zookeeper'
+ )
+ self.assertNoMoreResources()
+
+ def test_stop_secured(self):
+ self.executeScript("1.3.3/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "stop",
+ config_file="secured.json"
+ )
+
+ self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh stop',
+ user = 'zookeeper',
+ )
+
+ self.assertResourceCalled('Execute', 'rm -f /var/run/zookeeper/zookeeper_server.pid')
+ self.assertNoMoreResources()
+
+ def assert_configure_default(self):
+
+ self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo.cfg',
+ owner = 'zookeeper',
+ content = Template('zoo.cfg.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
+ owner = 'zookeeper',
+ content = Template('zookeeper-env.sh.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/configuration.xsl',
+ owner = 'zookeeper',
+ content = Template('configuration.xsl.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('Directory', '/var/run/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('Directory', '/var/log/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('Directory', '/hadoop/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('File', '/hadoop/zookeeper/myid',
+ content = '1',
+ mode = 420,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/log4j.properties',
+ owner = 'zookeeper',
+ content = Template('log4j.properties.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo_sample.cfg',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ )
+
+
+ def assert_configure_secured(self):
+ self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo.cfg',
+ owner = 'zookeeper',
+ content = Template('zoo.cfg.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
+ owner = 'zookeeper',
+ content = Template('zookeeper-env.sh.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/configuration.xsl',
+ owner = 'zookeeper',
+ content = Template('configuration.xsl.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('Directory', '/var/run/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('Directory', '/var/log/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('Directory', '/hadoop/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('File', '/hadoop/zookeeper/myid',
+ content = '1',
+ mode = 420,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/log4j.properties',
+ owner = 'zookeeper',
+ content = Template('log4j.properties.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper_jaas.conf',
+ owner = 'zookeeper',
+ content = Template('zookeeper_jaas.conf.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper_client_jaas.conf',
+ owner = 'zookeeper',
+ content = Template('zookeeper_client_jaas.conf.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo_sample.cfg',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ )
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/aae72dfa/ambari-server/src/test/python/stacks/1.3.3/configs/default.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/1.3.3/configs/default.json b/ambari-server/src/test/python/stacks/1.3.3/configs/default.json
index ac8143a..556853a 100644
--- a/ambari-server/src/test/python/stacks/1.3.3/configs/default.json
+++ b/ambari-server/src/test/python/stacks/1.3.3/configs/default.json
@@ -431,7 +431,7 @@
"c6402.ambari.apache.org"
],
"zookeeper_hosts": [
- "c6401.ambari.apache.org"
+ "c6402.ambari.apache.org"
],
"hs_host": [
"c6402.ambari.apache.org"
http://git-wip-us.apache.org/repos/asf/ambari/blob/aae72dfa/ambari-server/src/test/python/stacks/1.3.3/configs/secured.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/1.3.3/configs/secured.json b/ambari-server/src/test/python/stacks/1.3.3/configs/secured.json
index 8da0779..fac4974 100644
--- a/ambari-server/src/test/python/stacks/1.3.3/configs/secured.json
+++ b/ambari-server/src/test/python/stacks/1.3.3/configs/secured.json
@@ -536,7 +536,7 @@
"c6402.ambari.apache.org"
],
"zookeeper_hosts": [
- "c6401.ambari.apache.org"
+ "c6402.ambari.apache.org"
],
"hs_host": [
"c6402.ambari.apache.org"
http://git-wip-us.apache.org/repos/asf/ambari/blob/aae72dfa/ambari-server/src/test/python/stacks/2.1.1/ZOOKEEPER/test_zookeeper_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1.1/ZOOKEEPER/test_zookeeper_client.py b/ambari-server/src/test/python/stacks/2.1.1/ZOOKEEPER/test_zookeeper_client.py
new file mode 100644
index 0000000..a5d6a8a
--- /dev/null
+++ b/ambari-server/src/test/python/stacks/2.1.1/ZOOKEEPER/test_zookeeper_client.py
@@ -0,0 +1,142 @@
+#!/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, call, patch
+from stacks.utils.RMFTestCase import *
+
+class TestZookeeperClient(RMFTestCase):
+
+ def test_configure_default(self):
+ self.executeScript("2.1.1/services/ZOOKEEPER/package/scripts/zookeeper_client.py",
+ classname = "ZookeeperClient",
+ command = "configure",
+ config_file="default.json"
+ )
+
+ self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo.cfg',
+ owner = 'zookeeper',
+ content = Template('zoo.cfg.j2'),
+ group = 'hadoop'
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
+ owner = 'zookeeper',
+ content = Template('zookeeper-env.sh.j2'),
+ group = 'hadoop'
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/configuration.xsl',
+ owner = 'zookeeper',
+ content = Template('configuration.xsl.j2'),
+ group = 'hadoop'
+ )
+
+ self.assertResourceCalled('Directory', '/var/run/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True
+ )
+
+ self.assertResourceCalled('Directory', '/var/log/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True
+ )
+
+ self.assertResourceCalled('Directory', '/hadoop/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/log4j.properties',
+ owner = 'zookeeper',
+ content = Template('log4j.properties.j2'),
+ group = 'hadoop'
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo_sample.cfg',
+ owner = 'zookeeper',
+ group = 'hadoop'
+ )
+
+ def test_configure_secured(self):
+
+ self.executeScript("2.1.1/services/ZOOKEEPER/package/scripts/zookeeper_client.py",
+ classname = "ZookeeperClient",
+ command = "configure",
+ config_file="secured.json"
+ )
+
+ self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
+ owner='zookeeper',
+ group='hadoop',
+ recursive=True
+ )
+
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo.cfg',
+ owner='zookeeper',
+ content=Template('zoo.cfg.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
+ owner='zookeeper',
+ content=Template('zookeeper-env.sh.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/configuration.xsl',
+ owner='zookeeper',
+ content=Template('configuration.xsl.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('Directory', '/var/run/zookeeper',
+ owner='zookeeper',
+ group='hadoop',
+ recursive=True,
+ )
+ self.assertResourceCalled('Directory', '/var/log/zookeeper',
+ owner='zookeeper',
+ group='hadoop',
+ recursive=True,
+ )
+ self.assertResourceCalled('Directory', '/hadoop/zookeeper',
+ owner='zookeeper',
+ group='hadoop',
+ recursive=True,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/log4j.properties',
+ owner='zookeeper',
+ content=Template('log4j.properties.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper_client_jaas.conf',
+ owner='zookeeper',
+ content=Template('zookeeper_client_jaas.conf.j2'),
+ group='hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo_sample.cfg',
+ owner='zookeeper',
+ group='hadoop',
+ )
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/aae72dfa/ambari-server/src/test/python/stacks/2.1.1/ZOOKEEPER/test_zookeeper_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1.1/ZOOKEEPER/test_zookeeper_server.py b/ambari-server/src/test/python/stacks/2.1.1/ZOOKEEPER/test_zookeeper_server.py
new file mode 100644
index 0000000..48c8382
--- /dev/null
+++ b/ambari-server/src/test/python/stacks/2.1.1/ZOOKEEPER/test_zookeeper_server.py
@@ -0,0 +1,210 @@
+#!/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 TestZookeeperServer(RMFTestCase):
+
+ def test_configure_default(self):
+ self.executeScript("2.1.1/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "configure",
+ config_file="default.json"
+ )
+
+ self.assert_configure_default()
+ self.assertNoMoreResources()
+
+ def test_start_default(self):
+ self.executeScript("2.1.1/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "start",
+ config_file="default.json"
+ )
+
+ self.assert_configure_default()
+ self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh start',
+ not_if = 'ls /var/run/zookeeper/zookeeper_server.pid >/dev/null 2>&1 && ps `cat /var/run/zookeeper/zookeeper_server.pid` >/dev/null 2>&1',
+ user = 'zookeeper'
+ )
+ self.assertNoMoreResources()
+
+ def test_stop_default(self):
+ self.executeScript("2.1.1/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "stop",
+ config_file="default.json"
+ )
+
+ self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh stop',
+ user = 'zookeeper',
+ )
+ self.assertResourceCalled('Execute', 'rm -f /var/run/zookeeper/zookeeper_server.pid')
+ self.assertNoMoreResources()
+
+ def test_configure_secured(self):
+ self.executeScript("2.1.1/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "configure",
+ config_file="secured.json"
+ )
+
+ self.assert_configure_secured()
+ self.assertNoMoreResources()
+
+ def test_start_secured(self):
+ self.executeScript("2.1.1/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "start",
+ config_file="secured.json"
+ )
+
+ self.assert_configure_secured()
+ self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh start',
+ not_if = 'ls /var/run/zookeeper/zookeeper_server.pid >/dev/null 2>&1 && ps `cat /var/run/zookeeper/zookeeper_server.pid` >/dev/null 2>&1',
+ user = 'zookeeper'
+ )
+ self.assertNoMoreResources()
+
+ def test_stop_secured(self):
+ self.executeScript("2.1.1/services/ZOOKEEPER/package/scripts/zookeeper_server.py",
+ classname = "ZookeeperServer",
+ command = "stop",
+ config_file="secured.json"
+ )
+
+ self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh stop',
+ user = 'zookeeper',
+ )
+
+ self.assertResourceCalled('Execute', 'rm -f /var/run/zookeeper/zookeeper_server.pid')
+ self.assertNoMoreResources()
+
+ def assert_configure_default(self):
+
+ self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo.cfg',
+ owner = 'zookeeper',
+ content = Template('zoo.cfg.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
+ owner = 'zookeeper',
+ content = Template('zookeeper-env.sh.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/configuration.xsl',
+ owner = 'zookeeper',
+ content = Template('configuration.xsl.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('Directory', '/var/run/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('Directory', '/var/log/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('Directory', '/hadoop/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('File', '/hadoop/zookeeper/myid',
+ content = '1',
+ mode = 420,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/log4j.properties',
+ owner = 'zookeeper',
+ content = Template('log4j.properties.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo_sample.cfg',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ )
+
+
+ def assert_configure_secured(self):
+ self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo.cfg',
+ owner = 'zookeeper',
+ content = Template('zoo.cfg.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
+ owner = 'zookeeper',
+ content = Template('zookeeper-env.sh.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/configuration.xsl',
+ owner = 'zookeeper',
+ content = Template('configuration.xsl.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('Directory', '/var/run/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('Directory', '/var/log/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('Directory', '/hadoop/zookeeper',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ recursive = True,
+ )
+ self.assertResourceCalled('File', '/hadoop/zookeeper/myid',
+ content = '1',
+ mode = 420,
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/log4j.properties',
+ owner = 'zookeeper',
+ content = Template('log4j.properties.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper_jaas.conf',
+ owner = 'zookeeper',
+ content = Template('zookeeper_jaas.conf.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper_client_jaas.conf',
+ owner = 'zookeeper',
+ content = Template('zookeeper_client_jaas.conf.j2'),
+ group = 'hadoop',
+ )
+ self.assertResourceCalled('File', '/etc/zookeeper/conf/zoo_sample.cfg',
+ owner = 'zookeeper',
+ group = 'hadoop',
+ )
\ No newline at end of file