You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ab...@apache.org on 2015/01/29 11:17:38 UTC
[2/2] ambari git commit: AMBARI-9270 - Add SLIDER,
KNOX service to HDPWIN 2.2
AMBARI-9270 - Add SLIDER, KNOX service to HDPWIN 2.2
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/4497f00c
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/4497f00c
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/4497f00c
Branch: refs/heads/trunk
Commit: 4497f00cc76ed6a99b69111a743038619aa7ab63
Parents: 8b79e43
Author: Artem Baranchuk <ab...@hortonworks.con>
Authored: Thu Jan 22 22:25:37 2015 +0200
Committer: Artem Baranchuk <ab...@hortonworks.con>
Committed: Thu Jan 29 12:17:11 2015 +0200
----------------------------------------------------------------------
.../libraries/functions/install_hdp_msi.py | 7 ++-
.../KNOX/0.5.0.2.2/package/scripts/knox.py | 37 +++++++++++++
.../0.5.0.2.2/package/scripts/knox_gateway.py | 56 +++++++++++++++++++-
.../KNOX/0.5.0.2.2/package/scripts/ldap.py | 10 ++--
.../KNOX/0.5.0.2.2/package/scripts/params.py | 26 +++------
.../0.5.0.2.2/package/scripts/params_linux.py | 47 ++++++++++++++++
.../0.5.0.2.2/package/scripts/params_windows.py | 42 +++++++++++++++
.../0.5.0.2.2/package/scripts/service_check.py | 11 ++++
.../package/scripts/service_mapping.py | 22 ++++++++
.../SLIDER/0.60.0.2.2/package/scripts/params.py | 9 ++--
.../0.60.0.2.2/package/scripts/params_linux.py | 30 +++++++++++
.../package/scripts/params_windows.py | 34 ++++++++++++
.../0.60.0.2.2/package/scripts/service_check.py | 13 ++++-
.../SLIDER/0.60.0.2.2/package/scripts/slider.py | 22 +++++++-
.../0.60.0.2.2/package/scripts/slider_client.py | 17 ++++--
.../after-INSTALL/templates/Run-SmokeTests.ps1 | 2 +-
.../KNOX/configuration/gateway-site.xml | 38 +++++++++++++
.../services/KNOX/configuration/knox-env.xml | 48 +++++++++++++++++
.../ranger-knox-plugin-properties.xml | 29 ++++++++++
.../HDPWIN/2.2/services/KNOX/metainfo.xml | 26 +++++++++
.../SLIDER/configurations/slider-client.xml | 29 ++++++++++
.../HDPWIN/2.2/services/SLIDER/metainfo.xml | 26 +++++++++
22 files changed, 541 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-common/src/main/python/resource_management/libraries/functions/install_hdp_msi.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/install_hdp_msi.py b/ambari-common/src/main/python/resource_management/libraries/functions/install_hdp_msi.py
index 130bae4..d20dd42 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/install_hdp_msi.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/install_hdp_msi.py
@@ -115,10 +115,13 @@ def _ensure_services_created(hadoop_password):
# creating symlinks to services folders to avoid using stack-dependent paths
-def _create_symlinks():
+def _create_symlinks(stack_version):
# folders
Execute("cmd /c mklink /d %HADOOP_NODE%\\hadoop %HADOOP_HOME%")
Execute("cmd /c mklink /d %HADOOP_NODE%\\hive %HIVE_HOME%")
+ hdp_stack_version = format_hdp_stack_version(stack_version)
+ if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
+ Execute("cmd /c mklink /d %HADOOP_NODE%\\knox %KNOX_HOME%")
# files pairs (symlink_path, path_template_to_target_file), use * to replace file version
links_pairs = [
("%HADOOP_HOME%\\share\\hadoop\\tools\\lib\\hadoop-streaming.jar",
@@ -192,7 +195,7 @@ def install_windows_msi(msi_url, save_dir, save_file, hadoop_password, stack_ver
reload_windows_env()
# create additional services manually due to hdp.msi limitaitons
_ensure_services_created(hadoop_password)
- _create_symlinks()
+ _create_symlinks(stack_version)
# finalizing install
_write_marker()
_validate_msi_install()
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py
index 7d7d20c..7f341c5 100644
--- a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py
@@ -17,9 +17,46 @@ limitations under the License.
"""
+import os
from resource_management import *
+from ambari_commons import OSConst
+from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
+@OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+def knox():
+ import params
+
+ XmlConfig("gateway-site.xml",
+ conf_dir=params.knox_conf_dir,
+ configurations=params.config['configurations']['gateway-site'],
+ configuration_attributes=params.config['configuration_attributes']['gateway-site'],
+ owner=params.knox_user
+ )
+
+ File(os.path.join(params.knox_conf_dir, "gateway-log4j.properties"),
+ owner=params.knox_user,
+ content=params.gateway_log4j
+ )
+
+ File(os.path.join(params.knox_conf_dir, "topologies", "default.xml"),
+ group=params.knox_group,
+ owner=params.knox_user,
+ content=InlineTemplate(params.topology_template)
+ )
+
+ if params.security_enabled:
+ TemplateConfig( os.path.join(knox_conf_dir, "krb5JAASLogin.conf"),
+ owner = params.knox_user,
+ template_tag = None
+ )
+
+ if not os.path.isfile(params.knox_master_secret_path):
+ cmd = format('cmd /C {knox_client_bin} create-master --master {knox_master_secret!p}')
+ Execute(cmd)
+ cmd = format('cmd /C {knox_client_bin} create-cert --hostname {knox_host_name_in_cluster}')
+ Execute(cmd)
+@OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def knox():
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
index 8593c5a..7dd27c3 100644
--- a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
@@ -23,16 +23,21 @@ from resource_management.libraries.functions.security_commons import build_expec
FILE_TYPE_XML
import sys
import upgrade
-
+import os
from knox import knox
from ldap import ldap
from setup_ranger_knox import setup_ranger_knox
+import service_mapping
+from ambari_commons import OSConst
+from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
class KnoxGateway(Script):
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def get_stack_to_component(self):
return {"HDP": "knox-server"}
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def install(self, env):
self.install_packages(env)
import params
@@ -42,12 +47,24 @@ class KnoxGateway(Script):
action = "delete",
)
+ @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+ def install(self, env):
+ import params
+ env.set_params(params)
+ if not check_windows_service_exists(service_mapping.knox_geteway_win_service_name):
+ self.install_packages(env)
+
+ File(os.path.join(params.knox_conf_dir, 'topologies', 'sandbox.xml'),
+ action = "delete",
+ )
+
def configure(self, env):
import params
env.set_params(params)
knox()
ldap()
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def pre_rolling_restart(self, env):
import params
env.set_params(params)
@@ -56,7 +73,7 @@ class KnoxGateway(Script):
upgrade.backup_data()
Execute(format("hdp-select set knox-server {version}"))
-
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def start(self, env, rolling_restart=False):
import params
env.set_params(params)
@@ -70,6 +87,15 @@ class KnoxGateway(Script):
not_if=no_op_test
)
+ @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+ # setup_ranger_knox(env)
+ Service(service_mapping.knox_geteway_win_service_name, action="start")
+
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def stop(self, env, rolling_restart=False):
import params
env.set_params(params)
@@ -81,18 +107,29 @@ class KnoxGateway(Script):
)
Execute (format("rm -f {knox_pid_file}"))
+ @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+ def stop(self, env):
+ import params
+ env.set_params(params)
+ Service(service_mapping.knox_geteway_win_service_name, action="stop")
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def status(self, env):
import status_params
env.set_params(status_params)
check_process_status(status_params.knox_pid_file)
+ @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+ def status(self, env):
+ import params
+ check_windows_service_status(service_mapping.knox_geteway_win_service_name)
def configureldap(self, env):
import params
env.set_params(params)
ldap()
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def startdemoldap(self, env):
import params
env.set_params(params)
@@ -105,6 +142,14 @@ class KnoxGateway(Script):
not_if=no_op_test
)
+ @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+ def startdemoldap(self, env):
+ import params
+ env.set_params(params)
+ self.configureldap(env)
+ Service(service_mapping.knox_ldap_win_service_name, action="start")
+
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def stopdemoldap(self, env):
import params
env.set_params(params)
@@ -116,6 +161,13 @@ class KnoxGateway(Script):
)
Execute (format("rm -f {ldap_pid_file}"))
+ @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+ def stopdemoldap(self, env):
+ import params
+ env.set_params(params)
+ Service(service_mapping.knox_ldap_win_service_name, action="stop")
+
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def security_status(self, env):
import status_params
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/ldap.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/ldap.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/ldap.py
index 2ff8297..08e28f5 100644
--- a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/ldap.py
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/ldap.py
@@ -17,21 +17,21 @@ limitations under the License.
"""
+import os
from resource_management import *
-
def ldap():
import params
- File(format("{params.knox_conf_dir}/ldap-log4j.properties"),
- mode=0644,
+ File(os.path.join(params.knox_conf_dir, 'ldap-log4j.properties'),
+ mode=params.mode,
group=params.knox_group,
owner=params.knox_user,
content=params.ldap_log4j
)
- File(format("{params.knox_conf_dir}/users.ldif"),
- mode=0644,
+ File(os.path.join(params.knox_conf_dir, 'users.ldif'),
+ mode=params.mode,
group=params.knox_group,
owner=params.knox_user,
content=params.users_ldif
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params.py
index 9acf8f8..32265c9 100644
--- a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params.py
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params.py
@@ -23,6 +23,12 @@ from resource_management.libraries.functions.version import format_hdp_stack_ver
from resource_management.libraries.functions.default import default
from resource_management import *
import status_params
+from ambari_commons import OSCheck
+
+if OSCheck.is_windows_family():
+ from params_windows import *
+else:
+ from params_linux import *
config = Script.get_config()
tmp_dir = Script.get_tmp_dir()
@@ -34,19 +40,6 @@ version = default("/commandParams/version", None)
stack_version_unformatted = str(config['hostLevelParams']['stack_version'])
hdp_stack_version = format_hdp_stack_version(stack_version_unformatted)
-if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
- knox_bin = '/usr/hdp/current/knox-server/bin/gateway.sh'
- ldap_bin = '/usr/hdp/current/knox-server/bin/ldap.sh'
- knox_client_bin = '/usr/hdp/current/knox-server/bin/knoxcli.sh'
- knox_data_dir = '/usr/hdp/current/knox-server/data'
- knox_conf_dir = '/usr/hdp/current/knox-server/conf'
-else:
- knox_bin = '/usr/bin/gateway'
- ldap_bin = '/usr/lib/knox/bin/ldap.sh'
- knox_client_bin = '/usr/lib/knox/bin/knoxcli.sh'
- knox_data_dir = '/usr/lib/knox/data'
- knox_conf_dir = '/usr/lib/knox/conf'
-
namenode_hosts = default("/clusterHostInfo/namenode_host", None)
if type(namenode_hosts) is list:
namenode_host = namenode_hosts[0]
@@ -117,17 +110,10 @@ if has_oozie:
# server configurations
-knox_conf_dir = '/etc/knox/conf'
-knox_data_dir = '/var/lib/knox/data'
-knox_logs_dir = '/var/log/knox'
knox_pid_dir = status_params.knox_pid_dir
-knox_user = default("/configurations/knox-env/knox_user", "knox")
-knox_group = default("/configurations/knox-env/knox_group", "knox")
knox_pid_file = status_params.knox_pid_file
ldap_pid_file = status_params.ldap_pid_file
knox_master_secret = config['configurations']['knox-env']['knox_master_secret']
-knox_master_secret_path = '/var/lib/knox/data/security/master'
-knox_cert_store_path = '/var/lib/knox/data/security/keystores/gateway.jks'
knox_host_name = config['clusterHostInfo']['knox_gateway_hosts'][0]
knox_host_name_in_cluster = config['hostname']
knox_host_port = config['configurations']['gateway-site']['gateway.port']
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params_linux.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params_linux.py
new file mode 100644
index 0000000..621fd77
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params_linux.py
@@ -0,0 +1,47 @@
+"""
+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 resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
+from resource_management.libraries.functions.default import default
+from resource_management import *
+from ambari_commons import OSCheck
+
+# server configurations
+config = Script.get_config()
+
+knox_master_secret_path = '/var/lib/knox/data/security/master'
+knox_cert_store_path = '/var/lib/knox/data/security/keystores/gateway.jks'
+
+knox_user = default("/configurations/knox-env/knox_user", "knox")
+if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
+ knox_bin = '/usr/hdp/current/knox-server/bin/gateway.sh'
+ ldap_bin = '/usr/hdp/current/knox-server/bin/ldap.sh'
+ knox_client_bin = '/usr/hdp/current/knox-server/bin/knoxcli.sh'
+else:
+ knox_bin = '/usr/bin/gateway'
+ ldap_bin = '/usr/lib/knox/bin/ldap.sh'
+ knox_client_bin = '/usr/lib/knox/bin/knoxcli.sh'
+
+knox_group = default("/configurations/knox-env/knox_group", "knox")
+mode = 0644
+
+# server configurations
+knox_conf_dir = '/etc/knox/conf'
+knox_data_dir = '/var/lib/knox/data'
+knox_logs_dir = '/var/log/knox'
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params_windows.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params_windows.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params_windows.py
new file mode 100644
index 0000000..3d72735
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/params_windows.py
@@ -0,0 +1,42 @@
+#!/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 resource_management import *
+import os
+
+# server configurations
+config = Script.get_config()
+
+hdp_root = os.path.abspath(os.path.join(os.environ["HADOOP_HOME"],".."))
+knox_home = os.environ['KNOX_HOME']
+knox_conf_dir = os.environ['KNOX_CONF_DIR']
+knox_logs_dir = os.environ['KNOX_LOG_DIR']
+knox_bin = os.path.join(knox_home, 'bin', 'gateway.exe')
+ldap_bin = os.path.join(knox_home, 'bin', 'ldap.exe')
+knox_client_bin = os.path.join(knox_home, 'bin', 'knoxcli.cmd')
+knox_data_dir = os.path.join(knox_home, 'data')
+
+knox_master_secret_path = os.path.join(knox_data_dir, 'security', 'master')
+knox_cert_store_path = os.path.join(knox_data_dir, 'security', 'keystores', 'gateway.jks')
+
+knox_user = 'hadoop'
+hdfs_user = "hadoop"
+knox_group = None
+mode = None
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/service_check.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/service_check.py
index e05262f..f30c19f 100644
--- a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/service_check.py
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/service_check.py
@@ -20,9 +20,20 @@ limitations under the License.
from resource_management import *
import sys
+from ambari_commons import OSConst
+from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
class KnoxServiceCheck(Script):
+ @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+ def service_check(self, env):
+ import params
+ env.set_params(params)
+ smoke_cmd = os.path.join(params.hdp_root, "Run-SmokeTests.cmd")
+ service = "KNOX"
+ Execute(format("cmd /C {smoke_cmd} {service}"), logoutput=True, user=params.hdfs_user)
+
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def service_check(self, env):
import params
env.set_params(params)
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/service_mapping.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/service_mapping.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/service_mapping.py
new file mode 100644
index 0000000..cf5ce2e
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/service_mapping.py
@@ -0,0 +1,22 @@
+# !/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.
+
+"""
+
+knox_geteway_win_service_name = "gateway"
+knox_ldap_win_service_name = "ldap"
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params.py b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params.py
index fbb1973..8ef2ca7 100644
--- a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params.py
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params.py
@@ -21,6 +21,12 @@ limitations under the License.
from resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
from resource_management.libraries.functions.default import default
from resource_management import *
+from ambari_commons import OSCheck
+
+if OSCheck.is_windows_family():
+ from params_windows import *
+else:
+ from params_linux import *
# server configurations
config = Script.get_config()
@@ -39,7 +45,6 @@ if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
else:
slider_bin_dir = "/usr/lib/slider/bin"
-slider_conf_dir = "/etc/slider/conf"
hadoop_conf_dir = "/etc/hadoop/conf"
smokeuser = config['configurations']['cluster-env']['smokeuser']
smokeuser_principal = config['configurations']['cluster-env']['smokeuser_principal_name']
@@ -51,5 +56,3 @@ slider_env_sh_template = config['configurations']['slider-env']['content']
java64_home = config['hostLevelParams']['java_home']
log4j_props = config['configurations']['slider-log4j']['content']
slider_cmd = format("{slider_bin_dir}/slider")
-storm_slider_conf_dir= '/usr/hdp/current/storm-slider-client/conf'
-slider_home_dir= '/usr/hdp/current/slider-client'
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params_linux.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params_linux.py
new file mode 100644
index 0000000..4ed93e5
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params_linux.py
@@ -0,0 +1,30 @@
+"""
+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 resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
+from resource_management.libraries.functions.default import default
+from resource_management import *
+from ambari_commons import OSCheck
+
+# server configurations
+config = Script.get_config()
+
+slider_conf_dir = "/etc/slider/conf"
+storm_slider_conf_dir = '/usr/hdp/current/storm-slider-client/conf'
+slider_home_dir = '/usr/hdp/current/slider-client'
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params_windows.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params_windows.py b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params_windows.py
new file mode 100644
index 0000000..c28d062
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params_windows.py
@@ -0,0 +1,34 @@
+#!/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 resource_management import *
+import os
+
+# server configurations
+config = Script.get_config()
+
+hdp_root = os.path.abspath(os.path.join(os.environ["HADOOP_HOME"],".."))
+slider_home = os.environ['SLIDER_HOME']
+slider_conf_dir = os.path.join(slider_home, 'conf')
+storm_slider_conf_dir = os.path.join(os.environ['STORM_HOME'], 'conf')
+slider_home_dir = slider_home
+
+slider_user = 'hadoop'
+hdfs_user = "hadoop"
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/service_check.py b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/service_check.py
index af085b8..18711d7 100644
--- a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/service_check.py
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/service_check.py
@@ -19,14 +19,23 @@ limitations under the License.
"""
from resource_management import *
-
+from ambari_commons import OSConst
+from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
class SliderServiceCheck(Script):
+
+ @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
def service_check(self, env):
import params
-
env.set_params(params)
+ smoke_cmd = os.path.join(params.hdp_root, "Run-SmokeTests.cmd")
+ service = "SLIDER"
+ Execute(format("cmd /C {smoke_cmd} {service}"), logoutput=True, user=params.hdfs_user)
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
+ def service_check(self, env):
+ import params
+ env.set_params(params)
smokeuser_kinit_cmd = format(
"{kinit_path_local} -kt {smokeuser_keytab} {smokeuser_principal};") if params.security_enabled else ""
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py
index 48c534e..a802c19 100644
--- a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py
@@ -19,10 +19,30 @@ Ambari Agent
"""
import os
-
from resource_management import *
+from ambari_commons import OSConst
+from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
+
+@OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+def slider():
+ import params
+
+ slider_client_config = params.config['configurations']['slider-client'] if 'configurations' in params.config and 'slider-client' in params.config['configurations'] else {}
+
+ XmlConfig("slider-client.xml",
+ conf_dir=params.slider_conf_dir,
+ configurations=slider_client_config
+ )
+
+ if (params.log4j_props != None):
+ File(os.path.join(params.slider_conf_dir, "log4j.properties"),
+ content=params.log4j_props
+ )
+ elif (os.path.exists(os.path.join(params.slider_conf_dir, "log4j.properties"))):
+ File(os.path.join(params.slider_conf_dir, "log4j.properties"))
+@OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def slider():
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py
index 2c99c54..b4ecf20 100644
--- a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py
@@ -19,15 +19,17 @@ limitations under the License.
"""
from resource_management import *
-
from slider import slider
-
+from ambari_commons import OSConst
+from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
class SliderClient(Script):
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def get_stack_to_component(self):
return {"HDP": "slider-client"}
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def pre_rolling_restart(self, env):
import params
env.set_params(params)
@@ -40,15 +42,22 @@ class SliderClient(Script):
# hadoop-client is also set
Execute(format("hdp-select set hadoop-client {version}"))
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def install(self, env):
self.install_packages(env)
self.configure(env)
- def configure(self, env):
+ @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
+ def install(self, env):
import params
+ if params.slider_home is None:
+ self.install_packages(env)
+ self.configure(env)
+ @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
+ def configure(self, env):
+ import params
env.set_params(params)
-
slider()
def status(self, env):
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/after-INSTALL/templates/Run-SmokeTests.ps1
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/after-INSTALL/templates/Run-SmokeTests.ps1 b/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/after-INSTALL/templates/Run-SmokeTests.ps1
index fe22060..a5c3631 100644
--- a/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/after-INSTALL/templates/Run-SmokeTests.ps1
+++ b/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/after-INSTALL/templates/Run-SmokeTests.ps1
@@ -467,7 +467,7 @@ function Run-KnoxSmokeTest
return
}
- $url = "https://${ENV:KNOX_HOST}:8443/gateway/sandbox/webhdfs/v1/?op=GETHOMEDIRECTORY"
+ $url = "https://${ENV:KNOX_HOST}:8443/gateway/default/webhdfs/v1/?op=GETHOMEDIRECTORY"
$req = [System.Net.WebRequest]::Create( $url )
# Set the HTTP basic auth credentials to use for the request
$req.Credentials = New-Object Net.NetworkCredential( "guest", "guest-password" )
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/gateway-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/gateway-site.xml b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/gateway-site.xml
new file mode 100644
index 0000000..aa3d858
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/gateway-site.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+
+<!-- The default settings for Knox. -->
+<!-- Edit gateway-site.xml to change settings for your local -->
+<!-- install. -->
+
+<configuration supports_final="false">
+
+ <property>
+ <name>java.security.krb5.conf</name>
+ <value>c:\hadoop\knox\conf\krb5.conf</value>
+ <description>Absolute path to krb5.conf file</description>
+ </property>
+
+ <property>
+ <name>java.security.auth.login.config</name>
+ <value>c:\hadoop\knox\conf\krb5JAASLogin.conf</value>
+ <description>Absolute path to JASS login config file</description>
+ </property>
+
+</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/knox-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/knox-env.xml b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/knox-env.xml
new file mode 100644
index 0000000..feb8a00
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/knox-env.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+
+<configuration supports_final="false">
+ <!-- knox-env.sh -->
+
+ <property>
+ <name>knox_user</name>
+ <value>knox</value>
+ <property-type>USER</property-type>
+ <deleted>true</deleted>
+ <description>Knox Username.</description>
+ </property>
+
+ <property>
+ <name>knox_group</name>
+ <value>knox</value>
+ <property-type>GROUP</property-type>
+ <deleted>true</deleted>
+ <description>Knox Group.</description>
+ </property>
+
+ <property>
+ <name>knox_pid_dir</name>
+ <value>/var/run/knox</value>
+ <deleted>true</deleted>
+ <description>Knox PID dir.</description>
+ </property>
+</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/ranger-knox-plugin-properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/ranger-knox-plugin-properties.xml b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/ranger-knox-plugin-properties.xml
new file mode 100644
index 0000000..47c74c4
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/configuration/ranger-knox-plugin-properties.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * 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.
+ */
+-->
+<configuration supports_final="true">
+
+ <property>
+ <name>KNOX_HOME</name>
+ <value>c:\hadoop\knox</value>
+ <description></description>
+ </property>
+
+</configuration>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/metainfo.xml
new file mode 100644
index 0000000..e3adf17
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/KNOX/metainfo.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<metainfo>
+ <schemaVersion>2.0</schemaVersion>
+ <services>
+ <service>
+ <name>KNOX</name>
+ <extends>common-services/KNOX/0.5.0.2.2</extends>
+ </service>
+ </services>
+</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/SLIDER/configurations/slider-client.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/SLIDER/configurations/slider-client.xml b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/SLIDER/configurations/slider-client.xml
new file mode 100644
index 0000000..715a4f6
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/SLIDER/configurations/slider-client.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+ 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.
+-->
+<!--
+ Properties set here are picked up in the client.
+-->
+<configuration>
+
+ <property>
+ <name>slider.zookeeper.quorum</name>
+ <value>localhost</value>
+ </property>
+
+</configuration>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/4497f00c/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/SLIDER/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/SLIDER/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/SLIDER/metainfo.xml
new file mode 100644
index 0000000..d0e1346
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPWIN/2.2/services/SLIDER/metainfo.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<metainfo>
+ <schemaVersion>2.0</schemaVersion>
+ <services>
+ <service>
+ <name>SLIDER</name>
+ <extends>common-services/SLIDER/0.60.0.2.2</extends>
+ </service>
+ </services>
+</metainfo>