Skip to content

Commit 43206d7

Browse files
authored
refactor: host list provider (#1065)
1 parent 8e7e0f7 commit 43206d7

5 files changed

Lines changed: 393 additions & 364 deletions

File tree

aws_advanced_python_wrapper/database_dialect.py

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
Protocol, Tuple, runtime_checkable)
1919

2020
from aws_advanced_python_wrapper.driver_info import DriverInfo
21+
from aws_advanced_python_wrapper.host_list_provider import (
22+
AuroraTopologyUtils, MultiAzTopologyUtils)
2123
from aws_advanced_python_wrapper.utils.rds_url_type import RdsUrlType
2224

2325
if TYPE_CHECKING:
@@ -33,8 +35,7 @@
3335
from aws_advanced_python_wrapper.errors import (AwsWrapperError,
3436
QueryTimeoutError)
3537
from aws_advanced_python_wrapper.host_list_provider import (
36-
ConnectionStringHostListProvider, MultiAzHostListProvider,
37-
RdsHostListProvider)
38+
ConnectionStringHostListProvider, RdsHostListProvider)
3839
from aws_advanced_python_wrapper.hostinfo import HostInfo
3940
from aws_advanced_python_wrapper.utils.decorators import \
4041
preserve_transaction_status_with_timeout
@@ -408,7 +409,7 @@ def is_dialect(self, conn: Connection, driver_dialect: DriverDialect) -> bool:
408409
return False
409410

410411
def get_host_list_provider_supplier(self) -> Callable:
411-
return lambda provider_service, props: RdsHostListProvider(provider_service, props)
412+
return lambda provider_service, props: RdsHostListProvider(provider_service, props, AuroraTopologyUtils(self, props))
412413

413414
@property
414415
def blue_green_status_query(self) -> str:
@@ -481,7 +482,7 @@ def is_dialect(self, conn: Connection, driver_dialect: DriverDialect) -> bool:
481482
return False
482483

483484
def get_host_list_provider_supplier(self) -> Callable:
484-
return lambda provider_service, props: RdsHostListProvider(provider_service, props)
485+
return lambda provider_service, props: RdsHostListProvider(provider_service, props, AuroraTopologyUtils(self, props))
485486

486487
@property
487488
def blue_green_status_query(self) -> str:
@@ -531,14 +532,10 @@ def is_dialect(self, conn: Connection, driver_dialect: DriverDialect) -> bool:
531532
return False
532533

533534
def get_host_list_provider_supplier(self) -> Callable:
534-
return lambda provider_service, props: MultiAzHostListProvider(
535+
return lambda provider_service, props: RdsHostListProvider(
535536
provider_service,
536537
props,
537-
self._TOPOLOGY_QUERY,
538-
self._HOST_ID_QUERY,
539-
self._IS_READER_QUERY,
540-
self._WRITER_HOST_QUERY,
541-
self._WRITER_HOST_COLUMN_INDEX)
538+
MultiAzTopologyUtils(self, props, self._WRITER_HOST_QUERY, self._WRITER_HOST_COLUMN_INDEX))
542539

543540
def prepare_conn_props(self, props: Properties):
544541
# These props are added for RDS metrics purposes, they are not required for functional correctness.
@@ -590,13 +587,10 @@ def is_dialect(self, conn: Connection, driver_dialect: DriverDialect) -> bool:
590587
return False
591588

592589
def get_host_list_provider_supplier(self) -> Callable:
593-
return lambda provider_service, props: MultiAzHostListProvider(
590+
return lambda provider_service, props: RdsHostListProvider(
594591
provider_service,
595592
props,
596-
self._TOPOLOGY_QUERY,
597-
self._HOST_ID_QUERY,
598-
self._IS_READER_QUERY,
599-
self._WRITER_HOST_QUERY)
593+
MultiAzTopologyUtils(self, props, self._WRITER_HOST_QUERY))
600594

601595

602596
class UnknownDatabaseDialect(DatabaseDialect):

0 commit comments

Comments
 (0)