### Apache Airflow version

2.5.1

### What happened

When using EMRHook.get_cluster_id_by_name or any any operator that depends on it (e.g. EMRAddStepsOperator), if the results of the ListClusters API call is paginated (e.g. if your account has more than 50 clusters in the current region), and the desired cluster is in the 2nd page of results, None will be returned instead of the cluster ID.

### What you think should happen instead

Boto's pagination API should be used and the cluster ID should be returned.

### How to reproduce

Use `EmrAddStepsOperator` with the `job_flow_name` parameter on an `aws_conn_id` with more than 50 EMR clusters in the current region.

### Operating System

Linux

### Versions of Apache Airflow Providers

apache-airflow-providers-amazon==7.2.1

### Deployment

Official Apache Airflow Helm Chart

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

#
#
#
from __future__ import annotations
import re
from unittest import mock
import boto3
import pytest
from moto import mock_emr
from airflow.providers.amazon.aws.hooks.emr import EmrHook
class TestEmrHook:
    def test_service_waiters(self):
        hook = EmrHook(aws_conn_id=None)
        official_waiters = hook.conn.waiter_names
        custom_waiters = ["job_flow_waiting", "notebook_running", "notebook_stopped"]
        assert hook.list_waiters() == [*official_waiters, *custom_waiters]
    @mock_emr
    def test_get_conn_returns_a_boto3_connection(self):
        hook = EmrHook(aws_conn_id="aws_default", region_name="ap-southeast-2")
        assert hook.get_conn().list_clusters() is not None
    @mock_emr
    def test_create_job_flow_uses_the_emr_config_to_create_a_cluster(self):