|
@@ -17,9 +17,12 @@ See the License for the specific language governing permissions and
|
|
|
limitations under the License.
|
|
|
|
|
|
"""
|
|
|
+import os
|
|
|
from resource_management.libraries.functions import format
|
|
|
from resource_management.libraries.script.script import Script
|
|
|
-from resource_management.libraries.functions.version import format_stack_version, compare_versions
|
|
|
+from resource_management.libraries.functions.version import format_stack_version
|
|
|
+from resource_management.libraries.functions import StackFeature
|
|
|
+from resource_management.libraries.functions.stack_features import check_stack_feature
|
|
|
from resource_management.libraries.functions.default import default
|
|
|
from utils import get_bare_principal
|
|
|
from resource_management.libraries.functions.get_stack_version import get_stack_version
|
|
@@ -35,6 +38,7 @@ from resource_management.libraries.functions.get_not_managed_resources import ge
|
|
|
# server configurations
|
|
|
config = Script.get_config()
|
|
|
tmp_dir = Script.get_tmp_dir()
|
|
|
+stack_root = Script.get_stack_root()
|
|
|
stack_name = default("/hostLevelParams/stack_name", None)
|
|
|
retryAble = default("/commandParams/command_retry_enabled", False)
|
|
|
|
|
@@ -57,7 +61,7 @@ downgrade_from_version = default("/commandParams/downgrade_from_version", None)
|
|
|
hostname = config['hostname']
|
|
|
|
|
|
# default kafka parameters
|
|
|
-kafka_home = '/usr/lib/kafka/'
|
|
|
+kafka_home = '/usr/lib/kafka'
|
|
|
kafka_bin = kafka_home+'/bin/kafka'
|
|
|
conf_dir = "/etc/kafka/conf"
|
|
|
limits_conf_dir = "/etc/security/limits.d"
|
|
@@ -69,11 +73,10 @@ kafka_user_nofile_limit = config['configurations']['kafka-env']['kafka_user_nofi
|
|
|
kafka_user_nproc_limit = config['configurations']['kafka-env']['kafka_user_nproc_limit']
|
|
|
|
|
|
# parameters for 2.2+
|
|
|
-if Script.is_stack_greater_or_equal("2.2"):
|
|
|
- kafka_home = '/usr/hdp/current/kafka-broker/'
|
|
|
- kafka_bin = kafka_home+'bin/kafka'
|
|
|
- conf_dir = "/usr/hdp/current/kafka-broker/config"
|
|
|
-
|
|
|
+if stack_version_formatted and check_stack_feature(StackFeature.ROLLING_UPGRADE, stack_version_formatted):
|
|
|
+ kafka_home = os.path.join(stack_root, "current", "kafka-broker")
|
|
|
+ kafka_bin = os.path.join(kafka_home, "bin", "kafka")
|
|
|
+ conf_dir = os.path.join(kafka_home, "config")
|
|
|
|
|
|
kafka_user = config['configurations']['kafka-env']['kafka_user']
|
|
|
kafka_log_dir = config['configurations']['kafka-env']['kafka_log_dir']
|
|
@@ -139,7 +142,8 @@ security_enabled = config['configurations']['cluster-env']['security_enabled']
|
|
|
kafka_kerberos_enabled = ('security.inter.broker.protocol' in config['configurations']['kafka-broker'] and
|
|
|
config['configurations']['kafka-broker']['security.inter.broker.protocol'] == "PLAINTEXTSASL")
|
|
|
|
|
|
-if security_enabled and stack_version_formatted != "" and 'kafka_principal_name' in config['configurations']['kafka-env'] and compare_versions(stack_version_formatted, '2.3') >= 0:
|
|
|
+if security_enabled and stack_version_formatted != "" and 'kafka_principal_name' in config['configurations']['kafka-env'] \
|
|
|
+ and check_stack_feature(StackFeature.KAFKA_KERBEROS, stack_version_formatted):
|
|
|
_hostname_lowercase = config['hostname'].lower()
|
|
|
_kafka_principal_name = config['configurations']['kafka-env']['kafka_principal_name']
|
|
|
kafka_jaas_principal = _kafka_principal_name.replace('_HOST',_hostname_lowercase)
|
|
@@ -239,7 +243,7 @@ if has_ranger_admin and is_supported_kafka_ranger:
|
|
|
downloaded_custom_connector = format("{tmp_dir}/{jdbc_jar_name}")
|
|
|
|
|
|
driver_curl_source = format("{jdk_location}/{jdbc_symlink_name}")
|
|
|
- driver_curl_target = format("{kafka_home}libs/{jdbc_jar_name}")
|
|
|
+ driver_curl_target = format("{kafka_home}/libs/{jdbc_jar_name}")
|
|
|
|
|
|
ranger_audit_solr_urls = config['configurations']['ranger-admin-site']['ranger.audit.solr.urls']
|
|
|
xa_audit_db_is_enabled = config['configurations']['ranger-kafka-audit']['xasecure.audit.destination.db'] if xml_configurations_supported else None
|
|
@@ -249,7 +253,7 @@ if has_ranger_admin and is_supported_kafka_ranger:
|
|
|
credential_file = format('/etc/ranger/{repo_name}/cred.jceks') if xml_configurations_supported else None
|
|
|
|
|
|
stack_version = get_stack_version('kafka-broker')
|
|
|
- setup_ranger_env_sh_source = format('/usr/hdp/{stack_version}/ranger-kafka-plugin/install/conf.templates/enable/kafka-ranger-env.sh')
|
|
|
+ setup_ranger_env_sh_source = format('{stack_root}/{stack_version}/ranger-kafka-plugin/install/conf.templates/enable/kafka-ranger-env.sh')
|
|
|
setup_ranger_env_sh_target = format("{conf_dir}/kafka-ranger-env.sh")
|
|
|
|
|
|
#For SQLA explicitly disable audit to DB for Ranger
|