AMBARI-8810. Core Service (HBASE) to use server libs to start daemon processes (ncole)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/979f1949 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/979f1949 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/979f1949 Branch: refs/heads/trunk Commit: 979f1949c63bc07ecd87432b821fa0b801df879c Parents: 418cc8d Author: Nate Cole <[email protected]> Authored: Thu Dec 18 21:48:42 2014 -0500 Committer: Nate Cole <[email protected]> Committed: Fri Dec 19 11:48:20 2014 -0500 ---------------------------------------------------------------------- .../HBASE/0.96.0.2.0/package/scripts/params.py | 10 + .../stacks/2.0.6/HBASE/test_hbase_master.py | 128 +++- .../2.0.6/HBASE/test_hbase_regionserver.py | 125 ++++ .../2.0.6/HBASE/test_hbase_service_check.py | 31 +- .../python/stacks/2.0.6/configs/hbase-2.2.json | 738 +++++++++++++++++++ .../stacks/2.0.6/configs/hbase-check-2.2.json | 733 ++++++++++++++++++ .../stacks/2.0.6/configs/hbase-rs-2.2.json | 738 +++++++++++++++++++ 7 files changed, 2501 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/979f1949/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params.py index 79d47bf..abe27a2 100644 --- a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params.py @@ -145,3 +145,13 @@ HdfsDirectory = functools.partial( kinit_path_local = kinit_path_local, bin_dir = hadoop_bin_dir ) + +if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0: + command_role = default("/role", "") + if command_role == "HBASE_MASTER" or command_role == "HBASE_REGIONSERVER": + role_root = "master" if command_role == "HBASE_MASTER" else "regionserver" + + daemon_script=format("/usr/hdp/current/hbase-{role_root}/bin/hbase-daemon.sh") + region_mover = format("/usr/hdp/current/hbase-{role_root}/bin/region_mover.rb") + region_drainer = format("/usr/hdp/current/hbase-{role_root}/bin/draining_servers.rb") + hbase_cmd = format("/usr/hdp/current/hbase-{role_root}/bin/hbase") http://git-wip-us.apache.org/repos/asf/ambari/blob/979f1949/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py index 76bf82e..5420bc7 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py +++ b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py @@ -242,7 +242,7 @@ class TestHBaseMaster(RMFTestCase): ) self.assertResourceCalled('File', '/etc/hbase/conf/hbase-policy.xml', owner = 'hbase', - group = 'hadoop', + group = 'hadoop' ) self.assertResourceCalled('File', '/etc/hbase/conf/hbase-env.sh', owner = 'hbase', @@ -415,3 +415,129 @@ class TestHBaseMaster(RMFTestCase): bin_dir = '/usr/bin', action = ['create'], ) + + def test_start_default_22(self): + self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/hbase_master.py", + classname = "HbaseMaster", + command = "start", + config_file="hbase-2.2.json", + hdp_stack_version = self.STACK_VERSION, + target = RMFTestCase.TARGET_COMMON_SERVICES) + + self.assertResourceCalled('Directory', '/etc/hbase', + mode = 0755) + + self.assertResourceCalled('Directory', '/etc/hbase/conf', + owner = 'hbase', + group = 'hadoop', + recursive = True) + + self.assertResourceCalled('Directory', '/hadoop/hbase', + owner = 'hbase', + mode = 0775, + recursive = True, + recursive_permission = True) + + self.assertResourceCalled('Directory', '/hadoop/hbase/local', + owner = 'hbase', + group = 'hadoop', + mode=0775, + recursive = True) + + self.assertResourceCalled('Directory', '/hadoop/hbase/local/jars', + owner = 'hbase', + group = 'hadoop', + mode=0775, + recursive = True) + + self.assertResourceCalled('XmlConfig', 'hbase-site.xml', + owner = 'hbase', + group = 'hadoop', + conf_dir = '/etc/hbase/conf', + configurations = self.getConfig()['configurations']['hbase-site'], + configuration_attributes = self.getConfig()['configuration_attributes']['hbase-site']) + + self.assertResourceCalled('XmlConfig', 'hdfs-site.xml', + owner = 'hbase', + group = 'hadoop', + conf_dir = '/etc/hbase/conf', + configurations = self.getConfig()['configurations']['hdfs-site'], + configuration_attributes = self.getConfig()['configuration_attributes']['hdfs-site']) + + self.assertResourceCalled('XmlConfig', 'hdfs-site.xml', + owner = 'hdfs', + group = 'hadoop', + conf_dir = '/etc/hadoop/conf', + configurations = self.getConfig()['configurations']['hdfs-site'], + configuration_attributes = self.getConfig()['configuration_attributes']['hdfs-site']) + + self.assertResourceCalled('XmlConfig', 'hbase-policy.xml', + owner = 'hbase', + group = 'hadoop', + conf_dir = '/etc/hbase/conf', + configurations = self.getConfig()['configurations']['hbase-policy'], + configuration_attributes = self.getConfig()['configuration_attributes']['hbase-policy']) + + self.assertResourceCalled('File', '/etc/hbase/conf/hbase-env.sh', + owner = 'hbase', + content = InlineTemplate(self.getConfig()['configurations']['hbase-env']['content'])) + + self.assertResourceCalled('TemplateConfig', '/etc/hbase/conf/hadoop-metrics2-hbase.properties', + owner = 'hbase', + template_tag = 'GANGLIA-MASTER') + + self.assertResourceCalled('TemplateConfig', '/etc/hbase/conf/regionservers', + owner = 'hbase', + template_tag = None) + + self.assertResourceCalled('Directory', '/var/run/hbase', + owner = 'hbase', + recursive = True) + + self.assertResourceCalled('Directory', '/var/log/hbase', + owner = 'hbase', + recursive = True) + + self.assertResourceCalled('File', + '/etc/hbase/conf/log4j.properties', + mode=0644, + group='hadoop', + owner='hbase', + content='log4jproperties\nline2') + + self.assertResourceCalled('HdfsDirectory', 'hdfs://nn1/apps/hbase/data', + security_enabled = False, + keytab = UnknownConfigurationMock(), + conf_dir = '/etc/hadoop/conf', + hdfs_user = 'hdfs', + kinit_path_local = "/usr/bin/kinit", + owner = 'hbase', + bin_dir = '/usr/hdp/current/hadoop-client/bin', + action = ['create_delayed']) + + self.assertResourceCalled('HdfsDirectory', '/apps/hbase/staging', + security_enabled = False, + keytab = UnknownConfigurationMock(), + conf_dir = '/etc/hadoop/conf', + hdfs_user = 'hdfs', + kinit_path_local = "/usr/bin/kinit", + mode = 0711, + owner = 'hbase', + bin_dir = '/usr/hdp/current/hadoop-client/bin', + action = ['create_delayed']) + + self.assertResourceCalled('HdfsDirectory', None, + security_enabled = False, + keytab = UnknownConfigurationMock(), + conf_dir = '/etc/hadoop/conf', + hdfs_user = 'hdfs', + kinit_path_local = "/usr/bin/kinit", + bin_dir = '/usr/hdp/current/hadoop-client/bin', + action = ['create']) + + self.assertResourceCalled('Execute', '/usr/hdp/current/hbase-master/bin/hbase-daemon.sh --config /etc/hbase/conf start master', + not_if = 'ls /var/run/hbase/hbase-hbase-master.pid >/dev/null 2>&1 && ps -p `cat /var/run/hbase/hbase-hbase-master.pid` >/dev/null 2>&1', + user = 'hbase') + + self.assertNoMoreResources() + http://git-wip-us.apache.org/repos/asf/ambari/blob/979f1949/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py index a38e2b8..10bd583 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py +++ b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py @@ -342,3 +342,128 @@ class TestHbaseRegionServer(RMFTestCase): bin_dir = '/usr/bin', action = ['create'], ) + + def test_start_default_22(self): + self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/hbase_regionserver.py", + classname = "HbaseRegionServer", + command = "start", + config_file="hbase-rs-2.2.json", + hdp_stack_version = self.STACK_VERSION, + target = RMFTestCase.TARGET_COMMON_SERVICES) + + self.assertResourceCalled('Directory', '/etc/hbase', + mode = 0755) + + self.assertResourceCalled('Directory', '/etc/hbase/conf', + owner = 'hbase', + group = 'hadoop', + recursive = True) + + self.assertResourceCalled('Directory', '/hadoop/hbase', + owner = 'hbase', + mode = 0775, + recursive = True, + recursive_permission = True) + + self.assertResourceCalled('Directory', '/hadoop/hbase/local', + owner = 'hbase', + group = 'hadoop', + mode=0775, + recursive = True) + + self.assertResourceCalled('Directory', '/hadoop/hbase/local/jars', + owner = 'hbase', + group = 'hadoop', + mode=0775, + recursive = True) + + self.assertResourceCalled('XmlConfig', 'hbase-site.xml', + owner = 'hbase', + group = 'hadoop', + conf_dir = '/etc/hbase/conf', + configurations = self.getConfig()['configurations']['hbase-site'], + configuration_attributes = self.getConfig()['configuration_attributes']['hbase-site']) + + self.assertResourceCalled('XmlConfig', 'hdfs-site.xml', + owner = 'hbase', + group = 'hadoop', + conf_dir = '/etc/hbase/conf', + configurations = self.getConfig()['configurations']['hdfs-site'], + configuration_attributes = self.getConfig()['configuration_attributes']['hdfs-site']) + + self.assertResourceCalled('XmlConfig', 'hdfs-site.xml', + owner = 'hdfs', + group = 'hadoop', + conf_dir = '/etc/hadoop/conf', + configurations = self.getConfig()['configurations']['hdfs-site'], + configuration_attributes = self.getConfig()['configuration_attributes']['hdfs-site']) + + self.assertResourceCalled('XmlConfig', 'hbase-policy.xml', + owner = 'hbase', + group = 'hadoop', + conf_dir = '/etc/hbase/conf', + configurations = self.getConfig()['configurations']['hbase-policy'], + configuration_attributes = self.getConfig()['configuration_attributes']['hbase-policy']) + + self.assertResourceCalled('File', '/etc/hbase/conf/hbase-env.sh', + owner = 'hbase', + content = InlineTemplate(self.getConfig()['configurations']['hbase-env']['content'])) + + self.assertResourceCalled('TemplateConfig', '/etc/hbase/conf/hadoop-metrics2-hbase.properties', + owner = 'hbase', + template_tag = 'GANGLIA-RS') + + self.assertResourceCalled('TemplateConfig', '/etc/hbase/conf/regionservers', + owner = 'hbase', + template_tag = None) + + self.assertResourceCalled('Directory', '/var/run/hbase', + owner = 'hbase', + recursive = True) + + self.assertResourceCalled('Directory', '/var/log/hbase', + owner = 'hbase', + recursive = True) + + self.assertResourceCalled('File', + '/etc/hbase/conf/log4j.properties', + mode=0644, + group='hadoop', + owner='hbase', + content='log4jproperties\nline2') + + self.assertResourceCalled('HdfsDirectory', 'hdfs://nn1/apps/hbase/data', + security_enabled = False, + keytab = UnknownConfigurationMock(), + conf_dir = '/etc/hadoop/conf', + hdfs_user = 'hdfs', + kinit_path_local = "/usr/bin/kinit", + owner = 'hbase', + bin_dir = '/usr/hdp/current/hadoop-client/bin', + action = ['create_delayed']) + + self.assertResourceCalled('HdfsDirectory', '/apps/hbase/staging', + security_enabled = False, + keytab = UnknownConfigurationMock(), + conf_dir = '/etc/hadoop/conf', + hdfs_user = 'hdfs', + kinit_path_local = "/usr/bin/kinit", + mode = 0711, + owner = 'hbase', + bin_dir = '/usr/hdp/current/hadoop-client/bin', + action = ['create_delayed']) + + self.assertResourceCalled('HdfsDirectory', None, + security_enabled = False, + keytab = UnknownConfigurationMock(), + conf_dir = '/etc/hadoop/conf', + hdfs_user = 'hdfs', + kinit_path_local = "/usr/bin/kinit", + bin_dir = '/usr/hdp/current/hadoop-client/bin', + action = ['create']) + + self.assertResourceCalled('Execute', '/usr/hdp/current/hbase-regionserver/bin/hbase-daemon.sh --config /etc/hbase/conf start regionserver', + not_if = 'ls /var/run/hbase/hbase-hbase-regionserver.pid >/dev/null 2>&1 && ps -p `cat /var/run/hbase/hbase-hbase-regionserver.pid` >/dev/null 2>&1', + user = 'hbase') + + self.assertNoMoreResources() http://git-wip-us.apache.org/repos/asf/ambari/blob/979f1949/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_service_check.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_service_check.py b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_service_check.py index 1e6102a..1155a1a 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_service_check.py +++ b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_service_check.py @@ -96,4 +96,33 @@ class TestServiceCheck(RMFTestCase): try_sleep = 5, ) self.assertNoMoreResources() - \ No newline at end of file + + def test_service_check_22(self): + self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/service_check.py", + classname="HbaseServiceCheck", + command="service_check", + config_file="hbase-check-2.2.json", + hdp_stack_version = self.STACK_VERSION, + target = RMFTestCase.TARGET_COMMON_SERVICES + ) + self.assertResourceCalled('File', '/tmp/hbaseSmokeVerify.sh', + content = StaticFile('hbaseSmokeVerify.sh'), + mode = 0755, + ) + self.assertResourceCalled('File', '/tmp/hbase-smoke.sh', + content = Template('hbase-smoke.sh.j2'), + mode = 0755, + ) + self.assertResourceCalled('Execute', ' /usr/hdp/current/hbase-client/bin/hbase --config /etc/hbase/conf shell /tmp/hbase-smoke.sh', + logoutput = True, + tries = 3, + user = 'ambari-qa', + try_sleep = 5, + ) + self.assertResourceCalled('Execute', ' /tmp/hbaseSmokeVerify.sh /etc/hbase/conf /usr/hdp/current/hbase-client/bin/hbase', + logoutput = True, + tries = 3, + user = 'ambari-qa', + try_sleep = 5, + ) + self.assertNoMoreResources()
