File tree Expand file tree Collapse file tree 2 files changed +37
-5
lines changed
Expand file tree Collapse file tree 2 files changed +37
-5
lines changed Original file line number Diff line number Diff line change @@ -94,9 +94,9 @@ def set_iam_properties(info: RedshiftProperty) -> RedshiftProperty:
9494 IamHelper .set_auth_properties (info )
9595
9696 if info ._is_serverless and info .iam :
97- if Version (pkg_resources .get_distribution ("boto3" ).version ) < Version ("1.24.5 " ):
97+ if Version (pkg_resources .get_distribution ("boto3" ).version ) < Version ("1.24.11 " ):
9898 raise pkg_resources .VersionConflict (
99- "boto3 >= 1.24.5 required for authentication with Amazon Redshift serverless. "
99+ "boto3 >= 1.24.11 required for authentication with Amazon Redshift serverless. "
100100 "Please upgrade the installed version of boto3 to use this functionality."
101101 )
102102
@@ -274,9 +274,11 @@ def set_cluster_credentials(
274274 response : dict
275275
276276 if info ._is_serverless :
277- response = client .describe_configuration ()
278- info .put ("host" , response ["endpoint" ]["address" ])
279- info .put ("port" , response ["endpoint" ]["port" ])
277+ if not info .serverless_work_group :
278+ raise InterfaceError ("Serverless workgroup is not set." )
279+ response = client .get_workgroup (workgroupName = info .serverless_work_group )
280+ info .put ("host" , response ["workgroup" ]["endpoint" ]["address" ])
281+ info .put ("port" , response ["workgroup" ]["endpoint" ]["port" ])
280282 else :
281283 response = client .describe_clusters (ClusterIdentifier = info .cluster_identifier )
282284 info .put ("host" , response ["Clusters" ][0 ]["Endpoint" ]["Address" ])
Original file line number Diff line number Diff line change @@ -40,3 +40,33 @@ def test_idp_auth(okta_idp):
4040
4141 with redshift_connector .connect (** okta_idp ):
4242 pass
43+
44+
45+ @pytest .mark .skip ()
46+ def test_connection_without_host (serverless_iam_db_kwargs ):
47+ serverless_iam_db_kwargs ["is_serverless" ] = True
48+ serverless_iam_db_kwargs ["host" ] = None
49+ serverless_iam_db_kwargs ["serverless_work_group" ] = "default"
50+ with redshift_connector .connect (** serverless_iam_db_kwargs ) as conn :
51+ with conn .cursor () as cursor :
52+ cursor .execute ("select 1" )
53+
54+
55+ @pytest .mark .skip ()
56+ def test_nlb_connection (serverless_iam_db_kwargs ):
57+ serverless_iam_db_kwargs ["is_serverless" ] = True
58+ serverless_iam_db_kwargs ["host" ] = "my_nlb_endpoint"
59+ serverless_iam_db_kwargs ["serverless_work_group" ] = "default"
60+ with redshift_connector .connect (** serverless_iam_db_kwargs ) as conn :
61+ with conn .cursor () as cursor :
62+ cursor .execute ("select 1" )
63+
64+
65+ @pytest .mark .skip ()
66+ def test_vpc_endpoint_connection (serverless_iam_db_kwargs ):
67+ serverless_iam_db_kwargs ["is_serverless" ] = True
68+ serverless_iam_db_kwargs ["host" ] = "my_vpc_endpoint"
69+ serverless_iam_db_kwargs ["serverless_work_group" ] = "default"
70+ with redshift_connector .connect (** serverless_iam_db_kwargs ) as conn :
71+ with conn .cursor () as cursor :
72+ cursor .execute ("select 1" )
You can’t perform that action at this time.
0 commit comments