Skip to content

Commit 7d246ff

Browse files
committed
apply review comments
1 parent 2a4f02c commit 7d246ff

5 files changed

Lines changed: 16 additions & 15 deletions

File tree

aws_advanced_python_wrapper/aurora_initial_connection_strategy_plugin.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,11 @@ def _get_reader(self, props: Properties) -> Optional[HostInfo]:
213213
if url_type and url_type.has_region:
214214
aws_region = self._rds_utils.get_rds_region(original_host.host)
215215
if aws_region:
216-
hosts_in_region = [
217-
h for h in self._plugin_service.all_hosts
218-
if aws_region.lower() == self._rds_utils.get_rds_region(h.host).lower()
219-
]
216+
hosts_in_region = []
217+
for h in self._plugin_service.all_hosts:
218+
h_region = self._rds_utils.get_rds_region(h.host)
219+
if h_region and aws_region.lower() == h_region.lower():
220+
hosts_in_region.append(h)
220221
return self._plugin_service.get_host_info_by_strategy(
221222
HostRole.READER, strategy, hosts_in_region)
222223

aws_advanced_python_wrapper/database_dialect.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class DialectCode(Enum):
6464
MYSQL = "mysql"
6565

6666
MULTI_AZ_CLUSTER_PG = "multi-az-pg"
67-
GLOBAL_AURORA_PG = "aurora-pg"
67+
GLOBAL_AURORA_PG = "global-aurora-pg"
6868
AURORA_PG = "aurora-pg"
6969
RDS_PG = "rds-pg"
7070
PG = "pg"
@@ -547,7 +547,7 @@ class GlobalAuroraMysqlDialect(AuroraMysqlDialect, GlobalAuroraTopologyDialect):
547547
"FROM information_schema.aurora_global_db_instance_status ")
548548
_REGION_COUNT_QUERY = "SELECT count(1) FROM information_schema.aurora_global_db_status"
549549
_REGION_BY_INSTANCE_ID_QUERY = \
550-
"SELECT AWS_REGION FROM information_schema.aurora_global_db_instance_status WHERE SERVER_ID = ?"
550+
"SELECT AWS_REGION FROM information_schema.aurora_global_db_instance_status WHERE SERVER_ID = %s"
551551

552552
@property
553553
def dialect_update_candidates(self) -> Optional[Tuple[DialectCode, ...]]:
@@ -564,10 +564,10 @@ def is_dialect(self, conn: Connection, driver_dialect: DriverDialect) -> bool:
564564
with closing(conn.cursor()) as cursor:
565565
cursor.execute(self._REGION_COUNT_QUERY)
566566
record = cursor.fetchone()
567-
if record is None or len(record) < 2:
567+
if record is None or len(record) < 1:
568568
return False
569569

570-
aws_region_count = record[1]
570+
aws_region_count = record[0]
571571
return aws_region_count is not None and aws_region_count > 1
572572
except Exception:
573573
if not initial_transaction_status and driver_dialect.is_in_transaction(conn):
@@ -592,7 +592,7 @@ class GlobalAuroraPgDialect(AuroraPgDialect, GlobalAuroraTopologyDialect):
592592
"FROM aurora_global_db_instance_status()")
593593
_REGION_COUNT_QUERY = "SELECT count(1) FROM aurora_global_db_status()"
594594
_REGION_BY_INSTANCE_ID_QUERY = \
595-
"SELECT AWS_REGION FROM aurora_global_db_instance_status() WHERE SERVER_ID = ?"
595+
"SELECT AWS_REGION FROM aurora_global_db_instance_status() WHERE SERVER_ID = %s"
596596

597597
@property
598598
def dialect_update_candidates(self) -> Optional[Tuple[DialectCode, ...]]:
@@ -620,10 +620,10 @@ def is_dialect(self, conn: Connection, driver_dialect: DriverDialect) -> bool:
620620
with closing(conn.cursor()) as cursor:
621621
cursor.execute(self._REGION_COUNT_QUERY)
622622
record = cursor.fetchone()
623-
if record is None or len(record) < 2:
623+
if record is None or len(record) < 1:
624624
return False
625625

626-
aws_region_count = record[1]
626+
aws_region_count = record[0]
627627
return aws_region_count is not None and aws_region_count > 1
628628

629629
except Exception:

aws_advanced_python_wrapper/host_list_provider.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -848,14 +848,14 @@ def _process_global_query_results(
848848
else:
849849
hosts.append(host)
850850

851-
if len(writers) == 0:
851+
if not writers:
852852
logger.error("RdsHostListProvider.InvalidTopology")
853853
hosts.clear()
854854
elif len(writers) == 1:
855855
hosts.append(writers[0])
856856
else:
857857
existing_writers: List[HostInfo] = [x for x in writers if x is not None]
858-
existing_writers.sort(reverse=True, key=lambda h: h.last_update_time is not None and h.last_update_time)
858+
existing_writers.sort(reverse=True, key=lambda h: h.last_update_time or datetime.min)
859859
hosts.append(existing_writers[0])
860860

861861
return tuple(hosts)

aws_advanced_python_wrapper/utils/region_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def get_region_from_hostname(self, hostname: Optional[str]) -> Optional[str]:
4949

5050

5151
class GdbRegionUtils(RegionUtils):
52-
_GDB_CLUSTER_ARN_PATTERN = r"^arn:aws:rds:(?P<region>[^:\n]*):[^:\n]*:([^:/\n]*[:/])?(.*)$"
52+
_GDB_CLUSTER_ARN_PATTERN = r"^arn:aws[^:]*:rds:(?P<region>[^:\n]*):[^:\n]*:([^:/\n]*[:/])?(.*)$"
5353
_REGION_GROUP = "region"
5454

5555
def get_region(self,

tests/unit/test_dialect.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ def test_query_for_dialect_mysql(mock_conn, mock_cursor, mock_driver_dialect):
427427
def test_global_aurora_is_dialect_with_global_tables(mock_conn, mock_cursor, mock_driver_dialect):
428428
mock_conn.cursor.return_value = mock_cursor
429429
mock_cursor.__enter__.return_value = mock_cursor
430-
mock_cursor.fetchone.side_effect = [(1,), (1,), (None, 2)]
430+
mock_cursor.fetchone.side_effect = [(1,), (1,), (2,)]
431431

432432
dialect = GlobalAuroraMysqlDialect()
433433
assert dialect.is_dialect(mock_conn, mock_driver_dialect) is True

0 commit comments

Comments
 (0)