|
@@ -21,6 +21,7 @@ limitations under the License.
|
|
from mock.mock import MagicMock, call, patch
|
|
from mock.mock import MagicMock, call, patch
|
|
from resource_management import *
|
|
from resource_management import *
|
|
from stacks.utils.RMFTestCase import *
|
|
from stacks.utils.RMFTestCase import *
|
|
|
|
+import json
|
|
|
|
|
|
@patch("os.path.exists", new = MagicMock(return_value=True))
|
|
@patch("os.path.exists", new = MagicMock(return_value=True))
|
|
@patch.object(Hook, "run_custom_hook", new = MagicMock())
|
|
@patch.object(Hook, "run_custom_hook", new = MagicMock())
|
|
@@ -34,10 +35,6 @@ class TestHookBeforeStart(RMFTestCase):
|
|
self.assertResourceCalled('Execute', '/bin/echo 0 > /selinux/enforce',
|
|
self.assertResourceCalled('Execute', '/bin/echo 0 > /selinux/enforce',
|
|
only_if = 'test -f /selinux/enforce',
|
|
only_if = 'test -f /selinux/enforce',
|
|
)
|
|
)
|
|
- self.assertResourceCalled('Execute', 'mkdir -p /usr/lib/hadoop/lib/native/Linux-i386-32; ln -sf /usr/lib/libsnappy.so /usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
|
|
|
|
- )
|
|
|
|
- self.assertResourceCalled('Execute', 'mkdir -p /usr/lib/hadoop/lib/native/Linux-amd64-64; ln -sf /usr/lib64/libsnappy.so /usr/lib/hadoop/lib/native/Linux-amd64-64/libsnappy.so',
|
|
|
|
- )
|
|
|
|
self.assertResourceCalled('Directory', '/var/log/hadoop',
|
|
self.assertResourceCalled('Directory', '/var/log/hadoop',
|
|
owner = 'root',
|
|
owner = 'root',
|
|
group = 'hadoop',
|
|
group = 'hadoop',
|
|
@@ -92,6 +89,68 @@ class TestHookBeforeStart(RMFTestCase):
|
|
command="hook",
|
|
command="hook",
|
|
config_file="secured.json"
|
|
config_file="secured.json"
|
|
)
|
|
)
|
|
|
|
+ self.assertResourceCalled('Execute', '/bin/echo 0 > /selinux/enforce',
|
|
|
|
+ only_if = 'test -f /selinux/enforce',
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('Directory', '/var/log/hadoop',
|
|
|
|
+ owner = 'root',
|
|
|
|
+ group = 'hadoop',
|
|
|
|
+ mode = 0775,
|
|
|
|
+ recursive = True,
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('Directory', '/var/run/hadoop',
|
|
|
|
+ owner = 'root',
|
|
|
|
+ group = 'root',
|
|
|
|
+ recursive = True,
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('Directory', '/tmp/hadoop-hdfs',
|
|
|
|
+ owner = 'hdfs',
|
|
|
|
+ recursive = True,
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('File', '/etc/hadoop/conf/commons-logging.properties',
|
|
|
|
+ content = Template('commons-logging.properties.j2'),
|
|
|
|
+ owner = 'root',
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('File', '/etc/hadoop/conf/health_check',
|
|
|
|
+ content = Template('health_check-v2.j2'),
|
|
|
|
+ owner = 'root',
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('File',
|
|
|
|
+ '/etc/hadoop/conf/log4j.properties',
|
|
|
|
+ mode=0644,
|
|
|
|
+ group='hadoop',
|
|
|
|
+ owner='hdfs',
|
|
|
|
+ content='log4jproperties\nline2log4jproperties\nline2'
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('File', '/etc/hadoop/conf/hadoop-metrics2.properties',
|
|
|
|
+ content = Template('hadoop-metrics2.properties.j2'),
|
|
|
|
+ owner = 'hdfs',
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('File', '/etc/hadoop/conf/task-log4j.properties',
|
|
|
|
+ content = StaticFile('task-log4j.properties'),
|
|
|
|
+ mode = 0755,
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('File', '/etc/hadoop/conf/configuration.xsl',
|
|
|
|
+ owner = 'hdfs',
|
|
|
|
+ group = 'hadoop',
|
|
|
|
+ )
|
|
|
|
+ self.assertResourceCalled('File', '/etc/hadoop/conf/masters',
|
|
|
|
+ owner = 'hdfs',
|
|
|
|
+ group = 'hadoop',
|
|
|
|
+ )
|
|
|
|
+ self.assertNoMoreResources()
|
|
|
|
+
|
|
|
|
+ def test_hook_default_hdfs(self):
|
|
|
|
+ config_file = "stacks/2.0.6/configs/default.json"
|
|
|
|
+ with open(config_file, "r") as f:
|
|
|
|
+ default_json = json.load(f)
|
|
|
|
+
|
|
|
|
+ default_json['serviceName']= 'HDFS'
|
|
|
|
+ self.executeScript("2.0.6/hooks/before-START/scripts/hook.py",
|
|
|
|
+ classname="BeforeStartHook",
|
|
|
|
+ command="hook",
|
|
|
|
+ config_dict=default_json
|
|
|
|
+ )
|
|
self.assertResourceCalled('Execute', '/bin/echo 0 > /selinux/enforce',
|
|
self.assertResourceCalled('Execute', '/bin/echo 0 > /selinux/enforce',
|
|
only_if = 'test -f /selinux/enforce',
|
|
only_if = 'test -f /selinux/enforce',
|
|
)
|
|
)
|
|
@@ -116,11 +175,11 @@ class TestHookBeforeStart(RMFTestCase):
|
|
)
|
|
)
|
|
self.assertResourceCalled('File', '/etc/hadoop/conf/commons-logging.properties',
|
|
self.assertResourceCalled('File', '/etc/hadoop/conf/commons-logging.properties',
|
|
content = Template('commons-logging.properties.j2'),
|
|
content = Template('commons-logging.properties.j2'),
|
|
- owner = 'root',
|
|
|
|
|
|
+ owner = 'hdfs',
|
|
)
|
|
)
|
|
self.assertResourceCalled('File', '/etc/hadoop/conf/health_check',
|
|
self.assertResourceCalled('File', '/etc/hadoop/conf/health_check',
|
|
content = Template('health_check-v2.j2'),
|
|
content = Template('health_check-v2.j2'),
|
|
- owner = 'root',
|
|
|
|
|
|
+ owner = 'hdfs',
|
|
)
|
|
)
|
|
self.assertResourceCalled('File',
|
|
self.assertResourceCalled('File',
|
|
'/etc/hadoop/conf/log4j.properties',
|
|
'/etc/hadoop/conf/log4j.properties',
|
|
@@ -128,7 +187,7 @@ class TestHookBeforeStart(RMFTestCase):
|
|
group='hadoop',
|
|
group='hadoop',
|
|
owner='hdfs',
|
|
owner='hdfs',
|
|
content='log4jproperties\nline2log4jproperties\nline2'
|
|
content='log4jproperties\nline2log4jproperties\nline2'
|
|
- )
|
|
|
|
|
|
+ )
|
|
self.assertResourceCalled('File', '/etc/hadoop/conf/hadoop-metrics2.properties',
|
|
self.assertResourceCalled('File', '/etc/hadoop/conf/hadoop-metrics2.properties',
|
|
content = Template('hadoop-metrics2.properties.j2'),
|
|
content = Template('hadoop-metrics2.properties.j2'),
|
|
owner = 'hdfs',
|
|
owner = 'hdfs',
|
|
@@ -146,7 +205,7 @@ class TestHookBeforeStart(RMFTestCase):
|
|
group = 'hadoop',
|
|
group = 'hadoop',
|
|
)
|
|
)
|
|
self.assertNoMoreResources()
|
|
self.assertNoMoreResources()
|
|
-
|
|
|
|
|
|
+
|
|
def test_that_jce_is_required_in_secured_cluster(self):
|
|
def test_that_jce_is_required_in_secured_cluster(self):
|
|
try:
|
|
try:
|
|
self.executeScript("2.0.6/hooks/before-START/scripts/hook.py",
|
|
self.executeScript("2.0.6/hooks/before-START/scripts/hook.py",
|