예제 #1
0
    def start(self, env, upgrade_type=None):
        import params
        env.set_params(params)
        self.configure(env, upgrade_type=upgrade_type)
        daemon_cmd = get_daemon_cmd(params, self.nodeType, "start")
        # Verify Database connection on Druid start
        if params.metadata_storage_type == 'mysql':
            if not params.jdbc_driver_jar or not os.path.isfile(
                    params.connector_download_dir + os.path.sep +
                    params.jdbc_driver_jar):
                path_to_jdbc = params.druid_extensions_dir + os.path.sep + "*"
                error_message = "Error! Sorry, but we can't find jdbc driver for mysql.So, db connection check can fail." + \
                                "Please run 'ambari-server setup --jdbc-db=mysql --jdbc-driver={path_to_jdbc} on server host.'"
                Logger.error(error_message)
            else:
                path_to_jdbc = params.connector_download_dir + os.path.sep + params.jdbc_driver_jar
            db_connection_check_command = format(
                "{params.java8_home}/bin/java -cp {params.check_db_connection_jar}:{path_to_jdbc} org.apache.ambari.server.DBConnectionVerification '{params.metadata_storage_url}' {params.metadata_storage_user} {params.metadata_storage_password!p} com.mysql.jdbc.Driver"
            )
        else:
            db_connection_check_command = None

        if db_connection_check_command:
            sudo.chmod(params.check_db_connection_jar, 0755)
            Execute(db_connection_check_command,
                    tries=5,
                    try_sleep=10,
                    user=params.druid_user)

        try:
            Execute(daemon_cmd, user=params.druid_user)
        except:
            show_logs(params.druid_log_dir, params.druid_user)
            raise
예제 #2
0
    def stop(self, env, upgrade_type=None):
        import params
        env.set_params(params)

        daemon_cmd = get_daemon_cmd(params, self.nodeType, "stop")
        try:
            Execute(daemon_cmd, user=params.druid_user)
        except:
            show_logs(params.druid_log_dir, params.druid_user)
            raise
예제 #3
0
  def stop(self, env, upgrade_type=None):
    import params
    env.set_params(params)

    pid_file = getPid(params, self.nodeType)
    process_id_exists_command = as_sudo(["test", "-f", pid_file]) + " && " + as_sudo(["pgrep", "-F", pid_file])

    daemon_cmd = get_daemon_cmd(params, self.nodeType, "stop")
    try:
      Execute(daemon_cmd,
              user=params.druid_user,
              only_if=process_id_exists_command,
              )
    except:
      show_logs(params.druid_log_dir, params.druid_user)
      raise