|
@@ -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
|
|
|
|