def start(self, env, upgrade_type=None): import params env.set_params(params) self.configure(env) daemon_cmd = format('source {params.conf_dir}/atlas-env.sh ; {params.metadata_start_script}') no_op_test = format('ls {params.pid_file} >/dev/null 2>&1 && ps -p `cat {params.pid_file}` >/dev/null 2>&1') atlas_hbase_setup_command = format("cat {atlas_hbase_setup} | hbase shell -n") secure_atlas_hbase_setup_command = format("kinit -kt {hbase_user_keytab} {hbase_principal_name}; ") + atlas_hbase_setup_command if params.stack_supports_atlas_ranger_plugin: Logger.info('Atlas plugin is enabled, configuring Atlas plugin.') setup_ranger_atlas(upgrade_type=upgrade_type) else: Logger.info('Atlas plugin is not supported or enabled.') try: effective_version = format_stack_version(params.version) if upgrade_type is not None else params.stack_version_formatted if check_stack_feature(StackFeature.ATLAS_HBASE_SETUP, effective_version): if params.security_enabled and params.has_hbase_master: Execute(secure_atlas_hbase_setup_command, tries = 5, try_sleep = 10, user=params.hbase_user ) elif params.enable_ranger_hbase and not params.security_enabled: Execute(atlas_hbase_setup_command, tries = 5, try_sleep = 10, user=params.hbase_user ) Execute(daemon_cmd, user=params.metadata_user, not_if=no_op_test ) except: show_logs(params.log_dir, params.metadata_user) raise
security_enabled = status_params.security_enabled if security_enabled: _hostname_lowercase = config['hostname'].lower() _atlas_principal_name = config['configurations']['application-properties']['atlas.authentication.principal'] atlas_jaas_principal = _atlas_principal_name.replace('_HOST',_hostname_lowercase) atlas_keytab_path = config['configurations']['application-properties']['atlas.authentication.keytab'] stack_name = status_params.stack_name # New Cluster Stack Version that is defined during the RESTART of a Stack Upgrade version = default("/commandParams/version", None) # stack version stack_version_unformatted = config['hostLevelParams']['stack_version'] stack_version_formatted = format_stack_version(stack_version_unformatted) metadata_home = os.environ['METADATA_HOME_DIR'] if 'METADATA_HOME_DIR' in os.environ else format('{stack_root}/current/atlas-server') metadata_bin = format("{metadata_home}/bin") python_binary = os.environ['PYTHON_EXE'] if 'PYTHON_EXE' in os.environ else sys.executable metadata_start_script = format("{metadata_bin}/atlas_start.py") metadata_stop_script = format("{metadata_bin}/atlas_stop.py") # metadata local directory structure log_dir = config['configurations']['atlas-env']['metadata_log_dir'] conf_dir = status_params.conf_dir # "/etc/metadata/conf" conf_file = status_params.conf_file atlas_hbase_conf_dir = os.path.join(metadata_home, "hbase", "conf") atlas_hbase_log_dir = os.path.join(metadata_home, "hbase", "logs")